:root {
  --cream: #f9f5ef;
  --paper: #fffdf9;
  --blue: #5caee0;
  --blue-dark: #397fa8;
  --gold: #b0915c;
  --ink: #2d2925;
  --muted: #746e67;
  --line: rgba(45, 41, 37, .16);
  --white: #fff;
  --dark: #211e1b;
  --serif: "Playfair Display", Georgia, serif;
  --sans: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --header-h: 82px;
  --side: clamp(20px, 5vw, 88px);
  --ease: cubic-bezier(.2,.7,.2,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--header-h); }
body {
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
address { font-style: normal; }
::selection { background: var(--blue); color: #fff; }

.skip-link {
  position: fixed; left: 16px; top: 12px; z-index: 9999;
  padding: 10px 14px; background: var(--dark); color: #fff;
  transform: translateY(-160%); transition: transform .2s;
}
.skip-link:focus { transform: translateY(0); }

.site-header {
  position: fixed; inset: 0 0 auto 0; height: var(--header-h); z-index: 1000;
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  gap: 26px; padding: 10px var(--side);
  background: rgba(249,245,239,.9); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(45,41,37,.08);
  transition: height .3s var(--ease), box-shadow .3s var(--ease);
}
.site-header.is-scrolled { height: 70px; box-shadow: 0 8px 28px rgba(45,41,37,.06); }
.brand { justify-self: start; width: 170px; display: flex; align-items: center; }
.brand img { width: 100%; height: auto; }
.desktop-nav { display: flex; gap: clamp(20px, 2.8vw, 42px); align-items: center; }
.desktop-nav a, .header-order {
  position: relative; font-size: 12px; font-weight: 600; letter-spacing: .035em;
}
.desktop-nav a::after {
  content:""; position:absolute; left:0; right:100%; bottom:-7px; height:1px; background:var(--ink);
  transition:right .3s var(--ease);
}
.desktop-nav a:hover::after, .desktop-nav a:focus-visible::after { right:0; }
.header-order {
  justify-self: end; padding: 11px 16px; border: 1px solid var(--ink); border-radius: 999px;
  transition: background .25s, color .25s;
}
.header-order:hover, .header-order:focus-visible { background: var(--ink); color: var(--cream); }
.menu-toggle { display:none; background:none; border:0; padding:12px; margin-right:-12px; cursor:pointer; }
.menu-toggle span { display:block; width:25px; height:1.5px; background:var(--ink); margin:6px 0; transition:.25s; }
.mobile-menu { display:none; }

.hero {
  min-height: 100svh; padding-top: var(--header-h);
  display: grid; grid-template-columns: minmax(360px, .86fr) minmax(0, 1.14fr);
  background: var(--cream);
}
.hero-copy {
  padding: clamp(55px, 8vh, 110px) var(--side) 48px;
  display:flex; flex-direction:column; justify-content:center; align-items:flex-start;
  position:relative;
}
.eyebrow {
  margin:0 0 22px; font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase;
  color: var(--gold);
}
.hero h1, .display, .section-title-row h2, .featured-head h2, .feature-copy h3, .essence h2, .local h2, .contact h2 {
  font-family: var(--serif); font-weight:500; letter-spacing:-.045em; line-height:.9;
}
.hero h1 { margin:0; font-size:clamp(74px, 9vw, 150px); }
em { font-weight:500; color:var(--blue-dark); }
.hero-lead { max-width:470px; margin:34px 0 0; font-size:clamp(17px,1.3vw,21px); line-height:1.55; color:#4e4944; }
.hero-actions { display:flex; gap:28px; align-items:center; margin-top:36px; flex-wrap:wrap; }
.button {
  display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 22px;
  border-radius:999px; font-size:13px; font-weight:700; letter-spacing:.015em;
  transition: transform .25s var(--ease), background .25s, color .25s;
}
.button:hover { transform: translateY(-2px); }
.button-primary { background:var(--ink); color:var(--cream); }
.button-primary:hover, .button-primary:focus-visible { background:var(--blue-dark); }
.text-link { display:inline-flex; gap:8px; align-items:center; padding:8px 0; font-size:13px; font-weight:700; border-bottom:1px solid currentColor; }
.text-link span { transition: transform .25s var(--ease); }
.text-link:hover span { transform: translate(3px,-3px); }
.hero-address { margin:auto 0 0; padding-top:44px; font-size:12px; line-height:1.7; color:var(--muted); }
.hero-media { position:relative; overflow:hidden; background:#8b664c; min-height:calc(100svh - var(--header-h)); }
.hero-media picture, .hero-media img { width:100%; height:100%; }
.hero-media img { object-fit:cover; object-position:center 28%; transform:scale(1.015); }
.hero-media::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.04),transparent 60%); pointer-events:none; }
.hero-stamp {
  position:absolute; right:26px; bottom:26px; z-index:2; width:92px; aspect-ratio:1; border-radius:50%;
  display:grid; place-items:center; text-align:center; background:rgba(249,245,239,.9); color:var(--ink);
  font-size:10px; font-weight:700; line-height:1.35; letter-spacing:.11em; text-transform:uppercase;
}

.section-pad { padding: clamp(80px, 11vw, 170px) var(--side); }
.intro { border-bottom:1px solid var(--line); }
.intro-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(280px,.55fr); gap:clamp(50px,10vw,170px); align-items:end; }
.display { margin:0; font-size:clamp(60px, 8.2vw, 138px); }
.lead { margin:0 0 10px; max-width:520px; font-size:clamp(18px,1.5vw,24px); line-height:1.55; color:#4f4944; }

.flavors { background:var(--paper); }
.section-title-row { display:grid; grid-template-columns:1fr minmax(280px,420px); gap:60px; align-items:end; }
.section-title-row h2 { margin:0; font-size:clamp(52px,6vw,96px); }
.section-title-row > p { margin:0; color:var(--muted); max-width:390px; line-height:1.7; }
.flavor-filters { display:flex; flex-wrap:wrap; gap:8px; margin:58px 0 38px; }
.filter {
  border:1px solid var(--line); background:transparent; color:var(--ink); border-radius:999px;
  padding:10px 15px; cursor:pointer; font-size:12px; font-weight:600; transition:.2s;
}
.filter:hover, .filter.is-active { background:var(--ink); color:#fff; border-color:var(--ink); }
.flavor-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--line); }
.flavor-item {
  min-height:85px; border-bottom:1px solid var(--line); padding:20px 20px 18px 0;
  display:flex; flex-direction:column; justify-content:center; transition:opacity .2s;
}
.flavor-item:nth-child(3n+2), .flavor-item:nth-child(3n+3) { padding-left:28px; border-left:1px solid var(--line); }
.flavor-item h3 { margin:0 0 4px; font-family:var(--serif); font-size:22px; font-weight:500; letter-spacing:-.02em; }
.flavor-item p { margin:0; font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.07em; }
.flavor-item[hidden] { display:none; }
.flavor-note { margin-top:36px; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.flavor-note p { margin:0; font-family:var(--serif); font-size:24px; }

.featured { background:var(--cream); }
.featured-head h2 { margin:0; font-size:clamp(58px,7.5vw,120px); }
.feature-block { min-height:800px; display:grid; grid-template-columns:1.08fr .92fr; }
.feature-media { overflow:hidden; min-height:720px; }
.feature-media picture, .feature-media img { width:100%; height:100%; }
.feature-media img { object-fit:cover; object-position:center 26%; transition:transform 1s var(--ease); }
.feature-block:hover .feature-media img { transform:scale(1.025); }
.feature-copy { padding:70px clamp(35px,7vw,120px); display:flex; flex-direction:column; justify-content:center; align-items:flex-start; }
.feature-dark { background:var(--dark); color:var(--cream); }
.feature-dark .eyebrow { color:#d7bd8d; }
.feature-dark .feature-copy h3 em { color:#8ccaf0; }
.feature-light { background:#e7f3fa; color:var(--ink); }
.feature-reverse .feature-media { order:2; }
.feature-reverse .feature-copy { order:1; }
.feature-number { margin:0 0 auto; font-size:12px; color:currentColor; opacity:.55; }
.feature-copy h3 { margin:0 0 28px; font-size:clamp(64px,7vw,120px); }
.feature-copy > p:not(.feature-number):not(.eyebrow) { margin:0; max-width:440px; font-size:18px; line-height:1.7; opacity:.84; }
.availability { margin-top:28px; padding-top:12px; border-top:1px solid currentColor; opacity:.6; font-size:11px; text-transform:uppercase; letter-spacing:.12em; }

.essence { position:relative; display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(50px,8vw,130px); align-items:center; overflow:hidden; background:var(--paper); }
.essence-copy { position:relative; z-index:2; }
.essence h2 { margin:0; font-size:clamp(62px,7.5vw,116px); }
.essence-copy > p:last-child { max-width:520px; margin:38px 0 0; font-size:18px; line-height:1.8; color:#58524c; }
.essence-media { position:relative; z-index:2; }
.essence-media img { width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center; }
.essence-word { position:absolute; left:-2vw; bottom:-11vw; margin:0; font-family:var(--serif); font-size:31vw; line-height:1; letter-spacing:-.08em; color:rgba(92,174,224,.075); z-index:1; pointer-events:none; }

.experience { background:var(--cream); }
.experience-grid { margin-top:68px; display:grid; grid-template-columns:1.25fr .75fr; gap:clamp(18px,3vw,42px); align-items:stretch; }
.experience-main { margin:0; height:min(74vw,930px); overflow:hidden; }
.experience-main img { width:100%; height:100%; object-fit:cover; object-position:center 25%; }
.experience-quote { background:var(--blue); color:#fff; padding:clamp(34px,5vw,70px); display:flex; flex-direction:column; justify-content:space-between; }
.sun-mark { font-size:42px; color:#f0c35c; }
.experience-quote blockquote { margin:auto 0; font-family:var(--serif); font-size:clamp(42px,5vw,74px); line-height:1.02; letter-spacing:-.04em; }
.experience-quote p { max-width:360px; margin:35px 0 0; font-size:14px; line-height:1.7; opacity:.88; }

.local { background:var(--dark); color:var(--cream); }
.local-info { display:grid; grid-template-columns:1fr .72fr; gap:clamp(70px,12vw,180px); }
.local h2 { margin:0 0 36px; font-size:clamp(58px,7vw,108px); }
.local h2 em { color:#91cdef; }
.local address { margin:0 0 34px; font-size:16px; line-height:1.8; color:rgba(249,245,239,.72); }
.local .button-primary { background:var(--cream); color:var(--ink); }
.local .button-primary:hover { background:var(--blue); color:#fff; }
.hours dl { margin:0; }
.hours dl div { display:flex; justify-content:space-between; gap:20px; padding:13px 0; border-bottom:1px solid rgba(249,245,239,.15); }
.hours dt, .hours dd { margin:0; font-size:13px; }
.hours dd { color:rgba(249,245,239,.7); text-align:right; }
.map-wrap { height:460px; filter:saturate(.72) contrast(.96); }
.map-wrap iframe { display:block; width:100%; height:100%; border:0; }

.contact { background:var(--blue); color:#fff; }
.contact-inner { max-width:1200px; margin:0 auto; text-align:center; }
.contact .eyebrow { color:#fff; opacity:.7; }
.contact h2 { margin:0; font-size:clamp(60px,8.5vw,132px); }
.contact h2 em { color:#fff2d4; }
.big-whatsapp { margin:58px auto 0; max-width:860px; padding:22px 0; border-top:1px solid rgba(255,255,255,.5); border-bottom:1px solid rgba(255,255,255,.5); display:flex; justify-content:space-between; align-items:center; font-family:var(--serif); font-size:clamp(28px,4vw,52px); }
.big-whatsapp span:last-child { transition:transform .25s var(--ease); }
.big-whatsapp:hover span:last-child { transform:translate(6px,-6px); }
.instagram-link { display:inline-block; margin-top:30px; font-size:13px; font-weight:600; border-bottom:1px solid rgba(255,255,255,.6); padding-bottom:5px; }

.site-footer { background:var(--cream); padding:55px var(--side) 26px; display:grid; grid-template-columns:1.3fr 1fr 1fr .6fr; gap:42px; border-top:1px solid var(--line); position:relative; }
.footer-brand img { width:160px; height:auto; }
.footer-title { margin:0 0 12px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.13em; color:var(--gold); }
.footer-block p:not(.footer-title), .footer-block a { margin:0; display:block; font-size:12px; line-height:1.8; color:var(--muted); }
.footer-nav { display:flex; flex-direction:column; gap:8px; font-size:12px; }
.copyright { grid-column:1/-1; margin:38px 0 0; padding-top:18px; border-top:1px solid var(--line); font-size:10px; color:var(--muted); }

.whatsapp-float {
  position:fixed; right:max(16px,env(safe-area-inset-right)); bottom:max(16px,env(safe-area-inset-bottom)); z-index:900;
  width:50px; height:50px; border-radius:50%; display:grid; place-items:center; background:var(--ink); color:#fff;
  box-shadow:0 7px 24px rgba(0,0,0,.17); transition:transform .25s var(--ease), background .25s;
}
.whatsapp-float:hover { transform:translateY(-3px); background:#1f9657; }
.whatsapp-float svg { width:24px; height:24px; fill:currentColor; }

.reveal { opacity:0; transform:translateY(18px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.reveal-delay { transition-delay:.12s; }
.reveal.is-visible { opacity:1; transform:none; }

@media (max-width: 1050px) {
  .desktop-nav { gap:19px; }
  .header-order { font-size:11px; }
  .hero { grid-template-columns:.92fr 1.08fr; }
  .flavor-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .flavor-item:nth-child(n) { padding-left:0; border-left:0; }
  .flavor-item:nth-child(even) { padding-left:24px; border-left:1px solid var(--line); }
}

@media (max-width: 820px) {
  :root { --header-h:72px; --side:22px; }
  .site-header, .site-header.is-scrolled { height:var(--header-h); grid-template-columns:1fr auto; }
  .brand { width:142px; }
  .desktop-nav, .header-order { display:none; }
  .menu-toggle { display:block; justify-self:end; z-index:1002; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform:translateY(3.7px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform:translateY(-3.7px) rotate(-45deg); }
  .mobile-menu {
    display:flex; position:fixed; inset:0; z-index:999; padding:calc(var(--header-h) + 42px) var(--side) 34px;
    flex-direction:column; justify-content:space-between; background:var(--cream);
    opacity:0; visibility:hidden; transform:translateY(-12px); transition:.28s var(--ease);
  }
  .mobile-menu.is-open { opacity:1; visibility:visible; transform:none; }
  .mobile-menu nav { display:flex; flex-direction:column; }
  .mobile-menu nav a { font-family:var(--serif); font-size:clamp(42px,12vw,66px); line-height:1.1; padding:7px 0; letter-spacing:-.04em; }
  .mobile-menu-bottom { display:grid; gap:18px; }
  .mobile-menu-bottom .button { justify-self:start; }
  .mobile-menu-bottom p { margin:0; font-size:11px; color:var(--muted); }

  .hero { min-height:auto; display:flex; flex-direction:column; padding-top:var(--header-h); }
  .hero-media { order:1; height:61svh; min-height:490px; }
  .hero-media img { object-position:center 23%; }
  .hero-copy { order:2; padding:45px var(--side) 54px; }
  .hero h1 { font-size:clamp(72px,22vw,116px); }
  .hero-lead { margin-top:24px; }
  .hero-actions { margin-top:28px; gap:18px; }
  .hero-address { display:none; }
  .hero-stamp { width:76px; right:16px; bottom:16px; font-size:8px; }

  .section-pad { padding:82px var(--side); }
  .intro-grid, .section-title-row, .essence, .local-info { grid-template-columns:1fr; gap:38px; }
  .display { font-size:clamp(58px,17vw,90px); }
  .lead { font-size:18px; }
  .section-title-row { align-items:start; }
  .section-title-row h2 { font-size:clamp(52px,15vw,82px); }
  .section-title-row > p { max-width:500px; }
  .flavor-filters { margin:40px -4px 27px; overflow-x:auto; flex-wrap:nowrap; padding:4px 4px 10px; scrollbar-width:none; }
  .flavor-filters::-webkit-scrollbar { display:none; }
  .filter { white-space:nowrap; }
  .flavor-list { grid-template-columns:1fr; }
  .flavor-item:nth-child(n) { min-height:72px; padding:15px 0; border-left:0; }
  .flavor-item h3 { font-size:21px; }
  .flavor-note { align-items:flex-start; flex-direction:column; }

  .featured-head h2 { font-size:clamp(58px,16vw,88px); }
  .feature-block, .feature-block.feature-reverse { min-height:0; display:flex; flex-direction:column; }
  .feature-media, .feature-reverse .feature-media { order:1; height:69svh; min-height:520px; }
  .feature-copy, .feature-reverse .feature-copy { order:2; min-height:520px; padding:42px var(--side) 58px; }
  .feature-number { margin-bottom:70px; }
  .feature-copy h3 { font-size:clamp(64px,18vw,95px); }
  .feature-copy > p:not(.feature-number):not(.eyebrow) { font-size:16px; }

  .essence { padding-top:90px; }
  .essence-copy { order:1; }
  .essence-media { order:2; margin-top:12px; }
  .essence h2 { font-size:clamp(62px,18vw,94px); }
  .essence-word { bottom:-2vw; font-size:41vw; }

  .experience-grid { grid-template-columns:1fr; margin-top:45px; }
  .experience-main { height:72svh; min-height:580px; }
  .experience-quote { min-height:520px; }
  .experience-quote blockquote { font-size:clamp(48px,13vw,70px); }

  .local h2 { font-size:clamp(58px,16vw,88px); }
  .hours { padding-top:18px; }
  .map-wrap { height:390px; }
  .contact h2 { font-size:clamp(58px,16vw,92px); }
  .big-whatsapp { margin-top:43px; font-size:28px; }

  .site-footer { grid-template-columns:1fr 1fr; padding-top:45px; gap:34px 26px; }
  .footer-brand, .copyright { grid-column:1/-1; }
  .footer-nav { align-items:flex-start; }
  .whatsapp-float { width:48px; height:48px; }
}

@media (max-width: 480px) {
  .hero-media { height:59svh; min-height:450px; }
  .hero-copy { padding-top:39px; }
  .button { min-height:46px; padding-inline:19px; }
  .hero-actions .text-link { font-size:12px; }
  .section-pad { padding-top:74px; padding-bottom:74px; }
  .feature-media, .feature-reverse .feature-media { height:63svh; min-height:470px; }
  .experience-main { min-height:520px; }
  .site-footer { grid-template-columns:1fr; }
  .footer-brand, .copyright { grid-column:auto; }
}

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

/* Narrow-screen hardening */
.essence-copy, .essence-media, .feature-copy, .feature-media { min-width: 0; }
@media (max-width: 820px) {
  .feature-copy h3 { font-size: clamp(54px, 16vw, 90px); overflow-wrap: normal; }
  .essence-copy > p:last-child { width: 100%; }
}
