@font-face{font-family:'Fraunces';font-style:normal;font-weight:300;font-display:swap;src:url(../fonts/fraunces-300.woff2) format('woff2');}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/fraunces-500.woff2) format('woff2');}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:500;font-display:swap;src:url(../fonts/fraunces-500i.woff2) format('woff2');}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/fraunces-600.woff2) format('woff2');}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/fraunces-700.woff2) format('woff2');}
@font-face{font-family:'Work Sans';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/worksans-400.woff2) format('woff2');}
@font-face{font-family:'Work Sans';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/worksans-500.woff2) format('woff2');}
@font-face{font-family:'Work Sans';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/worksans-600.woff2) format('woff2');}
@font-face{font-family:'Work Sans';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/worksans-700.woff2) format('woff2');}

:root{
  --cream:#FFF3E4;
  --cream-soft:#FBE8D3;
  --cream-line:#EAD3B4;
  --paper:#FFFBF5;
  --choc:#4A2C1D;
  --choc-deep:#2A160D;
  --choc-black:#1C110A;
  --rose:#C97B63;
  --rose-deep:#A85D48;
  --caramel:#D9A15B;
  --ink:#3A2318;
  --ink-soft:#6B4A3A;
  --on-dark:#F3E3D2;
  --on-dark-soft:#CBA98D;
  --shadow-soft:0 18px 40px -18px rgba(74,44,29,.35);
  --shadow-lift:0 26px 60px -20px rgba(42,22,13,.45);
  --radius-lg:28px;
  --radius-md:18px;
  --ff-display:'Fraunces',Georgia,'Times New Roman',serif;
  --ff-body:'Work Sans',-apple-system,'Segoe UI',sans-serif;
}
:root[data-theme="dark"]{
  --cream:#241209;
  --cream-soft:#2E170C;
  --cream-line:#4A2C1D;
  --paper:#1C110A;
  --ink:#F3E3D2;
  --ink-soft:#CBA98D;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --cream:#241209;
    --cream-soft:#2E170C;
    --cream-line:#4A2C1D;
    --paper:#1C110A;
    --ink:#F3E3D2;
    --ink-soft:#CBA98D;
  }
}
:root[data-theme="light"]{
  --cream:#FFF3E4;
  --cream-soft:#FBE8D3;
  --cream-line:#EAD3B4;
  --paper:#FFFBF5;
  --ink:#3A2318;
  --ink-soft:#6B4A3A;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;} }

body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--ff-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{max-width:100%;display:block;}
a{color:inherit;}
.container{max-width:1180px;margin:0 auto;padding:0 clamp(20px,5vw,48px);}
.eyebrow{
  font-family:var(--ff-body);
  font-weight:600;
  font-size:.78rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--rose-deep);
}
:root[data-theme="dark"] .eyebrow{color:var(--caramel);}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .eyebrow{color:var(--caramel);} }
h1,h2,h3{
  font-family:var(--ff-display);
  font-weight:600;
  color:var(--choc);
  margin:0;
  text-wrap:balance;
  letter-spacing:-.01em;
}
:root[data-theme="dark"] h1, :root[data-theme="dark"] h2, :root[data-theme="dark"] h3{color:var(--on-dark);}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) h1, :root:not([data-theme="light"]) h2, :root:not([data-theme="light"]) h3{color:var(--on-dark);} }
p{margin:0;}
.italic-accent{font-style:italic;font-weight:500;color:var(--rose);}
button{font-family:inherit;cursor:pointer;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:15px 30px;border-radius:100px;
  font-family:var(--ff-body);font-weight:600;font-size:.98rem;
  border:1px solid transparent;text-decoration:none;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
  white-space:nowrap;
}
.btn:focus-visible{outline:3px solid var(--rose);outline-offset:3px;}
.btn-primary{background:var(--rose);color:#fff;box-shadow:var(--shadow-soft);}
.btn-primary:hover{background:var(--rose-deep);transform:translateY(-2px);box-shadow:var(--shadow-lift);}
.btn-ghost{background:transparent;color:var(--choc);border:1px solid var(--ink-soft);}
:root[data-theme="dark"] .btn-ghost{color:var(--on-dark);border-color:var(--on-dark-soft);}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .btn-ghost{color:var(--on-dark);border-color:var(--on-dark-soft);} }
.btn-ghost:hover{background:var(--cream-soft);transform:translateY(-2px);}
.btn-dark{background:var(--choc);color:var(--cream);box-shadow:var(--shadow-soft);}
.btn-dark:hover{background:var(--choc-deep);transform:translateY(-2px);}

/* ---------- Header ---------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px clamp(20px,5vw,48px);
  transition:background .35s ease, box-shadow .35s ease, padding .35s ease, backdrop-filter .35s ease;
}
.site-header.scrolled{
  background:rgba(255,251,245,.86);
  backdrop-filter:blur(14px) saturate(1.4);
  box-shadow:0 10px 30px -18px rgba(42,22,13,.3);
  padding-top:12px;padding-bottom:12px;
}
:root[data-theme="dark"] .site-header.scrolled{background:rgba(28,17,10,.86);}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .site-header.scrolled{background:rgba(28,17,10,.86);} }
.logo{
  font-family:var(--ff-display);font-weight:600;font-size:1.45rem;
  color:var(--paper);letter-spacing:-.01em;text-decoration:none;
  display:flex;align-items:baseline;gap:4px;
}
.site-header.scrolled .logo{color:var(--choc);}
:root[data-theme="dark"] .site-header.scrolled .logo{color:var(--on-dark);}
.logo em{font-style:italic;color:var(--rose);font-weight:500;}
.nav-links{display:flex;align-items:center;gap:36px;list-style:none;margin:0;padding:0;}
.nav-links a{
  text-decoration:none;font-weight:500;font-size:.95rem;color:var(--paper);
  opacity:.9;transition:opacity .2s ease;
}
.site-header.scrolled .nav-links a{color:var(--ink);}
:root[data-theme="dark"] .site-header.scrolled .nav-links a{color:var(--on-dark);}
.nav-links a:hover{opacity:1;color:var(--rose);}
.nav-cta{display:flex;align-items:center;gap:18px;}
.nav-toggle{display:none;background:none;border:0;padding:8px;color:var(--paper);}
.site-header.scrolled .nav-toggle{color:var(--choc);}
:root[data-theme="dark"] .site-header.scrolled .nav-toggle{color:var(--on-dark);}

@media (max-width:860px){
  .nav-links{
    position:fixed;inset:0 0 0 auto;height:100vh;width:min(78vw,320px);
    background:var(--choc-deep);flex-direction:column;justify-content:center;
    gap:30px;transform:translateX(100%);transition:transform .4s ease;padding:40px;
  }
  .nav-links.open{transform:translateX(0);}
  .nav-links a{color:var(--on-dark);font-size:1.2rem;}
  .nav-cta .btn-ghost{display:none;}
  .nav-toggle{display:block;}
}

/* ---------- Hero ---------- */
.hero{
  position:relative;min-height:100vh;display:flex;align-items:center;
  overflow:hidden;background:radial-gradient(120% 100% at 20% 0%, #6b4127 0%, var(--choc-deep) 46%, var(--choc-black) 100%);
  padding-top:120px;
}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.34;filter:saturate(1.05);}
.hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(28,17,10,.15) 0%, rgba(28,17,10,.55) 78%, var(--choc-black) 100%);
  pointer-events:none;
}
.hero-inner{
  position:relative;z-index:2;width:100%;
  display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;
}
@media (max-width:900px){ .hero-inner{grid-template-columns:1fr;text-align:center;} }
.hero-text h1{
  font-size:clamp(2.6rem,5.6vw,4.6rem);line-height:1.02;color:#fff;
}
.hero-eyebrow{color:var(--caramel);margin-bottom:18px;display:inline-block;}
.hero-text p.lede{
  margin-top:22px;color:var(--on-dark-soft);font-size:1.14rem;max-width:46ch;line-height:1.65;
}
@media (max-width:900px){ .hero-text p.lede{margin-inline:auto;} }
.hero-cta{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:34px;}
@media (max-width:900px){ .hero-cta{justify-content:center;} }
.hero-trust{display:flex;align-items:center;gap:10px;color:var(--on-dark-soft);font-size:.92rem;margin-top:24px;}
.hero-trust .stars{color:var(--caramel);letter-spacing:2px;}
.hero-visual{position:relative;display:flex;justify-content:center;align-items:center;min-height:380px;}
.hero-scroll-cue{
  position:absolute;bottom:34px;left:50%;transform:translateX(-50%);z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--on-dark-soft);
  font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
}
.scroll-line{width:1px;height:34px;background:linear-gradient(var(--caramel),transparent);animation:scrollcue 2.2s ease-in-out infinite;}
@keyframes scrollcue{0%{opacity:0;transform:scaleY(.4);transform-origin:top;}50%{opacity:1;}100%{opacity:0;transform:scaleY(1);transform-origin:top;}}

/* ---------- Photo frame (product photography) ---------- */
.photo-frame{
  position:relative;border-radius:22px;aspect-ratio:1/1;overflow:hidden;
  background:linear-gradient(155deg, #5A3520 0%, #3A2013 55%, #221007 100%);
  box-shadow: inset 0 -10px 22px rgba(0,0,0,.35);
}
.photo-frame img{width:100%;height:100%;object-fit:cover;object-position:center;}

.hero-photo{width:min(58vw,420px);aspect-ratio:1/1;border-radius:32px;box-shadow:var(--shadow-lift);position:relative;z-index:1;transform:rotate(-4deg);}

/* ---------- Section shell ---------- */
section{padding:min(11vw,120px) 0;}
.section-head{max-width:640px;margin-bottom:56px;}
.section-head h2{font-size:clamp(2rem,3.6vw,2.9rem);margin-top:14px;}
.section-head p{margin-top:16px;color:var(--ink-soft);font-size:1.08rem;line-height:1.7;}
.center{text-align:center;margin-inline:auto;}

/* ---------- About ---------- */
.about{background:var(--paper);}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
@media (max-width:860px){ .about-grid{grid-template-columns:1fr;gap:40px;} }
.about-copy p{color:var(--ink-soft);font-size:1.08rem;line-height:1.8;margin-top:20px;}
.about-quote{
  margin-top:32px;padding:26px 28px;border-left:3px solid var(--rose);
  background:var(--cream-soft);border-radius:0 var(--radius-md) var(--radius-md) 0;
}
.about-quote p{font-family:var(--ff-display);font-style:italic;font-size:1.2rem;color:var(--ink);line-height:1.5;}
.about-quote cite{display:block;margin-top:10px;font-style:normal;font-size:.9rem;color:var(--ink-soft);}
.about-visual{position:relative;}
.about-tiles{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.about-tiles .photo-frame:nth-child(2){margin-top:34px;}
.about-badge{
  position:absolute;bottom:-24px;left:-24px;background:var(--choc);color:var(--cream);
  padding:18px 22px;border-radius:20px;box-shadow:var(--shadow-lift);
  font-family:var(--ff-display);text-align:center;
}
.about-badge b{display:block;font-size:1.8rem;line-height:1;}
.about-badge span{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;font-family:var(--ff-body);color:var(--on-dark-soft);}

/* ---------- Menu ---------- */
.menu{background:var(--cream);}
.menu-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;}
@media (max-width:980px){ .menu-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .menu-grid{grid-template-columns:1fr;} }
.menu-card{
  background:var(--paper);border-radius:var(--radius-lg);padding:16px;
  box-shadow:var(--shadow-soft);transition:transform .35s ease, box-shadow .35s ease;
  display:flex;flex-direction:column;
}
.menu-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lift);}
.menu-card .tile-wrap{border-radius:18px;overflow:hidden;}
.menu-card .tile-wrap .photo-frame{border-radius:18px;transition:transform .6s cubic-bezier(.2,.8,.2,1);}
.menu-card:hover .tile-wrap .photo-frame{transform:scale(1.12) rotate(1.5deg);}
.menu-card-body{padding:20px 8px 8px;display:flex;flex-direction:column;gap:8px;flex:1;}
.menu-card-body h3{font-size:1.28rem;}
.menu-card-body p{color:var(--ink-soft);font-size:.94rem;line-height:1.55;flex:1;}
.menu-card-foot{display:flex;align-items:center;justify-content:space-between;margin-top:14px;}
.price{font-family:var(--ff-display);font-weight:600;font-size:1.3rem;color:var(--rose-deep);}
.add-btn{
  width:42px;height:42px;border-radius:50%;background:var(--choc);color:var(--cream);
  border:none;display:flex;align-items:center;justify-content:center;font-size:1.3rem;
  transition:background .25s ease, transform .25s ease;
}
.add-btn:hover{background:var(--rose);transform:rotate(90deg);}

/* ---------- Stats ---------- */
.stats{
  background:linear-gradient(155deg, var(--choc) 0%, var(--choc-deep) 100%);
  color:var(--on-dark);
}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;text-align:center;}
@media (max-width:760px){ .stats-grid{grid-template-columns:1fr 1fr;} }
.stat b{
  display:block;font-family:var(--ff-display);font-weight:600;
  font-size:clamp(2.4rem,4.6vw,3.4rem);color:var(--caramel);
  font-variant-numeric:tabular-nums;letter-spacing:-.02em;
}
.stat span{display:block;margin-top:8px;font-size:.92rem;color:var(--on-dark-soft);letter-spacing:.02em;}

/* ---------- Testimonials ---------- */
.testimonials{background:var(--cream-soft);overflow:hidden;}
.t-carousel{position:relative;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
}
.t-track{display:flex;gap:24px;width:max-content;animation:t-marquee 42s linear infinite;}
.t-carousel:hover .t-track{animation-play-state:paused;}
@keyframes t-marquee{from{transform:translateX(0);}to{transform:translateX(calc(-50% - 12px));}}
.t-card{
  flex:0 0 340px;background:var(--paper);border-radius:var(--radius-lg);
  padding:30px;box-shadow:var(--shadow-soft);display:flex;flex-direction:column;gap:16px;
}
@media (max-width:620px){ .t-card{flex:0 0 280px;} }
.t-stars{color:var(--caramel);letter-spacing:3px;font-size:1rem;}
.t-card p.quote{font-size:1.02rem;line-height:1.65;color:var(--ink);}
.t-who{display:flex;align-items:center;gap:12px;margin-top:auto;}
.t-avatar{
  width:44px;height:44px;border-radius:50%;flex:none;
  background:linear-gradient(135deg,var(--rose),var(--caramel));
  display:flex;align-items:center;justify-content:center;color:#fff;
  font-family:var(--ff-display);font-weight:600;
}
.t-who b{display:block;font-size:.95rem;color:var(--choc);}
.t-who span{display:block;font-size:.82rem;color:var(--ink-soft);}

/* ---------- Gallery ---------- */
.gallery{background:var(--paper);}
.gallery-grid{
  display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:140px;gap:18px;
}
@media (max-width:760px){ .gallery-grid{grid-template-columns:repeat(2,1fr);} }
.g-item{position:relative;border-radius:20px;overflow:hidden;box-shadow:var(--shadow-soft);cursor:pointer;
  background:linear-gradient(155deg, #5A3520 0%, #3A2013 55%, #221007 100%);}
.g-item.big{grid-column:span 2;grid-row:span 2;}
.g-item img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.8,.2,1);}
.g-item:hover img{transform:scale(1.15) rotate(2deg);}
.g-caption{
  position:absolute;left:0;right:0;bottom:0;padding:16px 18px;z-index:2;
  background:linear-gradient(0deg, rgba(20,10,5,.75), transparent);
  color:#fff;font-size:.88rem;font-weight:500;
  opacity:0;transform:translateY(8px);transition:opacity .3s ease,transform .3s ease;
}
.g-item:hover .g-caption{opacity:1;transform:translateY(0);}

/* ---------- Final CTA ---------- */
.cta-final{
  position:relative;overflow:hidden;
  background:radial-gradient(120% 140% at 80% 20%, #6b4127 0%, var(--choc-deep) 50%, var(--choc-black) 100%);
  color:#fff;text-align:center;
}
.cta-final .container{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:22px;}
.urgency-badge{
  display:inline-flex;align-items:center;gap:8px;background:rgba(201,123,99,.18);
  border:1px solid rgba(201,123,99,.5);color:var(--caramel);
  padding:8px 18px;border-radius:100px;font-size:.85rem;font-weight:600;
}
.urgency-dot{width:8px;height:8px;border-radius:50%;background:#ff6b52;animation:pulse-dot 1.6s ease-in-out infinite;}
@keyframes pulse-dot{0%,100%{box-shadow:0 0 0 0 rgba(255,107,82,.6);}50%{box-shadow:0 0 0 8px rgba(255,107,82,0);}}
.cta-final h2{font-size:clamp(2.2rem,5vw,3.6rem);color:#fff;max-width:16ch;}
.cta-final p.lede{color:var(--on-dark-soft);font-size:1.1rem;max-width:52ch;}

/* ---------- Footer ---------- */
footer{background:var(--choc-black);color:var(--on-dark-soft);padding:80px 0 30px;}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:40px;padding-bottom:50px;border-bottom:1px solid rgba(255,255,255,.1);}
@media (max-width:760px){ .footer-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:480px){ .footer-grid{grid-template-columns:1fr;} }
.footer-brand .logo{color:var(--on-dark);}
.footer-brand p{margin-top:16px;font-size:.92rem;line-height:1.7;max-width:32ch;}
.footer-col h4{
  font-family:var(--ff-body);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--caramel);margin-bottom:16px;font-weight:600;
}
.footer-col p, .footer-col a{display:block;font-size:.92rem;line-height:1.9;text-decoration:none;color:var(--on-dark-soft);transition:color .2s ease;}
.footer-col a:hover{color:var(--caramel);}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:26px;font-size:.82rem;flex-wrap:wrap;gap:12px;}

/* ---------- Floating WhatsApp ---------- */
.wa-float{
  position:fixed;bottom:26px;right:26px;z-index:200;
  width:62px;height:62px;border-radius:50%;background:#25D366;
  display:flex;align-items:center;justify-content:center;box-shadow:0 12px 30px -8px rgba(0,0,0,.5);
  text-decoration:none;transform:translateY(140%);transition:transform .5s cubic-bezier(.2,.8,.2,1);
}
.wa-float.show{transform:translateY(0);}
.wa-float::before{
  content:"";position:absolute;inset:0;border-radius:50%;background:#25D366;
  animation:wa-pulse 2.4s ease-out infinite;
}
@keyframes wa-pulse{0%{transform:scale(1);opacity:.55;}100%{transform:scale(1.9);opacity:0;}}
.wa-float svg{position:relative;z-index:1;width:30px;height:30px;}
.wa-tip{
  position:absolute;right:74px;top:50%;transform:translateY(-50%) translateX(6px);
  background:var(--choc-black);color:#fff;padding:8px 14px;border-radius:10px;font-size:.85rem;
  white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s ease;
}
.wa-float:hover .wa-tip{opacity:1;transform:translateY(-50%) translateX(0);}

/* ---------- Reveal ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1);}
.reveal.in{opacity:1;transform:translateY(0);}
.reveal-stagger.in > *{opacity:1;transform:translateY(0);}
.reveal-stagger > *{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1);}
.reveal-stagger.in > *:nth-child(1){transition-delay:.05s;}
.reveal-stagger.in > *:nth-child(2){transition-delay:.15s;}
.reveal-stagger.in > *:nth-child(3){transition-delay:.25s;}
.reveal-stagger.in > *:nth-child(4){transition-delay:.35s;}

.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}
