:root{
  --ink:#1B1611;
  --cream:#F6F0E4;
  --cream-2:#EFE6D2;
  --clay:#B65A2E;
  --clay-dark:#8E4322;
  --bottle:#1E362A;
  --bottle-dark:#12211A;
  --brass:#B08A3E;
  --line: rgba(27,22,17,0.14);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'Inter', -apple-system, sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;}
h1,h2,h3{
  font-family:'Fraunces', serif;
  font-weight:500;
  margin:0;
  letter-spacing:-0.01em;
}
.wrap{max-width:1280px;margin:0 auto;padding:0 32px;}
@media (max-width:640px){ .wrap{padding:0 20px;} }

.skip{position:absolute;left:-999px;top:auto;}
.skip:focus{left:20px;top:20px;background:var(--ink);color:var(--cream);padding:10px 16px;z-index:999;border-radius:4px;}
a:focus-visible, button:focus-visible{outline:2px solid var(--clay);outline-offset:3px;}
@media (prefers-reduced-motion: reduce){ *{animation:none !important; transition:none !important;} }

/* ---------- header ---------- */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(246,240,228,0.92);
  backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid var(--line);
}
.nav{display:flex; align-items:center; justify-content:space-between; padding:18px 0;}
.wordmark{display:flex; align-items:center; text-decoration:none; color:var(--ink);}
.wordmark img{height:40px; width:auto; display:block;}
.foot-word{height:30px; width:auto; display:block;}
.navlinks{display:none; gap:34px; list-style:none; margin:0; padding:0;}
@media (min-width:900px){ .navlinks{display:flex;} }
.navlinks a{text-decoration:none; font-size:15px; color:var(--ink); padding-bottom:3px; border-bottom:1px solid transparent; transition:border-color .18s ease;}
.navlinks a:hover, .navlinks a.active{border-color:var(--clay);}
.btn{display:inline-block; text-decoration:none; font-size:15px; font-weight:500; padding:11px 22px; border-radius:2px; transition:transform .15s ease, background .15s ease;}
.btn-clay{background:var(--clay); color:var(--cream);}
.btn-clay:hover{background:var(--clay-dark); transform:translateY(-1px);}
.btn-line{border:1px solid var(--ink); color:var(--ink);}
.btn-line:hover{background:var(--ink); color:var(--cream);}
.btn-brass-line{border:1px solid rgba(246,240,228,0.5); color:var(--cream);}
.btn-brass-line:hover{background:rgba(246,240,228,0.12);}
.navcta{display:none;}
@media (min-width:900px){ .navcta{display:inline-block;} }

/* ---------- page header banner (non-home pages) ---------- */
.page-banner{padding:64px 0 48px; border-bottom:1px solid var(--line);}
.page-banner .eyebrow{font-family:'Fraunces', serif; font-style:italic; color:var(--clay); font-size:15px;}
.page-banner h1{font-size:clamp(32px,4.6vw,52px); margin-top:10px; max-width:18ch;}
.page-banner p{margin-top:18px; max-width:52ch; color:#4a4238; font-size:16px;}

/* ---------- hero (home) ---------- */
.hero{padding:76px 0 96px; position:relative;}
.hero-grid{display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px; align-items:center;}
@media (max-width:900px){ .hero-grid{grid-template-columns:1fr; gap:44px;} }
.hero h1{font-size:clamp(38px, 5.2vw, 64px); line-height:1.04;}
.hero-lede{max-width:44ch; margin:24px 0 34px; font-size:17px; color:#3a332b;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap;}
.hero-photos{position:relative; height:520px;}
@media (max-width:900px){ .hero-photos{height:420px;} }
@media (max-width:520px){ .hero-photos{height:340px;} }
.hp{position:absolute; overflow:hidden; box-shadow:0 22px 44px -18px rgba(27,22,17,.42);}
.hp img{width:100%; height:100%; object-fit:cover;}
.hp-a{ width:64%; height:72%; top:0; right:0; border-radius:4px 60px 4px 4px; }
.hp-b{ width:52%; height:48%; bottom:0; left:0; border-radius:4px; transform:rotate(-2.5deg); border:6px solid var(--cream); }
.hp-tag{position:absolute; left:0; bottom:34%; background:var(--bottle); color:var(--cream); font-family:'Fraunces', serif; font-style:italic; font-weight:400; font-size:15px; padding:10px 18px; border-radius:2px; box-shadow:0 12px 26px -10px rgba(18,33,26,.5);}
@media (max-width:900px){ .hp-tag{display:none;} }
.stat-row{display:flex; gap:44px; margin-top:52px; padding-top:32px; border-top:1px solid var(--line); flex-wrap:wrap;}
.stat b{display:block; font-family:'Fraunces', serif; font-size:30px; font-weight:500; color:var(--clay);}
.stat span{font-size:14px; color:#5b5348;}

/* ---------- story ---------- */
.story{padding:90px 0;}
.story-grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:64px; align-items:center;}
@media (max-width:860px){ .story-grid{grid-template-columns:1fr;} }
.story-grid.reverse{grid-template-columns:1.15fr 0.85fr;}
@media (max-width:860px){ .story-grid.reverse{grid-template-columns:1fr;} }
.story-grid.reverse .story-photo{order:2;}
.story-photo{border-radius:4px; overflow:hidden;}
.story-photo img{width:100%; height:100%; object-fit:cover; aspect-ratio:4/5;}
.story h2{font-size:clamp(28px,3.4vw,40px); max-width:18ch; line-height:1.1;}
.story-quote{margin:28px 0; padding-left:22px; border-left:3px solid var(--clay); font-family:'Fraunces', serif; font-style:italic; font-size:19px; color:#33291f;}
.story p{color:#3a332b; max-width:54ch;}
.story-points{list-style:none; margin:28px 0 0; padding:0; display:grid; gap:10px;}
.story-points li{padding-left:20px; position:relative; color:#3a332b; font-size:15px;}
.story-points li::before{content:''; position:absolute; left:0; top:9px; width:6px; height:6px; background:var(--brass); border-radius:50%;}

/* ---------- marquee ticker ---------- */
.marquee{background:var(--bottle); padding:15px 0; overflow:hidden; border-top:1px solid rgba(246,240,228,.15); border-bottom:1px solid rgba(246,240,228,.15);}
.marquee-track{display:flex; gap:36px; white-space:nowrap; width:max-content; animation:marquee-scroll 30s linear infinite;}
.marquee-track span{font-family:'Fraunces', serif; font-style:italic; font-size:14.5px; letter-spacing:.02em; color:var(--brass);}
.marquee-track span.sep{color:rgba(246,240,228,.38); font-style:normal;}
@keyframes marquee-scroll{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

/* ---------- single featured video (click to play) ---------- */
.feature-video{padding:90px 0;}
.fv-grid{display:grid; grid-template-columns:1.1fr 0.9fr; gap:60px; align-items:center;}
@media (max-width:860px){ .fv-grid{grid-template-columns:1fr;} }
.fv-eyebrow{font-family:'Fraunces', serif; font-style:italic; color:var(--clay); font-size:15px;}
.feature-video h2{font-size:clamp(28px,3.4vw,40px); margin-top:8px; max-width:16ch;}
.feature-video > .wrap > .fv-grid > div:first-child > p{color:#3a332b; max-width:44ch; margin-top:16px;}
.fv-more{margin-top:20px; font-size:14px; color:#5b5348;}
.fv-more a{color:var(--clay); text-decoration:none; border-bottom:1px solid rgba(182,90,46,.4);}
.fv-more a:hover{border-color:var(--clay);}
.fv-video{position:relative; width:100%; max-width:320px; margin:0 auto; aspect-ratio:9/16; border-radius:8px; overflow:hidden; cursor:pointer; background:var(--ink); box-shadow:0 22px 44px -18px rgba(27,22,17,.42);}
.fv-video img.poster{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.fv-video video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:none;}
.fv-play{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(18,15,11,.25); transition:background .15s ease;}
.fv-video:hover .fv-play{background:rgba(18,15,11,.4);}
.fv-play-btn{width:60px; height:60px; border-radius:50%; background:var(--clay); color:var(--cream); display:flex; align-items:center; justify-content:center; font-size:0; box-shadow:0 8px 20px -6px rgba(0,0,0,.5);}
.fv-play-btn::before{content:''; border-style:solid; border-width:9px 0 9px 15px; border-color:transparent transparent transparent var(--cream); margin-left:4px;}

/* ---------- interactive flower menu ---------- */
.flower-page{padding:10px 0 100px;}
.flower-cat{margin-bottom:86px; padding-bottom:76px; border-bottom:1px solid var(--line);}
.flower-cat:last-child{border-bottom:none;}
.flower-cat > h3{font-size:26px; margin-bottom:8px;}
.flower-cat > .menu-note{max-width:70ch; margin-bottom:36px;}
.flower-unit{display:grid; grid-template-columns:0.95fr 1.05fr; gap:52px; align-items:center;}
@media (max-width:820px){ .flower-unit{grid-template-columns:1fr; gap:36px;} }

.flower-photo-pane{border-radius:6px; overflow:hidden; background:var(--ink); position:relative; box-shadow:0 22px 44px -18px rgba(27,22,17,.42);}
.flower-photo{width:100%; aspect-ratio:4/3; object-fit:cover; display:block; transition:opacity .18s ease;}
.flower-desc{padding:22px 24px 26px; background:var(--cream-2);}
.flower-desc-name{font-family:'Fraunces', serif; font-size:21px; color:var(--ink);}
.flower-desc-text{font-size:14px; color:#5b5348; margin-top:8px; line-height:1.55; min-height:22px;}
.flower-desc-price{font-family:'Fraunces', serif; font-style:italic; color:var(--clay); font-size:19px; margin-top:12px;}

.flower-wheel-wrap{
  position:relative; width:360px; height:360px; max-width:88vw; max-height:88vw; margin:0 auto;
  touch-action:none; user-select:none; cursor:grab;
}
.flower-wheel-wrap:active{cursor:grabbing;}
.flower-wheel-wrap::before{
  content:''; position:absolute; inset:0; border-radius:50%;
  background: radial-gradient(circle, rgba(182,90,46,.06) 0%, rgba(182,90,46,0) 70%);
}
.flower-marker{
  position:absolute; top:-4px; left:50%; transform:translateX(-50%);
  width:0; height:0; border-left:11px solid transparent; border-right:11px solid transparent;
  border-top:16px solid var(--brass); z-index:5; filter:drop-shadow(0 2px 3px rgba(0,0,0,.3));
}
.flower-wheel{
  position:absolute; inset:0; border-radius:50%;
}
.flower-hub{
  position:absolute; top:50%; left:50%; width:96px; height:96px; margin:-48px 0 0 -48px;
  border-radius:50%; z-index:3; pointer-events:none;
  background: url('images/menu/hub-texture.jpg') center/cover;
  border:3px solid var(--brass);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 22px -8px rgba(0,0,0,.5), inset 0 0 0 1px rgba(246,240,228,.15);
}
.flower-hub img{width:34px; height:auto; filter:drop-shadow(0 2px 3px rgba(0,0,0,.6)) brightness(0) invert(1);}
.petal-wrap{position:absolute; inset:0;}
.petal{
  position:absolute; top:0; left:50%; transform:translateX(-50%);
  width:84px; min-height:110px; padding:20px 10px 30px;
  display:flex; flex-direction:column; align-items:center; justify-content:flex-start; gap:4px;
  text-align:center; cursor:pointer;
  clip-path: polygon(50% 100%, 25% 84%, 11% 66%, 5% 46%, 8% 27%, 19% 11%, 35% 2%, 50% 0%, 65% 2%, 81% 11%, 92% 27%, 95% 46%, 89% 66%, 75% 84%);
  filter: drop-shadow(0 8px 10px rgba(0,0,0,.38));
  background-image: url('images/menu/petal-texture.jpg');
  background-size:190px 190px;
  background-repeat:no-repeat;
}
.petal-wrap:nth-child(odd) .petal{background-color:rgba(142,67,34,.6); background-blend-mode:multiply; background-position:20% 30%;}
.petal-wrap:nth-child(even) .petal{background-color:rgba(22,63,61,.62); background-blend-mode:multiply; background-position:70% 60%;}
.petal-name{font-family:'Fraunces', serif; font-size:11px; line-height:1.15; color:var(--cream); font-weight:600; text-shadow:0 1px 3px rgba(0,0,0,.6);}
.petal-price{font-size:10px; color:rgba(246,240,228,.92); text-shadow:0 1px 3px rgba(0,0,0,.6);}
.flower-loc-note{text-align:center; margin-bottom:56px; color:#5b5348; font-size:15px;}

/* ---------- menu tabs ---------- */
.menu-toggle{display:flex; justify-content:center; gap:0; margin:0 0 50px; border:1px solid var(--line); border-radius:3px; overflow:hidden; max-width:460px; margin-left:auto; margin-right:auto;}
.menu-toggle button{flex:1; padding:14px 20px; font-family:'Fraunces', serif; font-size:16px; background:var(--cream-2); border:none; cursor:pointer; color:var(--ink); transition:background .15s ease, color .15s ease;}
.menu-toggle button + button{border-left:1px solid var(--line);}
.menu-toggle button.active{background:var(--bottle); color:var(--cream);}
.menu-panel{display:none;}
.menu-panel.active{display:block;}
.menu-cat{margin-bottom:52px;}
.menu-cat h3{font-size:22px; margin-bottom:22px; padding-bottom:12px; border-bottom:1px solid var(--line);}
.menu-item{display:flex; justify-content:space-between; gap:18px; padding:14px 0; border-bottom:1px dashed var(--line);}
.menu-item:last-child{border-bottom:none;}
.menu-item-name{font-family:'Fraunces', serif; font-size:16.5px;}
.menu-item-desc{font-size:13.5px; color:#6b6255; margin-top:3px; max-width:52ch;}
.menu-item-price{font-family:'Fraunces', serif; font-style:italic; color:var(--clay); white-space:nowrap; font-size:15.5px;}
.menu-note{background:var(--cream-2); border:1px dashed var(--line); border-radius:4px; padding:20px 22px; font-size:14px; color:#5b5348; margin-bottom:50px;}

/* ---------- carte / photo grid ---------- */
.carte{padding:20px 0 100px;}
.carte-head{display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:38px; flex-wrap:wrap;}
.carte-head h2{font-size:clamp(28px,3.4vw,40px);}
.carte-head p{max-width:38ch; color:#4a4238; font-size:15px; margin:0;}
.photo-grid{display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:190px; gap:14px; grid-auto-flow:dense;}
@media (max-width:760px){ .photo-grid{grid-template-columns:repeat(2,1fr); grid-auto-rows:150px;} }
.pg-item{border-radius:3px; overflow:hidden; position:relative;}
.pg-item img{width:100%; height:100%; object-fit:cover;}
.pg-item.featured{grid-column:span 2; grid-row:span 2;}
.pg-cap{position:absolute; left:0; right:0; bottom:0; padding:10px 12px; font-size:12.5px; color:var(--cream); background:linear-gradient(0deg, rgba(18,15,11,.72), transparent); opacity:0; transition:opacity .18s ease;}
.pg-item:hover .pg-cap{opacity:1;}
@media (hover:none){ .pg-cap{opacity:1;} }

/* ---------- services strip / blocks ---------- */
.services{background:var(--cream-2); padding:54px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.services-row{display:grid; grid-template-columns:repeat(3,1fr); gap:0;}
@media (max-width:760px){ .services-row{grid-template-columns:1fr; gap:28px;} }
.service-cell{padding:0 32px; position:relative;}
.service-cell + .service-cell{border-left:1px solid var(--line);}
@media (max-width:760px){ .service-cell + .service-cell{border-left:none; border-top:1px solid var(--line); padding-top:28px;} }
.service-cell h3{font-size:19px; font-weight:500; margin-bottom:8px;}
.service-cell p{margin:0; font-size:14.5px; color:#4a4238;}

.service-block{padding:80px 0; border-bottom:1px solid var(--line);}
.service-block:last-child{border-bottom:none;}
.service-block-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:60px; align-items:center;}
@media (max-width:860px){ .service-block-grid{grid-template-columns:1fr;} }
.service-block-grid.reverse{grid-template-columns:1.1fr 0.9fr;}
@media (max-width:860px){ .service-block-grid.reverse{grid-template-columns:1fr;} }
.service-block-grid.reverse .sb-photo{order:2;}
.sb-photo{border-radius:4px; overflow:hidden;}
.sb-photo img{width:100%; aspect-ratio:5/4; object-fit:cover;}
.sb-num{font-family:'Fraunces', serif; font-style:italic; color:var(--brass); font-size:15px;}
.service-block h2{font-size:clamp(26px,3.2vw,36px); margin-top:8px; max-width:16ch;}
.service-block p{color:#3a332b; max-width:48ch; margin-top:18px;}

/* ---------- locations ---------- */
.locations{background:var(--bottle); color:var(--cream); padding:96px 0;}
.loc-head{max-width:52ch; margin-bottom:52px;}
.loc-head h2{font-size:clamp(28px,3.6vw,42px); color:var(--cream);}
.loc-head p{color:rgba(246,240,228,0.72); margin-top:16px; font-size:16px;}
.loc-grid{display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid rgba(246,240,228,0.18); border-radius:4px; overflow:hidden;}
@media (max-width:760px){ .loc-grid{grid-template-columns:1fr;} }
.loc-card{padding:40px 40px 36px;}
.loc-card + .loc-card{border-left:1px solid rgba(246,240,228,0.18);}
@media (max-width:760px){ .loc-card + .loc-card{border-left:none; border-top:1px solid rgba(246,240,228,0.18);} }
.loc-eyebrow{font-size:14px; color:var(--brass); font-family:'Fraunces', serif; font-style:italic;}
.loc-card h3{font-size:26px; margin-top:6px; color:var(--cream);}
.loc-addr{margin-top:18px; font-size:15.5px; color:rgba(246,240,228,0.82); line-height:1.7;}
.loc-addr a{text-decoration:none; border-bottom:1px solid rgba(246,240,228,0.35);}
.loc-addr a:hover{border-color:var(--cream);}
.loc-actions{margin-top:24px; display:flex; gap:12px; flex-wrap:wrap;}

/* ---------- contact form ---------- */
.contact-wrap{padding:90px 0;}
.contact-grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:64px;}
@media (max-width:860px){ .contact-grid{grid-template-columns:1fr;} }
.contact-info h2{font-size:clamp(26px,3.2vw,34px); max-width:16ch;}
.contact-info p{color:#3a332b; margin-top:16px; max-width:40ch;}
.contact-list{list-style:none; margin:28px 0 0; padding:0; display:grid; gap:16px;}
.contact-list li{font-size:15px; color:#3a332b;}
.contact-list b{display:block; font-family:'Fraunces', serif; font-size:15px; color:var(--ink); margin-bottom:2px;}
.form-field{display:grid; gap:6px; margin-bottom:18px;}
.form-field label{font-size:13.5px; color:#5b5348;}
.form-field input, .form-field textarea{
  font-family:'Inter'; font-size:15px; padding:12px 14px; border:1px solid var(--line);
  background:var(--cream-2); border-radius:2px; color:var(--ink); resize:vertical;
}
.form-field input:focus, .form-field textarea:focus{outline:2px solid var(--clay); outline-offset:1px; border-color:var(--clay);}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
@media (max-width:560px){ .form-row{grid-template-columns:1fr;} }

/* ---------- testimonials ---------- */
.press{padding:96px 0;}
.press-head{display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:44px; flex-wrap:wrap; gap:16px;}
.press-head h2{font-size:clamp(28px,3.4vw,40px);}
.press-stars{font-family:'Fraunces', serif; font-style:italic; color:var(--clay); font-size:16px;}
.press-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
@media (max-width:860px){ .press-grid{grid-template-columns:1fr;} }
.press-card{background:var(--cream-2); border-radius:4px; padding:30px 28px; border:1px solid var(--line);}
.press-card q{display:block; font-family:'Fraunces', serif; font-size:18px; line-height:1.5; color:#2a231b; quotes:none; margin-bottom:22px;}
.press-name{font-size:14px; font-weight:600;}
.press-role{font-size:13px; color:#6b6255;}

/* ---------- cta band ---------- */
.cta-band{background:var(--clay); color:var(--cream); padding:70px 0; text-align:left;}
.cta-inner{display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap;}
.cta-band h2{color:var(--cream); font-size:clamp(24px,3vw,34px); max-width:20ch;}

/* ---------- footer ---------- */
footer{background:var(--bottle-dark); color:rgba(246,240,228,0.76); padding:64px 0 32px; font-size:14.5px;}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:44px; padding-bottom:44px; border-bottom:1px solid rgba(246,240,228,0.14);}
@media (max-width:760px){ .foot-grid{grid-template-columns:1fr; gap:32px;} }
.foot-word{font-family:'Fraunces', serif; font-size:22px; color:var(--cream); font-weight:600;}
.foot-tag{margin-top:12px; max-width:32ch; color:rgba(246,240,228,0.6);}
.foot-col h4{font-family:'Inter'; font-size:13px; letter-spacing:.02em; color:var(--brass); margin:0 0 14px; font-weight:600;}
.foot-col ul{list-style:none; margin:0; padding:0; display:grid; gap:10px;}
.foot-col a{text-decoration:none; color:rgba(246,240,228,0.76);}
.foot-col a:hover{color:var(--cream);}
.foot-bottom{display:flex; justify-content:space-between; padding-top:28px; flex-wrap:wrap; gap:12px; color:rgba(246,240,228,0.48); font-size:13px;}
