

:root {
  --parchment: #f7f3eb;
  --sand:      #ede4d0;
  --stone:     #c2aa8d;
  --earth:     #896948;
  --teal:      #5d6753;
  --teal-d:    #434b3b;
  --warm:      #231e15;
  --muted:     #79695a;
  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans:  'Jost', sans-serif;
}

/* Keyboard access, legible controls and motion preferences. */
.nav-logo img,.id-logo,.ft-logo { width:auto; }
.skip-link { position:fixed; top:12px; left:12px; z-index:2000; padding:12px 18px; color:var(--warm); background:var(--parchment); transform:translateY(-180%); }
.skip-link:focus { transform:none; }
:focus-visible { outline:3px solid var(--stone); outline-offset:5px; }
.video-toggle { display:none; position:absolute; z-index:5; right:28px; bottom:20px; padding:9px 13px; border:1px solid rgba(247,243,235,.65); color:var(--parchment); background:rgba(18,14,8,.52); font:400 10px var(--sans); letter-spacing:.06em; cursor:pointer; }
.js .video-toggle { display:block; }
.video-toggle:hover { background:rgba(18,14,8,.8); }
.mlangs a.lb { display:inline-block; font:400 12px var(--sans); margin:0 10px; padding:10px 3px; color:var(--muted); }
.mlangs a.on { text-decoration:underline; text-underline-offset:5px; }
.c-outer { touch-action:pan-y; }
.c-slide:focus-visible { outline-offset:-5px; }
.lb-x,.lb-arr { min-width:44px; min-height:44px; }
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto !important; }
 *,*::before,*::after { animation:none !important; transition:none !important; }
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
section[id] { scroll-margin-top: 88px; }
body { font-family: var(--sans); background: var(--parchment); color: var(--warm); font-weight: 300; overflow-x: hidden; }
a { text-decoration: none; }
img { display: block; max-width: 100%; }

/* NAV */
nav { position: fixed; top: 0; left: 0; right: 0; z-index: 200; display: flex; align-items: center; justify-content: space-between; padding: 28px 56px; transition: background .5s, padding .4s, box-shadow .4s; }
nav.s { background: rgba(247,243,235,.97); backdrop-filter: blur(12px); padding: 14px 56px; box-shadow: 0 1px 0 rgba(194,170,141,.18); }
.nav-logo img { height: 48px; filter: brightness(0) invert(1); transition: filter .4s, height .4s; }
nav.s .nav-logo img { filter: none; height: 38px; }
.nav-links { display: flex; gap: 40px; list-style: none; }
.nav-links a { font-size: 9.5px; font-weight: 300; letter-spacing: .2em; text-transform: uppercase; color: rgba(255,255,255,.75); transition: color .3s; }
nav.s .nav-links a { color: var(--muted); }
.nav-links a:hover { color: var(--teal); }
.nav-r { display: flex; align-items: center; gap: 22px; }
.langs { display: flex; gap: 2px; align-items: center; }
.lb { background: none; border: none; cursor: pointer; font-family: var(--sans); font-size: 9.5px; font-weight: 300; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.45); padding: 3px 6px; transition: color .3s; }
nav.s .lb { color: var(--muted); }
nav:not(.s) .lb { color:var(--parchment); text-shadow:0 1px 4px rgba(0,0,0,.65); }
nav:not(.s) .lb.on { text-decoration:underline; text-underline-offset:4px; }
.lb.on, .lb:hover { color: var(--teal); }
.lsep { color: rgba(255,255,255,.15); font-size: 9px; }
nav.s .lsep { color: var(--stone); }
.btn-booknav { font-size: 9px; font-weight: 400; letter-spacing: .22em; text-transform: uppercase; padding: 11px 28px; background: var(--teal); color: #fff; transition: background .3s; white-space: nowrap; }
.btn-booknav:hover { background: var(--teal-d); }
.burger { display: none; flex-direction: column; gap: 5px; background: none; border: none; cursor: pointer; }
.burger span { width: 22px; height: 1px; background: #fff; display: block; transition: background .3s; }
nav.s .burger span { background: var(--warm); }

/* MOBILE MENU */
.mmenu { display: none; position: fixed; inset: 0; z-index: 300; background: var(--parchment); flex-direction: column; align-items: center; justify-content: center; gap: 30px; }
.mmenu.on { display: flex; }
.mmenu a { font-family: var(--serif); font-size: 30px; font-weight: 300; color: var(--warm); transition: color .3s; }
.mmenu a:hover { color: var(--teal); }
.mclose { position: absolute; top: 22px; right: 28px; font-size: 22px; background: none; border: none; cursor: pointer; color: var(--muted); font-family: var(--sans); font-weight: 200; }
.mlangs { display: flex; gap: 22px; margin-top: 8px; }
.mlangs button { font-family: var(--sans); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; background: none; border: none; cursor: pointer; color: var(--muted); transition: color .3s; }
.mlangs button:hover, .mlangs button.on { color: var(--teal); }

/* HERO */
.hero { position: relative; height: 100vh; overflow: hidden; }
.hero-slides { position: absolute; inset: 0; }
.hs { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0; transition: opacity 1.6s ease; }
.hs.on { opacity: 1; }
.hero-over { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,16,9,.3) 0%, rgba(20,16,9,0) 42%, rgba(20,16,9,.72) 100%); }
.hero-body { position: absolute; bottom: 72px; left: 60px; right: 60px; display: flex; justify-content: space-between; align-items: flex-end; }
.hero-tag { font-size: 9.5px; font-weight: 200; letter-spacing: .32em; text-transform: uppercase; color: rgba(255,255,255,.82); text-shadow: 0 1px 4px rgba(0,0,0,.4); margin-bottom: 18px; }
.hero-title { font-family: var(--serif); font-weight: 300; font-size: clamp(56px, 8.5vw, 110px); color: #fff; line-height: .92; }
.hero-title em { font-style: italic; color: var(--stone); }
.hero-sub { margin-top: 20px; font-size: 10px; font-weight: 200; letter-spacing: .24em; text-transform: uppercase; color: rgba(255,255,255,.82); text-shadow: 0 1px 4px rgba(0,0,0,.4); }
.hero-cta { display: flex; flex-direction: column; gap: 11px; align-items: flex-end; }
.btn-p { font-size: 9px; font-weight: 400; letter-spacing: .22em; text-transform: uppercase; padding: 16px 48px; background: var(--teal); color: #fff; display: inline-block; transition: background .3s; white-space: nowrap; }
.btn-p:hover { background: var(--teal-d); }
.btn-g { font-size: 9px; font-weight: 300; letter-spacing: .22em; text-transform: uppercase; padding: 14px 44px; border: 1px solid rgba(255,255,255,.38); color: #fff; display: inline-block; transition: all .3s; white-space: nowrap; }
.btn-g:hover { border-color: #fff; background: rgba(255,255,255,.06); }
.hero-scroll { position: absolute; bottom: 26px; left: 50%; transform: translateX(-50%); font-size: 8px; letter-spacing: .22em; text-transform: uppercase; color: rgba(255,255,255,.3); display: flex; flex-direction: column; align-items: center; gap: 10px; }
.hero-scroll::after { content: ''; width: 1px; height: 28px; background: rgba(255,255,255,.2); animation: tick 2.2s infinite; }
@keyframes tick { 0%,100%{opacity:.15} 50%{opacity:.55} }
.hero-dots { position: absolute; bottom: 34px; right: 60px; display: flex; gap: 8px; }
.hd { width: 4px; height: 4px; border-radius: 50%; background: rgba(255,255,255,.28); cursor: pointer; transition: background .3s, transform .3s; }
.hd.on { background: #fff; transform: scale(1.6); }

/* IDENTITY BAND */
.id-band { background: var(--teal-d); padding: 48px 56px; display: flex; flex-direction: column; align-items: center; gap: 0; text-align: center; position: relative; overflow: hidden; }
.id-band::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse 70% 50% at 50% 110%, rgba(93,103,83,.35) 0%, transparent 100%); pointer-events: none; }
.id-logo { height: 140px; width: auto; max-width: 320px; filter: brightness(0) invert(1); object-fit: contain; position: relative; z-index: 1; }
.id-rule { width: 36px; height: 1px; background: rgba(194,170,141,.28); margin: 28px auto; position: relative; z-index: 1; }
.id-quote { font-family: var(--serif); font-style: italic; font-size: clamp(19px, 2.3vw, 27px); font-weight: 300; color: rgba(247,243,235,.88); max-width: 580px; line-height: 1.62; position: relative; z-index: 1; }
.id-claim { font-family: var(--serif); font-style: italic; font-size: clamp(17px, 1.8vw, 22px); font-weight: 300; color: rgba(247,243,235,.82); letter-spacing: .06em; margin-top: 22px; position: relative; z-index: 1; }

/* PLATFORMS */
.platforms { background: var(--sand); padding: 18px 56px; display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap; border-bottom: 1px solid rgba(194,170,141,.22); }
.plbl { font-size: 8.5px; font-weight: 300; letter-spacing: .22em; text-transform: uppercase; color: var(--muted); margin-right: 6px; }
.pn { font-size: 9.5px; font-weight: 400; letter-spacing: .14em; text-transform: uppercase; color: var(--teal-d); }
.pdot { color: var(--stone); font-size: 10px; }

/* SHARED */
.eyebrow { font-size: 8.5px; font-weight: 300; letter-spacing: .3em; text-transform: uppercase; color: var(--teal); margin-bottom: 20px; display: block; }
.h2 { font-family: var(--serif); font-weight: 300; font-size: clamp(34px, 4vw, 56px); color: var(--warm); line-height: 1.1; margin-bottom: 28px; }
.h2 em { font-style: italic; color: var(--earth); }
.body-t { font-size: 15px; font-weight: 300; color: var(--muted); line-height: 1.9; margin-bottom: 22px; }

/* INTRO */
.intro { display: grid; grid-template-columns: 1fr 1fr; min-height: 88vh; }
.intro-img { overflow: hidden; position: relative; }
.intro-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.intro-text { background: var(--parchment); padding: 100px 88px 100px 96px; display: flex; flex-direction: column; justify-content: center; }

/* NUMBERS */
.nums { background: var(--sand); display: grid; grid-template-columns: repeat(5,1fr); border-top: 1px solid rgba(194,170,141,.18); border-bottom: 1px solid rgba(194,170,141,.18); }
.num { padding: 52px 16px; text-align: center; border-right: 1px solid rgba(194,170,141,.18); }
.num:last-child { border-right: none; }
.nv { font-family: var(--serif); font-weight: 300; font-size: 52px; color: var(--earth); line-height: 1; margin-bottom: 8px; }
.nl { font-size: 8.5px; font-weight: 300; letter-spacing: .22em; text-transform: uppercase; color: var(--muted); }

/* GALLERY CAROUSEL */
.gallery-wrap { background: var(--parchment); padding: 100px 0 0; }
.gallery-hd { padding: 0 60px 52px; }
.c-band { background: #2e2d2a; padding: 40px 0; }
.c-outer { overflow: hidden; width: 100%; cursor: grab; user-select: none; }
.c-outer:active { cursor: grabbing; }
.c-track { display: flex; gap: 3px; transition: transform .55s cubic-bezier(.25,.46,.45,.94); will-change: transform; }
.c-slide { flex:0 0 auto; height:var(--gallery-height); width:calc(var(--gallery-height) * var(--photo-ratio)); cursor:zoom-in; }
.c-slide img { width:100%; height:100%; object-fit:contain; display:block; pointer-events:none; }
.c-nav { display: flex; align-items: center; justify-content: space-between; padding: 28px 60px 80px; background: var(--parchment); }
.c-count { font-family: var(--serif); font-size: 14px; color: var(--muted); font-style: italic; }
.c-btns { display: flex; gap: 12px; }
.c-btn { width: 48px; height: 48px; border: 1px solid rgba(137,105,72,.25); background: none; cursor: pointer; display: flex; align-items: center; justify-content: center; color: var(--earth); font-size: 18px; transition: all .3s; font-family: var(--sans); }
.c-btn:hover { background: var(--earth); color: #fff; border-color: var(--earth); }

/* LIGHTBOX */
.lb-ov { display: none; position: fixed; inset: 0; z-index: 1000; background: rgba(18,14,8,.96); align-items: center; justify-content: center; }
.lb-ov.on { display: flex; }
.lb-ov img { max-width: 92vw; max-height: 92vh; object-fit: contain; }
.lb-ov img { max-height:calc(100svh - 160px); }
#lbCaption { position:absolute; bottom:26px; left:50%; transform:translateX(-50%); width:min(680px,80vw); text-align:center; color:var(--parchment); font-size:13px; line-height:1.5; }
.territory-row figure[role="button"] { cursor:zoom-in; }
.lb-x { position: absolute; top: 24px; right: 32px; font-size: 28px; color: rgba(255,255,255,.5); background: none; border: none; cursor: pointer; font-family: var(--sans); font-weight: 200; line-height: 1; transition: color .2s; }
.lb-x:hover { color: #fff; }
.lb-arr { position: absolute; top: 50%; transform: translateY(-50%); font-size: 22px; color: rgba(255,255,255,.4); background: none; border: none; cursor: pointer; padding: 16px; font-family: var(--sans); transition: color .2s; }
.lb-arr:hover { color: #fff; }
.lb-prev { left: 16px; }
.lb-next { right: 16px; }

/* POOL */
.pool { display: grid; grid-template-columns: 1fr 1fr; min-height: 78vh; }
.pool-txt { background: var(--teal-d); padding: 96px 84px; display: flex; flex-direction: column; justify-content: center; position: relative; overflow: hidden; }
.pool-txt::before { content: ''; position: absolute; top: -25%; right: -20%; width: 55%; padding-bottom: 55%; border-radius: 50%; background: rgba(93,103,83,.18); pointer-events: none; }
.pool-txt .eyebrow { color: var(--stone); }
.pool-txt .h2 { color: rgba(247,243,235,.95); }
.pool-txt .h2 em { color: var(--stone); }
.pool-txt .body-t { color: rgba(247,243,235,.82); }
.pool-imgs { display: grid; grid-template-rows: 1fr 1fr; }
.pool-img-top, .pool-img-bot { overflow: hidden; position: relative; }
.pool-img-top img, .pool-img-bot img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .9s ease; }
.pool-img-top:hover img, .pool-img-bot:hover img { transform: scale(1.04); }

/* EXPERIENCES */
.exp { background: var(--parchment); padding: 104px 60px; }
.exp-intro { max-width: 520px; margin-bottom: 64px; }
.exp-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 2px; }
.ei { background: var(--sand); padding: 52px 44px; position: relative; overflow: hidden; cursor: default; }
.ei::after { content: ''; position: absolute; inset: 0; background: var(--teal-d); transform: translateY(100%); transition: transform .48s cubic-bezier(.4,0,.2,1); z-index: 0; }
.ei:hover::after { transform: translateY(0); }
.ei > * { position: relative; z-index: 1; }
.ei-n { font-family: var(--serif); font-size: 52px; font-weight: 300; color: rgba(137,105,72,.14); line-height: 1; margin-bottom: 22px; transition: color .4s; }
.ei:hover .ei-n { color: rgba(247,243,235,.06); }
.ei-t { font-family: var(--serif); font-size: 23px; font-weight: 300; color: var(--warm); margin-bottom: 12px; transition: color .4s; }
.ei:hover .ei-t { color: rgba(247,243,235,.92); }
.ei-d { font-size: 13.5px; font-weight: 300; color: var(--muted); line-height: 1.78; transition: color .4s; }
.ei:hover .ei-d { color: rgba(247,243,235,.5); }

/* TERRITORY */
.territory { background: var(--warm); }
.terr-inner { display: grid; grid-template-columns: 1fr 1fr; min-height: 680px; }
.terr-txt { padding: 88px 80px 88px 88px; display: flex; flex-direction: column; justify-content: center; }
.terr-txt .eyebrow { color: var(--stone); }
.terr-txt .h2 { color: rgba(247,243,235,.94); }
.terr-txt .h2 em { font-style: italic; color: var(--stone); }
.terr-txt .body-t { color: rgba(247,243,235,.82); }
.terr-rows { margin-top: 36px; }
.terr-row { display: flex; align-items: baseline; gap: 18px; padding: 16px 0; border-bottom: 1px solid rgba(247,243,235,.07); }
.terr-row:first-child { border-top: 1px solid rgba(247,243,235,.07); }
.tdist { font-size: 9px; font-weight: 300; letter-spacing: .14em; color: var(--stone); text-transform: uppercase; min-width: 46px; }
.tname { font-family: var(--serif); font-size: 18px; font-weight: 300; color: rgba(247,243,235,.78); }
.terr-img { overflow: hidden; position: relative; }
.terr-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(.85); transition: transform .9s ease; }
.terr-img:hover img { transform: scale(1.04); filter: brightness(.95); }

/* PRACTICAL */
.practical { background: var(--sand); padding: 100px 60px; }
.prac-hd { max-width: 500px; margin-bottom: 56px; }
.prac-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 2px; }
.pi { background: var(--parchment); padding: 46px 36px; }
.pi-icon { font-size: 16px; color: var(--teal); margin-bottom: 20px; display: block; }
.pi-t { font-family: var(--serif); font-size: 21px; font-weight: 300; color: var(--warm); margin-bottom: 12px; }
.pi-b { font-size: 13.5px; font-weight: 300; color: var(--muted); line-height: 1.8; }

/* REVIEWS */
.reviews { background: var(--warm); padding: 92px 60px; }
.rev-hd { max-width: 460px; margin-bottom: 52px; }
.rev-hd .eyebrow { color: var(--stone); }
.rev-hd .h2 { color: rgba(247,243,235,.92); }
.rev-hd .h2 em { font-style: italic; color: var(--stone); }
.rev-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 2px; }
.rv { background: rgba(255,255,255,.035); padding: 46px 36px; border-top: 1px solid rgba(194,170,141,.09); }
.rv-stars { color: var(--teal); letter-spacing: 4px; font-size: 11px; margin-bottom: 20px; }
.rv-text { font-family: var(--serif); font-style: italic; font-size: 17px; color: rgba(247,243,235,.66); line-height: 1.68; margin-bottom: 26px; }
.rv-auth { font-size: 9.5px; font-weight: 300; letter-spacing: .14em; text-transform: uppercase; color: var(--stone); }
.rv-from { font-size: 9.5px; color: var(--stone); margin-top: 4px; }
.rv-featured { max-width: 1000px; margin: 0 0 48px; padding: 0 0 42px; border-bottom: 1px solid rgba(194,170,141,.28); }
.rv-featured .eyebrow { color: var(--stone); }
.rv-featured h3 { margin: 14px 0 20px; font-family: var(--serif); font-size: clamp(32px,3.5vw,48px); font-weight: 400; font-style: italic; line-height: 1.15; color: var(--stone); }
.rv-featured blockquote { margin: 0; }
.rv-featured blockquote p { margin: 0; font-family: var(--serif); font-size: clamp(21px,2.1vw,27px); font-weight: 400; line-height: 1.5; color: rgba(247,243,235,.92); }
.rv-featured-author { margin: 24px 0 6px; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--stone); }
.reviews-more { margin-top: 30px; }
.reviews-more a { display: inline-flex; align-items: center; min-height: 44px; color: var(--stone); font-size: 13px; letter-spacing: .04em; text-decoration: underline; text-underline-offset: 5px; }
.reviews-more a:hover { color: var(--parchment); }
.reviews-more a:focus-visible { outline: 2px solid var(--stone); outline-offset: 6px; }

/* BOOK */
.book { background: var(--parchment); padding: 128px 60px; text-align: center; }
.book .h2 { max-width: 580px; margin: 0 auto 20px; }
.book .body-t { max-width: 460px; margin: 0 auto 44px; }
.perks { display: flex; justify-content: center; gap: 40px; flex-wrap: wrap; margin-bottom: 48px; }
.perk { font-size: 11px; font-weight: 300; letter-spacing: .06em; color: var(--muted); display: flex; align-items: center; gap: 9px; }
.perk::before { content: '—'; color: var(--teal); }
.btn-book { font-size: 9px; font-weight: 400; letter-spacing: .24em; text-transform: uppercase; padding: 20px 56px; background: var(--teal); color: #fff; display: inline-block; transition: background .3s, transform .2s; }
.btn-book:hover { background: var(--teal-d); transform: translateY(-2px); }

/* FOOTER */
footer { background: var(--warm); padding: 72px 60px 40px; }
.ft-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 60px; padding-bottom: 52px; border-bottom: 1px solid rgba(255,255,255,.052); margin-bottom: 28px; }
.ft-logo { height: 52px; width: auto; filter: brightness(0) invert(.45); display: block; margin-bottom: 18px; }
.ft-tag { font-family: var(--serif); font-style: italic; font-size: 14px; color: var(--stone); }
.ft-col h4 { font-size: 8px; font-weight: 300; letter-spacing: .28em; text-transform: uppercase; color: var(--stone); margin-bottom: 18px; }
.ft-col a, .ft-col p { display: block; font-size: 13px; font-weight: 300; color: #c2b5a5; margin-bottom: 8px; transition: color .3s; }
.ft-col a:hover { color: var(--stone); }
.ft-bottom { display: flex; justify-content: space-between; align-items: center; }
.ft-copy { font-size: 10.5px; font-weight: 300; color: #c2b5a5; }

/* RESPONSIVE */
@media (max-width: 960px) {
  nav { padding: 16px 24px; }
  nav.s { padding: 12px 24px; }
  .nav-links, .btn-booknav { display: none; }
  .burger { display: flex; }
  .hero-body { left: 28px; right: 28px; bottom: 60px; flex-direction: column; align-items: flex-start; gap: 18px; }
  .hero-dots { right: 24px; }
  .id-band, .platforms { padding-left: 28px; padding-right: 28px; }
  .intro { grid-template-columns: 1fr; }
  .intro-img { height: 340px; position: relative; }
  .intro-text { padding: 64px 28px; }
  .nums { grid-template-columns: repeat(3,1fr); }
  .num:nth-child(4), .num:nth-child(5) { border-top: 1px solid rgba(194,170,141,.18); }
  .gallery-hd { padding-left: 28px; padding-right: 28px; }
  .c-nav { padding-left: 28px; padding-right: 28px; }
  .pool { grid-template-columns: 1fr; }
  .pool-imgs { height: 340px; position: relative; }
  .pool-img-top, .pool-img-bot { position: relative; }
  .pool-txt { padding: 64px 28px; }
  .exp, .practical, .reviews, .book { padding-left: 28px; padding-right: 28px; }
  .exp-grid, .prac-grid, .rev-grid { grid-template-columns: 1fr; }
  .terr-inner { grid-template-columns: 1fr; }
  .terr-txt { padding: 64px 28px; order: 2; }
  .terr-img { height: 380px; position: relative; order: 1; }
  .ft-grid { grid-template-columns: 1fr; gap: 32px; }
  .ft-bottom { flex-direction: column; gap: 8px; align-items: flex-start; }
  .perks { flex-direction: column; align-items: center; gap: 14px; }
}


/* AWARDS */
.awards { background: var(--teal-d); padding: 18px 60px; text-align: center; }
.awards span { font-size: 11px; font-weight: 300; letter-spacing: .18em; text-transform: uppercase; color: rgba(247,243,235,.6); line-height: 2; }
.awards strong { color: rgba(247,243,235,.92); font-weight: 400; }

/* PLACE INTRO */
.place-intro { font-family: var(--serif); font-style: italic; font-size: clamp(18px, 2vw, 24px); font-weight: 300; color: var(--warm); line-height: 1.65; margin-bottom: 36px; }


/* PLACE INTRO */
.place-intro { font-family: var(--serif); font-style: italic; font-size: clamp(18px,2vw,23px); font-weight: 300; color: var(--warm); line-height: 1.65; margin-bottom: 32px; }

/* AWARDS */
.awards { background: var(--teal-d); padding: 18px 60px; text-align: center; }
.awards span { font-size: 11px; font-weight: 300; letter-spacing: .18em; text-transform: uppercase; color: rgba(247,243,235,.6); line-height: 2; }
.awards strong { color: rgba(247,243,235,.92); font-weight: 400; }

/* POOL IMAGES */
.pool-imgs { display: grid; grid-template-rows: 1fr 1fr; }
.pool-img-top, .pool-img-bot { overflow: hidden; position: relative; }
.pool-img-top img, .pool-img-bot img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .9s ease; }
.pool-img-top:hover img, .pool-img-bot:hover img { transform: scale(1.04); }

/* FOTO60 BAND */
.foto60-band { background: var(--teal-d); padding: 60px 0; display: flex; justify-content: center; align-items: center; }
.foto60-img { width: min(480px, 90vw); height: min(480px, 90vw); object-fit: cover; border-radius: 4px; display: block; }


/* ID-BAND INNER LAYOUT */
.id-band-inner { display: grid; grid-template-columns: 1fr auto; gap: 48px; align-items: center; max-width: 900px; width: 100%; margin-top: 32px; }
.id-band-txt { text-align: left; }
.id-band-img img { width: 280px; height: 280px; object-fit: cover; border-radius: 4px; display: block; }
@media (max-width: 700px) {
  .id-band-inner { grid-template-columns: 1fr; }
  .id-band-img { display: flex; justify-content: center; }
  .id-band-img img { width: min(260px, 80vw); height: min(260px, 80vw); }
}

.hero-mosaic { position: absolute; inset: 0; display: flex; background: var(--parchment); }
.hero-panel { position: relative; height: 100%; flex: 0 0 calc(20% + 18px); margin-left: -18px; overflow: hidden; clip-path: polygon(10% 0,100% 0,90% 100%,0 100%); }
.hero-panel:first-child { margin-left: 0; clip-path: polygon(0 0,100% 0,90% 100%,0 100%); }
.hero-panel:last-child { clip-path: polygon(10% 0,100% 0,100% 100%,0 100%); }
.hero-panel video, .hero-panel img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hero-panel:not(:last-child)::after { content: ''; position: absolute; z-index: 2; top: -8%; right: 4.8%; width: 3px; height: 116%; background: rgba(247,243,235,.9); transform: rotate(5.7deg); transform-origin: center; pointer-events: none; }
.hero-panel video { filter:saturate(.92) brightness(.96); }
.hero-panel.water img { animation: waterBreath 8s ease-in-out infinite alternate; transform-origin: center; filter: saturate(.82) brightness(.82); }
@keyframes waterBreath { from { transform: scale(1.03) translate3d(-.5%,0,0); } to { transform: scale(1.12) translate3d(1.5%,-1%,0); } }

@media(max-width:768px) {
 .hero-panel { display:none; }
 .hero-panel:first-child { display:none; }
 .hero-panel.hero-mobile { display:block; flex:0 0 100%; margin:0; clip-path:none; }
 .hero-panel::after { display:none; }
}
@media(prefers-reduced-motion:reduce) { .hero-panel.water img { animation:none; } }

.terr-inner { grid-template-columns: minmax(0,2fr) minmax(0,1fr); }
.terr-txt { padding-right:56px; }
.territory-mosaic { align-self:center; display:grid; grid-template-columns:1fr 1fr; gap:22px; padding:65px 32px 65px 0; overflow:visible; height:auto; }
.territory-mosaic figure { margin:0; align-self:start; position:relative; }
.territory-mosaic figure:nth-child(2n) { margin-top:38px; }
.territory-mosaic figure:nth-child(3) { margin-left:16px; }
.territory-mosaic figure:nth-child(5) { margin-right:14px; }
.territory-mosaic img { position:static; width:100%; height:auto; display:block; object-fit:contain; filter:none; transition:transform .3s ease; }
@media(hover:hover) { .territory-mosaic figure:hover { z-index:2; } .territory-mosaic figure:hover img { transform:scale(1.06); filter:none; } }
@media(max-width:900px) { .terr-inner { grid-template-columns:1fr; } .territory-mosaic { order:2; width:min(480px,100%); margin:0 auto; padding:0 28px 56px; } }
@media(prefers-reduced-motion:reduce) { .territory-mosaic img { transition:none; } }
.intro-img { display:flex; align-items:center; padding:48px 0 48px 40px; overflow:visible; }
.intro-img img { position:static; width:100%; height:auto; object-fit:contain; }
.pool-imgs { display:flex; flex-direction:column; justify-content:center; gap:32px; padding:48px 48px 48px 0; height:auto; }
.pool-img-top,.pool-img-bot { overflow:visible; }
.pool-img-top { width:62%; margin-left:auto; }
.pool-img-bot { width:100%; }
.pool-img-top img,.pool-img-bot img { position:static; width:100%; height:auto; object-fit:contain; }
.pool-img-top:hover img,.pool-img-bot:hover img { transform:none; }
.territory-mosaic { display:grid; grid-template-columns:1fr 1fr; gap:24px; padding:56px 32px 56px 0; }
.territory-mosaic figure { width:100%; margin:0 !important; }
.territory-mosaic figure:first-child { grid-column:1 / -1; width:88%; }
.territory-mosaic figure:nth-child(3) { margin-top:28px !important; }
@media(max-width:900px) {
 .intro-img { padding:32px 28px; height:auto; }
 .pool-imgs { padding:0 28px 48px; height:auto; }
 .territory-mosaic { padding:0 28px 48px; }
}
/* Approved ordered composition: logo over copy; aligned photographs. */
.id-band { padding:32px 56px 36px; }
.id-logo { height:100px; }
.id-claim { margin-top:12px; }
.id-band-inner { display:block; max-width:960px; margin-top:20px; }
.id-band-txt { text-align:center; }
.id-rule { display:none; }
.id-quote { max-width:none; font-size:24px; line-height:1.6; }
.pool-imgs { padding:48px 56px 48px 0; gap:28px; }
.pool-img-top,.pool-img-bot { width:100%; margin:0; }
.terr-inner { display:flex; flex-direction:column; max-width:1200px; margin:0 auto; padding:64px 56px; min-height:0; gap:48px; }
.territory-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; align-items:start; }
.territory-row figure { margin:0; }
.territory-row img { display:block; width:100%; height:auto; object-fit:contain; }
.terr-txt { padding:0; text-align:center; max-width:960px; width:100%; margin:0 auto; order:0; }
.terr-txt .body-t { margin-bottom:0; }
.terr-rows { display:grid; grid-template-columns:1fr 1fr; column-gap:36px; text-align:left; margin-top:28px; }
.terr-row { margin:0; }
@media(max-width:900px) { .pool-imgs { padding:0 28px 48px; } }
@media(max-width:600px) {
 .id-band { padding:28px; } .id-quote { font-size:21px; }
 .terr-inner { padding:40px 24px; gap:32px; }
 .territory-row { gap:12px; }
 .terr-rows { grid-template-columns:1fr; }
}
/* A single compact band: private pool / narrative / private garden. */
.pool-triptych { grid-template-columns:minmax(0,1fr) minmax(0,1.7fr) minmax(0,1fr); min-height:0; background:var(--teal-d); align-items:stretch; scroll-margin-top:80px; }
.pool-triptych .pool-txt { padding:64px 36px; text-align:center; overflow:visible; }
.pool-triptych .pool-txt::before { display:none; }
.pool-triptych .h2 { font-size:clamp(38px,3.4vw,58px); }
.pool-triptych .body-t { font-size:15px; line-height:1.85; }
.pool-edge { position:relative; min-width:0; overflow:hidden; }
.pool-edge img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.pool-edge-sea { clip-path:polygon(0 0,100% 0,86% 100%,0 100%); }
.pool-edge-sea img { object-position:50% 55%; }
.pool-edge-country { clip-path:polygon(14% 0,100% 0,100% 100%,0 100%); }
.pool-edge-country img { object-position:50% 100%; }
@media(max-width:900px) {
 .pool-triptych { grid-template-columns:1fr 1fr; }
 .pool-triptych .pool-txt { grid-column:1 / -1; grid-row:1; padding:40px 32px; max-width:680px; margin:0 auto; }
 .pool-edge { height:260px; }
 .pool-edge-sea { grid-column:1; grid-row:2; clip-path:polygon(0 0,100% 0,92% 100%,0 100%); }
 .pool-edge-country { grid-column:2; grid-row:2; clip-path:polygon(8% 0,100% 0,100% 100%,0 100%); }
 .pool-triptych .h2 { font-size:40px; }
}

/* Editorial refinement: consistent rhythm, complete frames, fewer repetitions. */
.hero { height:100svh; min-height:600px; max-height:1050px; }
.hero-over { background:linear-gradient(180deg,rgba(20,16,9,.4),rgba(20,16,9,.04) 38%,rgba(20,16,9,.67)); }
.nav-links a,.lb { font-size:10px; }
.intro { max-width:1440px; margin:0 auto; padding:76px 60px; gap:64px; min-height:0; align-items:start; }
.intro-img { padding:0; height:auto; align-items:flex-start; }
.intro-text { padding:0; }
.intro-text .body-t:last-child { margin-bottom:0; }
.place-intro { margin-bottom:24px; font-size:22px; line-height:1.45; }
.gallery-wrap { --gallery-height:clamp(280px,34vw,440px); padding-top:72px; }
.gallery-hd { padding-bottom:28px; }
.gallery-hd .h2 { margin-bottom:0; }
.c-band { padding:24px 0; background:var(--sand); }
.c-track { gap:20px; padding-left:60px; }
.c-nav { padding-top:20px; padding-bottom:64px; }
.num { padding:36px 16px; }
.nv { font-size:46px; }
.exp,.practical { padding-top:76px; padding-bottom:76px; }
.exp-intro { margin-bottom:40px; }
.ei { padding:36px 32px; }
.ei-n { margin-bottom:14px; }
.ei:hover .ei-d { color:rgba(247,243,235,.84); }
.terr-inner { max-width:1240px; padding:64px 60px; gap:44px; }
.territory-row { width:100%; max-width:1120px; margin:0 auto; gap:28px; grid-template-columns:repeat(4,minmax(0,1fr)); }
/* Owner-approved portrait framing; the source and enlarged view stay uncropped. */
.territory-row .territory-goat img { aspect-ratio:2 / 3; object-fit:cover; object-position:76% center; }
.terr-txt { max-width:900px; display:grid; grid-template-columns:1.1fr 1fr; align-items:center; gap:48px; text-align:left; }
.terr-copy .h2 { font-size:clamp(34px,3.4vw,48px); }
.terr-rows { grid-template-columns:1fr; margin:0; }
.terr-row { padding:12px 0; }
.terr-copy .body-t { font-size:14px; line-height:1.85; }
.pool-triptych .pool-txt { padding-top:52px; padding-bottom:52px; }
.pool-triptych .body-t:last-child { margin-bottom:0; }
.book { padding-top:88px; padding-bottom:88px; }
.cin { margin-top:14px; font-size:11px !important; letter-spacing:.04em; }
@media(max-width:960px) {
 .intro { padding:52px 28px; gap:36px; }
 .intro-img { max-width:680px; width:100%; margin:0 auto; }
 .intro-text { max-width:680px; margin:0 auto; }
 .c-track { padding-left:28px; }
 .terr-inner { padding:52px 28px; }
 .terr-txt { gap:32px; }
 .exp-grid { grid-template-columns:repeat(2,1fr); }
 .prac-grid { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:600px) {
 .hero { min-height:660px; }
 .hero-sub { font-size:9px; letter-spacing:.13em; }
 .hero-cta { align-items:flex-start; }
 .hero-scroll { display:none; }
 .gallery-wrap { --gallery-height:min(360px,54vw); padding-top:48px; }
 .c-track { gap:12px; }
 .c-nav { padding-bottom:48px; }
 .terr-inner { padding:44px 24px; gap:32px; }
 .territory-row { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
 .terr-txt { grid-template-columns:1fr; gap:28px; }
 .exp,.practical,.reviews { padding-top:56px; padding-bottom:56px; }
 .exp-grid,.prac-grid { grid-template-columns:1fr; }
 .pool-triptych .pool-txt { padding:40px 28px; }
 .num { padding:28px 12px; }
}

/* 15 Sep 2026 — the opening photograph reaches the edge of the screen. */
@media (min-width:961px) {
 .intro { max-width:none; padding:0; gap:0; grid-template-columns:1fr 1fr; align-items:stretch; min-height:88vh; }
 .intro-img { padding:0; margin:0; display:block; position:relative; overflow:hidden; }
 .intro-img img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
 .intro-text { padding:96px 88px 96px 80px; max-width:none; display:flex; flex-direction:column; justify-content:center; }
}
@media (max-width:960px) {
 .intro { padding:0 0 52px; gap:36px; }
 .intro-img { padding:0; max-width:none; height:auto; }
 .intro-img img { width:100%; height:auto; }
 .intro-text { padding:0 28px; }
}

/* 15 Sep 2026 — a photographic pause: the book by the pool, with a quotation. */
.pause { position:relative; height:100vh; min-height:600px; max-height:960px; overflow:hidden; background:var(--warm); }
.pause-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 52%; }
.pause::after { content:''; position:absolute; inset:0; pointer-events:none;
 background:linear-gradient(90deg, rgba(20,16,9,.66) 0%, rgba(20,16,9,.44) 34%, rgba(20,16,9,.08) 60%, rgba(20,16,9,0) 72%); }
.pause-quote { position:absolute; z-index:1; left:clamp(28px,7vw,120px); top:50%; transform:translateY(-50%); width:min(500px,40vw); margin:0; }
.pause-quote blockquote { margin:0; font-family:var(--serif); font-style:italic; font-weight:300; font-size:clamp(28px,2.6vw,40px); line-height:1.28; color:var(--parchment); text-wrap:balance; }
.pause-rule { display:block; width:44px; height:1px; background:rgba(247,243,235,.45); margin:30px 0 22px; }
.pause-tr { margin:0 0 20px; font-size:15px; font-weight:300; line-height:1.75; color:rgba(247,243,235,.86); text-wrap:pretty; }
.pause-src { font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--stone); line-height:1.8; }
.pause-src em { font-family:var(--serif); font-size:13px; letter-spacing:.04em; text-transform:none; }
@media (max-width:960px) {
 .pause { height:100vh; height:100svh; min-height:560px; max-height:none; }
 .pause-img { object-position:55% 40%; }
 .pause::after { background:linear-gradient(0deg, rgba(20,16,9,.82) 0%, rgba(20,16,9,.55) 34%, rgba(20,16,9,.1) 58%, rgba(20,16,9,0) 70%); }
 .pause-quote { left:28px; right:28px; width:auto; top:auto; bottom:44px; transform:none; }
 .pause-quote blockquote { font-size:25px; }
 .pause-rule { margin:22px 0 16px; }
 .pause-tr { font-size:14px; }
}

/* 19 Sep 2026 — territory guides: links from the home page. */
.terr-links { display:flex; flex-direction:column; align-items:flex-start; gap:4px; margin-top:22px; }
.terr-links a { display:inline-flex; align-items:center; min-height:36px; font-size:13px; letter-spacing:.04em; color:var(--stone); text-decoration:underline; text-underline-offset:5px; }
.terr-links a::after { content:'→'; margin-left:10px; text-decoration:none; }
.terr-links a:hover { color:var(--parchment); }

/* 19 Sep 2026 — territory guide pages. */
.gp-hero { position:relative; min-height:76vh; display:flex; align-items:flex-end; overflow:hidden; background:var(--warm); }
.gp-hero-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.gp-hero::after { content:''; position:absolute; inset:0; pointer-events:none;
 background:linear-gradient(0deg, rgba(20,16,9,.8) 0%, rgba(20,16,9,.5) 38%, rgba(20,16,9,.16) 66%, rgba(20,16,9,.42) 100%); }
.gp-hero-txt { position:relative; z-index:1; width:100%; max-width:1240px; margin:0 auto; padding:150px 60px 76px; color:var(--parchment); }
.gp-crumb { font-size:10px; letter-spacing:.24em; text-transform:uppercase; color:rgba(247,243,235,.78); margin-bottom:24px; }
.gp-crumb a { color:inherit; text-decoration:underline; text-underline-offset:4px; }
.gp-title { font-family:var(--serif); font-weight:300; font-size:clamp(42px,5.4vw,78px); line-height:1.04; color:var(--parchment); margin-bottom:26px; max-width:min(680px,48vw); text-wrap:balance; }
.gp-title em { font-style:italic; color:var(--stone); }
.gp-lead { max-width:min(600px,44vw); font-size:16px; font-weight:300; line-height:1.85; color:rgba(247,243,235,.9); text-wrap:pretty; }
.gp-body { max-width:800px; margin:0 auto; padding:96px 28px 112px; }
.gp-sec { padding:44px 0; border-top:1px solid rgba(194,170,141,.3); }
.gp-sec:first-child { border-top:0; padding-top:0; }
.gp-dist { font-size:9.5px; font-weight:400; letter-spacing:.24em; text-transform:uppercase; color:var(--teal); margin-bottom:14px; }
.gp-h { font-family:var(--serif); font-weight:300; font-size:clamp(30px,3.2vw,40px); line-height:1.12; color:var(--warm); margin-bottom:16px; }
.gp-sec .body-t { margin-bottom:0; }
.gp-list { list-style:none; margin:20px 0 0; padding:0; }
.gp-list li { padding:15px 0; border-top:1px solid rgba(194,170,141,.22); font-size:14.5px; line-height:1.8; color:var(--muted); }
.gp-list strong { font-weight:400; color:var(--warm); }
.gp-note { margin-top:20px; padding:30px 34px; background:var(--sand); }
.gp-note strong { display:block; font-family:var(--serif); font-size:24px; font-weight:300; color:var(--warm); margin-bottom:10px; }
.gp-note p { font-size:14px; line-height:1.8; color:var(--muted); }
.gp-cta { margin-top:64px; padding:48px 0 0; border-top:1px solid rgba(194,170,141,.3); }
.gp-cta-t { font-family:var(--serif); font-style:italic; font-weight:300; font-size:clamp(24px,2.4vw,32px); line-height:1.3; color:var(--warm); margin-bottom:26px; }
.gp-cta-a { display:flex; flex-wrap:wrap; align-items:center; gap:18px 34px; }
.gp-link { display:inline-flex; align-items:center; min-height:44px; font-size:13px; letter-spacing:.04em; color:var(--earth); text-decoration:underline; text-underline-offset:5px; }
.gp-link:hover { color:var(--teal); }
.gp-more { margin-top:56px; padding-top:36px; border-top:1px solid rgba(194,170,141,.3); display:flex; flex-wrap:wrap; align-items:center; gap:2px 36px; }
.gp-more .gp-dist { flex-basis:100%; margin-bottom:6px; }
.gp-more .gp-link::after { content:'→'; margin-left:10px; }
@media (min-width:601px) {
 .gp-hero::after { background:linear-gradient(90deg, rgba(20,16,9,.5) 0%, rgba(20,16,9,.22) 42%, rgba(20,16,9,0) 62%), linear-gradient(0deg, rgba(20,16,9,.8) 0%, rgba(20,16,9,.5) 38%, rgba(20,16,9,.16) 66%, rgba(20,16,9,.42) 100%); }
}
@media (max-width:600px) {
 .gp-title, .gp-lead { max-width:none; }
 .gp-primitivo .gp-hero-img { object-position:90% 50% !important; }
 .gp-hero { min-height:80vh; min-height:80svh; }
 .gp-hero-txt { padding:120px 24px 44px; }
 .gp-lead { font-size:15px; }
 .gp-body { padding:64px 24px 88px; }
 .gp-sec { padding:36px 0; }
 .gp-note { padding:24px 22px; }
}
.gp-sec .body-t a { color:var(--earth); text-decoration:underline; text-underline-offset:4px; }
.gp-sec .body-t a:hover { color:var(--teal); }
.exp-more { margin-top:18px; }
.exp-more .gp-link::after { content:'→'; margin-left:10px; }

/* 27 Sep 2026 — winter promotion, in the practical area beside booking. */
.promo { margin-bottom:64px; background:var(--teal-d); color:var(--parchment); padding:40px 44px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:26px 40px; }
.promo-txt { max-width:620px; }
.promo-t { font-family:var(--serif); font-style:italic; font-weight:300; font-size:clamp(24px,2.4vw,32px); line-height:1.2; margin-bottom:14px; }
.promo-b { font-size:15px; font-weight:300; line-height:1.8; color:rgba(247,243,235,.92); margin-bottom:10px; text-wrap:pretty; }
.promo-b strong { font-weight:400; color:#fff; }
.promo-fine { font-size:12px; font-weight:300; line-height:1.7; color:rgba(247,243,235,.72); }
.promo-cta { flex:none; display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:16px 40px; background:var(--parchment); color:var(--teal-d); font-size:9px; font-weight:400; letter-spacing:.22em; text-transform:uppercase; transition:background .3s; }
.promo-cta:hover { background:#fff; }
@media (max-width:600px) {
 .promo { margin-top:40px; padding:30px 24px; }
 .promo-cta { width:100%; }
}

/* 27 Sep 2026 — winter: line under the opening title, promotion box on a photograph, film bands. */
.hero-promo { margin-top:18px; }
.hero-promo a { display:inline-flex; align-items:center; min-height:36px; font-size:10.5px; font-weight:300; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.88); border-bottom:1px solid rgba(255,255,255,.5); padding-bottom:4px; transition:color .3s, border-color .3s; }
.hero-promo a:hover { color:#fff; border-color:#fff; }
.promo { position:relative; overflow:hidden; }
.promo-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.promo::after { content:''; position:absolute; inset:0; pointer-events:none;
 background:linear-gradient(90deg, rgba(20,16,9,.88) 0%, rgba(20,16,9,.72) 45%, rgba(20,16,9,.45) 75%, rgba(20,16,9,.3) 100%); }
.promo-txt, .promo-cta, .promo-more { position:relative; z-index:1; }
.promo-more { display:inline-flex; align-items:center; min-height:44px; margin-right:26px; font-size:13px; color:rgba(247,243,235,.86); text-decoration:underline; text-underline-offset:5px; }
.promo-more:hover { color:#fff; }
.promo-more::after { content:'→'; margin-left:10px; }
.gp-hero video.gp-hero-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.gp-film { position:relative; width:min(100%,1040px); margin:64px auto; }
.gp-film-tall { max-width:520px; }
.gp-film-tall video { aspect-ratio:9/16; }
.gp-film video { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; background:var(--warm); }
.gp-cap { margin:12px 0 0; font-size:12px; font-weight:300; letter-spacing:.02em; color:var(--muted); }
.gp-shot { margin:34px 0 0; }
.gp-shot img { display:block; width:100%; height:auto; }
@media (max-width:600px) {
 .hero-promo a { font-size:10px; letter-spacing:.12em; }
 .promo::after { background:linear-gradient(0deg, rgba(20,16,9,.9) 0%, rgba(20,16,9,.78) 55%, rgba(20,16,9,.6) 100%); }
 .promo-more { margin-right:0; }
 .gp-film { width:100%; margin:44px 0; }
 .gp-film-tall { max-width:none; }
 .gp-cap { padding:0 24px; }
}

/* 27 Sep 2026 — winter page: photographs and vertical films beside the text, not full width. */
.gp-split { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.62fr); gap:56px; align-items:center; width:min(1040px, calc(100vw - 56px)); margin-left:50%; transform:translateX(-50%); }
.gp-split-left { grid-template-columns:minmax(0,.62fr) minmax(0,1fr); }
.gp-split .body-t { margin-bottom:0; }
.gp-side { margin:0; }
.gp-side img { display:block; width:100%; height:auto; aspect-ratio:3/4; object-fit:cover; }
.gp-side video { display:block; width:100%; height:auto; aspect-ratio:9/16; max-height:600px; object-fit:cover; background:var(--warm); }
@media (max-width:760px) {
 .gp-split, .gp-split-left { grid-template-columns:1fr; gap:26px; width:auto; margin-left:0; transform:none; }
 .gp-split-left .gp-side { order:2; }
 .gp-side { width:78%; justify-self:center; }
}

/* 27 Sep 2026 — winter page: strip of vertical films, questions. */
.gp-strip { width:min(1040px, calc(100vw - 56px)); margin:72px 0 72px 50%; transform:translateX(-50%); }
.gp-strip-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.gp-strip-item video { display:block; width:100%; height:auto; aspect-ratio:9/16; object-fit:cover; background:var(--warm); }
.gp-faq { margin-top:64px; padding-top:48px; border-top:1px solid rgba(194,170,141,.3); }
.gp-q { border-bottom:1px solid rgba(194,170,141,.28); }
.gp-q summary { cursor:pointer; list-style:none; padding:20px 30px 20px 0; position:relative; font-family:var(--serif); font-size:21px; font-weight:300; color:var(--warm); }
.gp-q summary::-webkit-details-marker { display:none; }
.gp-q summary::after { content:'+'; position:absolute; right:4px; top:18px; font-family:var(--sans); font-size:20px; color:var(--teal); }
.gp-q[open] summary::after { content:'−'; }
.gp-q p { padding:0 0 22px; font-size:14.5px; line-height:1.8; color:var(--muted); }
@media (max-width:760px) {
 .gp-strip { width:auto; margin:48px -24px; transform:none; }
 .gp-strip-row { display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; padding:0 24px; }
 .gp-strip-item { flex:0 0 62%; scroll-snap-align:center; }
 .gp-strip .gp-cap { padding:0 24px; }
 .gp-q summary { font-size:19px; }
}
.gp-wa { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:14px 34px; border:1px solid var(--teal); color:var(--teal); font-size:9px; font-weight:400; letter-spacing:.22em; text-transform:uppercase; transition:background .3s, color .3s; }
.gp-wa:hover { background:var(--teal); color:#fff; }

/* 27 Sep 2026 — seasons band: winter is green, summer is golden. */
.seasons { background:var(--parchment); padding:88px 60px; }
.seasons-t { max-width:1040px; margin:0 auto 34px; font-family:var(--serif); font-style:italic; font-weight:300; font-size:clamp(26px,2.6vw,36px); color:var(--warm); text-align:center; }
.seasons-row { max-width:1040px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; }
.season { display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1fr); align-items:stretch; }
.season-gold { grid-template-columns:minmax(0,1fr) minmax(0,.78fr); }
.season-txt { padding:48px 40px; align-self:center; }
.season-film { position:relative; min-height:440px; overflow:hidden; clip-path:polygon(14% 0,100% 0,86% 100%,0 100%); }
.season-film video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; background:rgba(20,16,9,.25); }
.season-green { background:var(--teal-d); color:var(--parchment); }
.season-gold { background:#caa15b; color:#231e15; }
.season-m { font-size:9.5px; font-weight:400; letter-spacing:.24em; text-transform:uppercase; margin-bottom:16px; opacity:.85; }
.season-h { font-family:var(--serif); font-weight:300; font-size:clamp(30px,3vw,42px); line-height:1.1; margin-bottom:18px; }
.season-h em { font-style:italic; }
.season-b { font-size:15px; font-weight:300; line-height:1.85; }
.season-green .season-b { color:rgba(247,243,235,.9); }
.seasons-guide { padding:0; margin:64px 0; background:none; width:min(1040px, calc(100vw - 56px)); margin-left:50%; transform:translateX(-50%); }
@media (max-width:760px) {
 .seasons { padding:56px 24px; }
 .seasons-row { grid-template-columns:1fr; }
 .season, .season-gold { grid-template-columns:1fr; }
 .season-gold .season-film { order:-1; }
 .season-txt { padding:34px 28px 40px; }
 .season-film { min-height:0; aspect-ratio:4/3; clip-path:polygon(0 0,100% 0,100% 88%,0 100%); }
 .seasons-guide { width:auto; margin:48px 0; transform:none; }
}

/* 27 Sep 2026 — floating WhatsApp button, after the opening; hidden while the consent banner is open. */
.wa-float { position:fixed; right:22px; bottom:22px; z-index:40; display:inline-flex; align-items:center; gap:10px; min-height:48px; padding:12px 20px 12px 16px; border-radius:999px; background:var(--teal-d); color:#fff; font-size:12px; font-weight:400; letter-spacing:.06em; box-shadow:0 6px 22px rgba(20,16,9,.28); transition:opacity .35s, transform .35s, background .3s; }
.wa-float:hover { background:var(--teal); }
.wa-ico { width:22px; height:22px; flex:none; }
.js .wa-float { opacity:0; transform:translateY(12px); pointer-events:none; }
.js .wa-float.on { opacity:1; transform:none; pointer-events:auto; }
.consent-banner:not([hidden]) ~ .wa-float { display:none; }
@media (max-width:600px) {
 .wa-float { right:16px; bottom:16px; padding:13px; min-height:50px; min-width:50px; justify-content:center; }
 .wa-label { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
}
@media (prefers-reduced-motion:reduce) { .wa-float { transition:none; } }
.season-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:72% 50%; animation:goldenDrift 18s ease-in-out infinite alternate; }
@keyframes goldenDrift { from { transform:scale(1.02); } to { transform:scale(1.12) translateX(-2%); } }
@media (prefers-reduced-motion:reduce) { .season-photo img { animation:none; } }
/* Seasons band, 27 Sep 2026 (rev.): horizontal films in their own proportions, text below, slanted edges. */
.seasons-t { max-width:1240px; }
.seasons-row { max-width:1240px; gap:0; }
.season, .season-gold { display:flex; flex-direction:column; }
.season-film { min-height:0; aspect-ratio:16/9; clip-path:polygon(5% 0,100% 0,95% 100%,0 100%); }
.season-green .season-film { margin:28px 0 0 28px; }
.season-gold .season-film { margin:28px 28px 0 0; }
.season-txt { padding:34px 44px 48px; align-self:stretch; }
.seasons-guide { width:min(1240px, calc(100vw - 56px)); }
@media (max-width:760px) {
 .season-film, .season-green .season-film, .season-gold .season-film { margin:0; aspect-ratio:16/9; clip-path:polygon(0 0,100% 0,100% 90%,0 100%); }
 .season-txt { padding:28px 26px 36px; }
}

/* 27 Sep 2026 — winter page: discount block near the top. */
.gp-offer { position:relative; overflow:hidden; width:min(1240px, calc(100vw - 56px)); margin:72px 0 72px 50%; transform:translateX(-50%); background:var(--teal-d); color:var(--parchment); }
.gp-offer-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.gp-offer::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(20,16,9,.86) 0%, rgba(20,16,9,.7) 55%, rgba(20,16,9,.5) 100%); }
.gp-offer-in { position:relative; z-index:1; padding:60px 64px; }
.gp-offer-m { font-size:10px; letter-spacing:.24em; text-transform:uppercase; color:rgba(247,243,235,.82); margin-bottom:14px; }
.gp-offer-h { font-family:var(--serif); font-weight:300; font-size:clamp(34px,3.6vw,52px); line-height:1.08; margin-bottom:34px; }
.gp-offer-h em { font-style:italic; color:#e3c68c; }
.gp-offer-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); max-width:760px; border-top:1px solid rgba(247,243,235,.28); border-bottom:1px solid rgba(247,243,235,.28); margin-bottom:22px; }
.gp-offer-i { padding:22px 0 20px; display:flex; flex-direction:column; gap:6px; }
.gp-offer-i + .gp-offer-i { padding-left:28px; border-left:1px solid rgba(247,243,235,.28); }
.gp-offer-p { font-family:var(--serif); font-weight:300; font-size:clamp(44px,5vw,72px); line-height:1; color:#fff; }
.gp-offer-n { font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:rgba(247,243,235,.85); }
.gp-offer-fine { font-size:13px; line-height:1.7; color:rgba(247,243,235,.8); max-width:620px; margin-bottom:28px; }
.gp-offer-a { display:flex; flex-wrap:wrap; gap:14px 18px; align-items:center; }
.gp-wa-light { border-color:rgba(247,243,235,.7); color:var(--parchment); }
.gp-wa-light:hover { background:var(--parchment); color:var(--teal-d); }
@media (max-width:760px) {
 .gp-offer { width:auto; margin:48px -24px; transform:none; }
 .gp-offer::after { background:rgba(20,16,9,.78); }
 .gp-offer-in { padding:42px 24px; }
 .gp-offer-i + .gp-offer-i { padding-left:14px; }
 .gp-offer-a a { width:100%; }
}

/* 27 Sep 2026 (C-021) — winter higher on the home: promotion right after the seasons band; a short link stays in the practical area. */
.seasons .promo { max-width:1240px; margin:56px auto 0; }
.prac-promo { margin-top:48px; }
.prac-promo a { display:inline-flex; align-items:center; min-height:44px; font-size:10.5px; font-weight:400; letter-spacing:.16em; text-transform:uppercase; color:var(--teal-d); border-bottom:1px solid currentColor; }
.prac-promo a::after { content:'→'; margin-left:10px; letter-spacing:0; }
.prac-promo a:hover { color:var(--teal); }
@media (max-width:760px) {
 .seasons .promo { margin-top:40px; }
 .prac-promo { margin-top:36px; }
 .prac-promo a { font-size:10px; letter-spacing:.12em; }
}

/* 27 Sep 2026 — gallery: 18 photos and a full grid of all photos; each opens in the lightbox. */
.c-nav { flex-wrap:wrap; gap:16px 28px; }
.c-all { margin:0 auto 0 32px; display:inline-flex; align-items:center; gap:6px; min-height:44px; padding:0; background:none; border:0; border-bottom:1px solid currentColor; width:max-content; font:inherit; font-size:10.5px; font-weight:400; letter-spacing:.16em; text-transform:uppercase; color:var(--teal-d); cursor:pointer; }
.c-all:hover { color:var(--teal); }
.c-all-n { letter-spacing:.06em; }
.gr-ov { display:none; position:fixed; inset:0; z-index:999; background:var(--parchment); overflow-y:auto; overscroll-behavior:contain; }
.gr-ov.on { display:block; }
.gr-hd { position:sticky; top:0; z-index:1; display:flex; align-items:center; justify-content:space-between; padding:18px 60px; background:rgba(247,243,235,.96); border-bottom:1px solid rgba(137,105,72,.18); }
.gr-t { font-family:var(--serif); font-style:italic; font-weight:300; font-size:26px; color:var(--warm); }
.gr-x { width:48px; height:48px; border:1px solid rgba(137,105,72,.3); background:none; color:var(--earth); font-size:18px; cursor:pointer; }
.gr-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; max-width:1240px; margin:0 auto; padding:32px 60px 72px; }
.gr-item { display:block; padding:0; border:0; background:none; aspect-ratio:4/5; overflow:hidden; cursor:zoom-in; }
.gr-item img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; }
.gr-item:hover img { transform:scale(1.03); }
.gr-item:focus-visible { outline:2px solid var(--teal-d); outline-offset:3px; }
@media (max-width:760px) {
 .gr-hd { padding:12px 16px; }
 .gr-t { font-size:22px; }
 .gr-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:16px 16px 48px; }
 .c-all { font-size:10px; letter-spacing:.12em; }
}
@media (prefers-reduced-motion:reduce) { .gr-item img { transition:none; } }

/* 27 Sep 2026 (C-022) — reviews in a scrolling strip; booking terms near the booking information. */
.rev-strip { position:relative; }
.rev-track { display:flex; gap:20px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; padding-bottom:6px; scrollbar-width:none; }
.rev-track::-webkit-scrollbar { display:none; }
.rev-track:focus-visible { outline:2px solid var(--stone); outline-offset:6px; }
.rev-track .rv { flex:0 0 min(420px, 82vw); scroll-snap-align:start; display:flex; flex-direction:column; }
.rev-track blockquote.rv-text { margin:0 0 26px; flex:1; }
.rev-btns { display:flex; gap:12px; margin-top:22px; }
.rv-btn { color:var(--stone); border-color:rgba(194,170,141,.35); }
.rv-btn:hover { color:var(--parchment); }
.rv-star { color:var(--teal); text-decoration:none; }
.terms { margin-top:40px; max-width:780px; }
.terms-t { font-size:9.5px; font-weight:400; letter-spacing:.2em; text-transform:uppercase; color:var(--earth); margin-bottom:12px; }
.terms-l { list-style:none; margin:0; padding:0; }
.terms-l li { position:relative; padding-left:20px; font-size:14px; font-weight:300; line-height:1.75; color:var(--ink, #3a3226); }
.terms-l li::before { content:'✓'; position:absolute; left:0; color:var(--teal-d); font-size:12px; }
.terms-l-light { margin:0 0 26px; max-width:620px; }
.terms-l-light li { color:rgba(247,243,235,.85); font-size:13px; }
.terms-l-light li::before { color:#e3c68c; }
@media (max-width:760px) { .terms { margin-top:32px; } .rev-track .rv { padding:34px 26px; } }

/* 28 Sep 2026 (C-027) — the host, in his own words, just before booking direct. */
.host { background:var(--sand); padding:104px 60px; }
.host > * { max-width:720px; margin-left:auto; margin-right:auto; }
.host .eyebrow { display:block; }
.host .h2 { margin-bottom:30px; }
.host-p { font-family:var(--serif); font-size:clamp(19px,1.7vw,22px); font-weight:400; line-height:1.65; color:var(--warm); margin-bottom:22px; text-wrap:pretty; }
.host-quote { font-style:italic; color:var(--earth); }
.host-sig { font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--earth); margin-top:8px; }
@media (max-width:760px) { .host { padding:64px 28px; } }

/* 29 Sep 2026 (C-030) — summer question in the practical area; pool size in the numbers row. */
.prac-q { max-width:780px; margin-top:40px; border-top:1px solid rgba(137,105,72,.22); border-bottom-color:rgba(137,105,72,.22); }
.prac-q summary { color:var(--earth); }
.prac-q p { font-size:15px; font-weight:300; line-height:1.85; color:var(--muted); padding:0 0 22px; margin:0; max-width:680px; }
.prac-q + .terms { margin-top:28px; }
.nums .nv { white-space:nowrap; }
/* Phones: two regular columns, the pool size across the full width. */
@media (max-width:760px) {
 .nums { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .num { border-right:none; border-top:1px solid rgba(194,170,141,.18); }
 .num:nth-child(1), .num:nth-child(2) { border-top:none; }
 .num:nth-child(1), .num:nth-child(4) { border-right:1px solid rgba(194,170,141,.18); }
 .num:nth-child(3) { grid-column:1 / -1; }
}

/* 30 Sep 2026 — host section with Valerio’s portrait; the same photograph as a small postcard on the winter page. */
.host.host-photo { display:grid; grid-template-columns:minmax(0,380px) minmax(0,640px); gap:72px; justify-content:center; align-items:center; }
.host.host-photo > * { max-width:none; margin:0; }
.host-fig img { width:100%; height:auto; display:block; }
.host-cap { margin-top:12px; font-size:12px; letter-spacing:.06em; color:var(--earth); }
.gp-postcard { max-width:380px; margin:56px auto; }
.gp-postcard img { width:100%; height:auto; display:block; }
@media (max-width:900px) {
 .host.host-photo { grid-template-columns:1fr; gap:36px; }
 .host-fig, .gp-postcard { max-width:340px; }
 .gp-postcard { margin:40px auto; }
}

/* STORIES (storie-di-maruggio.html and translations): reading column, side boxes on wide screens, "Read +" boxes on phones. */
.gp-stories { min-height:min(76vh,720px); }
.sto-page .gp-title em { color:var(--stone); }
.sto { max-width:660px; margin:0 auto; padding:72px 24px 24px; }
.sto > p, .sto-hook > p { font-family:var(--serif); font-size:20px; line-height:1.72; color:var(--warm); margin:0 0 22px; text-wrap:pretty; }
.sto-h { font-family:var(--serif); font-weight:300; font-size:clamp(30px,3vw,40px); line-height:1.12; color:var(--warm); margin:60px 0 20px; }
.sto-fig { margin:40px 0 44px; }
.sto-fig img, .sto-fig video { display:block; width:100%; height:auto; background:var(--sand); }
.sto-fig video { aspect-ratio:16/9; object-fit:cover; }
.sto-fig .gp-cap { padding:0; }
.sto-portrait { max-width:440px; margin-left:auto; margin-right:auto; }
.sto-pair { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.sto-pair img { aspect-ratio:4/5; object-fit:cover; }
.sto-pair figcaption { grid-column:1/-1; }
.sto-hook { display:flex; flex-direction:column; }
.sto-side { order:2; margin:0 0 26px; display:flex; flex-direction:column; gap:12px; }
.sto-box { background:var(--sand); }
.sto-box summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:52px; padding:14px 20px; }
.sto-box summary::-webkit-details-marker { display:none; }
.sto-box-t { font-size:10.5px; font-weight:400; letter-spacing:.2em; text-transform:uppercase; color:var(--earth); line-height:1.5; }
.sto-box-r::after { content:attr(data-open); white-space:nowrap; font-size:12px; letter-spacing:.04em; color:var(--teal); text-decoration:underline; text-underline-offset:4px; }
.sto-box[open] .sto-box-r::after { content:attr(data-close); }
.sto-box-b { padding:0 20px 18px; }
.sto-box-b p, .sto-box-b li { font-size:14.5px; font-weight:300; line-height:1.75; color:var(--warm); }
.sto-box-b p + p { margin-top:10px; }
.sto-box-b ul { list-style:none; padding:0; margin:0; }
.sto-box-b li { padding:7px 0; border-top:1px solid rgba(137,105,72,.18); }
.sto-box-b li:first-child { border-top:0; padding-top:0; }
.sto-box-b strong { font-weight:500; }
.sto-end { max-width:1040px; margin:0 auto; padding:0 24px 96px; clear:both; }
.sto-credits { font-size:12px; font-weight:300; color:var(--muted); margin:36px 0 0; }
@media (max-width:760px) { .gp-stories { min-height:min(80svh,640px); } }
@media (min-width:1100px) {
 .sto { max-width:none; width:1040px; padding-left:0; padding-right:380px; box-sizing:border-box; }
 .sto-hook { display:block; }
 .sto-h { clear:right; }
 .sto-side { float:right; clear:right; width:340px; margin:6px -380px 24px 0; }
 .sto-box summary { cursor:default; pointer-events:none; min-height:0; padding:20px 22px 8px; }
 .sto-box-r { display:none; }
 .sto-box-b { padding:0 22px 20px; }
 .sto-box-b p, .sto-box-b li { font-size:14px; line-height:1.7; }
 .sto-end { padding:0; }
}
/* Home panel linking to the Stories page, after the experiences. */
.sto-teaser { background:var(--parchment); padding:0 60px 104px; }
.sto-teaser a.sto-t-in { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; max-width:1120px; margin:0 auto; color:inherit; border-top:1px solid rgba(194,170,141,.3); padding-top:72px; }
.sto-teaser img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
.sto-teaser .h2 { margin-bottom:20px; }
.sto-teaser .body-t { margin-bottom:10px; max-width:420px; }
.sto-teaser a.sto-t-in:hover .gp-link { color:var(--teal); }
@media (max-width:760px) { .sto-teaser { padding:0 24px 72px; } .sto-teaser a.sto-t-in { grid-template-columns:1fr; gap:26px; padding-top:52px; } }
/* Six menu items since the Stories page: tighter spacing between 961 and 1239 px so no label wraps. */
.nav-links a { white-space:nowrap; }
@media (min-width:961px) and (max-width:1239px) { .nav-links { gap:22px; } .nav-links a { letter-spacing:.14em; } }

/* AREA MENU (6 Oct 2026): "Dintorni" opens the territory pages on hover, focus or tap; the mobile menu lists them under a toggle. */
.nav-dd { position:relative; display:flex; align-items:center; gap:2px; }
.nav-dd-btn { background:none; border:0; padding:6px 4px; cursor:pointer; font-size:9px; line-height:1; color:rgba(255,255,255,.75); }
nav.s .nav-dd-btn { color:var(--muted); }
.nav-dd-menu { display:none; position:absolute; top:100%; left:-20px; margin-top:14px; min-width:230px; padding:12px 20px; list-style:none; background:var(--parchment); box-shadow:0 12px 32px rgba(35,30,21,.14); z-index:20; }
.nav-dd-menu::before { content:''; position:absolute; left:0; right:0; top:-16px; height:16px; }
.nav-dd:hover .nav-dd-menu, .nav-dd:focus-within .nav-dd-menu, .nav-dd.open .nav-dd-menu { display:block; }
#nav .nav-dd-menu a { display:block; padding:9px 0; color:var(--muted); white-space:nowrap; }
#nav .nav-dd-menu a:hover, #nav .nav-dd-menu a:focus-visible { color:var(--teal); }
.nav-dd-menu li + li { border-top:1px solid rgba(194,170,141,.25); }
.mmenu { overflow-y:auto; justify-content:safe center; padding:56px 0; }
.m-dd { text-align:center; }
.m-dd summary { list-style:none; cursor:pointer; font-family:var(--serif); font-size:30px; font-weight:300; color:var(--warm); }
.m-dd summary::-webkit-details-marker { display:none; }
.m-dd summary::after { content:'+'; margin-left:10px; font-family:var(--sans); font-size:18px; color:var(--teal); }
.m-dd[open] summary::after { content:'−'; }
.m-dd > div { display:flex; flex-direction:column; align-items:center; gap:4px; margin-top:12px; }
.mmenu .m-dd a { font-family:var(--sans); font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); padding:8px 0; }
/* Four photo cards to the territory pages, under "Maruggio and the Ionian coast". */
.terr-cards { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.terr-card { display:block; color:rgba(247,243,235,.9); }
.terr-card img { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; margin-bottom:12px; transition:opacity .3s; }
.terr-card span { font-family:var(--serif); font-size:20px; font-weight:300; }
.terr-card span::after { content:'→'; margin-left:10px; font-family:var(--sans); font-size:13px; color:var(--stone); }
.terr-card:hover img { opacity:.85; }
.terr-card:hover span { color:var(--stone); }
@media (max-width:760px) { .terr-cards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; } .terr-card span { font-size:17px; } }
/* From the wine tasting to the Primitivo page. */
.ei-more { display:inline-flex; align-items:center; min-height:40px; margin-top:10px; font-size:12px; letter-spacing:.04em; color:var(--earth); text-decoration:underline; text-underline-offset:5px; transition:color .4s; }
.ei-more::after { content:'→'; margin-left:8px; text-decoration:none; }
.ei:hover .ei-more { color:var(--stone); }
/* Footer with four columns since the area column. */
@media (min-width:961px) { .ft-grid { grid-template-columns:2fr 1fr 1fr 1fr; } }
.nav-links { align-items:center; }
.nav-dd { align-items:baseline; }
.nav-dd-btn { padding:0 4px; line-height:inherit; }
.nav-dd { display:block; }
.nav-dd-btn { position:absolute; left:100%; top:50%; transform:translateY(-50%); margin-left:1px; padding:6px 4px; }
/* The wine story at the end of the Primitivo pages (C-069). */
.gp-racconto { border-top:1px solid rgba(194,170,141,.3); }
.gp-racconto .sto { padding-top:64px; }
.sto-title { font-family:var(--serif); font-weight:300; font-size:clamp(34px,3.6vw,48px); line-height:1.1; color:var(--warm); margin:0 0 28px; }
.gp-body-end { padding-top:0; }
@media (min-width:1100px) { .sto-title { clear:right; } }
.sto .sto-more { clear:both; font-family:var(--sans); font-size:14px; line-height:1.8; color:var(--muted); border-top:1px solid rgba(194,170,141,.3); padding-top:22px; margin-top:40px; }
.sto .sto-more a { color:var(--earth); text-decoration:underline; text-underline-offset:4px; }
/* Primitivo pages (C-070): pointer to the wineries under the opening, story first, wineries after. */
.gp-jump { max-width:800px; margin:0 auto; padding:36px 28px 0; }
.gp-jump a { display:inline-flex; align-items:center; min-height:44px; font-size:13px; letter-spacing:.04em; color:var(--earth); text-decoration:underline; text-underline-offset:5px; }
.gp-jump a::after { content:'↓'; margin-left:10px; text-decoration:none; }
.gp-jump + .gp-racconto { border-top:0; }
.gp-jump + .gp-racconto .sto { padding-top:28px; }
#elenco { border-top:1px solid rgba(194,170,141,.3); }
.gp-body .sto-more { font-size:14px; line-height:1.8; color:var(--muted); border-top:1px solid rgba(194,170,141,.3); padding-top:22px; margin-top:40px; }
.gp-body .sto-more a { color:var(--earth); text-decoration:underline; text-underline-offset:4px; }
.gp-jump { max-width:660px; padding:36px 24px 0; }
@media (min-width:1100px) { .gp-jump { max-width:none; width:1040px; padding:36px 380px 0 0; box-sizing:border-box; } }
/* Footer badge: selected by Urlaubsarchitektur (C-070). */
.ft-ua { display:inline-flex; flex-direction:column; align-items:flex-start; gap:8px; margin-top:28px; color:#c2b5a5; }
.ft-ua span { font-size:8px; font-weight:300; letter-spacing:.28em; text-transform:uppercase; color:var(--stone); }
.ft-ua img { display:block; height:15px; width:auto; opacity:.9; transition:opacity .3s; }
.ft-ua:hover img { opacity:1; }
/* A single guest review inside a guide page (winter, C-073). */
.gp-review { margin:56px auto; padding:44px 40px; background:var(--warm); color:rgba(247,243,235,.92); text-align:center; }
.gp-review .rv-stars { color:var(--stone); letter-spacing:.2em; font-size:13px; margin-bottom:18px; }
.gp-review .rv-text { font-family:var(--serif); font-style:italic; font-weight:300; font-size:clamp(22px,2.2vw,28px); line-height:1.45; color:rgba(247,243,235,.94); margin:0 auto 18px; max-width:560px; }
.gp-review-by { font-size:10px; letter-spacing:.24em; text-transform:uppercase; color:var(--stone); }
@media (max-width:760px) { .gp-review { padding:36px 24px; margin:44px 0; } }
.sto p a, .sto-box-b a { color:var(--earth); text-decoration:underline; text-underline-offset:4px; }
.sto p a:hover, .sto-box-b a:hover { color:var(--teal); }
/* Footer badge: Sawday's, below Urlaubsarchitektur (C-076, Valerio 8/10). */
.ft-badges { display:flex; flex-direction:column; align-items:flex-start; gap:18px; margin-top:28px; }
.ft-badges .ft-ua { margin-top:0; }
.ft-sd { display:block; line-height:0; }
.ft-sd img { display:block; height:48px; width:auto; border-radius:2px; opacity:.9; transition:opacity .3s; }
.ft-sd:hover img { opacity:1; }
/* Beaches: a line pointing to the Stories chapter on the winds (C-081). */
.gp-wind { margin:-48px 0 0; padding:0 0 12px; }
.gp-wind + .gp-sec { border-top:0; padding-top:24px; }
.gp-wind { font-size:13px; line-height:2; }
.gp-wind a { display:inline; padding:12px 0; letter-spacing:.04em; color:var(--earth); text-decoration:underline; text-underline-offset:5px; }
.gp-wind a::after { content:'\00a0\00a0→'; display:inline-block; text-decoration:none; }
/* Chapters reached from other pages (#vento): keep the title clear of the fixed header. */
.sto-h[id] { scroll-margin-top:120px; }
