:root {
  --navy: #424738;
  --navy-dark: #2f3328;
  --ink: #3c3a32;
  --cream: #fffdf7;
  --warm: #f7efe3;
  --copper: #b66f3f;
  --copper-light: #d9a37c;
  --sage: #686d52;
  --line: #e5cfbd;
  --shadow: 0 18px 50px rgba(41, 36, 28, .10);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--cream); font-family: Montserrat, sans-serif; line-height: 1.6; }
img { max-width: 100%; display: block; }
a { color: inherit; }
.announcement { background: var(--navy); color: #fff; text-align: center; padding: 9px 18px; font-size: .78rem; letter-spacing: .04em; }
.announcement span:first-child { color: #f5c6a4; font-weight: 700; text-transform: uppercase; }
.announcement .dot { padding: 0 9px; color: var(--copper-light); }

.site-header { position: sticky; top: 0; z-index: 20; height: 88px; display: flex; align-items: center; justify-content: space-between; padding: 0 clamp(20px, 5vw, 72px); background: rgba(255,253,247,.94); border-bottom: 1px solid rgba(182,111,63,.28); backdrop-filter: blur(12px); }
.brand { display: inline-flex; align-items: center; gap: 13px; text-decoration: none; }
.brand-mark { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; background: #424738; border: 2px solid var(--copper-light); color: white; font-family: "Cormorant Garamond", serif; font-size: 1.45rem; box-shadow: inset 0 0 0 3px #424738, inset 0 0 0 4px rgba(255,255,255,.35); }
.brand-mark span { font-size: .8em; color: #f6d0b5; }
.brand-copy { display: grid; line-height: 1; color: #3f4338; }
.brand-copy strong { font: 700 1.35rem/1 "Cormorant Garamond", serif; letter-spacing: .08em; }
.brand-copy small { color: var(--navy); letter-spacing: .32em; margin-top: 6px; font-size: .62rem; text-align: center; }
nav { display: flex; align-items: center; gap: 26px; font-size: .82rem; font-weight: 600; color: var(--navy); }
nav a { text-decoration: none; }
.nav-order { padding: 10px 17px; border: 1px solid var(--copper); border-radius: 999px; }
.menu-toggle { display: none; border: 0; background: none; color: var(--navy); font-weight: 700; }

.hero { min-height: 660px; position: relative; overflow: hidden; display: grid; grid-template-columns: 1.15fr .85fr; align-items: center; gap: 50px; padding: 95px clamp(24px, 8vw, 120px); background: radial-gradient(circle at 90% 20%, #f1d6bf 0, transparent 29%), linear-gradient(135deg, #fffdf8 15%, #f8eee2 100%); border-bottom: 1px solid var(--line); }
.hero::after { content: ""; position: absolute; inset: 16px; border: 1px solid rgba(182,111,63,.35); pointer-events: none; }
.botanical { position: absolute; font-size: 8rem; color: rgba(104,109,82,.15); transform: rotate(-25deg); left: -20px; bottom: 10px; }
.hero-copy, .hero-art { position: relative; z-index: 1; }
.eyebrow { margin: 0 0 13px; color: var(--copper); font-size: .75rem; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
h1,h2,h3,h4 { font-family: "Cormorant Garamond", serif; color: var(--navy); line-height: 1.05; }
h1 { margin: 0; font-size: clamp(3.1rem, 6vw, 6.1rem); font-weight: 600; letter-spacing: -.04em; }
h1 em { display: inline-block; margin-top: 18px; font: 400 clamp(2rem,4vw,4.3rem)/1.08 Parisienne, cursive; color: var(--navy); }
.hero-text { max-width: 640px; margin: 30px 0; font-family: "Cormorant Garamond", serif; font-size: 1.35rem; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; padding: 12px 23px; border-radius: 999px; border: 1px solid var(--navy); text-decoration: none; font: 600 .82rem Montserrat, sans-serif; cursor: pointer; transition: .2s ease; }
.button:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(31,49,92,.18); }
.primary { background: var(--navy); color: white; }
.secondary { color: var(--navy); background: rgba(255,255,255,.4); }
.location { font-size: .78rem; color: var(--sage); margin-top: 25px; }
.hero-art { height: 420px; border-radius: 52% 48% 48% 52% / 58% 40% 60% 42%; background: linear-gradient(145deg, #fff 0%, #f2dcc8 100%); border: 1px solid var(--copper-light); box-shadow: var(--shadow); display: grid; place-items: center; }
.dessert { position: absolute; filter: drop-shadow(0 14px 12px rgba(65,41,25,.17)); }
.dessert-one { font-size: 9rem; left: 14%; bottom: 21%; transform: rotate(-7deg); }
.dessert-two { font-size: 8rem; right: 13%; bottom: 16%; transform: rotate(9deg); }
.dessert-three { font-size: 6rem; right: 26%; top: 12%; transform: rotate(4deg); }
.flourishes { position: absolute; top: 44px; left: 55px; color: var(--copper); letter-spacing: .5em; }

.opening-card { position: relative; z-index: 2; width: min(1100px, calc(100% - 40px)); margin: -48px auto 70px; display: grid; grid-template-columns: 1.4fr 1fr 1fr auto; align-items: center; gap: 28px; background: white; border: 1px solid var(--line); border-radius: 8px; padding: 27px 34px; box-shadow: var(--shadow); }
.opening-card h2 { margin: 0; font-size: 1.9rem; }
.deadline { display: grid; font-size: .83rem; }
.deadline strong { color: var(--navy); }
.text-link { color: var(--copper); font-weight: 700; font-size: .8rem; }

.intro-section { max-width: 720px; text-align: center; margin: 0 auto 60px; padding: 0 24px; }
.script { font: 400 2.25rem Parisienne, cursive; color: var(--copper); margin: 0 0 4px; }
.intro-section h2, .how-section h2 { font-size: clamp(2.3rem,4vw,3.6rem); margin: 0 0 16px; }
.intro-section p:last-child { color: #6d685e; }
.collection { padding: 85px clamp(22px, 7vw, 105px); }
.house-collection { background: #fffdf9; }
.seasonal-collection { background: #f4eadc; position: relative; overflow: hidden; }
.seasonal-collection::after { content:"❦"; position:absolute; right:-20px; top:35px; font-size:11rem; color:rgba(104,109,82,.10); transform:rotate(30deg); }
.section-heading { max-width: 1220px; margin: 0 auto 42px; display: flex; align-items: end; justify-content: space-between; gap: 40px; }
.section-heading h2 { font-size: clamp(2.5rem, 4.5vw, 4.4rem); margin: 0; }
.section-heading > p { max-width: 510px; color: #6d685e; }
.section-heading.centered { justify-content: center; text-align:center; }
.flavor-showcase { max-width: 1220px; margin: 0 auto 30px; padding: 26px 30px; border: 1px solid var(--line); text-align: center; background: linear-gradient(90deg,#faf1e7,#fffef9,#faf1e7); }
.flavor-showcase h3 { font-size: 1.75rem; margin: 0; }
.flavor-showcase > p { font-family: "Cormorant Garamond",serif; margin: 3px 0 16px; }
.flavor-pills { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; }
.flavor-pills span { border:1px solid #dbc8b7; border-radius:999px; padding:6px 12px; font-size:.72rem; background:#fff; color:var(--navy); }
.product-grid { max-width: 1220px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.product-card { position:relative; display:flex; flex-direction:column; min-height:280px; background:white; border:1px solid var(--line); border-radius:6px; padding:24px; box-shadow:0 6px 20px rgba(75,54,35,.05); }
.product-card .icon { font-size:2rem; }
.product-card h3 { margin: 14px 0 4px; font-size:1.65rem; }
.product-card .product-note { font-size:.75rem; color:#706b61; flex:1; }
.product-card .product-price { color:var(--navy); font:700 1.35rem "Cormorant Garamond",serif; }
.flavor-selectors { display:grid; gap:10px; margin-top:16px; }
.flavor-selectors label { display:grid; gap:5px; margin:0; color:var(--navy); font-size:.7rem; font-weight:600; }
.flavor-selectors select { padding:9px 10px; font-size:.75rem; }
.included-flavors { margin:16px 0 0; padding:10px 12px; background:#faf3e8; border-left:3px solid var(--copper); color:#625d54; font-size:.7rem; }
.selection-error { min-height:0; margin:7px 0 0; color:#9b3f2f; font-size:.68rem; }
.selection-error:not(:empty) { min-height:1.2em; }
.add-row { display:grid; grid-template-columns:70px 1fr; gap:8px; margin-top:16px; }
.add-row input { width:100%; border:1px solid #d6c4b4; border-radius:4px; padding:10px; font:inherit; }
.add-button { border:0; border-radius:4px; background:var(--navy); color:#fff; font:600 .75rem Montserrat,sans-serif; cursor:pointer; }
.add-button.added { background:var(--sage); }
.customize { max-width:1220px; margin:22px auto 0; border:1px solid var(--line); background:#faf5ed; }
.customize summary { padding:18px 22px; color:var(--navy); font-weight:700; cursor:pointer; }
.custom-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; padding:0 24px 24px; }
.custom-grid h4 { margin:0 0 5px; font-size:1.25rem; }
.custom-grid p { margin:0; font-size:.78rem; }
.seasonal-flavors { max-width:820px; margin:0 auto 35px; display:grid; grid-template-columns:1fr 1fr; background:rgba(255,255,255,.64); border:1px solid var(--line); position:relative; z-index:1; }
.seasonal-flavors > div { text-align:center; padding:24px; }
.seasonal-flavors > div+div { border-left:1px solid var(--line); }
.seasonal-flavors span { font-size:2rem; }
.seasonal-flavors h3 { margin:8px 0 5px; font-size:1.6rem; }
.seasonal-flavors p { margin:0; font-family:"Cormorant Garamond",serif; font-size:1.15rem; }
.seasonal-collection .product-grid { position:relative; z-index:1; }

.cake-collection { background:#fffaf3; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.cake-includes { max-width:1220px; margin:0 auto 32px; display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line); background:white; }
.cake-includes > div { padding:24px 28px; }
.cake-includes > div+div { border-left:1px solid var(--line); }
.cake-includes span { color:var(--copper); font:600 1.6rem "Cormorant Garamond",serif; }
.cake-includes h3 { margin:5px 0 7px; font-size:1.55rem; }
.cake-includes p { margin:0; color:#706b61; font-size:.76rem; }
.cake-grid { grid-template-columns:repeat(3,1fr); }
.cake-grid .product-card { min-height:260px; }
.product-price small { display:block; margin-bottom:2px; color:var(--copper); font:600 .68rem Montserrat,sans-serif; text-transform:uppercase; letter-spacing:.08em; }
.cake-notes { max-width:1220px; margin:24px auto 0; display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.cake-notes > div { padding:22px 24px; background:#f5eadc; border-left:3px solid var(--copper); }
.cake-notes h3 { margin:0 0 7px; font-size:1.35rem; }
.cake-notes p { margin:0; font-size:.75rem; }

.menu-artwork { padding:85px clamp(22px,7vw,105px); background:#fffdf9; }
.artwork-grid { max-width:1000px; margin:auto; display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:start; }
.artwork-grid figure { margin:0; border:1px solid var(--line); background:white; padding:10px; box-shadow:var(--shadow); }
.artwork-grid figcaption { text-align:center; padding:12px 6px 5px; color:var(--navy); font:600 1.1rem "Cormorant Garamond",serif; }

.how-section { padding:95px clamp(22px,7vw,105px); text-align:center; background:var(--navy); color:#fff; }
.how-section h2 { color:#fff; }
.how-section .script { color:#efbd98; }
.steps { max-width:1180px; margin:50px auto 0; display:grid; grid-template-columns:repeat(4,1fr); gap:25px; }
.steps > div { padding:26px 18px; border-top:1px solid rgba(255,255,255,.25); }
.steps span { font:600 2.5rem "Cormorant Garamond",serif; color:#d99a6d; }
.steps h3 { color:#fff; font-size:1.5rem; margin:8px 0; }
.steps p { font-size:.78rem; color:#d8dfef; }

.order-section { padding:95px clamp(22px,7vw,105px); background:#f8f1e8; display:grid; grid-template-columns:.7fr 1.3fr; gap:60px; align-items:start; }
.order-intro h2 { font-size:clamp(2.6rem,4.6vw,4.3rem); margin:0 0 22px; }
.notice { margin-top:28px; border-left:3px solid var(--copper); padding:16px 18px; background:rgba(255,255,255,.7); font-size:.8rem; }
.order-builder { background:white; border:1px solid var(--line); padding:30px; box-shadow:var(--shadow); }
.cart-panel { margin-bottom:28px; }
.cart-heading { display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--line); }
.cart-heading h3 { font-size:1.7rem; margin:0 0 10px; }
.cart-heading button { border:0; background:none; color:var(--copper); cursor:pointer; }
.cart-items { padding:15px 0; }
.empty-cart { color:#8b857b; font-size:.8rem; font-style:italic; }
.cart-item { display:grid; grid-template-columns:1fr auto auto; gap:12px; align-items:center; padding:8px 0; font-size:.79rem; }
.cart-item span { display:grid; }
.cart-item small { margin-top:3px; color:#766f65; font-size:.67rem; font-weight:400; line-height:1.35; }
.cart-item button { width:24px;height:24px;border:1px solid #dccbbb;background:white;border-radius:50%;cursor:pointer;color:#8a4f34; }
.cart-total { display:flex; justify-content:space-between; border-top:1px solid var(--line); padding-top:14px; color:var(--navy); }
.cart-total strong { font-size:1.2rem; }
form label { display:grid; gap:6px; margin-bottom:16px; color:var(--navy); font-size:.75rem; font-weight:600; }
.optional { color:#827b70; font-weight:400; }
input,textarea,select { width:100%; border:1px solid #d5c6b7; border-radius:3px; padding:12px; background:#fffdf9; color:var(--ink); font:400 .85rem Montserrat,sans-serif; }
textarea { resize:vertical; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.check { grid-template-columns:auto 1fr; align-items:start; font-weight:400; color:var(--ink); }
.check input { width:17px;height:17px;margin-top:3px; }
.full { width:100%; border:0; }
.copy-button { width:100%; margin-top:10px; padding:10px; border:0; background:transparent; color:var(--navy); text-decoration:underline; cursor:pointer; }
.form-status { min-height:20px; text-align:center; font-size:.75rem; color:var(--sage); }
.cake-form { margin:4px 0 20px; padding:22px; background:#faf3e8; border:1px solid var(--line); }
.cake-form[hidden] { display:none; }
.cake-form h3 { margin:0 0 5px; font-size:1.65rem; }
.cake-form > p { margin:0 0 18px; font-size:.75rem; color:#706b61; }
.scheduling-fields { margin:4px 0 20px; padding:22px; background:#f5f3eb; border:1px solid var(--line); }
.scheduling-fields h3 { margin:0 0 5px; font-size:1.65rem; }
.scheduling-fields > p { margin:0 0 18px; font-size:.75rem; color:#706b61; }
.scheduling-fields .field-help { margin:-6px 0 0; color:var(--sage); }

.special-orders { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.special-orders > div { text-align:center; padding:55px clamp(22px,5vw,75px); background:#fffdf8; }
.special-orders span { font-size:2.2rem; }
.special-orders h3 { font-size:1.7rem; margin:10px 0; }
.special-orders p { font-size:.78rem; }
footer { padding:65px 24px; background:#3f4338; color:#f7f1e8; text-align:center; }
.footer-brand { justify-content:center; margin-bottom:22px; }
.footer-brand .brand-copy strong,.footer-brand .brand-copy small { color:white; }
.footer-links { display:flex; justify-content:center; gap:10px; flex-wrap:wrap; font-size:.8rem; }
.fine-print { opacity:.65; font-size:.68rem; margin-top:30px; }

@media(max-width:980px){
  .product-grid{grid-template-columns:repeat(2,1fr)}
  .cake-grid{grid-template-columns:repeat(2,1fr)}
  .cake-includes,.cake-notes{grid-template-columns:1fr}.cake-includes>div+div{border-left:0;border-top:1px solid var(--line)}
  .hero{grid-template-columns:1fr;padding-top:75px}.hero-art{height:330px;max-width:560px;width:100%;margin:auto}.dessert-one{font-size:7rem}.dessert-two{font-size:6.5rem}.dessert-three{font-size:5rem}
  .opening-card{grid-template-columns:1fr 1fr}.opening-card>div:first-child{grid-column:1/-1}
  .steps{grid-template-columns:1fr 1fr}.order-section{grid-template-columns:1fr}.special-orders{grid-template-columns:1fr}.special-orders>div+div{border-top:1px solid var(--line)}
}
@media(max-width:760px){
  .announcement{font-size:.66rem}.announcement .dot{display:none}.announcement span:first-child{display:block}
  .site-header{height:74px;padding:0 18px}.brand-copy strong{font-size:1.12rem}.brand-mark{width:42px;height:42px}.menu-toggle{display:block}
  nav{display:none;position:absolute;top:74px;left:0;right:0;padding:20px;background:#fffdf7;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch}nav.open{display:flex}
  .hero{min-height:auto;padding:65px 24px 75px}.hero::after{inset:9px}.hero-art{height:250px}.dessert-one{font-size:5.4rem}.dessert-two{font-size:5rem}.dessert-three{font-size:3.7rem}.hero-actions{display:grid}.button{width:100%}
  .opening-card{grid-template-columns:1fr;margin-top:-28px;padding:24px}.opening-card>div:first-child{grid-column:auto}
  .section-heading{display:block}.collection,.menu-artwork,.how-section,.order-section{padding:70px 20px}.product-grid{grid-template-columns:1fr}.product-card{min-height:245px}.custom-grid{grid-template-columns:1fr}
  .seasonal-flavors{grid-template-columns:1fr}.seasonal-flavors>div+div{border-left:0;border-top:1px solid var(--line)}
  .artwork-grid{grid-template-columns:1fr}.steps{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.order-builder{padding:22px 17px}
}
