@font-face {
  font-family: "Neue Haas Grotesk Display Pro";
  src: url("../assets/font/Neue Haas Grotesk Display Family/NeueHaasGrotDisp-55Roman-Trial.otf") format("opentype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Neue Haas Grotesk Display Pro";
  src: url("../assets/font/Neue Haas Grotesk Display Family/NeueHaasGrotDisp-65Medium-Trial.otf") format("opentype");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: "Neue Haas Grotesk Display Pro";
  src: url("../assets/font/Neue Haas Grotesk Display Family/NeueHaasGrotDisp-75Bold-Trial.otf") format("opentype");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}
:root {
  --green: #3c823a;
  --purple: #6e4b94;
  --ink: #100c08;
  --cream: #f3efdf;
  --cream-2: #ebe3d0;
  --orange: #ef6b43;
  --white: #fffdf7;
  --line: rgba(16, 12, 8, .18);
  --header-h: 74px;
  --radius: 18px;
  --ease: cubic-bezier(.22, 1, .36, 1);
  --sans: "Neue Haas Grotesk Display Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --serif: Georgia, "Times New Roman", serif;
  --script: "Indie Flower", cursive;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: clip; width: 100%; background: var(--cream); }
body {
  margin: 0;
  background: var(--cream);
  background-image:
    linear-gradient(rgba(16, 12, 8, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(16, 12, 8, .035) 1px, transparent 1px);
  background-size: 42px 42px;
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.45;
  width: 100%;
  max-width: 100vw;
  overflow-x: clip;
}
body.menu-open { overflow: hidden; }
.route { width: 100%; overflow-x: clip; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button { color: inherit; }
::selection { background: var(--green); color: var(--white); }
.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 9999;
  padding: 10px 14px;
  background: var(--ink);
  color: var(--white);
  transform: translateY(-150%);
}
.skip-link:focus { transform: none; }

.shell { width: min(1320px, calc(100% - 64px)); margin-inline: auto; }
.micro, .eyebrow {
  margin: 0 0 18px;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.eyebrow { font-size: .78rem; }
.eyebrow--light { color: var(--white); }
.display, h1, h2, h3 { font-weight: 500; letter-spacing: 0; line-height: .96; }
.display, h1, h2, h3 { text-wrap: balance; }
.display { margin: 0; font-size: 6.8rem; }
.display--compact { font-size: 4.8rem; }
h1 { margin: 0; font-size: 7.4rem; }
h2 { font-size: 4.2rem; }
em { font-family: var(--script); font-weight: 400; font-style: normal; color: var(--purple); }
.script {
  margin: 0;
  font-family: var(--script);
  font-style: normal;
  font-weight: 400;
  font-size: 2.45rem;
  line-height: 1.05;
}
.script--green { color: var(--green); }
.script--orange { color: var(--orange); }
.script--purple { color: var(--purple); }
.script:not(.script--green):not(.script--orange):not(.script--purple) { color: var(--purple); }
.lead { font-size: 1.34rem; line-height: 1.5; max-width: 760px; }
.big-copy { font-size: 2.18rem; line-height: 1.2; letter-spacing: 0; }
.small-note { font-size: .9rem; opacity: .72; }

.scroll-progress {
  position: fixed;
  z-index: 3000;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  pointer-events: none;
}
.scroll-progress span { display: block; width: 0; height: 100%; background: var(--green); }

.site-header {
  position: fixed;
  z-index: 2000;
  top: 12px;
  left: 50%;
  right: auto;
  width: min(1060px, calc(100% - 44px));
  height: 66px;
  display: grid;
  grid-template-columns: 158px 1fr auto;
  align-items: center;
  gap: 18px;
  padding: 0 14px 0 20px;
  background: linear-gradient(115deg, rgba(255, 255, 255, .44), rgba(243, 239, 223, .28));
  border: 1px solid rgba(255, 255, 255, .72);
  border-radius: 999px;
  backdrop-filter: blur(30px) saturate(1.7);
  -webkit-backdrop-filter: blur(30px) saturate(1.7);
  box-shadow: 0 14px 46px rgba(16, 12, 8, .11), inset 0 1px 0 rgba(255, 255, 255, .78), inset 0 -1px 0 rgba(255, 255, 255, .18);
  transform: translateX(-50%);
  transition: width .45s var(--ease), height .45s var(--ease), background .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.site-header::before {
  content: "";
  position: absolute;
  inset: 1px 12% auto;
  height: 1px;
  background: rgba(255, 255, 255, .82);
  pointer-events: none;
}
.site-header.is-scrolled {
  width: min(1320px, calc(100% - 36px));
  height: var(--header-h);
  background: linear-gradient(115deg, rgba(255, 255, 255, .58), rgba(243, 239, 223, .42));
  border-color: rgba(255, 255, 255, .72);
  box-shadow: 0 18px 58px rgba(16, 12, 8, .15), inset 0 1px 0 rgba(255, 255, 255, .82);
}
.brand { width: 145px; display: flex; align-items: center; }
.brand img { width: 100%; height: auto; }
.desktop-nav { justify-self: center; display: flex; align-items: center; gap: clamp(13px, 1.55vw, 28px); }
.desktop-nav a {
  position: relative;
  font-size: .77rem;
  font-weight: 700;
  letter-spacing: .04em;
  white-space: nowrap;
}
.desktop-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -7px;
  width: 100%;
  height: 2px;
  background: var(--green);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .3s var(--ease);
}
.desktop-nav a:hover::after, .desktop-nav a.is-active::after { transform: scaleX(1); transform-origin: left; }
.header-actions { display: flex; gap: 10px; align-items: center; }
.language-switch {
  display: inline-grid;
  place-items: center;
  min-width: 38px;
  height: 38px;
  border: 1px solid rgba(16, 12, 8, .2);
  border-radius: 50%;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .06em;
  transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.language-switch:hover { background: var(--purple); color: var(--white); border-color: var(--purple); }
.header-michelin {
  display: grid;
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 50%;
  transition: background .25s ease, transform .25s ease;
}
.header-michelin img { width: 32px; height: 32px; object-fit: contain; }
.header-michelin:hover { background: rgba(255,255,255,.54); transform: translateY(-1px); }
.menu-toggle {
  display: none;
  width: 44px;
  height: 44px;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.menu-toggle span { display: block; width: 22px; height: 1.5px; background: var(--ink); margin: 6px auto; transition: .25s; }
.menu-open .menu-toggle span:first-child { transform: translateY(3.75px) rotate(45deg); }
.menu-open .menu-toggle span:last-child { transform: translateY(-3.75px) rotate(-45deg); }

.pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 20px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: .77rem;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
  transition: transform .3s var(--ease), background .3s ease, color .3s ease;
}
.pill:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(16, 12, 8, .16); }
.pill--dark { background: var(--ink); color: var(--white); }
.pill--dark:hover { background: var(--green); color: var(--white); }
.pill--cream { background: var(--cream); color: var(--ink); }
.pill--cream:hover { background: var(--white); }
.pill--outline { background: transparent; color: var(--ink); border-color: rgba(16,12,8,.36); }
.pill--outline:hover { background: var(--white); border-color: var(--white); }
.text-link {
  display: inline-block;
  padding-bottom: 4px;
  border-bottom: 1px solid currentColor;
  font-size: .88rem;
  font-weight: 700;
}
.text-link--light { color: var(--white); }

.mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 1500;
  background: var(--purple);
  color: var(--white);
  opacity: 0;
  visibility: hidden;
  transition: opacity .35s ease, visibility .35s;
}
.menu-open .mobile-menu { opacity: 1; visibility: visible; }
.mobile-menu__inner {
  min-height: 100%;
  padding: 120px 28px 40px;
  display: flex;
  flex-direction: column;
}
.mobile-menu nav { display: grid; gap: 2px; }
.mobile-menu nav a { font-size: 3.8rem; letter-spacing: 0; line-height: 1.08; }
.mobile-menu__meta { margin-top: auto; display: flex; flex-wrap: wrap; gap: 20px; font-size: .9rem; }

.route { animation: routeIn .55s var(--ease) both; }
@keyframes routeIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

.hero { position: relative; min-height: 100svh; overflow: hidden; }
.hero--home { width: 100%; max-width: none; margin: 0; }
.hero__media, .photo-manifesto__media, .location-banner__media, .menu-hero__image {
  position: absolute;
  inset: -6%;
  width: 112%;
  height: 112%;
  object-fit: cover;
  will-change: transform;
}
.hero__media { object-position: 50% 45%; }
.hero__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(16,12,8,.66), rgba(16,12,8,.12) 62%, rgba(16,12,8,.28)); }
.hero__content {
  position: relative;
  z-index: 2;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: calc(var(--header-h) + 80px) 0 78px;
  color: var(--white);
}
.hero__content h1 { max-width: 1150px; }
.hero--home em, .menu-hero em, .page-hero--green em, .split-story__panel--purple em { color: var(--orange); }
.hero__script { margin: 24px 0 30px; max-width: 650px; }
.hero__actions { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.hero__doodle {
  position: absolute;
  z-index: 3;
  right: 4vw;
  bottom: 7vh;
  width: clamp(110px, 13vw, 220px);
  transform: rotate(9deg);
  filter: drop-shadow(0 14px 32px rgba(0,0,0,.16));
}

.intro-section { position: relative; padding: 150px 0 130px; }
.intro-grid { display: grid; grid-template-columns: .7fr 2fr; gap: 70px; }
.intro-grid .lead { margin: 36px 0 26px; }
.intro-leaf {
  position: absolute;
  left: -110px;
  bottom: -90px;
  width: 290px;
  opacity: .16;
  transform: rotate(-16deg);
  pointer-events: none;
}

.ticker { overflow: hidden; border-block: 1px solid rgba(255,255,255,.22); background: var(--green); color: var(--white); }
.ticker__track {
  width: max-content;
  display: flex;
  align-items: center;
  animation: ticker 30s linear infinite;
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: .08em;
  white-space: nowrap;
  will-change: transform;
}
.ticker__group {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: clamp(18px, 2.4vw, 34px);
  padding: 13px clamp(18px, 2.4vw, 34px) 13px 0;
}
.ticker__icon {
  width: 34px;
  height: 34px;
  object-fit: contain;
  flex: 0 0 auto;
  filter: drop-shadow(0 3px 0 rgba(16, 12, 8, .13));
}
@keyframes ticker { to { transform: translate3d(-50%, 0, 0); } }

.split-story { display: grid; grid-template-columns: 1fr 1fr; min-height: 760px; }
.split-story__image { margin: 0; overflow: hidden; }
.split-story__image img { width: 100%; height: 100%; object-fit: cover; }
.split-story__panel { padding: clamp(60px, 8vw, 130px); display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.split-story__panel--purple { background: var(--purple); color: var(--white); }
.split-story__panel p:not(.micro):not(.script) { max-width: 520px; margin: 28px 0; font-size: 1.07rem; }
.split-story__panel .script { margin-top: 22px; }

.photo-manifesto { position: relative; min-height: 88svh; overflow: hidden; }
.photo-manifesto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 25%, rgba(16,12,8,.58)); }
.photo-manifesto__copy { position: absolute; z-index: 2; left: max(32px, calc((100vw - 1320px)/2)); bottom: 70px; color: var(--white); max-width: 900px; }
.photo-manifesto__copy h2 { margin: 16px 0 0; }

.explore { padding: 140px 0 160px; }
.section-heading { display: grid; grid-template-columns: .65fr 2fr; gap: 40px; align-items: end; margin-bottom: 65px; }
.feature-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.feature-card { position: relative; min-height: 570px; overflow: hidden; border-radius: var(--radius); color: var(--white); }
.feature-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.feature-card:hover img { transform: scale(1.055); }
.feature-card__veil { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(16,12,8,.05), rgba(16,12,8,.75)); }
.feature-card--orange::after { content: ""; position: absolute; inset: 0; background: rgba(239,107,67,.2); mix-blend-mode: multiply; }
.feature-card__label, .feature-card strong { position: absolute; z-index: 2; left: 28px; right: 28px; }
.feature-card__label { top: 26px; font-size: .74rem; text-transform: uppercase; letter-spacing: .14em; }
.feature-card strong { bottom: 28px; font-size: 1.25rem; font-weight: 500; }

.guide-section { padding: 0 0 90px; }
.guide-card { display: grid; grid-template-columns: 76px 1fr; gap: 26px; padding: 30px 34px; border-radius: var(--radius); background: var(--white); align-items: start; }
.guide-card img { width: 76px; height: auto; aspect-ratio: 1; object-fit: contain; }
.guide-card h2 { margin: 0 0 14px; font-size: 2.25rem; line-height: 1.02; }
.guide-card p:not(.micro) { max-width: 760px; margin: 0 0 14px; }

.about-preview { padding: 140px 0; display: grid; grid-template-columns: .9fr 1.1fr; gap: 9vw; align-items: center; }
.portrait-frame { margin: 0; height: 720px; overflow: hidden; border-radius: 45% 45% 18px 18px; }
.portrait-frame img { width: 100%; height: 100%; object-fit: cover; }
.about-preview__copy p:not(.micro) { max-width: 620px; margin: 30px 0; }

.location-banner { position: relative; min-height: 800px; overflow: hidden; display: grid; place-items: end center; padding: 0 30px 60px; }
.location-banner::after { content: ""; position: absolute; inset: 0; background: rgba(16,12,8,.25); }
.location-card { position: relative; z-index: 2; width: min(990px, 100%); padding: 46px; background: var(--green); color: var(--white); border-radius: var(--radius); }
.location-card h2 { margin: 0 0 32px; font-size: 4.3rem; }
.location-card__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr; gap: 26px; border-top: 1px solid rgba(255,255,255,.28); padding-top: 24px; }
.location-card__grid p { margin: 0; }
.location-card__actions { margin-top: 30px; display: flex; gap: 20px; align-items: center; }

.page-hero { padding-top: calc(var(--header-h) + 70px); }
.page-hero--split { min-height: 92svh; display: grid; grid-template-columns: 1fr 1fr; }
.page-hero__copy { padding: 11vw 6vw 8vw max(32px, calc((100vw - 1320px)/2)); align-self: center; }
.page-hero__copy h1 { font-size: 6.9rem; }
.page-hero__copy .lead { margin-top: 34px; }
.page-hero__image { margin: 0; overflow: hidden; min-height: 620px; }
.page-hero__image img { width: 100%; height: 100%; object-fit: cover; }
.page-hero--wine .page-hero__image { order: 0; }
.page-hero--wine .page-hero__copy { order: 1; padding-left: 6vw; padding-right: max(32px, calc((100vw - 1320px)/2)); }
.page-hero--color { min-height: 74svh; display: flex; align-items: center; position: relative; overflow: hidden; }
.page-hero--green { background: var(--green); color: var(--white); }
.page-hero--green .page-hero__copy { max-width: 1050px; }
.booking-doodle { position: absolute; right: 7vw; bottom: 30vw; width: min(36vw, 520px); opacity: .4; transform: rotate(12deg); }
.contact-inline { display: flex; gap: 26px; flex-wrap: wrap; margin-top: 28px; font-weight: 700; }

.story-columns { padding: 150px 0; display: grid; grid-template-columns: .7fr 1.8fr; gap: 80px; }
.story-columns__body p:last-child { max-width: 720px; }
.principles { padding: 0 0 90px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.principle { min-height: 190px; padding: 26px; border: 1px solid var(--line); border-radius: var(--radius); display: flex; flex-direction: column; justify-content: flex-end; }
.principle h2 { margin: 0 0 16px; font-size: 2.65rem; }
.principle p { margin: 0; }
.principle:nth-child(1) { background: var(--purple); color: var(--white); }
.principle:nth-child(2) { background: var(--green); color: var(--white); }
.principle:nth-child(3) { background: var(--orange); }
.about-photo-rail { width: 100%; overflow: hidden; padding: 18px 0 22px; }
.about-photo-rail__track { display: flex; width: max-content; animation: aboutRail 34s linear infinite; will-change: transform; }
.about-photo-rail__group { display: flex; flex-shrink: 0; gap: 14px; padding-right: 14px; }
.about-photo-rail figure { width: clamp(240px, 22vw, 370px); aspect-ratio: 4 / 5; margin: 0; overflow: hidden; border-radius: var(--radius); }
.about-photo-rail img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.about-photo-rail figure:hover img { transform: scale(1.035); }
.about-photo-rail:hover .about-photo-rail__track { animation-play-state: paused; }
@keyframes aboutRail { from { transform: translate3d(-50%, 0, 0); } to { transform: translate3d(0, 0, 0); } }
.press-note { padding: 150px 0; max-width: 1050px; }
.press-note blockquote { margin: 0 0 24px; font-family: var(--script); font-style: normal; font-weight: 400; font-size: 3.6rem; line-height: 1.08; color: var(--purple); }
.press-note__source { max-width: 600px; opacity: .66; }

.booking-wrap { padding: 110px 0 150px; display: grid; grid-template-columns: .75fr 1.25fr; gap: 60px; align-items: start; }
.booking-notes { position: sticky; top: 130px; }
.booking-notes h2 { margin: 0 0 26px; }
.booking-widget { min-height: 800px; background: var(--white); border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); }
.booking-widget iframe { width: 100%; min-height: 800px; border: 0; overflow: auto; }

.menu-hero { min-height: 83svh; position: relative; overflow: hidden; color: var(--white); }
.menu-hero__overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(16,12,8,.66), rgba(16,12,8,.15)); }
.menu-hero__copy { position: relative; z-index: 2; padding-top: 30vh; }
.menu-hero__copy h1 { font-size: 7.2rem; }
.menu-hero__copy p:last-child { max-width: 580px; font-size: 1.1rem; }
.pdf-section { padding: 120px 0 150px; }
.pdf-section--purple { width: 100%; max-width: none; padding-inline: max(32px, calc((100vw - 1320px)/2)); background: var(--purple); color: var(--white); }
.pdf-section__head { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 42px; }
.pdf-actions { display: flex; gap: 20px; align-items: center; }
.pdf-section--link .pdf-section__head { align-items: center; margin-bottom: 0; }
.pdf-section--link .pdf-disclaimer { max-width: 650px; margin: 22px 0 0; }
.pdf-frame { width: 100%; height: min(78vh, 980px); background: #d9d4c7; border-radius: var(--radius); overflow: hidden; }
.pdf-frame object { width: 100%; height: 100%; border: 0; }
.pdf-disclaimer { font-size: .84rem; opacity: .65; }
.wine-intro { padding: 120px 0; max-width: 1050px; }
.wine-intro .display { margin: 24px 0; }
.wine-intro p:last-child { max-width: 700px; font-size: 1.12rem; }

.gallery-head { padding-top: calc(var(--header-h) + 120px); padding-bottom: 90px; }
.gallery-head h1 { font-size: 7.8rem; }
.gallery-head .lead { margin-top: 30px; }
.gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 360px; gap: 12px; padding-bottom: 150px; }
.gallery-item { position: relative; border: 0; padding: 0; overflow: hidden; border-radius: 12px; cursor: zoom-in; background: var(--cream-2); }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .65s var(--ease); }
.gallery-item:hover img { transform: scale(1.045); }
.gallery-item--wide { grid-column: span 2; }
.gallery-item--tall { grid-row: span 2; }

.contact-hero { padding-top: calc(var(--header-h) + 120px); padding-bottom: 100px; display: grid; grid-template-columns: 1.2fr .8fr; gap: 9vw; }
.contact-hero h1 { font-size: 7rem; }
.contact-details { display: grid; grid-template-columns: repeat(2, 1fr); gap: 26px; margin-top: 70px; }
.contact-details p { margin: 0; }
.contact-details span { display: block; margin-bottom: 8px; font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.contact-hours { align-self: end; padding: 34px; background: var(--green); color: var(--white); border-radius: var(--radius); }
.hours-row { display: flex; justify-content: space-between; gap: 20px; padding: 15px 0; border-bottom: 1px solid rgba(255,255,255,.25); }
.hours-row:last-child { border-bottom: 0; }
.hours-row.is-off { opacity: .55; }
.hours-row--highlight { color: #d9b8ff; }
.map-section { height: 560px; background: var(--cream-2); }
.map-section iframe { width: 100%; height: 100%; border: 0; filter: grayscale(1) contrast(.9); transition: filter .35s ease; }
.map-section:hover iframe { filter: grayscale(.2); }
.external-embed { position: relative; min-height: inherit; height: 100%; }
.external-embed iframe { display: none; }
.external-embed.is-loaded iframe { display: block; }
.external-embed.is-loaded .embed-placeholder { display: none; }
.embed-placeholder { min-height: inherit; height: 100%; display: grid; place-items: center; padding: 38px; text-align: center; background: var(--cream-2); }
.embed-placeholder__inner { max-width: 520px; }
.embed-placeholder h3 { margin: 0 0 12px; font-size: 2rem; }
.embed-placeholder p { margin: 0 0 22px; }
.contact-form-section { padding: 130px 0 150px; display: grid; grid-template-columns: .8fr 1.2fr; gap: 8vw; align-items: start; }
.contact-form-section h2 { margin: 18px 0 26px; }
.contact-form { display: grid; gap: 20px; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.contact-form label:not(.consent):not(.honeypot) { display: grid; gap: 8px; font-size: .78rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.contact-form input, .contact-form textarea { width: 100%; border: 0; border-bottom: 1px solid var(--ink); background: transparent; padding: 12px 0; border-radius: 0; outline: none; }
.contact-form input:focus, .contact-form textarea:focus { border-bottom-color: var(--green); box-shadow: 0 2px 0 var(--green); }
.consent { display: flex; align-items: flex-start; gap: 10px; font-size: .82rem; }
.consent input { width: auto; margin-top: 4px; }
.honeypot { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.form-footer { display: flex; gap: 20px; align-items: center; }
.form-status { font-size: .88rem; }
.contact-form .pill:disabled { cursor: wait; opacity: .62; transform: none; }
.contact-form.is-success .form-status { color: var(--green); font-weight: 800; }
.contact-form.is-error .form-status { color: #9d2716; font-weight: 700; }

.lightbox { position: fixed; inset: 0; z-index: 4000; background: rgba(16,12,8,.94); display: grid; place-items: center; padding: 50px; opacity: 0; visibility: hidden; transition: .3s ease; }
.lightbox.is-open { opacity: 1; visibility: visible; }
.lightbox img { max-width: min(1200px, 92vw); max-height: 86vh; object-fit: contain; }
.lightbox__close { position: absolute; top: 20px; right: 26px; border: 0; background: transparent; color: white; font-size: 3rem; cursor: pointer; }

.home-newsletter {
  position: relative;
  overflow: hidden;
  padding: 105px 0;
  background: var(--green);
  color: var(--white);
  isolation: isolate;
}
.home-newsletter::after {
  content: "";
  position: absolute;
  z-index: -1;
  right: -40px;
  bottom: -120px;
  width: min(36vw, 470px);
  aspect-ratio: 1;
  background: url('../assets/illustrations/ill-11.png') center / contain no-repeat;
  opacity: .34;
  animation: spinSlow 38s linear infinite;
}
.home-newsletter__inner { display: grid; grid-template-columns: .9fr 1.1fr; gap: 9vw; align-items: end; }
.home-newsletter h2 { margin: 14px 0 0; max-width: 720px; }
.home-newsletter em { color: var(--orange); }
.home-newsletter__form { max-width: 650px; justify-self: end; width: 100%; }
.home-newsletter__form > p:first-child { margin: 0 0 22px; max-width: 560px; font-size: 1.08rem; }

.newsletter-form { width: 100%; }
.newsletter-form #mc_embed_shell,
.newsletter-form #mc_embed_signup,
.newsletter-form #mc_embed_signup_scroll { width: 100%; }
.newsletter-form #mc_embed_signup_scroll { display: grid; gap: 12px; }
.newsletter-form h2 {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.1;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.newsletter-form .indicates-required,
.newsletter-form .helper_text {
  display: block;
  font-size: .72rem;
  line-height: 1.45;
  opacity: .72;
}
.newsletter-form .asterisk { color: var(--orange); }
.newsletter-form .mc-field-group { display: grid; gap: 8px; }
.newsletter-form .mc-field-group label {
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.newsletter-form input[type="email"] {
  width: 100%;
  min-width: 0;
  height: 52px;
  padding: 0 18px;
  border: 1px solid rgba(16,12,8,.26);
  border-radius: 999px;
  background: rgba(255,253,247,.8);
  color: var(--ink);
  outline: none;
  transition: background .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.newsletter-form input[type="email"]:focus { background: var(--white); border-color: var(--purple); box-shadow: 0 0 0 3px rgba(110,75,148,.16); }
.newsletter-form input[type="submit"].button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  width: 100%;
  padding: 0 22px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: var(--ink);
  color: var(--white);
  font-size: .77rem;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform .3s var(--ease), background .3s ease, opacity .25s ease;
}
.newsletter-form input[type="submit"].button:hover { background: var(--green); transform: translateY(-2px); }
.newsletter-form input[type="submit"].button:disabled { cursor: wait; opacity: .62; transform: none; }
.newsletter-form .optionalParent .foot { display: grid; gap: 10px; }
.newsletter-form .mailchimp-referral { margin: 2px 0 0; opacity: .55; }
.newsletter-form .mailchimp-referral span { display: inline-block; background: transparent; border-radius: 4px; }
.newsletter-form .refferal_badge {
  width: 160px;
  height: auto;
  display: flex;
  padding: 2px 0;
  justify-content: center;
  align-items: center;
}
.newsletter-form__status { min-height: 1.4em; margin: 0; font-size: .78rem; font-weight: 800; letter-spacing: .04em; }
.newsletter-form.is-success .newsletter-form__status { color: currentColor; }
.newsletter-form.is-success .mc-field-group,
.newsletter-form.is-success .indicates-required,
.newsletter-form.is-success .optionalParent,
.newsletter-form.is-success #mce-responses { display: none; }
.newsletter-form.is-error .newsletter-form__status { color: #9d2716; }
.home-newsletter .newsletter-form input[type="submit"].button { background: var(--white); color: var(--ink); }
.home-newsletter .newsletter-form input[type="submit"].button:hover { background: var(--orange); color: var(--ink); }
.home-newsletter .newsletter-form input[type="email"] { background: rgba(255,253,247,.96); }
.home-newsletter .newsletter-form__status { color: var(--white); }
.home-newsletter .newsletter-form.is-error .newsletter-form__status { color: #ffd8c9; }

.site-footer { background: var(--cream-2); overflow: hidden; padding-top: 80px; }
.footer-grid { display: grid; grid-template-columns: 1.1fr 1.2fr 1fr 1fr; gap: 45px; padding-bottom: 70px; }
.footer-grid p { margin-top: 0; }
.footer-note { max-width: 280px; font-size: .85rem; opacity: .7; }
.footer-note--morsi { line-height: 1.5; opacity: .82; }
.inline-lightbox {
  padding: 0;
  color: inherit;
  border: 0;
  border-bottom: 1px solid currentColor;
  background: transparent;
  font: inherit;
  font-weight: 800;
  line-height: inherit;
  cursor: pointer;
}
.inline-lightbox:hover { color: var(--purple); }
.footer-socials { display: flex; gap: 14px; margin-top: 22px; font-size: .85rem; }
.footer-cta { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.footer-newsletter {
  display: grid;
  grid-template-columns: 1fr minmax(420px, .85fr);
  gap: 70px;
  align-items: center;
  padding-top: 46px;
  padding-bottom: 46px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.footer-newsletter__copy { display: flex; align-items: baseline; gap: 22px; flex-wrap: wrap; }
.footer-newsletter__copy .micro { margin: 0; }
.footer-newsletter__copy .script { font-size: 2rem; }
.footer-newsletter .newsletter-form__status { margin-bottom: 0; }
.footer-logo-mark {
  width: min(980px, calc(100% - 64px));
  margin: 0 auto;
  padding: 6px 0 34px;
}
.footer-logo-mark img {
  width: 100%;
  max-height: 220px;
  object-fit: contain;
  filter: drop-shadow(0 18px 35px rgba(16, 12, 8, .08));
}
.footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 28px 0; border-top: 1px solid var(--line); font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; }
.footer-legal { display: flex; align-items: center; justify-content: center; gap: 16px; flex-wrap: wrap; }
.footer-legal button { padding: 0; border: 0; background: none; color: inherit; text-transform: inherit; letter-spacing: inherit; cursor: pointer; }
.footer-bottom a:hover, .footer-legal button:hover { color: var(--purple); }

.policy-page { padding: calc(var(--header-h) + 110px) 0 130px; }
.policy-page__head { max-width: 940px; margin-bottom: 70px; }
.policy-page__head h1 { margin-bottom: 28px; }
.policy-document { width: min(100%, 940px); }
.policy-document h2 { margin: 58px 0 18px; font-size: 2.2rem; }
.policy-document h3 { margin: 32px 0 12px; font-size: 1.35rem; }
.policy-document p, .policy-document li { max-width: 820px; font-size: 1.05rem; line-height: 1.7; }
.policy-document li + li { margin-top: 8px; }
.policy-service { margin: 24px 0; padding: 24px; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,255,255,.4); }

.cookie-banner { position: fixed; z-index: 5000; right: 18px; bottom: 18px; width: min(470px, calc(100% - 36px)); padding: 24px; border: 1px solid rgba(255,255,255,.68); border-radius: var(--radius); background: rgba(243,239,223,.82); color: var(--ink); box-shadow: 0 22px 70px rgba(16,12,8,.2); backdrop-filter: blur(24px) saturate(1.5); -webkit-backdrop-filter: blur(24px) saturate(1.5); transform: translateY(24px); opacity: 0; visibility: hidden; transition: .35s var(--ease); }
.cookie-banner.is-visible { transform: none; opacity: 1; visibility: visible; }
.cookie-banner h2 { margin: 0 0 10px; font-size: 2rem; }
.cookie-banner p { margin: 0 0 18px; font-size: .95rem; }
.cookie-banner__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.cookie-banner__actions .pill { flex: 1 1 150px; }
.cookie-banner__link { display: inline-block; margin-top: 16px; font-size: .78rem; text-decoration: underline; text-underline-offset: 3px; }

.image-zoom { overflow: hidden; }
.image-zoom img { transition: transform 1s var(--ease); }
.image-zoom:hover img { transform: scale(1.025); }
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.is-visible { opacity: 1; transform: none; }
.floaty { animation: floaty 6s ease-in-out infinite; }
.floaty-slow { animation: floaty 9s ease-in-out infinite; }
@keyframes floaty { 50% { transform: translateY(-12px) rotate(4deg); } }

@media (max-width: 1120px) {
  .site-header { grid-template-columns: 150px 1fr auto; }
  .desktop-nav { display: none; }
  .menu-toggle { display: block; }
  .header-book { display: inline-flex; }
  .principles { grid-template-columns: repeat(3, 1fr); }
  .feature-cards { grid-template-columns: 1fr 1fr; }
  .feature-card:last-child { grid-column: span 2; min-height: 440px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-newsletter { grid-template-columns: .8fr 1.2fr; gap: 38px; }
}

@media (max-width: 820px) {
  :root { --header-h: 62px; }
  .shell { width: min(100% - 32px, 1320px); }
  .display { font-size: 4.8rem; }
  .display--compact { font-size: 3.8rem; }
  h1, .page-hero__copy h1, .menu-hero__copy h1, .gallery-head h1, .contact-hero h1 { font-size: 5.2rem; }
  h2, .guide-card h2, .location-card h2 { font-size: 3.25rem; }
  .script { font-size: 2rem; }
  .lead { font-size: 1.18rem; }
  .big-copy { font-size: 1.7rem; }
  .mobile-menu nav a { font-size: 3.15rem; }
  .site-header,
  .site-header.is-scrolled {
    display: flex;
    justify-content: space-between;
    top: 8px;
    left: 50%;
    right: auto;
    width: calc(100% - 16px);
    height: var(--header-h);
    padding: 0 8px 0 14px;
    gap: 8px;
    transform: translateX(-50%);
  }
  .brand { width: 118px; }
  .header-actions { flex: 0 0 auto; gap: 4px; min-width: 0; margin-left: auto; }
  .language-switch { width: 35px; min-width: 35px; height: 35px; font-size: .64rem; }
  .header-michelin { flex-basis: 34px; width: 34px; height: 34px; }
  .header-michelin img { width: 29px; height: 29px; }
  .menu-toggle { width: 40px; height: 40px; flex: 0 0 40px; padding: 0; }
  .header-book { display: none; }
  .hero__content { padding-bottom: 50px; }
  .hero__doodle { right: -26px; bottom: 25vh; width: 130px; }
  .intro-section { padding: 95px 0 80px; }
  .intro-grid, .section-heading, .story-columns, .booking-wrap, .contact-hero, .contact-form-section, .home-newsletter__inner { grid-template-columns: 1fr; gap: 34px; }
  .intro-leaf { width: 210px; left: -95px; }
  .split-story { grid-template-columns: 1fr; min-height: 0; }
  .split-story__image { min-height: 620px; }
  .split-story__panel { padding: 70px 24px; }
  .photo-manifesto { min-height: 70svh; }
  .photo-manifesto__copy { left: 18px; right: 18px; bottom: 38px; }
  .explore { padding: 90px 0 100px; }
  .feature-cards { grid-template-columns: 1fr; }
  .feature-card, .feature-card:last-child { grid-column: auto; min-height: 520px; }
  .guide-card { grid-template-columns: 64px 1fr; gap: 18px; padding: 22px; }
  .guide-card img { width: 64px; }
  .guide-card h2 { font-size: 1.75rem; }
  .about-preview { padding: 90px 0; grid-template-columns: 1fr; gap: 50px; }
  .portrait-frame { height: 560px; }
  .location-banner { min-height: 760px; padding: 0 16px 24px; }
  .location-card { padding: 28px; }
  .location-card__grid { grid-template-columns: 1fr; }
  .page-hero--split { grid-template-columns: 1fr; }
  .page-hero__copy, .page-hero--wine .page-hero__copy { padding: 100px 18px 70px; order: 0; }
  .page-hero__image, .page-hero--wine .page-hero__image { min-height: 70svh; order: 1; }
  .page-hero--color { min-height: 72svh; }
  .booking-doodle { width: 58vw; right: -12vw; bottom: 100vw; }
  .story-columns { padding: 90px 0; }
  .principles { grid-template-columns: 1fr; padding-bottom: 90px; }
  .principle { min-height: 170px; }
  .about-photo-rail figure { width: min(72vw, 330px); }
  .press-note { padding: 90px 0; }
  .booking-wrap { padding: 70px 0 100px; }
  .booking-notes { position: static; }
  .pdf-section__head { align-items: flex-start; flex-direction: column; }
  .pdf-frame { height: 70vh; }
  .gallery-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 300px; }
  .contact-details { grid-template-columns: 1fr; }
  .field-row { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .home-newsletter { padding: 80px 0; }
  .home-newsletter__form { justify-self: start; }
  .footer-newsletter { grid-template-columns: 1fr; gap: 24px; }
}

@media (max-width: 560px) {
  h1, .page-hero__copy h1, .menu-hero__copy h1, .gallery-head h1, .contact-hero h1 { font-size: 3.55rem; }
  .hero--home h1 { font-size: 3.1rem; line-height: .96; }
  .hero__script { max-width: 82%; }
  .display { font-size: 3.35rem; }
  .display--compact { font-size: 2.75rem; }
  h2, .guide-card h2, .location-card h2 { font-size: 2.5rem; }
  .script { font-size: 1.58rem; }
  .lead { font-size: 1.08rem; }
  .big-copy { font-size: 1.42rem; }
  .mobile-menu nav a { font-size: 2.55rem; }
  .hero__shade { background: linear-gradient(180deg, rgba(16,12,8,.15), rgba(16,12,8,.76)); }
  .hero__content { justify-content: flex-end; }
  .photo-manifesto__media, .location-banner__media { inset: 0; width: 100%; height: 100%; }
  .feature-card { min-height: 460px; }
  .portrait-frame { height: 500px; }
  .page-hero__image { min-height: 58svh; }
  .menu-hero__copy { padding-top: 26vh; }
  .gallery-grid { grid-template-columns: 1fr; grid-auto-rows: 440px; }
  .gallery-item--wide, .gallery-item--tall { grid-column: auto; grid-row: auto; }
  .contact-hero { padding-top: 120px; }
  .map-section { height: 420px; }
  .footer-grid { grid-template-columns: 1fr; }
  .newsletter-form input[type="submit"].button { width: 100%; }
  .footer-newsletter { padding-top: 38px; padding-bottom: 38px; }
  .footer-newsletter__copy { display: block; }
  .footer-newsletter__copy .script { margin-top: 8px; }
  .footer-logo-mark { width: calc(100% - 32px); padding-bottom: 24px; }
  .footer-bottom { flex-direction: column; }
  .footer-legal { flex-direction: column; gap: 9px; }
  .pdf-actions, .location-card__actions { flex-wrap: wrap; }
  .about-preview::after { top: auto; right: -34px; bottom: 3%; }
  .cookie-banner__actions .pill { flex-basis: 100%; width: 100%; }
  .lightbox { padding: 24px; }
}

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

/* =========================================================
   2026 PLAYFUL MOTION UPDATE — supplied Tinello assets
   ========================================================= */

/* Photo slideshow */
.hero-slideshow { position:absolute; inset:0; width:100%; height:100%; overflow:hidden; }
.hero-slide {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  opacity:0; transform:scale(1.045) rotate(.2deg);
  transition:opacity 1.15s ease, transform 6.8s ease;
  will-change:opacity,transform;
}
.hero-slide.is-active { opacity:1; transform:scale(1) rotate(0deg); }
.hero--home .hero__shade { z-index:1; background:linear-gradient(90deg,rgba(16,12,8,.62),rgba(16,12,8,.08) 66%,rgba(16,12,8,.26)); }
.hero--home .hero__content { z-index:4; }
.slideshow-dots {
  position:absolute; z-index:6; right:clamp(22px,4vw,64px); bottom:32px;
  display:flex; gap:8px; align-items:center;
}
.slideshow-dots button { width:9px; height:9px; padding:0; border:1px solid rgba(255,255,255,.85); border-radius:50%; background:transparent; cursor:pointer; transition:.3s ease; }
.slideshow-dots button.is-active { width:28px; border-radius:99px; background:var(--white); }

/* Big playful circles on colored/photo sections */
.hero-orbits { position:absolute; inset:0; z-index:3; pointer-events:none; overflow:hidden; }
.orbit { position:absolute; width:clamp(86px,11vw,170px); aspect-ratio:1; object-fit:contain; filter:drop-shadow(0 12px 26px rgba(16,12,8,.16)); }
.orbit--a { right:4vw; top:20%; animation:orbitFloat 8s ease-in-out infinite, spinSlow 24s linear infinite; }
.orbit--b { right:16vw; bottom:8%; width:clamp(70px,8vw,120px); animation:orbitFloatB 10s ease-in-out infinite, spinReverse 19s linear infinite; }
@keyframes orbitFloat { 0%,100%{translate:0 0} 50%{translate:-12px 22px} }
@keyframes orbitFloatB { 0%,100%{translate:0 0} 50%{translate:18px -16px} }
@keyframes spinSlow { to{rotate:360deg} }
@keyframes spinReverse { to{rotate:-360deg} }

/* White/cream areas: black-and-white supplied illustrations become ambient texture */
.intro-section,.explore,.guide-section,.about-preview,.wine-intro,.booking-wrap,.contact-hero,.contact-form-section,.gallery-head {
  position:relative; isolation:isolate;
}
.intro-section::before,.explore::before,.guide-section::before,.about-preview::after,.wine-intro::before,.booking-wrap::before,.contact-form-section::before,.gallery-head::before {
  content:""; position:absolute; z-index:-1; pointer-events:none; background-repeat:no-repeat; background-size:contain; opacity:.095;
}
.intro-section::before { width:330px; height:330px; right:-115px; top:42px; background-image:url('../assets/illustrations/ill-1.webp'); animation:ambientDrift 13s ease-in-out infinite; }
.explore::before { width:290px; height:290px; left:-95px; top:90px; background-image:url('../assets/illustrations/ill-3.webp'); animation:spinReverse 42s linear infinite; }
.guide-section::before { width:260px; height:300px; right:-45px; bottom:-35px; background-image:url('../assets/illustrations/ill-5.webp'); transform:rotate(14deg); animation:ambientDrift 16s ease-in-out infinite reverse; }
.about-preview::after { width:260px; height:260px; right:-80px; top:4%; background-image:url('../assets/illustrations/ill-1.webp'); animation:spinSlow 50s linear infinite; }
.wine-intro::before { width:230px; height:230px; left:-70px; top:-30px; background-image:url('../assets/illustrations/ill-3.webp'); animation:ambientDrift 13s ease-in-out infinite; }
.booking-wrap::before { width:250px; height:250px; right:-55px; top:20px; background-image:url('../assets/illustrations/ill-5.webp'); animation:spinReverse 46s linear infinite; }
.contact-form-section::before { width:240px; height:240px; right:3%; top:10%; background-image:url('../assets/illustrations/ill-3.webp'); animation:ambientDrift 12s ease-in-out infinite; }
.gallery-head::before { width:260px; height:260px; right:6%; top:-20px; background-image:url('../assets/illustrations/ill-1.webp'); animation:spinSlow 50s linear infinite; }
@keyframes ambientDrift { 0%,100%{transform:translate3d(0,0,0) rotate(-4deg)} 50%{transform:translate3d(14px,-20px,0) rotate(5deg)} }
.paper-illustrations { position:absolute; inset:0; pointer-events:none; overflow:hidden; z-index:-1; }
.paper-illustrations img { position:absolute; width:clamp(100px,13vw,210px); opacity:.12; mix-blend-mode:multiply; }
.paper-illustrations img:nth-child(1){left:-25px;bottom:-35px;animation:spinReverse 38s linear infinite;}
.paper-illustrations img:nth-child(2){right:12%;top:12px;animation:ambientDrift 14s ease-in-out infinite;}
.paper-illustrations img:nth-child(3){right:-60px;bottom:15%;animation:spinSlow 44s linear infinite;}

/* Colored sections: moving circular illustrations */
.split-story__panel--purple,.page-hero--green,.pdf-section--purple { position:relative; overflow:hidden; isolation:isolate; }
.split-story__panel--purple::after,.page-hero--green::after,.pdf-section--purple::after {
  content:""; position:absolute; z-index:-1; width:clamp(130px,17vw,260px); aspect-ratio:1; background:url('../assets/illustrations/ill-7.webp') center/contain no-repeat; opacity:.95; pointer-events:none; animation:spinSlow 26s linear infinite, bob 7s ease-in-out infinite;
}
.split-story__panel--purple::after { right:-55px; top:8%; }
.page-hero--green::after { right:6%; bottom:-30px; background-image:url('../assets/illustrations/ill-9.webp'); }
.pdf-section--purple::after { right:-70px; top:18%; background-image:url('../assets/illustrations/ill-7.webp'); opacity:.55; }
@keyframes bob { 0%,100%{translate:0 0} 50%{translate:0 -16px} }

/* Extra movement for text without making it unreadable */
.reveal.is-visible .display,.reveal.is-visible h1,.reveal.is-visible h2 { animation:titleSettle .9s var(--ease) both; }
@keyframes titleSettle { from{letter-spacing:0; transform:translateY(12px)} to{letter-spacing:0; transform:none} }
.script { display:inline-block; animation:scriptFloat 5.5s ease-in-out infinite; }
@keyframes scriptFloat { 0%,100%{transform:rotate(-1deg) translateY(0)} 50%{transform:rotate(.8deg) translateY(-3px)} }
.feature-card img,.portrait-frame img,.split-story__image img { transition:transform .9s var(--ease),filter .45s ease; }
.feature-card:hover img,.portrait-frame:hover img,.split-story__image:hover img { transform:scale(1.045) rotate(.25deg); }

/* A more playful moving texture behind the location card */
.location-banner::before { content:""; position:absolute; z-index:2; left:4vw; top:9%; width:110px; aspect-ratio:1; background:url('../assets/illustrations/ill-9.webp') center/contain no-repeat; animation:spinReverse 22s linear infinite, orbitFloat 9s ease-in-out infinite; }
.location-banner .location-card { z-index:4; }

/* Custom magazine-style PDF reader */
.pdf-frame { display:none !important; }
.magazine-reader { margin-top:34px; border:1px solid rgba(16,12,8,.18); border-radius:28px; padding:18px; background:var(--cream-2); box-shadow:0 26px 80px rgba(16,12,8,.10); }
.magazine-reader--light { background:rgba(255,253,247,.98); color:var(--ink); }
.reader-stage { position:relative; min-height:min(76vh,850px); display:grid; place-items:center; overflow:hidden; border-radius:20px; background:var(--ink); padding:24px 74px; }
.reader-stage::before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 50% 25%,rgba(255,255,255,.06),transparent 48%); pointer-events:none; }
.reader-sheet { position:relative; margin:0; height:min(70vh,790px); max-width:100%; aspect-ratio:595.5/842.25; background:#fff; box-shadow:0 28px 75px rgba(0,0,0,.38); transition:transform .38s var(--ease),opacity .25s ease; }
.reader-sheet.is-changing { transform:translateX(15px) rotate(.4deg) scale(.985); opacity:.25; }
.reader-sheet img { width:100%; height:100%; object-fit:contain; background:#fff; }
.reader-nav { position:absolute; z-index:3; top:50%; transform:translateY(-50%); width:48px; height:48px; border:1px solid rgba(255,255,255,.35); border-radius:50%; background:rgba(255,255,255,.10); color:#fff; cursor:pointer; backdrop-filter:blur(8px); font-size:1.3rem; transition:.3s ease; }
.reader-nav:hover { background:var(--green); color:var(--white); border-color:var(--green); transform:translateY(-50%) scale(1.08); }
.reader-nav--prev { left:18px; }.reader-nav--next { right:18px; }
.reader-nav:disabled { opacity:.25; cursor:not-allowed; }
.reader-toolbar { display:grid; grid-template-columns:auto 1fr auto auto; gap:18px; align-items:center; padding:14px 6px 0; font-size:.82rem; font-weight:700; }
.reader-toolbar button,.reader-toolbar a { border:0; padding:8px 0; background:none; color:inherit; font:inherit; cursor:pointer; border-bottom:1px solid currentColor; }
.reader-counter { font-variant-numeric:tabular-nums; min-width:62px; }
.reader-progress { height:4px; overflow:hidden; border-radius:99px; background:rgba(16,12,8,.13); }
.reader-progress i { display:block; width:0; height:100%; background:var(--green); transition:width .35s var(--ease); }
.magazine-reader:fullscreen { background:var(--ink); padding:2vh 2vw; border:0; border-radius:0; }
.magazine-reader:fullscreen .reader-stage { height:88vh; min-height:0; }
.magazine-reader:fullscreen .reader-sheet { height:84vh; }
.magazine-reader:fullscreen .reader-toolbar { color:var(--white); }

/* Make gallery feel less static */
.gallery-item:nth-child(3n+1){transform:rotate(-.7deg)}
.gallery-item:nth-child(3n+2){transform:translateY(18px) rotate(.5deg)}
.gallery-item:nth-child(3n){transform:rotate(.35deg)}
.gallery-item:hover { transform:translateY(-7px) rotate(0deg) !important; z-index:2; }

@media (max-width: 780px) {
  .orbit--a { right:-30px; top:19%; width:110px; }
  .orbit--b { right:24%; bottom:9%; width:78px; }
  .slideshow-dots { right:20px; bottom:18px; }
  .paper-illustrations img { opacity:.08; }
  .reader-stage { min-height:0; padding:18px 48px; }
  .reader-sheet { height:auto; width:100%; aspect-ratio:595.5/842.25; }
  .reader-nav { width:38px; height:38px; }
  .reader-nav--prev{left:7px}.reader-nav--next{right:7px}
  .reader-toolbar { grid-template-columns:auto 1fr; gap:10px 14px; }
  .reader-toolbar button,.reader-toolbar a { justify-self:start; }
  .intro-section::before,.explore::before,.guide-section::before,.about-preview::after,.wine-intro::before,.booking-wrap::before,.contact-form-section::before,.gallery-head::before { width:150px; height:150px; opacity:.07; }
  .about-preview::after { top:auto; right:-34px; bottom:3%; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-slide,.orbit,.paper-illustrations img,.split-story__panel--purple::after,.page-hero--green::after,.pdf-section--purple::after,.location-banner::before,.script,.about-photo-rail__track { animation:none !important; transition:none !important; }
}
.manifesto-slideshow { position:absolute; inset:0; overflow:hidden; }
.manifesto-slideshow .hero-slide { object-position:center; }
.photo-manifesto .photo-manifesto__copy { z-index:4; }
.photo-manifesto::after { z-index:2; }
