:root {
  --forest: #193027;
  --forest-deep: #0d1b16;
  --ink: #17261f;
  --cream: #f3efe5;
  --warm-white: #fffaf0;
  --amber: #d49a4c;
  --amber-light: #f1c374;
  --clay: #a55c43;
  --sage: #8eaa91;
  --line: rgba(243, 239, 229, .24);
  --muted: rgba(243, 239, 229, .72);
  --sans: "Manrope", system-ui, sans-serif;
  --serif: "Fraunces", Georgia, serif;
  --mono: "DM Mono", monospace;
  --journey-progress: 0;
  --cursor-x: 0;
  --cursor-y: 0;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--forest-deep); }
body { margin: 0; color: var(--cream); background: var(--forest-deep); font-family: var(--sans); font-size: 16px; line-height: 1.6; overflow-x: hidden; }
body.no-scroll { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
.skip-link { position: fixed; z-index: 80; top: -4rem; left: 1rem; padding: .7rem 1rem; color: var(--ink); background: var(--cream); border-radius: 0 0 .65rem .65rem; transition: top .2s ease; }
.skip-link:focus { top: 0; }

.journey-shell { position: relative; isolation: isolate; min-height: 100vh; overflow: clip; }
.journey-stage { position: fixed; z-index: -1; inset: 0; overflow: hidden; background: #2a4436; }
#journey-canvas, .journey-fallback { position: absolute; inset: 0; width: 100%; height: 100%; }
#journey-canvas { display: block; opacity: 1; transition: opacity .35s ease; }
.journey-fallback { display: block; background-image: var(--fallback-image); background-position: center; background-size: cover; filter: saturate(.78) contrast(1.05); transition: background-image .45s ease; }
.webgl-ready .journey-fallback { display: none; }
.no-webgl #journey-canvas { display: none; }
.no-webgl .journey-fallback { display: block; }
.stage-vignette { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse at 48% 42%, transparent 22%, rgba(5, 14, 11, .13) 65%, rgba(5, 14, 11, .76) 100%), linear-gradient(90deg, rgba(7, 19, 14, .35), transparent 32%, transparent 70%, rgba(7, 19, 14, .22)); }
.stage-grain { position: absolute; inset: -50%; pointer-events: none; opacity: .09; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.65'/%3E%3C/svg%3E"); mix-blend-mode: soft-light; animation: grain .22s steps(2) infinite; }
.stage-fog { position: absolute; pointer-events: none; width: 70vw; height: 35vh; border-radius: 50%; background: rgba(205, 216, 188, .11); filter: blur(34px); opacity: .7; transform: translate3d(calc(var(--cursor-x) * -18px), calc(var(--cursor-y) * -10px), 0); animation: fog-drift 17s ease-in-out infinite alternate; }
.stage-fog--one { top: 19%; left: -18%; }
.stage-fog--two { right: -19%; bottom: 7%; opacity: .45; animation-delay: -8s; transform: translate3d(calc(var(--cursor-x) * 14px), calc(var(--cursor-y) * 12px), 0); }
.stage-caption { position: absolute; right: 2.8rem; bottom: 2.35rem; display: flex; align-items: center; gap: .7rem; color: rgba(243,239,229,.66); font: 500 .63rem/1 var(--mono); letter-spacing: .16em; text-transform: uppercase; }
.stage-caption__line { display: inline-block; width: 2rem; height: 1px; background: var(--amber-light); }

.site-header { position: fixed; z-index: 30; top: 0; right: 0; left: 0; display: flex; align-items: center; justify-content: space-between; padding: 1.45rem clamp(1.4rem, 4vw, 4.8rem); pointer-events: none; transition: padding .3s ease, background .3s ease; }
.site-header:after { position: absolute; z-index: -1; inset: 0; content: ""; background: linear-gradient(180deg, rgba(10, 22, 16, .46), transparent); opacity: .6; pointer-events: none; }
.brand-lockup, .site-nav, .header-booking { pointer-events: auto; }
.brand-lockup { display: flex; align-items: center; gap: .75rem; }
.brand-lockup__mark { display: grid; width: 2.35rem; height: 2.35rem; place-items: center; color: var(--forest); background: var(--amber-light); border-radius: 50%; font: 600 .72rem var(--mono); letter-spacing: -.1em; }
.brand-lockup__words { display: flex; flex-direction: column; line-height: 1.05; }
.brand-lockup__words strong { font: 600 1.02rem var(--serif); letter-spacing: -.03em; }
.brand-lockup__words small { margin-top: .25rem; color: rgba(243,239,229,.62); font: .56rem var(--mono); letter-spacing: .07em; text-transform: uppercase; }
.site-nav__list { display: flex; align-items: center; gap: clamp(1.25rem, 2.8vw, 3rem); margin: 0; padding: 0; list-style: none; }
.site-nav__list a { position: relative; color: rgba(243,239,229,.75); font: .65rem var(--mono); letter-spacing: .12em; text-transform: uppercase; transition: color .25s ease; }
.site-nav__list a:after { position: absolute; right: 0; bottom: -.52rem; left: 0; height: 1px; content: ""; background: var(--amber-light); transform: scaleX(0); transform-origin: right; transition: transform .25s ease; }
.site-nav__list a:hover, .site-nav__list a:focus-visible { color: var(--cream); }
.site-nav__list a:hover:after, .site-nav__list a:focus-visible:after { transform: scaleX(1); transform-origin: left; }
.header-booking { display: flex; align-items: center; gap: .5rem; padding: .67rem 1rem; border: 1px solid rgba(243,239,229,.36); border-radius: 100px; color: var(--cream); font: .63rem var(--mono); letter-spacing: .1em; text-transform: uppercase; transition: background .25s ease, color .25s ease, border-color .25s ease; }
.header-booking:hover, .header-booking:focus-visible { color: var(--forest); background: var(--amber-light); border-color: var(--amber-light); }
.dot { width: .4rem; height: .4rem; border-radius: 50%; background: var(--amber-light); box-shadow: 0 0 0 .2rem rgba(241,195,116,.16); }

.journey-progress { position: fixed; z-index: 25; top: 50%; left: clamp(1.4rem, 4vw, 4.8rem); display: flex; flex-direction: column; align-items: center; gap: .75rem; opacity: 1; transform: translateY(-50%); transition: opacity .3s ease, visibility .3s ease; }
.journey-progress.is-over-footer { opacity: 0; visibility: hidden; pointer-events: none; }
.journey-progress__count { color: rgba(243,239,229,.58); font: .6rem var(--mono); letter-spacing: .08em; writing-mode: vertical-rl; }
.journey-progress__count b { color: var(--amber-light); font-weight: 500; }
.journey-progress__rail { position: relative; display: flex; flex-direction: column; gap: .35rem; }
.journey-progress__rail:before { position: absolute; top: .6rem; bottom: .6rem; left: .43rem; width: 1px; content: ""; background: rgba(243,239,229,.28); }
.progress-dot { position: relative; display: block; width: 1.45rem; height: 1.45rem; padding: 0; border: 0; border-radius: 50%; color: transparent; background: transparent; cursor: pointer; transition: color .25s ease, background .25s ease, transform .25s ease; }
.progress-dot:before { position: absolute; top: .48rem; left: .48rem; width: .5rem; height: .5rem; content: ""; border: 1px solid rgba(243,239,229,.7); border-radius: 50%; background: var(--forest); transition: all .25s ease; }
.progress-dot span { position: absolute; left: 1.8rem; color: rgba(243,239,229,.65); font: .58rem var(--mono); letter-spacing: .06em; opacity: 0; transition: opacity .25s ease; }
.progress-dot:hover span, .progress-dot:focus-visible span, .progress-dot.is-active span { opacity: 1; }
.progress-dot.is-active:before { width: .65rem; height: .65rem; top: .4rem; left: .4rem; border-color: var(--amber-light); background: var(--amber-light); box-shadow: 0 0 0 .2rem rgba(241,195,116,.17); }
.progress-dot:focus-visible { outline: 1px solid var(--amber-light); outline-offset: .2rem; }
.journey-progress__hint { margin-top: .9rem; color: rgba(243,239,229,.53); font: .54rem var(--mono); letter-spacing: .13em; text-transform: uppercase; writing-mode: vertical-rl; }

.journey-content { position: relative; z-index: 2; }
.journey-section { position: relative; display: flex; min-height: 100svh; padding: 7.5rem clamp(5rem, 12vw, 12rem) 5.5rem; align-items: center; scroll-margin-top: 2rem; }
.journey-section--hero { min-height: 108svh; }
.section-inner { position: relative; width: min(100%, 1180px); margin: 0 auto; }
.section-inner--hero { display: flex; align-items: center; justify-content: space-between; min-height: calc(100svh - 12rem); }
.hero-copy { max-width: 45rem; padding-left: clamp(0rem, 4vw, 4.5rem); }
.eyebrow { display: flex; align-items: center; gap: .7rem; margin: 0 0 1.3rem; color: var(--amber); font: 500 .62rem var(--mono); letter-spacing: .2em; text-transform: uppercase; }
.eyebrow--light { color: var(--amber-light); }
.eyebrow__dash { display: inline-block; width: 2.3rem; height: 1px; background: currentColor; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 600; letter-spacing: -.05em; }
h1 { margin-bottom: 1.9rem; font-size: clamp(4.8rem, 9.3vw, 9.6rem); line-height: .84; }
h2 { margin-bottom: 1.5rem; font-size: clamp(3.25rem, 6.1vw, 6.8rem); line-height: .91; }
h1 em, h2 em, h3 em { color: var(--amber-light); font-style: italic; font-weight: 500; }
.hero-copy__intro { max-width: 26rem; margin-bottom: 2rem; color: rgba(243,239,229,.82); font-size: .98rem; line-height: 1.75; }
.hero-copy__intro em { color: var(--amber-light); font-family: var(--serif); font-size: 1.12em; font-style: italic; font-weight: 600; }
.hero-copy__intro strong { color: var(--warm-white); font-weight: 700; }
.hero-actions { display: flex; align-items: center; gap: 1.3rem; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 1.1rem; min-height: 2.95rem; padding: .75rem 1.15rem .75rem 1.3rem; border: 1px solid transparent; border-radius: 100px; font: 500 .62rem var(--mono); letter-spacing: .11em; text-transform: uppercase; transition: transform .25s ease, background .25s ease, border-color .25s ease, color .25s ease; }
.button span { font-size: 1.05rem; line-height: 0; }
.button:hover, .button:focus-visible { transform: translateY(-3px); }
.button--light { color: var(--forest); background: var(--amber-light); }
.button--light:hover, .button--light:focus-visible { background: var(--cream); }
.button--outline-light { color: var(--cream); border-color: rgba(243,239,229,.4); background: transparent; }
.button--outline-light:hover, .button--outline-light:focus-visible { border-color: var(--amber-light); color: var(--forest); background: var(--amber-light); }
.button--forest { color: var(--cream); background: var(--forest); }
.button--forest:hover, .button--forest:focus-visible { color: var(--forest); background: var(--amber-light); }
.hero-actions__note { color: rgba(243,239,229,.62); font: .58rem/1.55 var(--mono); letter-spacing: .04em; }
.hero-stamp { position: absolute; right: 4%; bottom: 6%; display: flex; width: 8.6rem; height: 8.6rem; flex-direction: column; align-items: center; justify-content: center; border: 1px solid rgba(241,195,116,.6); border-radius: 50%; color: var(--amber-light); transform: rotate(12deg); }
.hero-stamp:before { position: absolute; inset: .38rem; border: 1px solid rgba(241,195,116,.33); border-radius: 50%; content: ""; }
.hero-stamp span { font: .5rem var(--mono); letter-spacing: .14em; text-transform: uppercase; }
.hero-stamp strong { margin: .15rem 0; font: 600 1.65rem/.75 var(--serif); letter-spacing: -.08em; text-align: center; }
.hero-stamp i { font: 1.15rem serif; font-style: normal; }
.scroll-note { position: absolute; bottom: 2.2rem; left: 50%; display: flex; align-items: center; gap: .65rem; color: rgba(243,239,229,.67); font: .58rem var(--mono); letter-spacing: .14em; text-transform: uppercase; transform: translateX(-50%); }
.scroll-note__mouse { position: relative; display: inline-block; width: 1rem; height: 1.55rem; border: 1px solid rgba(243,239,229,.68); border-radius: 10px; }
.scroll-note__mouse:after { position: absolute; top: .25rem; left: .4rem; width: 2px; height: .32rem; content: ""; border-radius: 2px; background: var(--amber-light); animation: scroll-wheel 1.5s ease-in-out infinite; }

.section-number { position: absolute; top: 1.3rem; left: 0; color: var(--amber); font: .63rem var(--mono); letter-spacing: .13em; }
.section-number span { color: rgba(243,239,229,.4); }
.section-number--light { color: var(--amber-light); }
.section-inner--split { display: grid; grid-template-columns: minmax(15rem, .6fr) minmax(20rem, 1fr) minmax(10rem, .5fr); gap: clamp(1.5rem, 4vw, 5rem); align-items: center; padding: 1rem 4% 0; }
.story-copy { max-width: 40rem; grid-column: 2; }
.story-copy h2 { max-width: 35rem; }
.story-copy p { max-width: 33rem; color: rgba(243,239,229,.74); font-size: .94rem; }
.text-link { position: relative; display: inline-flex; align-items: center; gap: .75rem; margin-top: 1rem; padding-bottom: .45rem; color: var(--amber); font: 500 .64rem var(--mono); letter-spacing: .12em; text-transform: uppercase; }
.text-link:after { position: absolute; right: 0; bottom: 0; left: 0; height: 1px; content: ""; background: currentColor; transform-origin: right; transition: transform .25s ease; }
.text-link:hover:after, .text-link:focus-visible:after { transform: scaleX(.35); }
.text-link span { font-size: 1rem; }
.text-link--light { color: var(--amber-light); }
.floating-card { grid-column: 3; align-self: end; margin-bottom: 3rem; }
.floating-card__icon { display: grid; width: 3rem; height: 3rem; margin-bottom: 1.4rem; place-items: center; border: 1px solid rgba(241,195,116,.45); border-radius: 50%; color: var(--amber-light); font: 1.4rem var(--serif); }
.floating-card > span:not(.floating-card__icon) { display: block; color: rgba(243,239,229,.7); font: .8rem/1.4 var(--mono); letter-spacing: .04em; }
.floating-card > span strong { color: var(--cream); font-weight: 500; }
.floating-card small { display: block; margin-top: 2rem; color: rgba(243,239,229,.42); font: .54rem var(--mono); letter-spacing: .1em; text-transform: uppercase; }

.journey-section--table { min-height: 116svh; }
.section-inner--table { display: flex; min-height: calc(100svh - 11rem); align-items: center; justify-content: center; padding: 2rem 5% 0; }
.table-card { position: relative; width: min(100%, 36rem); padding: clamp(2rem, 4vw, 4rem); }
.glass-card { border: 1px solid rgba(243,239,229,.26); border-radius: 2rem; background: linear-gradient(135deg, rgba(24,47,36,.74), rgba(13,26,20,.43)); box-shadow: 0 1.5rem 5rem rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.1); backdrop-filter: blur(12px); }
.table-card:before { position: absolute; top: 2rem; right: -3rem; width: 6rem; height: 6rem; content: ""; border: 1px solid rgba(241,195,116,.27); border-radius: 50%; }
.table-card:after { position: absolute; top: 3.45rem; right: -1.55rem; width: 3.1rem; height: 1px; content: ""; background: var(--amber-light); transform: rotate(-45deg); }
.table-card__top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.card-coordinates { color: rgba(243,239,229,.47); font: .52rem var(--mono); letter-spacing: .06em; }
.table-card h2 { margin-bottom: 1.2rem; font-size: clamp(3.1rem, 5.1vw, 5.7rem); }
.table-card > p { max-width: 24rem; color: rgba(243,239,229,.77); font-size: .92rem; }
.menu-callout { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin: 2rem 0; padding: 1.15rem 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.menu-callout span, .menu-callout small { color: rgba(243,239,229,.57); font: .56rem/1.6 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.menu-callout strong { display: block; margin-top: .25rem; color: var(--amber-light); font: 600 1.9rem var(--serif); letter-spacing: -.04em; }
.menu-callout small { letter-spacing: 0; text-align: right; text-transform: none; }
.fine-print { margin: 1rem 0 0 !important; color: rgba(243,239,229,.45) !important; font: .55rem var(--mono) !important; }
.ingredient-pills { position: absolute; right: 0; bottom: 8%; display: flex; flex-direction: column; gap: .4rem; align-items: flex-start; }
.ingredient-pills span { padding: .5rem .85rem; border: 1px solid rgba(243,239,229,.28); border-radius: 100px; color: rgba(243,239,229,.7); background: rgba(16,35,26,.35); font: .55rem var(--mono); letter-spacing: .06em; }

.journey-section--products { min-height: 125svh; color: var(--ink); background: rgba(243,239,229,.98); }
.section-inner--products { padding: 2rem 3% 0; }
.journey-section--products .section-number { color: var(--clay); }
.journey-section--products .section-number span { color: rgba(23,38,31,.4); }
.products-heading { display: grid; grid-template-columns: 1.1fr .8fr; gap: 2rem; align-items: end; margin: 0 0 2.5rem 9%; }
.products-heading .eyebrow { color: var(--clay); }
.products-heading h2 { margin: 0; color: var(--ink); font-size: clamp(3.5rem, 6vw, 6.2rem); }
.products-heading h2 em { color: var(--clay); }
.products-heading > p { max-width: 20rem; margin-bottom: .25rem; color: rgba(23,38,31,.62); font-size: .86rem; }
.products-grid { display: grid; grid-template-columns: 1.1fr .88fr .92fr; gap: clamp(.8rem, 2vw, 1.5rem); margin-left: 9%; }
.product-card { position: relative; min-height: 27rem; padding: 0; overflow: hidden; border: 0; border-radius: 1.35rem; color: var(--cream); background: var(--forest); cursor: pointer; text-align: left; box-shadow: 0 .9rem 2.5rem rgba(25,48,39,.14); transform: translateZ(0); transition: transform .45s cubic-bezier(.2,.75,.22,1), box-shadow .45s ease; }
.product-card:hover, .product-card:focus-visible { transform: translateY(-10px); box-shadow: 0 1.5rem 3.5rem rgba(25,48,39,.24); }
.product-card:focus-visible { outline: 2px solid var(--amber); outline-offset: .2rem; }
.product-card__image { position: absolute; inset: 0; display: block; background-image: linear-gradient(180deg, rgba(11,25,18,.04) 30%, rgba(11,25,18,.88) 100%), var(--card-image); background-position: center; background-size: cover; transition: transform .8s cubic-bezier(.2,.75,.22,1), filter .45s ease; }
.product-card--honey .product-card__image { background-position: 74% center; filter: saturate(1.05); }
.product-card--beans .product-card__image { background-position: 48% center; filter: sepia(.08) hue-rotate(-4deg); }
.product-card--oil .product-card__image { background-position: 89% center; filter: saturate(.78) brightness(.8); }
.product-card:hover .product-card__image, .product-card:focus-visible .product-card__image { transform: scale(1.06); filter: saturate(1.12) brightness(1.03); }
.product-card__meta { position: absolute; right: 1.25rem; bottom: 1.2rem; left: 1.25rem; display: flex; flex-direction: column; }
.product-card__meta small { margin-bottom: .65rem; color: var(--amber-light); font: .52rem var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.product-card__meta strong { font: 600 clamp(1.7rem, 2.6vw, 2.8rem)/.93 var(--serif); letter-spacing: -.06em; }
.product-card__meta i { display: flex; align-items: center; justify-content: space-between; margin-top: 1rem; padding-top: .7rem; border-top: 1px solid rgba(243,239,229,.28); color: rgba(243,239,229,.7); font: .55rem var(--mono); letter-spacing: .08em; text-transform: uppercase; }

.journey-section--experience { min-height: 112svh; }
.section-inner--experience { display: grid; grid-template-columns: minmax(17rem, .95fr) minmax(10rem, .45fr); gap: 10%; align-items: center; padding-left: 9%; }
.experience-card { max-width: 39rem; padding: clamp(2rem, 5vw, 5rem); border: 1px solid rgba(243,239,229,.22); border-radius: 2rem; background: rgba(13,27,22,.43); box-shadow: 0 1rem 5rem rgba(0,0,0,.14); backdrop-filter: blur(11px); }
.experience-card h2 { font-size: clamp(3.1rem, 5.4vw, 6.2rem); }
.experience-card p { max-width: 27rem; color: rgba(243,239,229,.74); font-size: .92rem; }
.experience-facts { display: flex; flex-direction: column; gap: 2rem; align-self: end; padding-bottom: 4rem; }
.experience-facts div { display: flex; flex-direction: column; padding-left: 1rem; border-left: 1px solid rgba(241,195,116,.53); }
.experience-facts strong { font: 600 2rem var(--serif); letter-spacing: -.05em; }
.experience-facts span { color: rgba(243,239,229,.54); font: .58rem var(--mono); letter-spacing: .1em; text-transform: uppercase; }

.journey-section--map { min-height: 126svh; color: var(--ink); background: rgba(243,239,229,.98); }
.section-inner--map { display: grid; grid-template-columns: minmax(15rem, .65fr) minmax(22rem, 1.05fr); gap: 2.8rem 7%; padding: 2rem 3% 0 9%; }
.journey-section--map .section-number { color: var(--clay); }
.journey-section--map .section-number span { color: rgba(23,38,31,.4); }
.map-intro { align-self: center; }
.map-intro .eyebrow { color: var(--clay); }
.map-intro h2 { margin-bottom: 1rem; color: var(--ink); font-size: clamp(3.6rem, 6vw, 6.2rem); }
.map-intro h2 em { color: var(--clay); }
.map-intro > p { max-width: 22rem; color: rgba(23,38,31,.64); font-size: .9rem; }
.map-address { display: flex; align-items: center; gap: .8rem; margin: 1.7rem 0; }
.map-address__pin { display: grid; width: 2.2rem; height: 2.2rem; place-items: center; border: 1px solid rgba(165,92,67,.55); border-radius: 50%; color: var(--clay); font: 1.25rem var(--serif); transform: rotate(45deg); }
.map-address__pin + div { display: flex; flex-direction: column; }
.map-address strong { color: var(--ink); font: 600 .78rem var(--mono); letter-spacing: .02em; }
.map-address small { color: rgba(23,38,31,.55); font: .58rem var(--mono); }
.map-frame-wrap { align-self: center; }
.map-frame { position: relative; min-height: 32rem; overflow: hidden; border-radius: 1.6rem; background: #dce1d8; box-shadow: 0 1.3rem 3rem rgba(25,48,39,.17); }
.map-frame iframe { display: block; width: 100%; height: 32rem; border: 0; filter: saturate(.72) sepia(.1); }
.map-frame__badge { position: absolute; top: 1rem; left: 1rem; padding: .5rem .8rem; border: 1px solid rgba(243,239,229,.6); border-radius: 100px; color: var(--cream); background: rgba(25,48,39,.78); font: .53rem var(--mono); letter-spacing: .1em; text-transform: uppercase; backdrop-filter: blur(6px); }
.reviews-strip { display: grid; grid-column: 1 / -1; grid-template-columns: 1.1fr 1fr 1fr 1fr; gap: 1.2rem; align-items: stretch; padding-top: 1.1rem; border-top: 1px solid rgba(23,38,31,.2); }
.reviews-strip__heading { display: flex; flex-direction: column; align-items: flex-start; }
.reviews-strip__heading .eyebrow { margin-bottom: .35rem; color: var(--clay); }
.reviews-strip__heading > strong { color: var(--ink); font: 600 2.6rem/.9 var(--serif); letter-spacing: -.06em; }
.reviews-strip__heading > strong span { color: rgba(23,38,31,.4); font-size: 1rem; letter-spacing: 0; }
.reviews-strip__heading > small { margin-top: .45rem; color: rgba(23,38,31,.54); font: .55rem var(--mono); }
.reviews-strip__heading .text-link { margin-top: auto; color: var(--clay); }
.review-quote { display: flex; flex-direction: column; justify-content: space-between; margin: 0; padding: 1rem 1rem 0; border-left: 1px solid rgba(23,38,31,.18); }
.review-quote blockquote { margin: 0; color: var(--ink); font: 500 1.03rem/1.18 var(--serif); letter-spacing: -.035em; }
.review-quote figcaption { margin-top: 1rem; color: rgba(23,38,31,.53); font: .53rem var(--mono); letter-spacing: .06em; text-transform: uppercase; }

.journey-section--contact { min-height: 110svh; padding-bottom: 8rem; }
.section-inner--contact { display: grid; grid-template-columns: minmax(20rem, .9fr) minmax(15rem, .5fr); gap: 10%; align-items: center; padding-left: 9%; }
.contact-copy h2 { font-size: clamp(3.25rem, 6vw, 6.7rem); }
.contact-copy > p { max-width: 31rem; color: rgba(243,239,229,.73); font-size: .93rem; }
.contact-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.8rem; }
.contact-plate { align-self: end; max-width: 18rem; padding: 2rem; }
.contact-plate__label { display: block; margin-bottom: 2.5rem; color: var(--amber-light); font: .6rem var(--mono); letter-spacing: .16em; text-transform: uppercase; }
.contact-plate strong { display: block; font: 600 3.7rem/.83 var(--serif); letter-spacing: -.07em; }
.contact-plate strong em { color: var(--amber-light); font-size: 2.4rem; }
.contact-plate__line { display: block; width: 3rem; height: 1px; margin: 2.5rem 0 1rem; background: var(--amber-light); }
.contact-plate small { color: rgba(243,239,229,.58); font: .58rem/1.6 var(--mono); }
.site-footer { position: absolute; right: clamp(1.4rem, 4vw, 4.8rem); bottom: 2rem; left: clamp(5rem, 12vw, 12rem); display: flex; align-items: center; justify-content: space-between; gap: 1rem; color: rgba(243,239,229,.48); font: .55rem var(--mono); letter-spacing: .04em; }
.site-footer a { color: var(--amber-light); }

.reveal-on-scroll { opacity: 0; transform: translateY(2.5rem); transition: opacity .85s ease, transform .85s cubic-bezier(.2,.7,.2,1); }
.journey-section.is-active .reveal-on-scroll { opacity: 1; transform: translateY(0); }
.journey-section.is-active .reveal-on-scroll:nth-child(2) { transition-delay: .08s; }
.journey-section.is-active .reveal-on-scroll:nth-child(3) { transition-delay: .16s; }

.product-modal { width: min(92vw, 35rem); padding: 3rem; border: 1px solid rgba(243,239,229,.22); border-radius: 1.7rem; color: var(--cream); background: #193027; box-shadow: 0 2rem 7rem rgba(0,0,0,.38); }
.product-modal::backdrop { background: rgba(5,14,10,.72); backdrop-filter: blur(6px); }
.product-modal .eyebrow { margin-bottom: .8rem; }
.product-modal h2 { margin-bottom: 1rem; font-size: clamp(2.8rem, 6vw, 4.7rem); }
.product-modal > p:not(.eyebrow) { color: rgba(243,239,229,.72); font-size: .9rem; }
.dialog-close { position: absolute; top: 1rem; right: 1rem; display: grid; width: 2rem; height: 2rem; place-items: center; padding: 0; border: 1px solid rgba(243,239,229,.25); border-radius: 50%; color: var(--cream); background: transparent; cursor: pointer; font-size: 1.35rem; line-height: 1; }
.dialog-close:hover, .dialog-close:focus-visible { border-color: var(--amber-light); color: var(--forest); background: var(--amber-light); }
.basic-page-header { position: fixed; z-index: 70; top: 0; right: 0; left: 0; display: flex; min-height: 6.5rem; padding: 1rem clamp(1.25rem, 4vw, 4.8rem); align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(241,195,116,.13); background: rgba(7,25,17,.9); backdrop-filter: blur(18px); }
.admin-bar .basic-page-header { top: 32px; }
.basic-page-header__actions { display: flex; gap: 1.2rem; align-items: center; }
.basic-page-header__home { color: rgba(255,250,240,.78); font: 500 .62rem/1.2 var(--mono); letter-spacing: .08em; text-transform: uppercase; transition: color .2s ease; }
.basic-page-header__home:hover, .basic-page-header__home:focus-visible { color: var(--amber-light); }
.basic-page { position: relative; min-height: 100vh; padding: clamp(9rem, 13vw, 12rem) 1.5rem 6rem; overflow: hidden; color: var(--cream); background: radial-gradient(circle at 78% 8%, rgba(93,125,77,.2), transparent 34rem), radial-gradient(circle at 12% 75%, rgba(217,168,78,.08), transparent 28rem), var(--forest-deep); }
.basic-page__glow { position: fixed; z-index: 0; top: 8rem; right: -12rem; width: 38rem; height: 38rem; border-radius: 50%; background: rgba(129,153,97,.08); filter: blur(60px); pointer-events: none; }
.basic-page__inner { position: relative; z-index: 1; width: min(100%, 1040px); margin: 0 auto; }
.basic-page__article { display: grid; grid-template-columns: minmax(14rem, .72fr) minmax(0, 1.5fr); gap: clamp(2.5rem, 6vw, 6rem); padding: clamp(1.5rem, 5vw, 4.5rem); border: 1px solid rgba(241,195,116,.24); border-radius: clamp(1.3rem, 3vw, 2.2rem); background: linear-gradient(145deg, rgba(25,48,39,.96), rgba(10,35,23,.9)); box-shadow: 0 2.5rem 7rem rgba(0,0,0,.28); }
.basic-page__title { position: sticky; top: 9rem; align-self: start; }
.admin-bar .basic-page__title { top: 11rem; }
.basic-page__title .eyebrow { margin-bottom: 1.25rem; }
.basic-page__title h1 { max-width: 8ch; margin: 0 0 1.3rem; overflow-wrap: anywhere; color: var(--cream); font-size: clamp(2.65rem, 5vw, 4.9rem); line-height: .94; }
.basic-page__title > p:last-child { max-width: 25rem; color: rgba(243,239,229,.58); font-size: .82rem; line-height: 1.7; }
.basic-page__content { min-width: 0; padding-top: .3rem; color: rgba(243,239,229,.78); font-size: .96rem; line-height: 1.8; }
.basic-page__content > h1:first-child { display: none; }
.basic-page__content h2 { margin: 2.75rem 0 .8rem; color: var(--cream); font-size: clamp(1.65rem, 2.6vw, 2.35rem); line-height: 1.08; letter-spacing: -.035em; }
.basic-page__content h2:first-of-type { margin-top: 0; }
.basic-page__content h3 { margin: 2rem 0 .65rem; color: var(--amber-light); font-size: 1.25rem; letter-spacing: -.02em; }
.basic-page__content p { max-width: 72ch; margin-bottom: 1.15rem; }
.basic-page__content ul, .basic-page__content ol { margin: 1rem 0 1.5rem; padding-left: 1.3rem; }
.basic-page__content li { margin-bottom: .65rem; padding-left: .35rem; }
.basic-page__content strong { color: var(--cream); }
.basic-page__content a { color: var(--amber-light); text-decoration: underline; text-decoration-color: rgba(241,195,116,.45); text-underline-offset: .2em; }
.basic-page__content a:hover, .basic-page__content a:focus-visible { color: #fff4d8; text-decoration-color: currentColor; }
.basic-page__content .acp-cookie-table { min-width: 680px; color: rgba(243,239,229,.78); }
.basic-page__content .acp-cookie-table th, .basic-page__content .acp-cookie-table td { border-color: rgba(243,239,229,.14); }
.basic-page__content .acp-cookie-table th { color: var(--cream); background: rgba(241,195,116,.1); }

@media (max-width: 782px) {
  .admin-bar .basic-page-header { top: 46px; }
  .basic-page-header { min-height: 5.5rem; }
  .basic-page-header__home { display: none; }
  .basic-page-header .header-booking { display: inline-flex; }
  .basic-page__article { grid-template-columns: 1fr; }
  .basic-page__title, .admin-bar .basic-page__title { position: static; }
  .basic-page__title h1 { max-width: 12ch; }
}

@media (max-width: 520px) {
  .basic-page { padding: 8rem .75rem 4rem; }
  .basic-page-header { padding: .75rem 1rem; }
  .basic-page-header .brand-lockup__logo { width: 3.35rem; height: 3.35rem; }
  .basic-page-header .brand-lockup__words > span { display: none; }
  .basic-page-header .header-booking { padding: .65rem .8rem; font-size: .5rem; }
  .basic-page__article { gap: 2rem; padding: 1.35rem; }
  .basic-page__title h1 { font-size: clamp(2.45rem, 14vw, 3.6rem); }
  .basic-page__content { font-size: .9rem; }
}

@keyframes fog-drift { from { transform: translate3d(calc(var(--cursor-x) * -18px), calc(var(--cursor-y) * -10px), 0) scale(.95); } to { transform: translate3d(calc(var(--cursor-x) * -5px), calc(var(--cursor-y) * -4px), 0) scale(1.12); } }
@keyframes grain { 0% { transform: translate3d(0,0,0); } 25% { transform: translate3d(2%, -1%, 0); } 50% { transform: translate3d(-1%, 2%, 0); } 75% { transform: translate3d(1%, 1%, 0); } 100% { transform: translate3d(-2%, -1%, 0); } }
@keyframes scroll-wheel { 0%, 100% { transform: translateY(0); opacity: .6; } 50% { transform: translateY(.35rem); opacity: 1; } }

@media (max-width: 980px) {
  .site-header { padding: 1.1rem 1.4rem; }
  .site-nav { display: none; }
  .journey-progress { left: 1.25rem; }
  .journey-section { padding-right: 4rem; padding-left: 4.5rem; }
  .section-inner--split { grid-template-columns: 7rem minmax(15rem, 1fr); padding-left: 4%; }
  .story-copy { grid-column: 2; }
  .floating-card { display: none; }
  .products-heading, .products-grid { margin-left: 5%; }
  .products-heading { grid-template-columns: 1fr .75fr; }
  .section-inner--experience, .section-inner--contact, .section-inner--map { padding-left: 5%; }
}

@media (max-width: 700px) {
  body { font-size: 15px; }
  .brand-lockup__words small { display: none; }
  .header-booking { padding: .58rem .7rem; font-size: .56rem; }
  .journey-progress { top: 50%; right: auto; bottom: auto; left: .45rem; width: 2.35rem; flex-direction: column; justify-content: center; transform: translateY(-50%); }
  .journey-progress__count, .journey-progress__hint { display: none; }
  .journey-progress__rail { width: auto; flex-direction: column; justify-content: center; }
  .journey-progress__rail:before { top: .6rem; right: auto; bottom: .6rem; left: .43rem; width: 1px; height: auto; }
  .progress-dot span { top: .38rem; right: auto; left: 1.55rem; font-size: .48rem; text-align: left; }
  .stage-caption { right: 1.3rem; bottom: 4.6rem; font-size: .5rem; }
  .journey-section, .journey-section--hero, .journey-section--table, .journey-section--products, .journey-section--experience, .journey-section--contact { min-height: 100svh; padding: 6rem 1.4rem 7rem 3.5rem; }
  .section-inner--hero { min-height: calc(100svh - 13rem); }
  .hero-copy { padding-left: 0; }
  h1 { font-size: clamp(4.3rem, 20vw, 7rem); }
  h2 { font-size: clamp(3rem, 13vw, 5rem); }
  .hero-copy__intro { max-width: 19rem; font-size: .86rem; }
  .hero-stamp { right: 1rem; bottom: 9%; width: 6.3rem; height: 6.3rem; }
  .hero-stamp strong { font-size: 1.25rem; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: .8rem; }
  .scroll-note { bottom: 4.6rem; }
  .section-inner--split { display: block; padding: 0; }
  .section-number { top: -.3rem; left: 0; }
  .story-copy { padding-top: 2.2rem; }
  .story-copy p { font-size: .85rem; }
  .table-card { padding: 1.8rem 1.3rem; border-radius: 1.35rem; }
  .table-card h2 { font-size: clamp(3rem, 13vw, 4.6rem); }
  .table-card:before, .table-card:after, .ingredient-pills { display: none; }
  .menu-callout { align-items: flex-start; flex-direction: column; }
  .menu-callout small { text-align: left; }
  .products-heading, .products-grid { margin-left: 0; }
  .products-heading { display: block; padding-top: 2.2rem; }
  .products-heading h2 { margin-bottom: 1rem; font-size: clamp(3.2rem, 14vw, 5rem); }
  .products-heading > p { max-width: 17rem; }
  .products-grid { display: flex; overflow-x: auto; margin-right: -1.4rem; padding: .5rem 1.4rem .7rem 0; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .products-grid::-webkit-scrollbar { display: none; }
  .product-card { min-width: 77vw; min-height: 25rem; scroll-snap-align: start; }
  .section-inner--experience, .section-inner--contact, .section-inner--map { display: block; padding: 0; }
  .experience-card { margin-top: 1.8rem; padding: 2rem 1.3rem; border-radius: 1.35rem; }
  .experience-card h2 { font-size: clamp(3rem, 12vw, 4.5rem); }
  .experience-card p, .contact-copy > p { font-size: .84rem; }
  .experience-facts { flex-direction: row; gap: .8rem; padding: 2rem 0 0; }
  .experience-facts div { flex: 1; padding-left: .6rem; }
  .experience-facts strong { font-size: 1.3rem; }
  .experience-facts span { font-size: .46rem; }
  .contact-copy { padding-top: 2.2rem; }
  .contact-copy h2 { font-size: clamp(3rem, 13vw, 4.7rem); }
  .contact-plate { margin-top: 2rem; }
  .map-intro { padding-top: 2.2rem; }
  .map-intro h2 { font-size: clamp(3.2rem, 14vw, 5rem); }
  .map-frame { min-height: 21rem; margin-top: 1.8rem; border-radius: 1.2rem; }
  .map-frame iframe { height: 21rem; }
  .reviews-strip { display: flex; flex-direction: column; gap: 1.1rem; margin-top: 2rem; padding-top: 1.2rem; }
  .reviews-strip__heading { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .15rem 1rem; }
  .reviews-strip__heading .eyebrow { grid-column: 1 / -1; }
  .reviews-strip__heading .text-link { grid-column: 2; grid-row: 2 / span 2; margin-top: 0; }
  .review-quote { padding: .7rem 0 0; border-top: 1px solid rgba(23,38,31,.16); border-left: 0; }
  .site-footer { right: 1.4rem; bottom: 1.3rem; left: 3.5rem; align-items: flex-start; flex-direction: column; gap: .25rem; font-size: .48rem; }
  .product-modal { padding: 2.3rem 1.4rem 1.5rem; }
  .product-modal h2 { font-size: 3.3rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .reveal-on-scroll { opacity: 1; transform: none; }
}

/* Versione viaggio 2.0: contrasto, marchio ufficiale e footer completo. */
.stage-vignette {
  z-index: 1;
  background:
    radial-gradient(ellipse at 55% 42%, transparent 12%, rgba(4, 14, 10, .18) 58%, rgba(4, 14, 10, .84) 100%),
    linear-gradient(90deg, rgba(4, 17, 11, var(--overlay-strength, .72)) 0%, rgba(4, 17, 11, .35) 38%, rgba(4, 17, 11, .1) 66%, rgba(4, 17, 11, .48) 100%);
}

.site-header {
  min-height: 6.1rem;
  padding-top: .75rem;
  padding-bottom: .75rem;
  background: linear-gradient(180deg, rgba(6, 25, 17, .94), rgba(6, 25, 17, .76));
  border-bottom: 1px solid rgba(241, 195, 116, .19);
  box-shadow: 0 .8rem 2.5rem rgba(0, 0, 0, .12);
  backdrop-filter: blur(14px) saturate(1.1);
}
.site-header:after { display: none; }
.brand-lockup { gap: .9rem; min-width: 13rem; }
.brand-lockup__logo {
  display: block;
  width: 4.6rem;
  height: 4.6rem;
  flex: 0 0 auto;
  object-fit: cover;
  border: 1px solid rgba(241, 195, 116, .52);
  border-radius: 50%;
  box-shadow: 0 0 0 .25rem rgba(241, 195, 116, .07), 0 .5rem 1.4rem rgba(0, 0, 0, .18);
}
.brand-lockup__words { gap: .05rem; }
.brand-lockup__words small {
  display: block;
  order: 0;
  margin: 0;
  color: var(--amber-light);
  font: 500 .52rem var(--mono);
  letter-spacing: .2em;
}
.brand-lockup__words strong {
  order: 1;
  color: var(--cream);
  font: 600 1.32rem/.98 var(--serif);
  letter-spacing: -.035em;
}
.brand-lockup__words > span {
  order: 2;
  margin-top: .18rem;
  color: rgba(243, 239, 229, .79);
  font: 500 .45rem var(--mono);
  letter-spacing: .11em;
  text-transform: uppercase;
}
.site-nav__list { gap: clamp(.85rem, 1.65vw, 1.8rem); }
.site-nav__list a { color: rgba(255, 250, 240, .92); font-size: .59rem; text-shadow: 0 1px .6rem rgba(0, 0, 0, .72); }
.header-booking { color: #11251a; background: var(--amber-light); border-color: var(--amber-light); font-weight: 600; }
.header-booking:hover, .header-booking:focus-visible { color: #11251a; background: var(--cream); border-color: var(--cream); }

.content-panel {
  position: relative;
  padding: clamp(1.45rem, 3vw, 2.7rem);
  border: 1px solid rgba(241, 195, 116, .24);
  border-radius: clamp(1.25rem, 2vw, 2rem);
  background: linear-gradient(135deg, rgba(5, 28, 18, .88), rgba(5, 20, 14, .72));
  box-shadow: 0 1.2rem 4rem rgba(0, 0, 0, .2), inset 0 1px 0 rgba(255, 255, 255, .06);
  backdrop-filter: blur(13px) saturate(1.06);
}
.content-panel--hero { max-width: 47rem; padding: clamp(1.6rem, 3vw, 3.15rem); }
.hero-copy { padding-left: clamp(1.6rem, 3vw, 3.15rem); }
.hero-copy h1, .story-copy h2, .table-card h2, .experience-card h2, .contact-copy h2 {
  color: var(--warm-white);
  text-shadow: var(--copy-shadow, 0 3px 1.5rem rgba(0, 0, 0, .82));
}
.hero-copy__intro,
.story-copy p,
.table-card > p,
.experience-card p,
.contact-copy > p,
.floating-card > span:not(.floating-card__icon),
.contact-plate small,
.hero-actions__note {
  color: rgba(255, 250, 240, .94);
  text-shadow: 0 2px .8rem rgba(0, 0, 0, .82);
}
.glass-card, .experience-card { background: linear-gradient(135deg, rgba(10, 38, 26, .9), rgba(5, 22, 15, .82)); }
.experience-facts { padding: 1.4rem; border-radius: 1.25rem; background: rgba(5, 25, 17, .78); backdrop-filter: blur(10px); }
.experience-facts span { color: rgba(255, 250, 240, .82); }
.journey-progress, .stage-caption { text-shadow: 0 2px .6rem rgba(0, 0, 0, .9); }
.products-grid { grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); }
.reviews-strip { grid-template-columns: minmax(11rem, 1.1fr) repeat(3, minmax(10rem, 1fr)); }
.contact-plate img { display: block; width: 5rem; height: 5rem; margin-bottom: 1.4rem; object-fit: cover; border: 1px solid rgba(241, 195, 116, .44); border-radius: 50%; }

.site-footer {
  position: relative;
  z-index: 6;
  right: auto;
  bottom: auto;
  left: auto;
  display: block;
  width: 100%;
  padding: clamp(3.5rem, 7vw, 7rem) clamp(1.4rem, 7vw, 7.5rem) 1.8rem;
  color: rgba(255, 250, 240, .86);
  background:
    radial-gradient(circle at 12% 10%, rgba(212, 154, 76, .12), transparent 28%),
    linear-gradient(135deg, #0a2117 0%, #07170f 65%, #050f0b 100%);
  border-top: 1px solid rgba(241, 195, 116, .28);
  font: 400 .82rem/1.7 var(--sans);
  letter-spacing: 0;
}
.site-footer:before {
  position: absolute;
  top: 0;
  right: 7%;
  left: 7%;
  height: 1px;
  content: "";
  background: linear-gradient(90deg, transparent, var(--amber-light), transparent);
  opacity: .55;
}
.site-footer a { color: rgba(255, 250, 240, .88); transition: color .2s ease, transform .2s ease; }
.site-footer a:hover, .site-footer a:focus-visible { color: var(--amber-light); }
.site-footer__top {
  display: grid;
  grid-template-columns: minmax(17rem, 1.5fr) minmax(8rem, .55fr) minmax(13rem, .9fr) minmax(16rem, 1.05fr);
  gap: clamp(2rem, 5vw, 5.5rem);
  width: min(100%, 1320px);
  margin: 0 auto;
  padding-bottom: clamp(3rem, 5vw, 5rem);
}
.site-footer__brand { display: flex; gap: 1.35rem; align-items: flex-start; }
.site-footer__brand img { width: 6.4rem; height: 6.4rem; flex: 0 0 auto; object-fit: cover; border: 1px solid rgba(241, 195, 116, .45); border-radius: 50%; box-shadow: 0 .8rem 2rem rgba(0, 0, 0, .22); }
.site-footer__brand .eyebrow { margin-bottom: .45rem; }
.site-footer__brand h2 { margin: 0 0 .65rem; color: var(--warm-white); font-size: clamp(2rem, 3vw, 3rem); line-height: .9; }
.site-footer__brand p:last-child { max-width: 25rem; margin: 0; color: rgba(255, 250, 240, .7); }
.site-footer__column { display: flex; flex-direction: column; align-items: flex-start; gap: .55rem; }
.site-footer__menu { display: flex; flex-direction: column; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.site-footer__column h3, .site-footer__booking h3 { margin: 0 0 .8rem; color: var(--amber-light); font: 600 1.35rem/1.1 var(--serif); letter-spacing: -.025em; }
.site-footer__column span { color: rgba(255, 250, 240, .64); }
.site-footer__booking { padding: 1.5rem; border: 1px solid rgba(241, 195, 116, .22); border-radius: 1.25rem; background: rgba(255, 255, 255, .035); }
.site-footer__booking .eyebrow { margin-bottom: .7rem; }
.site-footer__booking p:not(.eyebrow) { margin-bottom: 1.2rem; color: rgba(255, 250, 240, .72); }
.site-footer__booking .button { color: #102419; background: var(--amber-light); }
.site-footer__bottom {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 1.4rem 2.5rem;
  align-items: center;
  width: min(100%, 1320px);
  margin: 0 auto;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 250, 240, .13);
  color: rgba(255, 250, 240, .5);
  font: 500 .54rem/1.6 var(--mono);
  letter-spacing: .07em;
  text-transform: uppercase;
}
.site-footer__bottom p { margin: 0; }
.site-footer__social, .site-footer__legal { display: flex; flex-wrap: wrap; gap: .65rem 1.25rem; }
.site-footer__legal button { padding: 0; border: 0; color: rgba(255,250,240,.88); background: transparent; cursor: pointer; font: inherit; letter-spacing: inherit; text-transform: inherit; transition: color .2s ease; }
.site-footer__legal button:hover, .site-footer__legal button:focus-visible { color: var(--amber-light); }

.basic-page-footer { position: relative; z-index: 2; display: flex; padding: 1.6rem clamp(1.4rem,7vw,7.5rem); align-items: center; justify-content: space-between; gap: 1.5rem; color: rgba(255,250,240,.6); background: #050f0b; border-top: 1px solid rgba(241,195,116,.2); font: 500 .58rem/1.5 var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.basic-page-footer > a { display: grid; gap: .15rem; color: var(--cream); }
.basic-page-footer > a span { color: rgba(255,250,240,.48); font-size: .5rem; }
.basic-page-footer nav { display: flex; flex-wrap: wrap; gap: .7rem 1.25rem; justify-content: flex-end; }
.basic-page-footer nav a, .basic-page-footer nav button { padding: 0; border: 0; color: rgba(255,250,240,.7); background: transparent; cursor: pointer; font: inherit; letter-spacing: inherit; text-transform: inherit; }
.basic-page-footer nav a:hover, .basic-page-footer nav a:focus-visible, .basic-page-footer nav button:hover, .basic-page-footer nav button:focus-visible { color: var(--amber-light); }

@media (max-width: 1180px) {
  .brand-lockup__logo { width: 3.9rem; height: 3.9rem; }
  .brand-lockup__words > span { display: none; }
  .site-nav__list { gap: .8rem; }
  .site-nav__list a { font-size: .52rem; letter-spacing: .08em; }
  .header-booking { padding-right: .8rem; padding-left: .8rem; font-size: .53rem; }
  .site-footer__top { grid-template-columns: minmax(18rem, 1.25fr) .6fr 1fr; }
  .site-footer__booking { grid-column: 1 / -1; }
}

@media (max-width: 700px) {
  .site-header { min-height: 4.9rem; }
  .brand-lockup { min-width: 0; gap: .55rem; }
  .brand-lockup__logo { width: 3.25rem; height: 3.25rem; }
  .brand-lockup__words small { display: block; font-size: .41rem; }
  .brand-lockup__words strong { font-size: .96rem; }
  .header-booking { max-width: 8.8rem; text-align: center; line-height: 1.25; }
  .content-panel, .content-panel--hero, .hero-copy { padding: 1.35rem; border-radius: 1.25rem; }
  .hero-copy h1 { font-size: clamp(3.5rem, 17vw, 5.8rem); }
  .journey-section--map { min-height: auto; padding-bottom: 6rem; }
  .site-footer {
    right: auto;
    bottom: auto;
    left: auto;
    padding: 4rem 1.4rem 5.7rem 3.5rem;
    font-size: .78rem;
  }
  .site-footer__top { display: grid; grid-template-columns: 1fr 1fr; gap: 2.3rem 1.3rem; }
  .site-footer__brand, .site-footer__booking { grid-column: 1 / -1; }
  .site-footer__brand { flex-direction: column; }
  .site-footer__brand img { width: 5rem; height: 5rem; }
  .site-footer__bottom { grid-template-columns: 1fr; gap: 1rem; font-size: .5rem; }
  .site-footer__social, .site-footer__legal { gap: .55rem 1rem; }
  .basic-page-footer { align-items: flex-start; flex-direction: column; }
  .basic-page-footer nav { justify-content: flex-start; }
}

/* Viaggio 3.0 — regia drone, superfici più leggere e scena sempre visibile. */
.journey-stage { z-index: 0; background: #102a1d; pointer-events: none; }
.journey-stage * { pointer-events: none; }
.journey-content { z-index: 2; }
.site-header { z-index: 60; }
.journey-progress { z-index: 50; pointer-events: none; }
.journey-progress__rail, .progress-dot { pointer-events: auto; }
.progress-dot { z-index: 1; }
#journey-canvas { transform: scale(1.004); transform-origin: center; }
.stage-vignette {
  background:
    linear-gradient(90deg, rgba(3, 16, 10, var(--overlay-strength, .68)) 0%, rgba(3, 16, 10, .42) 29%, rgba(3, 16, 10, .08) 58%, rgba(3, 16, 10, .32) 100%),
    radial-gradient(ellipse at 52% 45%, transparent 28%, rgba(4, 14, 10, .2) 68%, rgba(4, 14, 10, .68) 100%);
}
.stage-grain { opacity: .055; }
.stage-fog { opacity: .52; mix-blend-mode: screen; }
.journey-world-ready .stage-fog--one { animation-duration: 22s; }
.journey-world-ready .stage-fog--two { animation-duration: 28s; }

.journey-section {
  min-height: 118svh;
  padding: 7rem clamp(4.6rem, 8vw, 8.5rem) 5rem;
  background: transparent;
  align-items: center;
}
.journey-section--hero {
  min-height: 165svh;
  padding-top: 6.45rem;
  padding-bottom: 10rem;
  align-items: flex-start;
}
.section-inner { width: min(100%, 1320px); }
.section-inner--hero {
  position: sticky;
  top: 6.45rem;
  min-height: calc(100svh - 6.45rem);
  align-items: center;
}
.hero-copy { width: min(42vw, 37rem); max-width: 37rem; padding: clamp(1.65rem, 2.4vw, 2.45rem); }
.hero-copy h1 { margin-bottom: 1.25rem; font-size: clamp(3.55rem, 5.55vw, 6.15rem); line-height: .87; }
.hero-copy__intro { max-width: 25rem; margin-bottom: 1.45rem; font-size: .9rem; line-height: 1.62; }
.hero-copy .eyebrow { margin-bottom: .95rem; }
.hero-stamp { right: 3%; bottom: 10%; width: 7.2rem; height: 7.2rem; background: rgba(6, 25, 17, .4); backdrop-filter: blur(8px); }
.scroll-note { bottom: 2.8rem; padding: .48rem .8rem; border-radius: 100px; background: rgba(5, 22, 15, .48); backdrop-filter: blur(8px); }
.hero-stamp { transition: opacity .42s ease, visibility .42s ease, transform .55s cubic-bezier(.2,.75,.2,1); }
.scroll-note { transition: opacity .35s ease, visibility .35s ease, transform .45s cubic-bezier(.2,.75,.2,1); }
.journey-has-started .hero-stamp { opacity: 0; visibility: hidden; transform: rotate(12deg) scale(.72); pointer-events: none; }
.journey-has-started .scroll-note { opacity: 0; visibility: hidden; transform: translate(-50%, 1rem); pointer-events: none; }

.content-panel {
  padding: clamp(1.6rem, 2.5vw, 2.55rem);
  overflow: hidden;
  border-color: rgba(241, 195, 116, .29);
  border-radius: 2.1rem .85rem 2.1rem .85rem;
  background:
    radial-gradient(circle at 100% 0%, rgba(228, 183, 95, .11), transparent 32%),
    linear-gradient(132deg, rgba(5, 27, 18, .9), rgba(5, 21, 14, .73));
  box-shadow: 0 1.2rem 3.7rem rgba(0, 0, 0, .2), inset 0 1px 0 rgba(255, 255, 255, .07);
  backdrop-filter: blur(15px) saturate(1.08);
}
.content-panel:before {
  position: absolute;
  top: 0;
  left: 2.2rem;
  width: 5rem;
  height: 2px;
  content: "";
  background: linear-gradient(90deg, var(--amber-light), transparent);
}
.glass-card {
  border-radius: 2.1rem .85rem 2.1rem .85rem;
  background:
    radial-gradient(circle at 100% 0%, rgba(228, 183, 95, .12), transparent 34%),
    linear-gradient(132deg, rgba(5, 29, 19, .91), rgba(5, 20, 14, .76));
  backdrop-filter: blur(15px) saturate(1.08);
}
.section-inner--split { grid-template-columns: minmax(2rem, .2fr) minmax(21rem, 36rem) 10rem; gap: clamp(1.2rem, 3vw, 3.6rem); }
.story-copy { grid-column: 2; width: min(40vw, 35rem); }
.story-copy h2 { margin-bottom: 1.1rem; font-size: clamp(3rem, 4.9vw, 5.25rem); }
.story-copy p { margin-bottom: .85rem; font-size: .88rem; line-height: 1.65; }
.floating-card { width: 10rem; padding: 1.3rem; border-radius: 1.25rem .55rem 1.25rem .55rem; }

.journey-section--table { min-height: 125svh; }
.section-inner--table { min-height: auto; justify-content: flex-start; padding-left: 14%; }
.table-card { width: min(40vw, 32rem); padding: clamp(1.75rem, 3vw, 3rem); }
.table-card h2 { font-size: clamp(3rem, 4.8vw, 5rem); }
.table-card > p { font-size: .86rem; }
.menu-callout { margin: 1.4rem 0; padding: .9rem 0; }

.journey-section--products,
.journey-section--map { color: var(--ink); background: transparent; }
.section-inner--products,
.section-inner--map {
  padding: clamp(1.5rem, 2.6vw, 2.65rem);
  border: 1px solid rgba(255, 250, 240, .58);
  border-radius: 2.2rem .9rem 2.2rem .9rem;
  background: rgba(250, 246, 234, .92);
  box-shadow: 0 1.8rem 5rem rgba(4, 18, 11, .25);
  backdrop-filter: blur(17px) saturate(.92);
}
.journey-section--products { min-height: 118svh; }
.products-heading { grid-template-columns: 1fr .7fr; margin: 0 0 1.4rem 5%; }
.products-heading h2 { font-size: clamp(3.1rem, 4.4vw, 4.8rem); }
.products-heading > p { font-size: .8rem; line-height: 1.55; }
.products-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-left: 5%; }
.product-card { min-height: clamp(16rem, 47vh, 22rem); border-radius: 1.25rem .55rem 1.25rem .55rem; }
.product-card__meta strong { font-size: clamp(1.45rem, 2vw, 2.15rem); }

.journey-section--experience { min-height: 122svh; }
.section-inner--experience { grid-template-columns: minmax(20rem, 34rem) minmax(9rem, 13rem); gap: 7%; padding-left: 12%; }
.experience-card { max-width: 34rem; padding: clamp(1.7rem, 3vw, 3rem); border-radius: 2.1rem .85rem 2.1rem .85rem; }
.experience-card h2 { font-size: clamp(3rem, 4.8vw, 5.1rem); }
.experience-card p { font-size: .86rem; line-height: 1.65; }
.experience-facts { padding: 1.25rem; gap: 1.4rem; border-radius: 1.4rem .6rem 1.4rem .6rem; }

.section-inner--split.section-inner--without-aside { grid-template-columns: minmax(21rem, 36rem); justify-content: center; }
.section-inner--split.section-inner--without-aside .story-copy { grid-column: 1; width: 100%; }
.section-inner--experience.section-inner--without-aside { grid-template-columns: minmax(20rem, 34rem); justify-content: center; padding-left: 0; }

.journey-section--map { min-height: 132svh; }
.section-inner--map { grid-template-columns: minmax(15rem, .72fr) minmax(22rem, 1fr); gap: 1.7rem 4%; }
.map-intro h2 { font-size: clamp(3.1rem, 4.6vw, 5rem); }
.map-frame { min-height: 23rem; }
.map-frame iframe { height: 23rem; }
.reviews-strip { gap: .8rem; margin-top: .25rem; padding-top: .9rem; }
.review-quote { padding: .8rem .75rem 0; }
.review-quote blockquote { font-size: .9rem; line-height: 1.2; }
.reviews-strip__heading > strong { font-size: 2.15rem; }

.journey-section--contact { min-height: 122svh; padding-bottom: 7rem; }
.section-inner--contact { grid-template-columns: minmax(20rem, 36rem) minmax(13rem, 16rem); gap: 7%; padding-left: 12%; }
.contact-copy h2 { font-size: clamp(3rem, 5vw, 5.35rem); }
.contact-copy > p { font-size: .87rem; line-height: 1.65; }
.contact-plate { padding: 1.45rem; border-radius: 1.5rem .65rem 1.5rem .65rem; }
.contact-plate strong { font-size: 3rem; }

@media (max-width: 980px) {
  .journey-section { min-height: 112svh; padding-right: 3rem; padding-left: 4.5rem; }
  .journey-section--hero { min-height: 150svh; }
  .hero-copy { width: min(64vw, 36rem); }
  .story-copy { width: min(62vw, 35rem); }
  .table-card { width: min(62vw, 32rem); }
  .section-inner--experience, .section-inner--contact { padding-left: 5%; }
  .section-inner--map { grid-template-columns: .8fr 1fr; }
  .reviews-strip { grid-template-columns: 1fr 1fr 1fr; }
  .reviews-strip__heading { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr auto auto; gap: 1rem; align-items: end; }
}

@media (max-width: 700px) {
  .journey-section,
  .journey-section--table,
  .journey-section--products,
  .journey-section--experience,
  .journey-section--map,
  .journey-section--contact { min-height: 112svh; padding: 6rem 1.2rem 7rem 3.4rem; }
  .journey-section--hero { min-height: 142svh; padding-top: 5.2rem; }
  .section-inner--hero { position: sticky; top: 5.2rem; min-height: calc(100svh - 5.2rem); }
  .hero-copy, .story-copy, .table-card { width: 100%; max-width: none; }
  .hero-copy h1 { font-size: clamp(3.25rem, 15.5vw, 5rem); }
  .content-panel, .content-panel--hero, .hero-copy { padding: 1.25rem; border-radius: 1.35rem .55rem 1.35rem .55rem; }
  .hero-stamp { display: none; }
  .scroll-note { bottom: 5.2rem; }
  .section-inner--table { padding: 0; }
  .products-heading { margin-left: 0; }
  .products-grid { margin-left: 0; }
  .section-inner--products, .section-inner--map { padding: 1.2rem; border-radius: 1.4rem .55rem 1.4rem .55rem; }
  .section-inner--experience, .section-inner--contact { padding-left: 0; }
  .map-frame, .map-frame iframe { height: 20rem; min-height: 20rem; }
  .journey-section--map { min-height: 155svh; }
}

/* Galleria dell'agriturismo. */
.journey-section--gallery { min-height: 138svh; }
.section-inner--gallery {
  position: relative;
  padding: clamp(1.5rem, 2.8vw, 2.8rem);
  overflow: hidden;
  border: 1px solid rgba(241, 195, 116, .3);
  border-radius: 2.4rem .95rem 2.4rem .95rem;
  background:
    radial-gradient(circle at 100% 0%, rgba(228, 183, 95, .16), transparent 32%),
    linear-gradient(128deg, rgba(5, 28, 19, .94), rgba(5, 20, 14, .82));
  box-shadow: 0 2rem 6rem rgba(2, 15, 9, .3), inset 0 1px 0 rgba(255, 255, 255, .07);
  backdrop-filter: blur(18px) saturate(1.08);
}
.section-inner--gallery:after { position: absolute; right: -7rem; bottom: -10rem; width: 28rem; height: 28rem; border: 1px solid rgba(228, 183, 95, .1); border-radius: 50%; content: ""; pointer-events: none; }
.gallery-heading { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(20rem, 1fr) minmax(15rem, .52fr); gap: clamp(2rem, 6vw, 6rem); align-items: end; margin: 0 4% 1.8rem; }
.gallery-heading h2 { max-width: 43rem; margin: 0; color: var(--warm-white); font-size: clamp(3.2rem, 5vw, 5.4rem); line-height: .9; }
.gallery-heading h2 em { color: var(--amber-light); }
.gallery-heading__side { padding-bottom: .25rem; }
.gallery-heading__side > p { max-width: 24rem; margin: 0 0 1.2rem; color: rgba(255, 250, 240, .75); font-size: .84rem; line-height: 1.65; }
.gallery-controls { display: flex; align-items: center; gap: .75rem; }
.gallery-control, .gallery-lightbox__controls button { display: grid; width: 2.65rem; height: 2.65rem; place-items: center; padding: 0; border: 1px solid rgba(241, 195, 116, .42); border-radius: 50%; color: var(--amber-light); background: rgba(255, 255, 255, .03); cursor: pointer; font-size: 1rem; transition: color .2s ease, background .2s ease, transform .2s ease, opacity .2s ease; }
.gallery-control:hover, .gallery-control:focus-visible, .gallery-lightbox__controls button:hover, .gallery-lightbox__controls button:focus-visible { color: var(--forest); background: var(--amber-light); transform: translateY(-2px); }
.gallery-control:disabled, .gallery-lightbox__controls button:disabled { opacity: .28; cursor: default; transform: none; }
.gallery-controls span { min-width: 4.3rem; color: rgba(255, 250, 240, .45); font: .55rem var(--mono); letter-spacing: .12em; text-align: center; }
.gallery-controls span b { color: var(--warm-white); font-weight: 500; }
.gallery-track { position: relative; z-index: 1; display: grid; grid-auto-columns: clamp(17rem, 28vw, 24rem); grid-auto-flow: column; gap: clamp(.8rem, 1.6vw, 1.25rem); overflow-x: auto; padding: .4rem 4% 1.15rem; scroll-behavior: smooth; scroll-padding-inline: 4%; scroll-snap-type: x mandatory; scrollbar-width: none; }
.gallery-track::-webkit-scrollbar { display: none; }
.gallery-card { height: clamp(22rem, 54vh, 31rem); scroll-snap-align: start; }
.gallery-card:nth-child(3n + 2) { height: clamp(20rem, 49vh, 28rem); margin-top: 2rem; }
.gallery-card:nth-child(3n) { height: clamp(21rem, 51vh, 29.5rem); margin-top: .8rem; }
.gallery-card__button { position: relative; display: block; width: 100%; height: 100%; padding: 0; overflow: hidden; border: 1px solid rgba(255, 250, 240, .18); border-radius: 1.45rem .55rem 1.45rem .55rem; color: var(--warm-white); background: #10271c; cursor: zoom-in; text-align: left; box-shadow: 0 1.2rem 3rem rgba(0, 0, 0, .22); transform: translateZ(0); transition: transform .5s cubic-bezier(.2, .75, .2, 1), box-shadow .5s ease, border-color .3s ease; }
.gallery-card__button:hover, .gallery-card__button:focus-visible { border-color: rgba(241, 195, 116, .72); box-shadow: 0 1.8rem 4rem rgba(0, 0, 0, .32); transform: translateY(-.45rem); outline: none; }
.gallery-card__image, .gallery-card__shade { position: absolute; inset: 0; display: block; }
.gallery-card__image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .9s cubic-bezier(.2, .75, .2, 1), filter .5s ease; }
.gallery-card__button:hover .gallery-card__image img, .gallery-card__button:focus-visible .gallery-card__image img { filter: saturate(1.08) brightness(1.04); transform: scale(1.065); }
.gallery-card__shade { background: linear-gradient(180deg, rgba(4, 18, 11, .02) 28%, rgba(4, 18, 11, .2) 52%, rgba(4, 18, 11, .94) 100%); }
.gallery-card__copy { position: absolute; right: 1.25rem; bottom: 1.25rem; left: 1.25rem; display: flex; flex-direction: column; }
.gallery-card__copy small { margin-bottom: .55rem; color: var(--amber-light); font: .52rem var(--mono); letter-spacing: .12em; }
.gallery-card__copy strong { font: 600 clamp(1.7rem, 2.4vw, 2.45rem)/.95 var(--serif); letter-spacing: -.045em; }
.gallery-card__copy > span { display: -webkit-box; overflow: hidden; margin-top: .65rem; color: rgba(255, 250, 240, .76); font-size: .76rem; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.gallery-card__copy i { display: flex; align-items: center; justify-content: space-between; margin-top: .9rem; padding-top: .65rem; border-top: 1px solid rgba(255, 250, 240, .24); color: rgba(255, 250, 240, .6); font: 500 .51rem var(--mono); font-style: normal; letter-spacing: .12em; text-transform: uppercase; }
.gallery-card__copy i b { color: var(--amber-light); font-size: .9rem; font-weight: 400; }

.gallery-lightbox { width: min(94vw, 72rem); max-height: 90vh; padding: 0; overflow: hidden; border: 1px solid rgba(241, 195, 116, .32); border-radius: 1.8rem .7rem 1.8rem .7rem; color: var(--warm-white); background: #071b12; box-shadow: 0 3rem 10rem rgba(0, 0, 0, .62); }
.gallery-lightbox::backdrop { background: rgba(2, 10, 6, .84); backdrop-filter: blur(10px); }
.gallery-lightbox figure { display: grid; grid-template-columns: minmax(0, 1fr) minmax(16rem, 21rem); margin: 0; }
.gallery-lightbox figure > img { display: block; width: 100%; height: min(78vh, 48rem); object-fit: contain; background: #020a06; }
.gallery-lightbox figcaption { display: flex; min-height: 100%; padding: 4.5rem 2rem 2rem; flex-direction: column; justify-content: flex-end; background: radial-gradient(circle at 100% 0%, rgba(228, 183, 95, .13), transparent 38%), #0b2519; }
.gallery-lightbox figcaption small { margin-bottom: 1rem; color: var(--amber-light); font: .55rem var(--mono); letter-spacing: .14em; }
.gallery-lightbox figcaption h2 { margin: 0; font-size: clamp(2.2rem, 4vw, 3.8rem); line-height: .93; }
.gallery-lightbox figcaption p { margin: 1.2rem 0 0; color: rgba(255, 250, 240, .72); font-size: .82rem; line-height: 1.6; }
.gallery-lightbox__close { z-index: 2; top: 1.15rem; right: 1.15rem; background: rgba(5, 24, 16, .78); backdrop-filter: blur(8px); }
.gallery-lightbox__controls { position: absolute; right: 2rem; bottom: 2rem; display: flex; gap: .6rem; }

@media (max-width: 980px) {
  .journey-section--gallery { min-height: 132svh; }
  .gallery-heading { grid-template-columns: 1fr .7fr; gap: 2rem; margin-right: 1%; margin-left: 1%; }
  .gallery-track { grid-auto-columns: min(45vw, 22rem); padding-right: 1%; padding-left: 1%; scroll-padding-inline: 1%; }
}

@media (max-width: 700px) {
  .journey-section--gallery { min-height: 125svh; padding: 6rem 1.2rem 7rem 3.4rem; }
  .section-inner--gallery { padding: 1.2rem; border-radius: 1.4rem .55rem 1.4rem .55rem; }
  .gallery-heading { grid-template-columns: 1fr; gap: 1rem; margin: 0 0 1.2rem; }
  .gallery-heading h2 { font-size: clamp(3rem, 13vw, 4.6rem); }
  .gallery-heading__side > p { margin-bottom: .9rem; font-size: .78rem; }
  .gallery-track { grid-auto-columns: 82vw; gap: .8rem; margin-right: -1.2rem; padding: .2rem 1.2rem 1rem 0; scroll-padding-inline: 0; }
  .gallery-card, .gallery-card:nth-child(3n + 2), .gallery-card:nth-child(3n) { height: min(58vh, 28rem); margin-top: 0; }
  .gallery-card__copy > span { font-size: .72rem; -webkit-line-clamp: 2; }
  .gallery-lightbox { width: 96vw; max-height: 94vh; overflow-y: auto; border-radius: 1.2rem .45rem 1.2rem .45rem; }
  .gallery-lightbox figure { grid-template-columns: 1fr; }
  .gallery-lightbox figure > img { height: 58vh; }
  .gallery-lightbox figcaption { min-height: auto; padding: 1.35rem 1.25rem 5rem; }
  .gallery-lightbox figcaption h2 { font-size: 2.5rem; }
  .gallery-lightbox__controls { right: auto; bottom: 1.25rem; left: 1.25rem; transform: none; }
}
