/* GoFransa — palette Lilas. CSS natif, aucune compilation. */
:root {
  --gf-bg: var(--wp--preset--color--base);
  --gf-bg-2: var(--wp--preset--color--base-2);
  --gf-paper: var(--wp--preset--color--paper);
  --gf-ink: var(--wp--preset--color--ink);
  --gf-muted: var(--wp--preset--color--muted);
  --gf-line: var(--wp--preset--color--line);
  --gf-accent: var(--wp--preset--color--accent);
  --gf-accent-dark: var(--wp--preset--color--accent-dark);
  --gf-accent-text: var(--wp--preset--color--accent-text);
  --gf-lilac: var(--wp--preset--color--lilac);
  --gf-serif: var(--wp--preset--font-family--display);
  --gf-r: 18px;
  --gf-ease: cubic-bezier(.2, .7, .1, 1);
  --gf-edge: clamp(16px, 4vw, 56px);
  --gf-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
@view-transition { navigation: auto; }
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }
h1, h2, h3, h4 { font-variation-settings: "SOFT" 100; text-wrap: balance; }
h1 em, h2 em { font-style: italic; font-weight: 300; }
:focus-visible { outline: 2px solid var(--gf-accent); outline-offset: 3px; border-radius: 4px; }

body :is(.gf-home, .gf-header, .gf-footer, .gf-strip) :where(.wp-block-group, .wp-block-buttons, .wp-block-query) > * { margin-block: 0; }
.wp-site-blocks > * { margin-block: 0; }

.gf-wrap { max-width: 1320px; margin-inline: auto; padding-inline: var(--gf-edge); }
.gf-eyebrow, .gf-eyebrow a { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--gf-accent-text); text-decoration: none; line-height: 1.4; }

/* flèche des boutons et des liens */
.gf-arrow .wp-block-button__link, .gf-all a { display: inline-flex; align-items: center; gap: 10px; transition: gap .4s var(--gf-ease), background .3s; }
.gf-arrow .wp-block-button__link::after, .gf-all a::after { content: ""; width: 18px; height: 18px; background: currentColor; -webkit-mask: var(--gf-arrow) center / contain no-repeat; mask: var(--gf-arrow) center / contain no-repeat; }
.gf-arrow .wp-block-button__link:hover { gap: 16px; }
.gf-btn-light .wp-block-button__link { background: var(--gf-lilac); color: var(--gf-ink); }
.gf-btn-light .wp-block-button__link:hover { background: var(--gf-lilac); filter: brightness(.93); }

/* bandeau et en-tête */
.gf-strip { background: var(--gf-ink); color: #EADFD2; font-size: 13px; }
.gf-strip .gf-wrap { display: flex; justify-content: space-between; gap: 16px; padding-block: 8px; }
.gf-strip__side { opacity: .75; }
.gf-header { position: sticky; top: 0; z-index: 20; background: rgba(250, 247, 242, .92); backdrop-filter: blur(10px); border-bottom: 1px solid var(--gf-line); }
.admin-bar .gf-header { top: var(--wp-admin--admin-bar--height, 32px); }
.gf-bar { display: flex; align-items: center; gap: 32px; padding-block: 14px; }
.gf-logo { display: inline-flex; flex: none; line-height: 0; text-decoration: none; transition: opacity .3s var(--gf-ease); }
.gf-logo:hover { opacity: .85; }
.gf-logo svg { display: block; height: 34px; width: auto; aspect-ratio: 3554 / 700; }
.gf-logo:focus-visible { outline: 2px solid var(--gf-accent); outline-offset: 4px; border-radius: 4px; }
@media (max-width: 600px) { .gf-logo svg { height: 28px; } }
.gf-nav { margin-right: auto; font-weight: 500; font-size: 15px; --wp--style--block-gap: 28px; }
.gf-nav .wp-block-navigation-item__content { color: var(--gf-ink); padding-block: 6px; background: linear-gradient(var(--gf-accent), var(--gf-accent)) left bottom / 0 1px no-repeat; transition: background-size .4s var(--gf-ease); }
.gf-nav .wp-block-navigation-item__content:hover { background-size: 100% 1px; }
.gf-nav .wp-block-navigation__submenu-container { background: var(--gf-paper); border: 1px solid var(--gf-line); border-radius: 14px; padding: 8px; min-width: 230px; box-shadow: 0 24px 60px -24px rgba(26, 21, 18, .35); }
.gf-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 8px 12px; background: none; border-radius: 8px; }
.gf-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--gf-bg-2); }
.gf-bar__cta { flex: none; }
@media (max-width: 1240px) { .gf-bar { gap: 22px; } .gf-nav { --wp--style--block-gap: 18px; font-size: 14.5px; } }
@media (max-width: 1060px) { .gf-bar__cta { display: none; } }

/* héros */
.gf-hero { position: relative; min-height: min(86vh, 820px); display: grid; align-items: start; color: #FFF9F0; background: linear-gradient(160deg, #4A3A6B, #C8451F 70%, #E9B56B); overflow: hidden; }
.gf-hero > .wp-block-image { position: absolute; inset: 0; margin: 0; }
.gf-hero > .wp-block-image img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 100%; transform-origin: 50% 100%; animation: gf-zoom 24s ease-out both; }
@media (max-width: 760px) { .gf-hero > .wp-block-image img { object-position: 76% 100%; } }
@keyframes gf-zoom { from { transform: scale(1.08); } to { transform: scale(1); } }
.gf-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(26, 21, 18, .55) 0%, rgba(26, 21, 18, .28) 34%, rgba(26, 21, 18, 0) 55%, rgba(26, 21, 18, .18) 100%); }
.gf-hero__in { position: relative; z-index: 2; width: 100%; padding-block: clamp(32px, 5vh, 64px) 0; display: grid; gap: 18px; justify-items: start; }
.gf-hero__in > * { text-shadow: 0 2px 24px rgba(26, 21, 18, .35); }
.gf-hero .gf-eyebrow { color: #E4D9FF; }
.gf-hero h1 { font-size: clamp(40px, 5.2vw, 76px); line-height: 1; max-width: 15ch; }
.gf-hero__in > p:last-child { font-size: clamp(17px, 1.5vw, 20px); max-width: 52ch; color: #F6EADB; }

/* recherche */
.gf-search { position: relative; z-index: 5; margin-top: -56px; }
.gf-search .wp-block-search { background: var(--gf-paper); border-radius: 22px; box-shadow: 0 24px 60px -24px rgba(26, 21, 18, .35); padding: 14px 14px 14px 30px; max-width: 760px; }
.gf-search .wp-block-search__label { font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--gf-muted); margin: 0; }
.gf-search .wp-block-search__inside-wrapper { gap: 12px; align-items: center; }
.gf-search .wp-block-search__input { border: 0; background: none; font: 500 17px/1.3 inherit; color: var(--gf-ink); padding: 2px 0 6px; min-width: 0; }
.gf-search .wp-block-search__input::placeholder { color: #A3978C; }
.gf-search .wp-block-search__button { margin: 0; padding-inline: 30px; }
.gf-trust { display: flex; flex-wrap: wrap; gap: 8px 28px; padding-top: 22px; font-size: 14px; color: var(--gf-muted); }
.gf-trust p::before { content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--gf-accent); margin-right: 10px; vertical-align: middle; }

/* sections */
.gf-section { padding-block: clamp(56px, 8vw, 112px); }
.gf-section--tint { background: var(--gf-bg-2); }
.gf-section--flush { padding-top: 0; }
.gf-head { display: flex; justify-content: space-between; align-items: end; gap: 24px; padding-bottom: clamp(28px, 4vw, 48px); }
.gf-head > div { display: grid; gap: 10px; }
.gf-head h2 { font-size: clamp(32px, 4.4vw, 56px); line-height: 1.02; max-width: 18ch; }
.gf-all a { color: var(--gf-ink); font-weight: 600; white-space: nowrap; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 4px; gap: 8px; }
.gf-all a:hover { gap: 14px; }

.gf-promises { padding-top: clamp(40px, 5vw, 72px); }
.gf-promises .gf-wrap { display: grid; grid-template-columns: repeat(3, 1fr); }
.gf-promise { padding: 8px 32px; border-left: 1px solid var(--gf-line); display: grid; gap: 8px; align-content: start; }
.gf-promise:first-child { padding-left: 0; border: 0; }
.gf-promise h3 { font-size: 24px; line-height: 1.15; }
.gf-promise p { color: var(--gf-muted); }

/* cartes */
.gf-grid { display: grid; gap: 24px; }
.gf-grid--4 { grid-template-columns: repeat(4, 1fr); }
.gf-grid--6 { grid-template-columns: repeat(6, 1fr); gap: 20px; }
.gf-card, .gf-place { position: relative; display: grid; gap: 8px; align-content: start; }
:is(.gf-card, .gf-place) .wp-block-image, .gf-post .wp-block-post-featured-image { margin: 0 0 8px; overflow: hidden; border-radius: var(--gf-r); background: linear-gradient(135deg, #E4DAF7, #D8BFA0); }
.gf-card .wp-block-image { aspect-ratio: 3 / 4; }
.gf-place .wp-block-image { aspect-ratio: 4 / 5; }
.gf-post .wp-block-image { aspect-ratio: 3 / 2; }
:is(.gf-card, .gf-place, .gf-tile) .wp-block-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--gf-ease); }
:is(.gf-card, .gf-place, .gf-tile):hover .wp-block-image img { transform: scale(1.06); }
:is(.gf-card, .gf-place, .gf-tile) h3 a, .gf-post .wp-block-post-title a { color: inherit; text-decoration: none; }
:is(.gf-card, .gf-place, .gf-tile) h3 a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.gf-card h3, .gf-post .wp-block-post-title { font-size: 24px; line-height: 1.12; }
.gf-card > p:not(.gf-eyebrow):not(.gf-badge), .gf-post .wp-block-post-excerpt { color: var(--gf-muted); }
.gf-badge { position: absolute; left: 14px; top: 14px; background: rgba(255, 255, 255, .94); color: var(--gf-ink); font-weight: 600; font-size: 13px; line-height: 1.4; padding: 6px 12px; border-radius: 999px; }
.gf-place { gap: 2px; }
.gf-place .wp-block-image { margin-bottom: 10px; }
.gf-place h3 { font-size: 22px; }
.gf-place p { font-size: 14px; color: var(--gf-muted); }
.gf-sub { font-family: var(--gf-serif); font-style: italic; font-size: 22px; padding-block: 8px 20px; }
.gf-sub + .gf-grid + .gf-sub { padding-top: 48px; }

/* tuiles photo */
.gf-tiles { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: clamp(180px, 20vw, 290px); gap: 16px; }
.gf-tile { position: relative; overflow: hidden; border-radius: var(--gf-r); color: #FFF9F0; background: linear-gradient(135deg, #B9A6E8, #8A5B43); }
.gf-tile--big { grid-column: span 2; grid-row: span 2; }
.gf-tile--wide { grid-column: span 2; }
.gf-tile > .wp-block-image { position: absolute; inset: 0; margin: 0; }
.gf-tile__txt { position: absolute; inset: auto 0 0 0; padding: 48px 22px 20px; background: linear-gradient(180deg, rgba(26, 21, 18, 0), rgba(26, 21, 18, .8)); display: grid; gap: 4px; }
.gf-tile h3 { font-style: italic; font-size: clamp(22px, 2.2vw, 32px); line-height: 1.05; }
.gf-seasons { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.gf-season { aspect-ratio: 3 / 4.6; }
.gf-season .gf-tile__txt { padding-top: 80px; }
.gf-season h3 { font-weight: 300; font-size: clamp(30px, 3vw, 42px); line-height: 1; }
.gf-season .gf-eyebrow { color: #E4D9FF; }
.gf-season p:last-child { font-size: 15px; line-height: 1.45; padding-top: 6px; }

/* bandeau vize */
.gf-visa { background: var(--gf-ink); color: #FAF7F2; }
.gf-visa .gf-wrap { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(32px, 6vw, 96px); align-items: center; }
.gf-visa__txt { display: grid; gap: 18px; justify-items: start; }
.gf-visa .gf-eyebrow { color: var(--gf-lilac); }
.gf-visa h2 { font-size: clamp(34px, 4.6vw, 60px); line-height: 1.02; }
.gf-visa__txt > p:not(.gf-eyebrow) { max-width: 46ch; color: #C6BCB4; }
.gf-steps { list-style: none; padding: 0; width: 100%; counter-reset: gf; }
.gf-steps li { counter-increment: gf; position: relative; padding: 16px 0 16px 60px; border-top: 1px solid rgba(255, 255, 255, .16); color: #C6BCB4; font-size: 15px; }
.gf-steps li::before { content: counter(gf); position: absolute; left: 0; top: 16px; font-family: var(--gf-serif); font-style: italic; font-size: 30px; line-height: 1; color: var(--gf-lilac); }
.gf-steps strong { display: block; font-size: 17px; color: #FAF7F2; }
.gf-visa .gf-visa__img { margin: 0; aspect-ratio: 4 / 5; overflow: hidden; border-radius: 999px 999px var(--gf-r) var(--gf-r); background: rgba(255, 255, 255, .16); }
.gf-visa__img img { width: 100%; height: 100%; object-fit: cover; }

.gf-posts-home { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 28px; }
.gf-posts-home .gf-post:first-child .wp-block-image { aspect-ratio: 16 / 10; }
.gf-posts-home .gf-post:first-child h3 { font-size: clamp(26px, 2.6vw, 36px); }

/* pages intérieures */
.gf-main { padding-block: clamp(40px, 6vw, 88px); }
.gf-pagehead { padding-bottom: clamp(24px, 4vw, 48px); }
.gf-posts { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px 28px; }
.gf-posts > li { margin: 0; }
.gf-pagination { padding-top: 48px; }
.gf-article__meta { color: var(--gf-muted); font-size: 14px; }
.gf-article .wp-block-post-featured-image { border-radius: var(--gf-r); overflow: hidden; }
.gf-content :where(h2) { margin-top: 2.2em; }
.gf-content :where(h3) { margin-top: 1.8em; }
.gf-content :where(img) { border-radius: 12px; }

/* pied de page */
.gf-footer { background: var(--gf-ink); color: #D9CCBE; padding-block: 64px 32px; font-size: 15px; }
.gf-foot { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 40px; }
.gf-foot > div { display: grid; gap: 14px; align-content: start; max-width: 36ch; }
.gf-footer .gf-logo svg { height: 40px; }
.gf-foot__t { font: 600 12px/1.4 var(--wp--preset--font-family--body); letter-spacing: .14em; text-transform: uppercase; color: #A8998A; padding-bottom: 14px; }
.gf-foot ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.gf-foot a { color: inherit; text-decoration: none; }
.gf-foot a:hover { color: #FFF7EC; }
.gf-foot__note { grid-column: 1 / -1; border-top: 1px solid #3F332B; padding-top: 24px; font-size: 13px; color: #A8998A; }

/* apparition au défilement, sans JavaScript */
@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: view()) {
    :is(.gf-card, .gf-place, .gf-tile, .gf-promise) { animation: gf-in linear both; animation-timeline: view(); animation-range: entry 0% entry 40%; }
  }
}
@keyframes gf-in { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; } }

@media (max-width: 1080px) {
  .gf-grid--4 { grid-template-columns: repeat(2, 1fr); }
  .gf-grid--6 { grid-template-columns: repeat(3, 1fr); }
  .gf-seasons { grid-template-columns: repeat(2, 1fr); }
  .gf-posts-home, .gf-posts { grid-template-columns: 1fr 1fr; }
  .gf-posts-home .gf-post:first-child { grid-column: 1 / -1; }
  .gf-foot { grid-template-columns: 1fr 1fr; }
  .gf-bar { gap: 20px; }
  .gf-nav { --wp--style--block-gap: 18px; }
}
@media (max-width: 720px) {
  .gf-strip__side, .gf-bar__cta { display: none; }
  .gf-bar { justify-content: space-between; }
  .gf-nav { margin-right: 0; }
  .gf-hero__in { padding-block: 72px 96px; }
  .gf-search .wp-block-search { padding: 14px 14px 14px 20px; }
  .gf-promises .gf-wrap { grid-template-columns: 1fr; gap: 24px; }
  .gf-promise { padding: 0; border: 0; }
  .gf-head { flex-direction: column; align-items: start; }
  .gf-tiles { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 44vw; }
  .gf-grid--6 { grid-template-columns: repeat(2, 1fr); }
  .gf-visa .gf-wrap { grid-template-columns: 1fr; }
  .gf-visa .gf-visa__img { max-width: 340px; }
  .gf-posts-home, .gf-posts, .gf-foot { grid-template-columns: 1fr; }
}
