@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400;1,700&family=DM+Serif+Display:ital@0;1&family=Lora:ital,wght@0,400;0,500;1,400&display=swap');

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:150px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{-webkit-tap-highlight-color:transparent}
button,input,textarea{font:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0}
select{font:inherit;border-radius:0}
img{max-width:100%;height:auto}
:root{
  --cream:#faf6ef;--warm:#f5ede0;--paper:#fffdf7;
  --dusty-rose:#d4a0a0;--rose:#b87878;--rose-dark:#7a4a4a;
  --sage:#8fa882;--sage-light:#d6e4d1;--sage-dark:#4a6145;
  --caramel:#c49a6c;--caramel-light:#f0dfc0;--caramel-dark:#7a5a30;
  --lavender:#b8a8c8;--lavender-light:#e8e0f0;
  --text:#3a2a1a;--muted:#8a6a5a;--light-muted:#c4a898;
  --border:#e0d0c0;
}
body{font-family:'Lora',serif;background:var(--cream);color:var(--text);overflow-x:hidden}

/* TEXTURE OVERLAY */
body::before{content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");pointer-events:none;z-index:0;opacity:.4}

/* NAV */
nav{background:var(--paper);border-bottom:1px solid var(--border);padding:.9rem 2.5rem;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;position:sticky;top:0;z-index:100}
.logo{justify-self:start}
.nav-center{justify-self:center}
.nav-btn{justify-self:end}
nav::after{content:'';display:block;position:absolute;bottom:-4px;left:0;right:0;height:3px;background:repeating-linear-gradient(90deg,var(--dusty-rose) 0,var(--dusty-rose) 8px,transparent 8px,transparent 14px)}
.logo{text-align:left}
.logo-main{font-family:'DM Serif Display',serif;font-size:1.5rem;color:var(--rose-dark);letter-spacing:.02em;line-height:1}
.logo-sub{font-family:'Lora',serif;font-size:.7rem;color:var(--muted);letter-spacing:.18em;text-transform:uppercase;margin-top:.15rem}
.nav-center{display:flex;gap:2rem;list-style:none}
.nav-center a{text-decoration:none;font-family:'Lora',serif;font-size:1rem;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;transition:.2s;padding-bottom:2px;border-bottom:1px solid transparent}
.nav-center a:hover{color:var(--rose-dark);border-bottom-color:var(--dusty-rose)}
.nav-btn{background:transparent;border:1.5px solid var(--rose);color:var(--rose-dark);padding:.5rem 1.3rem;font-family:'Lora',serif;font-size:1rem;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:.2s;text-decoration:none;display:inline-block}
.nav-btn:hover{background:var(--rose);color:white}
.nav-center-btn{display:none}

/* HAMBURGER (hidden on desktop) */
.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:38px;height:38px;background:transparent;border:1px solid var(--border);padding:0;cursor:pointer;justify-self:end}
.nav-toggle span{display:block;width:20px;height:2px;background:var(--rose-dark);margin:0 auto;transition:.25s ease}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

@media(max-width:860px){
  nav{grid-template-columns:1fr auto}
  .nav-toggle{display:flex}
  .nav-btn-desktop{display:none}
  .nav-center{position:absolute;top:100%;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--border);flex-direction:column;gap:0;max-height:0;overflow:hidden;transition:max-height .3s ease;justify-self:auto}
  .nav-center.open{max-height:400px}
  .nav-center li{width:100%;text-align:center}
  .nav-center a{display:block;padding:1rem 1.5rem;border-bottom:1px solid var(--border)}
  .nav-center-btn{display:block;padding:1.2rem 1.5rem}
  .nav-center-btn .nav-btn{width:100%}
}

/* HERO */
.hero{background:var(--warm);padding:5rem 2.5rem 4rem;text-align:center;position:relative;border-bottom:1px solid var(--border);overflow:hidden}
.hero-ornament{font-size:.9rem;letter-spacing:.3em;text-transform:uppercase;color:var(--light-muted);margin-bottom:1.2rem;font-family:'Lora',serif}
.hero-ornament span{color:var(--dusty-rose);margin:0 .5rem}
.hero h1{font-family:'DM Serif Display',serif;font-size:clamp(3rem,7vw,5.5rem);color:var(--rose-dark);line-height:1.05;margin-bottom:.6rem}
.hero h1 em{font-style:italic;color:var(--caramel-dark)}
.hero-rule{display:flex;align-items:center;gap:1rem;justify-content:center;margin:1.2rem 0}
.hero-rule::before,.hero-rule::after{content:'';flex:1;max-width:80px;height:1px;background:var(--border)}
.hero-rule-inner{color:var(--dusty-rose);font-size:.85rem;letter-spacing:.2em}
.hero-sub{font-family:'Lora',serif;font-size:1.05rem;color:var(--muted);max-width:480px;margin:0 auto 2rem;line-height:1.8;font-style:italic}
.hero-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.btn-filled{background:var(--rose-dark);color:var(--cream);padding:.75rem 2.2rem;border:none;font-family:'Lora',serif;font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:.2s;text-decoration:none;display:inline-block}
.btn-filled:hover{background:var(--rose);letter-spacing:.14em}
.btn-outline{background:transparent;color:var(--rose-dark);padding:.75rem 2.2rem;border:1.5px solid var(--rose);font-family:'Lora',serif;font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:.2s;text-decoration:none;display:inline-block}
.btn-outline:hover{background:var(--warm)}
.hero-tags{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;margin-top:2.5rem}
.hero-tag{background:var(--paper);border:1px solid var(--border);padding:.5rem 1.2rem;font-size:.78rem;color:var(--muted);letter-spacing:.08em;font-family:'Lora',serif}

/* DIVIDER */
.ornament-divider{text-align:center;padding:1.5rem;color:var(--border);font-size:1.2rem;letter-spacing:.6rem;background:var(--paper);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}

/* MENU */
.menu-sec{background:var(--paper);padding:4rem 2.5rem}
.sec-header{text-align:center;margin-bottom:3rem}
.sec-eyebrow{font-family:'Lora',serif;font-size:.72rem;letter-spacing:.25em;text-transform:uppercase;color:var(--dusty-rose);margin-bottom:.8rem}
.sec-title{font-family:'DM Serif Display',serif;font-size:clamp(1.8rem,4vw,2.8rem);color:var(--rose-dark);margin-bottom:.6rem;line-height:1.15}
.sec-title em{font-style:italic;color:var(--caramel-dark)}
.sec-sub{font-family:'Lora',serif;font-size:.92rem;color:var(--muted);font-style:italic;line-height:1.8;max-width:480px;margin:0 auto}
.menu-tabs{display:flex;gap:0;justify-content:center;border:1px solid var(--border);width:fit-content;margin:0 auto 2.5rem}
.mtab{background:transparent;border:none;border-right:1px solid var(--border);padding:.55rem 1.5rem;font-family:'Lora',serif;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);cursor:pointer;transition:.2s}
.mtab:last-child{border-right:none}
.mtab.active,.mtab:hover{background:var(--rose-dark);color:var(--cream)}
.menu-panel{max-width:680px;margin:0 auto;background:var(--paper);padding:0 2.5rem}
.menu-panel.hidden{display:none}
.panel-item{padding:1.8rem 0;border-bottom:1px solid var(--border)}
.panel-item:last-of-type{border-bottom:none}
.panel-item-top{display:flex;justify-content:space-between;align-items:baseline;gap:1.5rem;margin-bottom:.45rem}
.panel-item h3{font-family:'DM Serif Display',serif;font-size:1.25rem;color:var(--text)}
.price{font-family:'Lora',serif;font-size:.8rem;color:var(--caramel-dark);font-style:italic;white-space:nowrap;flex-shrink:0}
.panel-item p{font-family:'Lora',serif;font-size:.85rem;color:var(--muted);line-height:1.8;font-style:italic}
.panel-flavors{margin:2rem -2.5rem 0;padding:2rem 2.5rem;background:var(--warm);border-top:1px solid var(--border)}
.panel-flavors-label{font-family:'Lora',serif;font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--dusty-rose);margin-bottom:1.2rem;text-align:center}
.flavor-chips{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}
.fchip{font-family:'Lora',serif;font-size:.82rem;color:var(--rose-dark);background:var(--paper);border:1px solid var(--dusty-rose);padding:.35rem 1rem;line-height:1.4}

/* GALLERY */
.gallery-sec{background:var(--cream);padding:4rem 2.5rem;border-top:1px solid var(--border)}
.gallery-tabs{display:flex;gap:0;justify-content:center;border:1px solid var(--border);width:fit-content;margin:0 auto 2.5rem}
.gtab{background:transparent;border:none;border-right:1px solid var(--border);padding:.55rem 1.5rem;font-family:'Lora',serif;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);cursor:pointer;transition:.2s}
.gtab:last-child{border-right:none}
.gtab.active,.gtab:hover{background:var(--rose-dark);color:var(--cream)}
.gallery-grid{columns:3;column-gap:.75rem;max-width:1060px;margin:0 auto}
@media(max-width:700px){.gallery-grid{columns:2}}
.gallery-item{break-inside:avoid;margin-bottom:.75rem;position:relative;overflow:hidden;cursor:pointer}
.gallery-item.g-hidden{display:none}
.gallery-item img{width:100%;display:block;transition:transform .5s ease}
.gallery-item:hover img{transform:scale(1.04)}
.gallery-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(122,74,74,.55) 0%,transparent 55%);opacity:0;transition:opacity .35s;display:flex;align-items:flex-end;padding:1rem 1.2rem}
.gallery-item:hover .gallery-overlay{opacity:1}
.gallery-overlay span{font-family:'Lora',serif;font-size:.73rem;color:white;letter-spacing:.14em;text-transform:uppercase}

/* OUR STORY */
.story-sec{background:var(--paper);padding:4rem 2.5rem;border-top:1px solid var(--border)}
.story-body{max-width:640px;margin:0 auto;display:flex;flex-direction:column;gap:1.4rem}
.story-body p{font-family:'Lora',serif;font-size:.95rem;color:var(--muted);line-height:1.95}
.story-quote{font-family:'DM Serif Display',serif;font-size:1.3rem;color:var(--rose-dark);font-style:italic;line-height:1.6;text-align:center;padding:1.8rem 2rem;border-top:1px solid var(--border);border-bottom:1px solid var(--border);position:relative}
.story-quote::before{content:'\201C';font-size:4rem;color:var(--caramel-light);position:absolute;top:-.5rem;left:1rem;line-height:1;font-family:'DM Serif Display',serif}

/* SPECIALTIES */
.spec-sec{background:var(--caramel-light);padding:4rem 2.5rem;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.spec-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:2rem;max-width:860px;margin:0 auto}
.spec-item{text-align:center;flex:0 1 200px}
.spec-num{font-family:'DM Serif Display',serif;font-size:3rem;color:var(--caramel-dark);opacity:.3;line-height:1;margin-bottom:.3rem}
.spec-item h3{font-family:'DM Serif Display',serif;font-size:1.1rem;color:var(--rose-dark);margin-bottom:.5rem}
.spec-item p{font-size:.82rem;color:var(--muted);line-height:1.7;font-style:italic}

/* PROCESS */
.process-sec{background:var(--paper);padding:4rem 2.5rem}
.process-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:0;max-width:860px;margin:0 auto;border:1px solid var(--border)}
.process-step{padding:2rem 1.5rem;border-right:1px solid var(--border);text-align:center}
.process-step:last-child{border-right:none}
.step-letter{font-family:'DM Serif Display',serif;font-size:2.5rem;color:var(--border);line-height:1;margin-bottom:.7rem}
.process-step h4{font-family:'DM Serif Display',serif;font-size:1rem;color:var(--rose-dark);margin-bottom:.4rem}
.process-step p{font-size:.78rem;color:var(--muted);line-height:1.7;font-style:italic}

/* REVIEWS */
.reviews-sec{background:var(--sage-light);padding:4rem 0}
.reviews-sec .sec-header{padding:0 2.5rem}
.reviews-marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.reviews-track{display:flex;align-items:flex-start;gap:1.5rem;width:max-content;animation:reviews-scroll 46s linear infinite}
.reviews-marquee:hover .reviews-track{animation-play-state:paused}
.review{background:var(--paper);padding:2rem;border:1px solid var(--border);position:relative;flex:0 0 auto;height:350px;display:flex;flex-direction:column;overflow:hidden}
.review::before{content:'\201C';font-family:'DM Serif Display',serif;font-size:5rem;color:var(--caramel-light);position:absolute;top:-.5rem;left:1rem;line-height:1}
.review--sm{width:280px}
.review--md{width:360px}
.review--lg{width:420px}
.review--xl{width:540px}
.stars{color:var(--caramel);font-size:.85rem;letter-spacing:.1rem;margin-bottom:.8rem}
.review p{font-family:'Lora',serif;font-size:.87rem;color:var(--text);line-height:1.8;font-style:italic;margin-bottom:1.2rem;display:-webkit-box;-webkit-line-clamp:8;-webkit-box-orient:vertical;overflow:hidden}
.reviewer-name{font-family:'Lora',serif;font-size:.78rem;font-weight:500;color:var(--rose-dark);letter-spacing:.06em;text-transform:uppercase;margin-top:auto}
.reviewer-event{font-size:.72rem;color:var(--muted);font-style:italic;margin-top:.15rem}

@keyframes reviews-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.reviews-track{animation:none}}
@media(max-width:700px){
  .reviews-sec .sec-header{padding:0 1.25rem}
  .reviews-marquee{overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;padding:0 1.25rem;scrollbar-width:none}
  .reviews-marquee::-webkit-scrollbar{display:none}
  .reviews-track{animation:none}
  .review{scroll-snap-align:start}
  .review[aria-hidden="true"]{display:none}
}

/* CONTACT */
.contact-sec{background:var(--warm);padding:4rem 2.5rem;border-top:1px solid var(--border)}
.contact-inner{display:grid;grid-template-columns:1fr 1.2fr;gap:3rem;max-width:820px;margin:0 auto;align-items:start}
@media(max-width:600px){.contact-inner{grid-template-columns:1fr}}
.contact-info h3{font-family:'DM Serif Display',serif;font-size:1.5rem;color:var(--rose-dark);margin-bottom:.5rem}
.contact-info>p{font-size:.85rem;color:var(--muted);font-style:italic;line-height:1.8;margin-bottom:1.5rem;border-bottom:1px solid var(--border);padding-bottom:1.2rem}
.info-line{margin-bottom:1rem}
.info-line strong{display:block;font-family:'Lora',serif;font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;color:var(--dusty-rose);margin-bottom:.2rem}
.info-line span{font-size:.85rem;color:var(--muted);line-height:1.6}
.form-wrap{background:var(--paper);border:1px solid var(--border);padding:2rem}
.form-title{font-family:'DM Serif Display',serif;font-size:1.2rem;color:var(--rose-dark);margin-bottom:1.5rem;padding-bottom:.8rem;border-bottom:1px solid var(--border)}
.fg{margin-bottom:1.1rem}
.fg label{display:block;font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-bottom:.35rem;font-family:'Lora',serif}
.fg input,.fg select,.fg textarea{width:100%;padding:.6rem .9rem;border:1px solid var(--border);background:var(--cream);font-family:'Lora',serif;font-size:.87rem;color:var(--text);outline:none;transition:.2s}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--dusty-rose);background:white}
.fg textarea{height:85px;resize:none}
.form-submit{width:100%;background:var(--rose-dark);color:var(--cream);padding:.8rem;border:none;font-family:'Lora',serif;font-size:.82rem;letter-spacing:.15em;text-transform:uppercase;cursor:pointer;transition:.2s;margin-top:.5rem}
.form-submit:hover{background:var(--rose);letter-spacing:.2em}
.req{color:var(--dusty-rose)}
.order-fields{display:none}
.radio-group{display:flex;gap:1.5rem;margin-top:.4rem}
.rlabel{display:flex;align-items:center;gap:.45rem;font-family:'Lora',serif;font-size:.87rem;color:var(--muted);cursor:pointer}
.form-note{font-family:'Lora',serif;font-size:.78rem;color:var(--rose-dark);font-style:italic;margin-top:.5rem;padding:.4rem .75rem;background:var(--caramel-light);border-left:2px solid var(--caramel)}
.file-input{cursor:pointer;font-family:'Lora',serif;font-size:.83rem;color:var(--muted)}
.file-input::file-selector-button,.file-input::-webkit-file-upload-button{font-family:'Lora',serif;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;background:var(--warm);border:1px solid var(--border);color:var(--muted);padding:.3rem .9rem;cursor:pointer;margin-right:.8rem;transition:.2s;-webkit-appearance:none;appearance:none;border-radius:0}
.file-input::file-selector-button:hover,.file-input::-webkit-file-upload-button:hover{background:var(--dusty-rose);color:white;border-color:var(--dusty-rose)}
.form-error{font-family:'Lora',serif;font-size:.8rem;color:#a03a3a;font-style:italic;margin:-.3rem 0 1rem;padding:.5rem .75rem;background:#fbeaea;border-left:2px solid #a03a3a}
.form-success{text-align:center;padding:3.5rem 2rem}
.form-success-icon{font-size:1.6rem;color:var(--dusty-rose);letter-spacing:.3em;margin-bottom:1rem}
.form-success h3{font-family:'DM Serif Display',serif;font-size:1.5rem;color:var(--rose-dark);margin-bottom:.7rem}
.form-success p{font-family:'Lora',serif;font-size:.9rem;color:var(--muted);line-height:1.8;font-style:italic}

/* FOOTER */
footer{background:var(--rose-dark);color:var(--cream);padding:3rem 2.5rem 2rem;text-align:center}
.f-logo-main{font-family:'DM Serif Display',serif;font-size:2rem;color:var(--caramel-light);margin-bottom:.2rem}
.f-logo-sub{font-size:.7rem;letter-spacing:.25em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-bottom:1.5rem}
.f-links{display:flex;gap:2rem;justify-content:center;flex-wrap:wrap;margin-bottom:1.5rem}
.f-links a{text-decoration:none;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.5);transition:.2s}
.f-links a:hover{color:var(--caramel-light)}
.f-rule{width:40px;height:1px;background:rgba(255,255,255,.2);margin:.8rem auto}
footer p{font-size:.75rem;color:rgba(255,255,255,.35);font-style:italic}

/* MOBILE */
@media(max-width:700px){
  .menu-tabs,.gallery-tabs{max-width:100%;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;justify-content:flex-start;scrollbar-width:none}
  .menu-tabs::-webkit-scrollbar,.gallery-tabs::-webkit-scrollbar{display:none}
  .mtab,.gtab{flex:0 0 auto;white-space:nowrap}

  nav{padding:.8rem 1.25rem}
  .hero,.menu-sec,.gallery-sec,.story-sec,.spec-sec,.process-sec,.contact-sec{padding-left:1.25rem;padding-right:1.25rem}
  .menu-panel{padding-left:1.25rem;padding-right:1.25rem}
  .panel-flavors{margin-left:-1.25rem;margin-right:-1.25rem;padding-left:1.25rem;padding-right:1.25rem}
  .form-wrap{padding:1.5rem}

  .panel-item-top{flex-wrap:wrap}

  /* prevent iOS Safari auto-zoom on focus (needs >=16px) */
  .fg input,.fg select,.fg textarea{font-size:16px}
}
