:root{
  --paper:#FFFFFF;
  --paper-dim:#F7F5F1;
  --ink:#3B2E22;
  --ink-soft:#7A6A5B;
  --line:rgba(59,46,34,.14);
  --accent:#3B2E22;      --accent-dark:#241B13;
  --gold:#A9895F;
  --champagne:#F2EAE0;
}

* { box-sizing: border-box; }
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:'Montserrat', -apple-system, Arial, sans-serif;
  font-size:16.5px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
.sans{font-family:'Montserrat', -apple-system, 'Helvetica Neue', Arial, sans-serif;}
.script-accent{font-family:'Alex Brush', cursive; font-weight:400;}
a{color:inherit; text-decoration:none;}
button{font-family:inherit;}
img{max-width:100%; display:block;}

nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 22px; position:fixed; top:0; left:0; right:0; z-index:50;
  background:transparent; border-bottom:1px solid transparent;
  transition:background .3s ease, border-color .3s ease;
}
nav.nav-solid{
  background:rgba(244,242,238,.94); backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
nav .brand-icon{
  width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  border:1px solid rgba(59,46,34,.35); background:rgba(255,255,255,.5); backdrop-filter:blur(2px);
  transition:.3s;
}
nav.nav-solid .brand-icon{border-color:var(--line); background:var(--paper);}
nav .brand-icon img{width:20px; height:20px; object-fit:contain; transition:.3s;}
.brand{
  font-family:'Playfair Display', Georgia, serif; font-size:20px;
  letter-spacing:0.14em; text-transform:uppercase; color:var(--ink);
  transition:.3s; opacity:0; max-width:0; overflow:hidden; white-space:nowrap;
}
nav.nav-solid .brand{color:var(--ink); opacity:1; max-width:220px; margin-left:2px;}
.nav-links{display:flex; gap:22px; font-size:15px;}
.nav-links button{
  background:none; border:none; padding:6px 2px; cursor:pointer; color:var(--ink);
  opacity:.6; border-bottom:1px solid transparent; transition:.2s; font-size:15px;
}
.nav-links button:hover{opacity:1;}
.nav-links button.active{opacity:1; border-color:var(--ink);}
.icons{display:flex; gap:12px; align-items:center;}
.burger{
  display:none; background:rgba(255,255,255,.5); border:1px solid rgba(59,46,34,.35); cursor:pointer;
  width:38px; height:38px; border-radius:50%; flex-direction:column; align-items:center; justify-content:center; gap:4px;
  backdrop-filter:blur(2px); transition:.3s;
}
nav.nav-solid .burger{background:var(--paper); border-color:var(--line);}
.burger span{width:15px; height:1.4px; background:var(--ink); display:block; transition:.3s;}
nav.nav-solid .burger span{background:var(--ink);}
.mobile-nav{
  display:none; position:fixed; top:0; right:0; height:100%; width:min(280px,80vw);
  background:var(--paper); z-index:99; box-shadow:-10px 0 30px rgba(0,0,0,.15);
  transform:translateX(100%); transition:transform .3s ease; flex-direction:column; padding:70px 26px 26px;
}
.mobile-nav.open{transform:translateX(0);}
.mobile-nav button{
  background:none; border:none; text-align:left; padding:14px 0; font-size:18px; color:var(--ink);
  border-bottom:1px solid var(--line); font-family:Georgia, serif; cursor:pointer;
}
.mobile-nav-close{position:absolute; top:20px; right:20px; background:none; border:none; font-size:24px; cursor:pointer; color:var(--ink);}
.mobile-overlay{display:none; position:fixed; inset:0; background:rgba(28,27,25,.4); z-index:98; opacity:0; transition:.3s;}
.mobile-overlay.open{opacity:1;}
.lang-switch{
  font-size:12px; letter-spacing:0.05em; color:var(--ink); border:1px solid rgba(59,46,34,.35);
  border-radius:100px; padding:6px 13px; cursor:pointer; background:rgba(255,255,255,.5); transition:.3s;
}
nav.nav-solid .lang-switch{color:var(--ink); border-color:var(--ink); background:none;}
.cart-pill{
  border:1px solid rgba(59,46,34,.35); border-radius:100px; padding:7px 16px; font-size:13px;
  cursor:pointer; background:rgba(255,255,255,.5); color:var(--ink); transition:.3s;
}
nav.nav-solid .cart-pill{border-color:var(--ink); background:none; color:var(--ink);}
@media (max-width:800px){
  .nav-links{display:none;}
  .burger{display:flex;}
  .mobile-nav, .mobile-overlay{display:flex;}
  .mobile-overlay:not(.open){display:none;}
  nav:not(.nav-solid) .lang-switch, nav:not(.nav-solid) .cart-pill, nav:not(.nav-solid) .account-icon{
    display:none;
  }
}

.page{display:none; animation:fadeIn .4s ease;}
.page.active{display:block;}
.page:not(#page-home){padding-top:76px;}
@keyframes fadeIn{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:none;}}

.hero{
  position:relative; min-height:70vh; display:flex; flex-direction:column;
  align-items:center; justify-content:center; text-align:center;
  padding:70px 20px 50px; background:var(--paper); overflow:hidden;
}
@keyframes floatSlow{
  0%,100%{ transform:translateY(0) rotate(0deg); }
  50%{ transform:translateY(-14px) rotate(6deg); }
}
.hero > *{position:relative; z-index:1;}

.hero--photo{
  background:url('../images/hero-bg.jpg') center/cover no-repeat;
  min-height:78vh;
}
.hero-photo-overlay{
  position:absolute; inset:0; z-index:0;
  background:linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.05) 60%, var(--paper) 100%);
}
.hero--photo .eyebrow{color:var(--gold);}
.hero--photo .hero-wordmark{color:var(--ink); text-shadow:0 2px 14px rgba(255,255,255,.9), 0 0 30px rgba(255,255,255,.7);}
.hero--photo p{color:var(--ink-soft); text-shadow:0 1px 10px rgba(255,255,255,.85);}
.hero-text-panel{
  position:relative; z-index:1; padding:20px; max-width:520px;
}
@media (max-width:600px){ .hero--photo{min-height:56vh; background-position:center 30%;} }
.hero .eyebrow{
  font-family:'Alex Brush', cursive; font-size:28px; letter-spacing:0.02em;
  text-transform:none; color:var(--gold); margin-bottom:6px;
}
.hero-wordmark{
  font-family:'Playfair Display', Georgia, serif; font-weight:400;
  font-size:clamp(48px,12vw,120px); letter-spacing:0.1em; color:var(--ink);
  margin:0; line-height:1;
}
.hero p{
  font-family:-apple-system, sans-serif; font-size:16px; line-height:1.6; color:var(--ink-soft);
  max-width:38ch; margin:30px auto 26px;
}
.hero-cta-wrap{position:relative; display:inline-block;}
.hero-cta-wrap svg{position:absolute; left:-20px; top:-14px; width:calc(100% + 40px); height:calc(100% + 28px); pointer-events:none;}
.hero-btn{
  font-family:-apple-system, sans-serif; font-size:13px; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--ink); cursor:pointer; padding:8px 14px; position:relative;
}

.usp-strip{
  display:flex; justify-content:center; gap:0; background:transparent; color:var(--ink-soft);
  padding:24px 20px 8px; font-size:13px; text-align:center; flex-wrap:wrap; font-family:'Montserrat',sans-serif;
}
.usp-strip span{padding:0 16px; opacity:.85;} .usp-strip .dot{opacity:.4;}

.section{max-width:1180px; margin:0 auto; padding:64px 24px;}
.section-head{display:flex; align-items:baseline; justify-content:space-between; margin-bottom:36px; flex-wrap:wrap; gap:10px;}
.section-head h2{
  font-family:'Playfair Display', Georgia, serif; font-weight:400; font-size:34px; color:var(--ink); margin:0;
}
.section-head p{font-family:-apple-system, sans-serif; font-size:14px; color:var(--ink-soft); margin:0;}

.p-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
.p-card{position:relative;}
.p-img{aspect-ratio:3/4; position:relative; cursor:pointer; overflow:hidden; background:var(--paper-dim);}
.p-img.shape-arch{border-radius:50% 50% 0 0;}
.p-img.shape-cut{clip-path:polygon(0 0,100% 0,100% 86%,86% 100%,0 100%);}
.p-img svg, .p-img img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s cubic-bezier(.2,.7,.3,1);}
.p-card:hover .p-img svg, .p-card:hover .p-img img{transform:scale(1.06);}
.p-view-label{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  background:rgba(28,27,25,0); color:#fff; font-size:11px; letter-spacing:0.14em; text-transform:uppercase;
  opacity:0; transition:.3s; font-family:-apple-system, sans-serif;
}
.p-card:hover .p-view-label{opacity:1; background:rgba(28,27,25,.25);}
.p-fav{
  position:absolute; top:12px; right:12px; width:30px; height:30px; border-radius:50%;
  background:rgba(244,242,238,.92); display:flex; align-items:center; justify-content:center;
  font-size:14px; color:var(--ink); z-index:3; cursor:pointer;
}
.p-fav.active{color:var(--accent);}
.badge{
  position:absolute; top:12px; left:12px; font-size:10px; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--ink); background:rgba(244,242,238,.92); padding:5px 10px; border-radius:100px; z-index:3; font-family:-apple-system,sans-serif;
}
.badge-new{background:var(--gold); color:#fff;}
.badge-hit{background:var(--ink); color:var(--paper);}
.badge-sale{background:#8C3B2E; color:#fff;}

.avail{font-family:-apple-system, sans-serif; font-size:11.5px; letter-spacing:0.03em; margin:0 0 10px; text-transform:uppercase;}
.avail-today_only{color:#8C3B2E;}
.avail-preorder{color:var(--gold);}
.avail-seasonal{color:var(--ink-soft);}
.avail-out_of_stock{color:#A6A29A;}
.p-body{padding:16px 2px 0; text-align:left;}
.p-body h4{font-family:'Playfair Display', Georgia, serif; font-weight:400; font-size:17px; color:var(--ink); margin:0 0 5px;}
.p-body .desc{font-family:-apple-system, sans-serif; font-size:12.5px; color:var(--ink-soft); margin:0 0 10px;}
.p-body .price{font-family:-apple-system, sans-serif; font-size:14px; color:var(--ink); margin:0 0 14px; font-weight:600;}
.p-actions{display:flex; gap:8px;}
.btn-outline, .btn-solid{
  flex:1; padding:11px 8px; font-size:12px; letter-spacing:0.05em; text-transform:uppercase; cursor:pointer;
  border-radius:100px; font-family:'Montserrat',sans-serif; transition:.2s; border:1px solid var(--ink);
}
.btn-outline{background:none; color:var(--ink);}
.btn-outline:hover{background:var(--ink); color:var(--paper);}
.btn-solid{background:var(--accent); border-color:var(--accent); color:#fff; font-weight:600;}
.btn-solid:hover{background:var(--accent-dark); border-color:var(--accent-dark);}
.btn-solid:disabled{background:var(--paper-dim); border-color:var(--line); color:#A6A29A; cursor:not-allowed;}
.modal-add:disabled{background:var(--paper-dim); color:#A6A29A; cursor:not-allowed;}
@media (max-width:900px){.p-grid{grid-template-columns:repeat(2,1fr); gap:16px;}}

.carousel-arrows{display:flex; gap:18px; font-size:22px; color:var(--ink); font-family:Georgia, serif;}
.carousel-arrows span{cursor:pointer; opacity:.55; transition:.2s;}
.carousel-arrows span:hover{opacity:1;}
.carousel-wrap{position:relative;}
.carousel-track{display:flex; gap:18px; overflow-x:auto; scroll-behavior:smooth; scrollbar-width:none; padding-bottom:6px;}
.carousel-track::-webkit-scrollbar{display:none;}
.carousel-item{flex:0 0 200px;}
.carousel-item .cimg{aspect-ratio:1/1; overflow:hidden; background:var(--paper-dim); cursor:pointer;}
.carousel-item .cimg img, .carousel-item .cimg svg{width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease;}
.carousel-item:hover .cimg img, .carousel-item:hover .cimg svg{transform:scale(1.05);}
.carousel-item .cap{margin-top:12px; font-family:'Playfair Display',Georgia,serif; font-size:12.5px; letter-spacing:0.08em; text-transform:uppercase; text-align:center; color:var(--ink);}
@media (max-width:600px){.carousel-item{flex:0 0 150px;}}

.quick-links{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:50px;}
.ql-card{
  position:relative; overflow:hidden; border-radius:4px; padding:28px 22px; text-align:left; cursor:pointer; transition:.2s;
}
.ql-card::before{
  content:''; position:absolute; inset:0;
  background:linear-gradient(200deg, var(--paper-dim) 0%, var(--paper-dim) 55%, rgba(247,245,241,.55) 78%, transparent 100%), var(--ql-photo) center/cover no-repeat;
}
.ql-card > *{position:relative; z-index:1;}
.ql-card:hover{transform:translateY(-3px);}
.ql-card h4{font-family:'Playfair Display', Georgia, serif; font-weight:400; font-size:19px; color:var(--ink); margin:0 0 10px;}
.ql-card p{font-family:-apple-system, sans-serif; font-size:13px; color:var(--ink-soft); margin:0 0 16px; line-height:1.55;}
.quick-links .ql-card:nth-child(1){--ql-photo:url('../images/newsletter-bg.jpg');}
.quick-links .ql-card:nth-child(2){--ql-photo:url('../images/vip-banner-bg.jpg');}
.quick-links .ql-card:nth-child(3){--ql-photo:url('../images/hero-bg.jpg');}
.ql-btn{font-family:-apple-system, sans-serif; font-size:12px; letter-spacing:0.06em; text-transform:uppercase; color:var(--accent); font-weight:600;}
@media (max-width:820px){.quick-links{grid-template-columns:1fr;}}

.categories{max-width:1000px; margin:0 auto; padding:20px 24px 80px;}
.cat-row{
  position:relative; display:flex; align-items:center; gap:20px;
  padding:26px 4px; border-bottom:1px solid var(--line); cursor:pointer;
}
.cat-row .cat-icon{flex:0 0 auto; width:30px; height:30px; display:flex; color:var(--ink-soft);}
.cat-row .cat-icon svg{width:100%; height:100%;}
.cat-row:hover .cat-icon svg{color:var(--gold);}
.cat-row .cat-name{
  font-family:'Playfair Display', Georgia, serif; font-weight:400; font-size:24px; color:var(--ink); flex:1;
  transition:transform .3s ease;
}
.cat-row:hover .cat-name{transform:translateX(10px);}
.cat-row .arrow{font-size:18px; color:var(--ink); opacity:0; transform:translateX(-6px); transition:.25s; flex:0 0 auto;}
.cat-row:hover .arrow{opacity:1; transform:translateX(0);}
@media (max-width:700px){
  .cat-row .cat-name{font-size:19px;}
}

.about-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:50px; align-items:center;}
.about-visual{aspect-ratio:4/5; overflow:hidden; border-radius:0 60px 0 60px; background:var(--paper-dim);}
.about-visual img{width:100%; height:100%; object-fit:cover;}

.about-collage{position:relative; display:block; padding-bottom:34px;}
.about-collage .ac-main{aspect-ratio:4/5; overflow:hidden; border-radius:4px; background:var(--paper-dim); box-shadow:0 22px 46px rgba(59,46,34,.16);}
.about-collage .ac-main img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .8s cubic-bezier(.2,.7,.3,1);}
.about-collage:hover .ac-main img{transform:scale(1.04);}
.about-collage--soft .ac-main--soft{
  box-shadow:none; background:none;
  -webkit-mask-image:radial-gradient(ellipse 75% 78% at center, #000 55%, transparent 92%);
  mask-image:radial-gradient(ellipse 75% 78% at center, #000 55%, transparent 92%);
}

.about-text p{font-family:-apple-system, sans-serif; font-size:15px; line-height:1.8; color:var(--ink-soft); margin:0 0 16px;}
.about-stats{display:flex; gap:36px; margin-top:24px;}
.about-stats div b{display:block; font-family:'Playfair Display', Georgia, serif; font-size:26px; color:var(--ink);}
.about-stats div span{font-family:-apple-system, sans-serif; font-size:11px; letter-spacing:0.05em; color:var(--ink-soft); text-transform:uppercase;}
@media (max-width:820px){.about-grid{grid-template-columns:1fr;}}

.delivery-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-bottom:40px;}
.d-card{background:var(--paper-dim); border-radius:2px; padding:28px 22px; text-align:center;}
.d-card .icon{width:38px; height:38px; margin:0 auto 14px;}
.d-card h4{font-family:'Playfair Display', Georgia, serif; font-weight:400; font-size:17px; color:var(--ink); margin:0 0 9px;}
.d-card p{font-family:-apple-system, sans-serif; font-size:12.5px; line-height:1.6; color:var(--ink-soft); margin:0;}
@media (max-width:820px){.delivery-grid{grid-template-columns:1fr;}}
table.d-table{width:100%; border-collapse:collapse; font-family:-apple-system, sans-serif; font-size:13.5px;}
table.d-table th, table.d-table td{text-align:left; padding:13px 10px; border-bottom:1px solid var(--line);}
table.d-table th{color:var(--ink); font-weight:600;}

.testimonials{padding:20px 24px 80px; text-align:center;}
.testimonials h2{font-family:'Playfair Display', Georgia, serif; font-weight:400; font-size:30px; color:var(--ink); margin:0 0 40px;}
.t-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; max-width:1000px; margin:0 auto;}
.t-card{background:var(--paper-dim); border-radius:2px; padding:26px 22px; text-align:left;}
.stars{color:var(--gold); font-size:14px; margin-bottom:10px; letter-spacing:2px;}
.t-card p{font-family:-apple-system, sans-serif; font-size:13.5px; line-height:1.65; color:var(--ink); margin:0 0 14px; font-style:italic;}
.t-card .who{font-family:-apple-system, sans-serif; font-size:12px; color:var(--ink-soft);}
@media (max-width:860px){.t-grid{grid-template-columns:1fr;}}

.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:44px;}
.c-field{margin-bottom:16px;}
.c-field label{display:block; font-family:-apple-system, sans-serif; font-size:11px; letter-spacing:0.05em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:6px;}
.c-field input, .c-field textarea{width:100%; border:1px solid var(--line); background:#fff; padding:12px 13px; font-size:14px; font-family:-apple-system, sans-serif; border-radius:2px;}
.c-field textarea{resize:vertical; min-height:110px;}
.contact-info p{font-family:-apple-system, sans-serif; font-size:14px; line-height:2; color:var(--ink-soft);}
.map-box{aspect-ratio:4/3; background:var(--paper-dim); overflow:hidden; border-radius:4px; margin-top:16px;}
.map-box iframe{display:block;}
@media (max-width:820px){.contact-grid{grid-template-columns:1fr;}}

.newsletter{
  background:var(--champagne);
  background-image:linear-gradient(90deg, var(--champagne) 40%, rgba(242,234,224,.4) 75%, rgba(242,234,224,0) 100%), url('../images/newsletter-bg.jpg');
  background-size:cover, cover;
  background-position:center, right center;
  background-repeat:no-repeat, no-repeat;
  color:var(--ink); padding:54px 24px;
}
.newsletter-inner{max-width:1100px; margin:0 auto; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:24px;}
.newsletter h3{font-family:'Playfair Display', Georgia, serif; font-weight:400; font-size:26px; margin:0; max-width:280px; line-height:1.3; color:var(--ink);}
.newsletter form{display:flex; flex-wrap:wrap; gap:10px; flex:1; justify-content:flex-end;}
.newsletter input{border:1px solid var(--line); background:#fff; padding:13px 17px; font-size:14px; font-family:'Montserrat',sans-serif; border-radius:100px; min-width:190px;}
.newsletter button{background:var(--accent); color:#fff; border:none; border-radius:100px; padding:13px 28px; font-size:13px; letter-spacing:0.05em; text-transform:uppercase; cursor:pointer; font-family:'Montserrat',sans-serif; font-weight:600;}
.newsletter .fine-print{width:100%; font-size:11.5px; color:var(--ink-soft); margin-top:6px; font-family:'Montserrat',sans-serif;}

.site-footer{background:var(--champagne); padding:60px 24px 30px; color:var(--ink); position:relative; overflow:hidden; border-top:1px solid var(--line);}
.site-footer::before{
  content:''; position:absolute; right:-60px; bottom:-60px; width:420px; height:420px;
  background:url('../images/logo-mark.png') center/contain no-repeat; opacity:.06;
  pointer-events:none;
}
.footer-grid{max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1.2fr 1fr 1fr 1fr 1.2fr; gap:30px;}
.footer-col h5{font-family:'Montserrat', sans-serif; font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold); margin:0 0 16px;}
.footer-col p, .footer-col a{display:block; font-family:'Montserrat', sans-serif; font-size:13.5px; color:var(--ink-soft); margin:0 0 10px; transition:.15s;}
.footer-col a:hover{color:var(--ink);}
.footer-social{display:flex; gap:10px; margin-top:8px;}
.footer-social a{width:32px; height:32px; border-radius:50%; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; font-size:13px; color:var(--ink);}
.footer-social a:hover{border-color:var(--gold); color:var(--gold);}
.footer-insta{display:grid; grid-template-columns:repeat(3,1fr); gap:6px;}
.footer-insta div{aspect-ratio:1/1; overflow:hidden; border-radius:2px;}
.footer-insta img{width:100%; height:100%; object-fit:cover; display:block; filter:saturate(.92);}
.footer-bottom{max-width:1100px; margin:38px auto 0; padding-top:22px; border-top:1px solid var(--line); text-align:center; font-family:'Montserrat', sans-serif; font-size:12px; color:var(--ink-soft);}
.footer-bottom a{color:var(--ink-soft) !important;}
@media (max-width:900px){.footer-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:520px){.footer-grid{grid-template-columns:1fr;} .newsletter form{justify-content:stretch;} .newsletter input{flex:1;}}

.float-order{
  position:fixed; bottom:22px; right:22px; z-index:60;
  background:var(--champagne); color:var(--ink); border:1px solid var(--line); border-radius:100px;
  padding:16px 26px; font-size:13.5px; letter-spacing:0.05em; text-transform:uppercase;
  cursor:pointer; box-shadow:0 12px 28px rgba(59,46,34,.18); font-family:'Montserrat', sans-serif;
  display:flex; align-items:center; gap:9px; font-weight:700;
  animation:ctaPulse 2.6s ease-in-out infinite;
}
@keyframes ctaPulse{
  0%,100%{box-shadow:0 12px 28px rgba(59,46,34,.18);}
  50%{box-shadow:0 12px 30px rgba(59,46,34,.28), 0 0 0 8px rgba(169,137,95,.22);}
}
@media (max-width:600px){ .float-order{padding:14px 20px; font-size:12.5px; bottom:16px; right:16px;} }

.overlay{position:fixed; inset:0; background:rgba(28,27,25,.4); opacity:0; pointer-events:none; transition:.25s; z-index:90;}
.overlay.open{opacity:1; pointer-events:auto;}
.drawer{
  position:fixed; top:0; right:0; height:100%; width:min(380px,90vw); background:var(--paper);
  box-shadow:-10px 0 30px rgba(0,0,0,.15); transform:translateX(100%); transition:.3s; z-index:91;
  display:flex; flex-direction:column; overflow-y:auto;
}
.drawer.open{transform:translateX(0);}
.drawer-head{padding:22px; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; position:sticky; top:0; background:var(--paper); z-index:1;}
.drawer-head h3{font-family:'Playfair Display', Georgia, serif; font-weight:400; font-size:21px; color:var(--ink); margin:0;}
.close-btn{background:none; border:none; font-size:22px; cursor:pointer; color:var(--ink);}
.drawer-items{padding:10px 22px; font-family:-apple-system,sans-serif;}
.drawer-item{display:flex; justify-content:space-between; font-size:14px; padding:12px 0; border-bottom:1px dashed var(--line);}
.empty-note{font-size:14px; color:var(--ink-soft); padding-top:16px; font-style:italic;}
.drawer-foot{padding:18px 22px 24px; border-top:1px solid var(--line); font-family:-apple-system,sans-serif;}
.total-row{display:flex; justify-content:space-between; font-size:16px; color:var(--ink); margin-bottom:14px; font-weight:600;}
.promo-row{display:flex; gap:8px; margin-bottom:6px;}
.promo-row input{flex:1;}
.checkout-btn{width:100%; background:var(--accent); color:#fff; border:none; border-radius:100px; padding:15px; font-size:14px; letter-spacing:0.04em; text-transform:uppercase; cursor:pointer; font-weight:700;}
.checkout-note{font-size:12px; color:var(--ink-soft); text-align:center; margin-top:10px;}
.checkout-fields{display:none; margin-bottom:14px;}
.checkout-fields.open{display:block;}
.checkout-fields input, .checkout-fields textarea{width:100%; border:1px solid var(--line); background:#fff; padding:11px 12px; font-size:13.5px; font-family:-apple-system, sans-serif; border-radius:2px; margin-bottom:9px;}
.field-label{font-size:11px; letter-spacing:0.05em; text-transform:uppercase; color:var(--gold); margin:12px 0 6px;}
.fulfill-toggle{display:flex; gap:8px; margin-bottom:8px;}
.fulfill-opt{
  flex:1; padding:10px; border:1px solid var(--ink); background:none; color:var(--ink);
  border-radius:100px; font-size:13px; font-family:'Montserrat',sans-serif; cursor:pointer; transition:.2s;
}
.fulfill-opt.active{background:var(--ink); color:var(--paper);}
.surprise-check{display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--ink); margin-bottom:4px;}

.modal-overlay{position:fixed; inset:0; background:rgba(28,27,25,.55); opacity:0; pointer-events:none; transition:.25s; z-index:95; display:flex; align-items:center; justify-content:center; padding:18px;}
.modal-overlay.open{opacity:1; pointer-events:auto;}
.modal-card{background:var(--paper); max-width:680px; width:100%; max-height:88vh; overflow-y:auto; border-radius:2px; display:grid; grid-template-columns:1fr 1fr; transform:scale(.95); transition:.25s;}
.modal-overlay.open .modal-card{transform:scale(1);}
.modal-img{aspect-ratio:1/1; overflow:hidden;}
.modal-img img, .modal-img svg{width:100%; height:100%; object-fit:cover;}
.modal-body{padding:28px 26px; position:relative;}
.modal-close{position:absolute; top:14px; right:16px; background:none; border:none; font-size:22px; cursor:pointer; color:var(--ink);}
.modal-body h3{font-family:'Playfair Display', Georgia, serif; font-weight:400; font-size:26px; color:var(--ink); margin:14px 0 6px;}
.m-price{font-family:-apple-system, sans-serif; font-size:17px; font-weight:700; margin:0 0 14px;}
.m-desc{font-family:-apple-system, sans-serif; font-size:14px; line-height:1.7; color:var(--ink-soft); margin:0 0 20px;}
.size-row{display:flex; gap:8px; margin-bottom:20px;}
.size-btn{flex:1; padding:10px 6px; font-size:12.5px; letter-spacing:0.03em; text-align:center; border:1px solid var(--ink); border-radius:100px; background:none; color:var(--ink); cursor:pointer; font-family:-apple-system, sans-serif;}
.size-btn.active{background:var(--ink); color:#fff;}
.qty-row{display:flex; align-items:center; gap:16px; margin-bottom:20px;}
.qty-row button{width:32px; height:32px; border-radius:50%; border:1px solid var(--ink); background:none; color:var(--ink); font-size:16px; cursor:pointer;}
.qty-row span{font-family:-apple-system, sans-serif; font-size:15px; min-width:18px; text-align:center;}
.modal-add{width:100%; background:var(--accent); color:#fff; border:none; border-radius:100px; padding:15px; font-size:13.5px; letter-spacing:0.05em; text-transform:uppercase; cursor:pointer; font-family:-apple-system, sans-serif; font-weight:700;}
@media (max-width:600px){.modal-card{grid-template-columns:1fr;}}

footer.mini{text-align:center; padding:6px; font-size:10px; color:var(--ink-soft);}

.benefit-overlay{
  position:fixed; inset:0; background:rgba(28,27,25,.5); opacity:0; pointer-events:none;
  transition:.3s; z-index:97; display:flex; align-items:center; justify-content:center; padding:20px;
}
.benefit-overlay.open{opacity:1; pointer-events:auto;}
.benefit-panel{
  position:relative; background:var(--paper); max-width:560px; width:100%; padding:44px 40px;
  border-radius:2px; transform:scale(.9) translateY(10px); opacity:0; transition:.3s;
}
.benefit-overlay.open .benefit-panel{transform:scale(1) translateY(0); opacity:1;}
.benefit-arrow{position:absolute; top:-46px; right:30px; width:110px; height:54px;}
.benefit-close{position:absolute; top:16px; right:18px; background:none; border:none; font-size:20px; cursor:pointer; color:var(--ink);}
.benefit-panel h3{font-family:'Playfair Display',Georgia,serif; font-weight:400; font-size:28px; color:var(--ink); margin:0 0 18px;}
.benefit-panel p{font-family:-apple-system, sans-serif; font-size:15.5px; line-height:1.7; color:var(--ink-soft); margin:0 0 24px;}
@media (max-width:600px){ .benefit-panel{padding:34px 26px;} .benefit-panel h3{font-size:23px;} }

[data-reveal]{opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease;}
[data-reveal].visible{opacity:1; transform:none;}

@media (max-width:600px){
  body{font-size:16.5px;}
  .section{padding:44px 18px;}
  .section-head h2{font-size:27px;}
  .hero{padding:44px 18px 32px;}
  .p-body h4{font-size:15.5px;}
}

@media (prefers-reduced-motion: reduce){*{transition:none !important; animation:none !important;}}

#splashScreen{
  position:fixed; inset:0; z-index:500; background:var(--paper);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:22px;
  transition:opacity .6s ease, visibility .6s;
}
#splashScreen.splash-hide{opacity:0; visibility:hidden; pointer-events:none;}
#splashPeony{overflow:visible;}
.peony-petal{
  fill:none; stroke:var(--ink); stroke-width:1.3;
  animation:splashDraw .9s ease-out forwards;
}
.peony-bud{stroke-dasharray:420; stroke-dashoffset:420; animation-delay:.1s; animation-duration:1.1s;}
.peony-accent{stroke-dasharray:60; stroke-dashoffset:60; animation-delay:1.15s; animation-duration:.35s;}
.peony-leaf{stroke-dasharray:40; stroke-dashoffset:40; animation-delay:1.45s; animation-duration:.35s;}
@keyframes splashDraw{
  to{stroke-dashoffset:0;}
}
#splashWordmark{
  font-family:'Playfair Display', serif; font-size:26px; letter-spacing:.03em; color:var(--ink);
}
#splashWordText{display:inline-block; vertical-align:bottom;}
#splashWordText .sw-letter{opacity:0; animation:splashLetterIn .35s ease forwards;}
@keyframes splashLetterIn{
  from{opacity:0; transform:translateY(4px);}
  to{opacity:1; transform:translateY(0);}
}
body.splash-active{overflow:hidden;}
@media (prefers-reduced-motion: reduce){
  #splashScreen{display:none;}
}

.vip-banner{
  display:flex; align-items:center; gap:20px; cursor:pointer; position:relative; overflow:hidden;
  border:1px solid var(--line); border-radius:6px; padding:26px 28px;
  transition:.2s;
}
.vip-banner::before{
  content:''; position:absolute; inset:0;
  background:linear-gradient(to left, transparent 0%, var(--paper) 42%, var(--paper) 100%), url('../images/vip-banner-bg.jpg');
  background-size:cover, cover; background-position:center, 70% center; opacity:.9;
}
.vip-banner > *{position:relative; z-index:1;}
.vip-banner:hover{border-color:var(--gold); box-shadow:0 12px 30px rgba(59,46,34,.1);}
.vip-banner__icon{flex:0 0 auto; width:52px; height:52px; border-radius:50%; background:var(--paper); display:flex; align-items:center; justify-content:center; border:1px solid var(--line);}
.vip-banner__text{flex:1; min-width:0;}
.vip-banner__text h3{margin:0 0 4px; font-size:19px;}
.vip-banner__text p{margin:0; font-size:13.5px; color:var(--ink-soft); font-family:'Montserrat',sans-serif;}
.vip-banner__cta{flex:0 0 auto; font-size:13px; font-weight:600; color:var(--gold); white-space:nowrap; font-family:'Montserrat',sans-serif;}
@media (max-width:600px){ .vip-banner{flex-wrap:wrap;} .vip-banner__cta{margin-left:72px;} }

.vip-hero{text-align:center; max-width:520px; margin:0 auto 30px;}
.vip-hero__icon{width:60px; height:60px; border-radius:50%; background:var(--paper-dim); display:flex; align-items:center; justify-content:center; margin:0 auto 14px; color:var(--ink);}
.vip-plans{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; max-width:820px; margin:0 auto 18px;}
@media (max-width:700px){ .vip-plans{grid-template-columns:1fr;} }
.vip-plan{position:relative; border:1px solid var(--line); border-radius:6px; padding:24px 18px; text-align:center; cursor:pointer; transition:.2s; background:var(--paper);}
.vip-plan:hover{border-color:var(--gold);}
.vip-plan.selected{border-color:var(--ink); box-shadow:0 0 0 2px var(--ink) inset;}
.vip-plan--popular{border-color:var(--gold);}
.vip-plan__tag{position:absolute; top:-11px; left:50%; transform:translateX(-50%); background:var(--gold); color:#fff; font-size:10px; letter-spacing:.06em; text-transform:uppercase; padding:4px 10px; border-radius:100px; font-family:'Montserrat',sans-serif;}
.vip-plan h4{margin:6px 0 10px; font-size:17px;}
.vip-plan__price{font-family:'Playfair Display',serif; font-size:24px; margin:0 0 8px;}
.vip-plan__price .sans{font-size:12px; color:var(--ink-soft);}
.vip-plan__desc{font-size:12.5px; color:var(--ink-soft); margin:0;}
.vip-includes{text-align:center; font-size:12.5px; color:var(--ink-soft); max-width:520px; margin:0 auto 26px;}

.promo-overlay{
  position:fixed; inset:0; background:rgba(59,46,34,.42); z-index:200;
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; transition:opacity .35s;
}
.promo-overlay.open{opacity:1; pointer-events:auto;}
.promo-card{
  background:var(--paper); border-radius:8px; padding:40px 34px 34px; max-width:380px; width:90%;
  text-align:center; position:relative; box-shadow:0 30px 70px rgba(0,0,0,.35);
  transform:scale(.82) translateY(18px); opacity:0; transition:transform .45s cubic-bezier(.2,.9,.25,1.3), opacity .35s;
}
.promo-overlay.open .promo-card{transform:scale(1) translateY(0); opacity:1;}
.promo-close{position:absolute; top:14px; right:16px; background:none; border:none; font-size:15px; color:var(--ink-soft); cursor:pointer;}
.promo-card__icon{width:56px; height:56px; border-radius:50%; background:var(--paper-dim); display:flex; align-items:center; justify-content:center; margin:0 auto 16px;}
.promo-card h3{margin:0 0 10px; font-size:21px;}
.promo-card p{margin:0 0 22px; font-size:13.5px; color:var(--ink-soft); font-family:'Montserrat',sans-serif; line-height:1.6;}

.scenario-bar{max-width:1180px; margin:0 auto; padding:26px 24px; text-align:center; border-bottom:1px solid var(--line);}
.scenario-bar__q{font-family:'Playfair Display', serif; font-size:19px; color:var(--ink); margin:0 0 14px;}
.scenario-bar__opts{display:flex; flex-wrap:wrap; justify-content:center; gap:10px;}
.scenario-opt{
  border:1px solid var(--ink); background:none; color:var(--ink); padding:10px 20px;
  border-radius:100px; font-size:13px; font-family:'Montserrat',sans-serif; cursor:pointer; transition:.2s;
}
.scenario-opt:hover, .scenario-opt.active{background:var(--ink); color:var(--paper);}
.scenario-date-picker{display:flex; gap:8px; justify-content:center; margin-top:14px;}
.scenario-date-picker input{max-width:200px;}
.scenario-bar__active{margin-top:12px; font-size:12.5px; color:var(--ink-soft); font-family:'Montserrat',sans-serif;}
.scenario-bar__florist-link{margin-top:14px; font-size:13px; color:var(--gold); cursor:pointer; font-family:'Montserrat',sans-serif;}
.scenario-bar__florist-link:hover{text-decoration:underline;}

.filter-bar{display:flex; flex-direction:column; gap:14px; margin:0 0 34px; padding:20px; background:var(--paper-dim);}
.filter-group{display:flex; flex-wrap:wrap; align-items:center; gap:8px;}
.filter-label{font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft); margin-right:6px; min-width:70px;}
.chip{border:1px solid var(--line); background:#fff; padding:7px 14px; font-size:12.5px; border-radius:100px; cursor:pointer; color:var(--ink); transition:.15s;}
.chip:hover{border-color:var(--ink);}
.chip-active{background:var(--ink); color:var(--paper); border-color:var(--ink);}
.filter-today{display:flex; align-items:center; gap:8px; font-size:13px; color:var(--ink);}

.occasion-row{display:flex; flex-wrap:wrap; gap:10px;}
.occasion-pill{display:flex; align-items:center; gap:8px; border:1px solid var(--ink); background:none; padding:10px 20px 10px 14px; border-radius:100px; font-size:13.5px; color:var(--ink); cursor:pointer; font-family:'Montserrat',sans-serif; transition:.2s;}
.occasion-pill:hover{background:var(--ink); color:var(--paper);}
.occasion-pill__icon{width:20px; height:20px; flex:0 0 auto; display:flex;}
.occasion-pill__icon svg{width:100%; height:100%;}

.faq-item{border-bottom:1px solid var(--line);}
.faq-q{width:100%; text-align:left; background:none; border:none; padding:18px 4px; font-size:15px; color:var(--ink); cursor:pointer; display:flex; justify-content:space-between; align-items:center;}
.faq-plus{font-size:18px; color:var(--ink-soft); transition:.2s;}
.faq-item.open .faq-plus{transform:rotate(45deg);}
.faq-a{max-height:0; overflow:hidden; font-size:13.5px; color:var(--ink-soft); line-height:1.7; transition:.25s;}
.faq-item.open .faq-a{max-height:200px; padding-bottom:18px;}

.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px; max-width:760px;}
@media (max-width:700px){.form-grid{grid-template-columns:1fr;}}
.form-grid select{width:100%; border:1px solid var(--line); background:#fff; padding:12px 13px; font-size:14px; font-family:-apple-system, sans-serif; border-radius:2px;}
