:root{
--wine:#86143d;--berry:#d10a61;--pink:#f20b6b;--gold:#c8932f;--gold2:#e5b34d;
--cream:#fff8eb;--paper:#fffdf8;--ink:#281a1c;--muted:#76666a;--line:#eadbcf
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",sans-serif;line-height:1.6}
a{text-decoration:none;color:inherit}.announcement{background:var(--wine);color:#fff;text-align:center;padding:9px;font-size:.68rem;font-weight:800;letter-spacing:.18em}
.header{position:sticky;top:0;z-index:30;display:flex;justify-content:space-between;align-items:center;padding:15px 6vw;background:rgba(255,248,235,.95);backdrop-filter:blur(15px);border-bottom:1px solid rgba(200,147,47,.28)}
.mini-brand{display:flex;flex-direction:column;line-height:.95;color:var(--wine)}.mini-brand span,.footer-brand span{font-family:"Playfair Display",serif;font-style:italic;font-size:1.85rem;font-weight:700}.mini-brand small,.footer-brand small{font-size:.55rem;letter-spacing:.18em;font-weight:800;margin-top:4px}
.nav{display:flex;align-items:center;gap:26px;font-size:.87rem;font-weight:700}.nav a:hover{color:var(--berry)}.order-pill{background:var(--berry);color:#fff!important;padding:11px 19px;border-radius:999px;box-shadow:0 7px 20px #d10a6133}
.menu-toggle{display:none;border:0;background:none;font-size:1.5rem;color:var(--wine)}
.hero{min-height:calc(100vh - 104px);display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:5vw;padding:5vw 7vw;background:radial-gradient(circle at 75% 45%,#fff 0,transparent 42%),var(--cream)}
.hero-copy{max-width:700px}.crest{display:inline-block;border-top:1px solid var(--gold);border-bottom:1px solid var(--gold);padding:7px 13px;color:var(--wine);font-size:.64rem;letter-spacing:.16em;font-weight:800}
h1,h2,h3{font-family:"Playfair Display",serif;line-height:1.04}h1{font-size:clamp(4rem,7vw,7rem);margin:22px 0 25px;font-weight:700}h1 em,h2 em{color:var(--berry);font-style:italic}h2{font-size:clamp(2.5rem,4.5vw,4.2rem);margin:8px 0 18px}h3{font-size:1.8rem;margin:8px 0}
.lead{font-size:1.13rem;color:var(--muted);max-width:600px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:30px 0}.btn{display:inline-block;border:0;padding:14px 24px;border-radius:999px;font-weight:800;cursor:pointer;font-family:inherit;transition:.2s}.btn:hover{transform:translateY(-2px);box-shadow:0 10px 25px #4b20261c}.primary{background:var(--wine);color:#fff}.secondary{border:1.5px solid var(--wine);color:var(--wine)}.light{background:#fff;color:var(--wine)}
.love-line{color:var(--wine);font-size:.78rem;font-weight:700}.love-line span{color:var(--berry);margin:0 7px}
.hero-logo{display:flex;justify-content:center}.logo-ring{width:min(650px,100%);padding:10px;border-radius:50%;background:linear-gradient(135deg,var(--gold),#fff,var(--gold));box-shadow:0 25px 65px #4a222516}.logo-ring img{display:block;width:100%;border-radius:50%}
.marquee{display:flex;justify-content:center;align-items:center;gap:20px;flex-wrap:wrap;background:var(--wine);color:#fff;padding:19px 6vw;font-size:.72rem;font-weight:800;letter-spacing:.17em}.marquee b{color:#ff3d91}
.section{padding:105px 7vw}.heading{text-align:center;max-width:760px;margin:0 auto 50px}.heading>p{color:var(--muted)}.script-accent{font-family:"Playfair Display",serif;font-style:italic;color:var(--berry);font-size:1.3rem}
.menu-grid{max-width:1180px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.menu-card{position:relative;background:#fff;padding:36px 32px 30px;border:1px solid var(--line);border-radius:25px;overflow:hidden;box-shadow:0 15px 40px #4b20260a}.menu-card:before{content:"";position:absolute;left:0;top:0;width:100%;height:7px;background:var(--gold)}.menu-card.cake:before{background:var(--berry)}.menu-card.sweets:before{background:var(--wine)}.number{font-size:.65rem;letter-spacing:.15em;color:#a69597;font-weight:800}.icon{font-size:2.8rem;margin-top:15px}.menu-card p{color:var(--muted);min-height:52px}.menu-card a{display:inline-block;margin-top:15px;color:var(--wine);font-weight:800}.menu-card a span{color:var(--berry);margin-left:5px}
.story{display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center;padding:90px 7vw;background:#fff}.story-logo img{width:100%;max-width:600px;border-radius:30px;box-shadow:0 25px 60px #4b202612}.story-copy{max-width:620px}.story-copy p{color:var(--muted)}.signature{font-family:"Playfair Display",serif;font-style:italic;font-size:2.2rem;color:var(--wine);margin-top:24px}.signature span{color:var(--berry)}
.order{padding:0 7vw 95px;background:#fff}.order-inner{max-width:1200px;margin:auto;border-radius:34px;padding:65px 6vw;display:flex;align-items:center;justify-content:space-between;gap:30px;background:linear-gradient(115deg,var(--wine),#aa124d);color:#fff;box-shadow:0 25px 60px #4b202620}.order h2{margin-top:8px}.order p{max-width:700px;opacity:.88}.eyebrow-light{font-size:.68rem;letter-spacing:.2em;font-weight:800;color:#ffd0e3}
.order-form-section{background:var(--cream)}.order-form{max-width:900px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:20px;background:#fff;padding:34px;border-radius:28px;border:1px solid var(--line);box-shadow:0 20px 50px #4b20260b}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field label{font-size:.78rem;font-weight:800;color:var(--wine)}input,select,textarea{font:inherit;border:1px solid #dfd0c7;border-radius:13px;background:#fffdf9;padding:13px 14px;outline:none;width:100%;max-width:100%;min-width:0}input:focus,select:focus,textarea:focus{border-color:var(--berry);box-shadow:0 0 0 3px #d10a6114}.full{grid-column:1/-1}
.faq{background:#f7ecdf}.faq-list{max-width:850px;margin:auto;border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line);padding:21px 0}summary{cursor:pointer;font-family:"Playfair Display",serif;font-size:1.3rem;font-weight:600}details p{color:var(--muted);max-width:720px}
footer{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;padding:55px 7vw;background:#211719;color:#fff}.footer-brand span{color:#ff5c9f}.footer-brand p{margin:10px 0 0;color:#e1d4d7}.footer-nav{display:grid;gap:8px}.footer-nav a:hover{color:#ff76ae}.footer-copy{font-size:.78rem;color:#cdbfc2;align-self:end;text-align:right}
@media(max-width:820px){.order-form{width:100%;min-width:0;overflow:hidden}.order-form .field,.order-form .full{min-width:0}.order-form input,.order-form select,.order-form textarea{width:100%;max-width:100%;min-width:0}.nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--cream);padding:18px 6vw;flex-direction:column;align-items:stretch;border-bottom:1px solid var(--line)}.nav.open{display:flex}.order-pill{text-align:center}.menu-toggle{display:block}.hero{grid-template-columns:1fr;padding:45px 6vw 70px;text-align:center}.hero-logo{order:-1}.hero-copy{margin:auto}.actions,.love-line{justify-content:center}.crest{font-size:.55rem}.menu-grid,.story,footer{grid-template-columns:1fr}.section{padding:75px 6vw}.story{padding:75px 6vw}.story-copy{text-align:center;margin:auto}.order{padding:0 5vw 70px}.order-inner{display:block;text-align:center;padding:45px 7vw}.order-inner .btn{margin-top:15px}.order-form{grid-template-columns:1fr;padding:25px}.full{grid-column:auto}.footer-copy{text-align:left}}


/* Real menu styling */
.menu-section{background:var(--cream)}
.fresh-note{max-width:950px;margin:-10px auto 45px;padding:18px 24px;display:flex;gap:15px;align-items:center;background:#fff;border:1px solid var(--gold);border-radius:16px;color:var(--muted);font-size:.92rem;box-shadow:0 12px 30px #4b202609}
.fresh-note strong{color:var(--wine)}
.fresh-heart{font-size:1.7rem;color:var(--berry)}
.menu-groups{max-width:1100px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:24px}
.menu-group{background:#fff;border:1px solid var(--line);border-radius:24px;padding:28px;box-shadow:0 14px 35px #4b202608}
.group-title{display:flex;align-items:center;gap:12px;margin-bottom:10px;border-bottom:1px solid var(--line);padding-bottom:13px}
.group-title span{font-size:.65rem;letter-spacing:.15em;color:var(--gold);font-weight:900}
.group-title h3{margin:0;font-size:1.65rem}
.menu-item{display:flex;justify-content:space-between;gap:18px;padding:18px 0;border-bottom:1px solid #f0e7df}
.menu-item:last-child{border-bottom:0;padding-bottom:4px}
.menu-item h4{font-family:"Playfair Display",serif;font-size:1.17rem;margin:0 0 3px}
.menu-item p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.45}
.menu-item>strong{color:var(--wine);font-family:"Playfair Display",serif;font-size:1.15rem;white-space:nowrap}
.menu-item.featured{background:#fffaf1;margin:0 -12px;padding:16px 12px;border-radius:13px}
.tag{display:inline-block;color:#fff;background:var(--berry);border-radius:999px;padding:3px 8px;font-size:.52rem;font-weight:900;letter-spacing:.1em;margin-bottom:4px}
.custom-card,.starter-card{border-radius:24px;padding:32px;min-height:280px}
.custom-card{background:var(--wine);color:#fff}
.custom-card .script-accent{color:#ffc1d9}.custom-card h3{font-size:2rem}.custom-card p{opacity:.87}
.text-button{display:inline-block;margin-top:10px;color:#fff;font-weight:800;border-bottom:1px solid #fff;padding-bottom:3px}
.starter-card{background:#fff;border:1px solid var(--gold);box-shadow:0 14px 35px #4b202608}
.starter-list{margin:18px 0;border-top:1px solid var(--line)}
.starter-list div{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line);font-weight:700}
.starter-list strong{color:var(--wine)}
.small-note{font-size:.75rem!important;color:var(--muted)}
.payment-note{padding:14px 16px;background:#fff8eb;border:1px solid var(--line);border-radius:12px;color:var(--muted);font-size:.82rem}
.payment-note strong{color:var(--wine)}
@media(max-width:820px){.menu-groups{grid-template-columns:1fr}.fresh-note{align-items:flex-start}}

/* Pickup timing / order date */
.pickup-timing {
  padding: 14px 16px;
  border-radius: 14px;
  background: #fff7ed;
  border: 1px solid rgba(116, 34, 62, .16);
  color: #74223e;
  font-weight: 700;
  line-height: 1.45;
}
.pickup-timing.warning {
  background: #fff0f0;
  border-color: rgba(160, 40, 40, .25);
}
.order-form input[readonly] {
  background: #f5eee5;
  color: #6d5a50;
  cursor: default;
}


/* Order form feedback */
.form-status{padding:14px 16px;border-radius:14px;background:#fff7ed;border:1px solid rgba(116,34,62,.16);color:#74223e;line-height:1.45;min-height:0}.form-status:empty{display:none}.form-status.success{background:#f2f8ee;border-color:rgba(68,108,48,.22);color:#315b2c}.form-status.warning{background:#fff0f0;border-color:rgba(160,40,40,.25);color:#8b3030}.order-form button:disabled{opacity:.65;cursor:wait}

/* Order confirmation */
.thank-you-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top,#fff7f2 0,#f8e9e4 42%,#5b1230 130%);padding:28px}
.thank-you-wrap{width:min(680px,100%)}
.thank-you-card{background:rgba(255,252,248,.97);border:1px solid rgba(100,20,45,.14);border-radius:28px;padding:42px 34px;text-align:center;box-shadow:0 24px 70px rgba(70,15,35,.2)}
.thank-logo{width:min(230px,60vw);height:auto;margin:0 auto 22px}
.thank-you-card h1{margin:8px 0 14px;font-size:clamp(2.3rem,7vw,4.2rem);line-height:.98}
.thank-you-card .lead{font-size:1.08rem;line-height:1.7;margin:0 auto 25px;max-width:560px}
.confirmation-box{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;text-align:left;margin:25px 0;padding:14px;border-radius:18px;background:#fff1eb}
.confirmation-box div{padding:12px}.confirmation-box span{display:block;font-size:.76rem;text-transform:uppercase;letter-spacing:.1em;opacity:.65;margin-bottom:6px}.confirmation-box strong{display:block;font-size:.95rem}
.thank-you-card .small{font-size:.88rem;line-height:1.6;opacity:.78;margin:18px auto 25px;max-width:560px}
.thank-you-card .text-button{display:block;margin-top:16px}
@media(max-width:620px){.thank-you-card{padding:32px 20px}.confirmation-box{grid-template-columns:1fr}.confirmation-box div{display:flex;justify-content:space-between;gap:12px}.confirmation-box span{margin:0}.confirmation-box strong{text-align:right}}

/* Customer reviews */
.reviews{background:#fff}
.review-grid{max-width:1080px;margin:auto;display:grid;grid-template-columns:1.25fr .75fr;gap:24px}
.review-card{background:#fffaf5;border:1px solid var(--line);border-radius:26px;padding:34px;box-shadow:0 16px 42px #4b20260b;position:relative}
.review-card:before{content:"“";position:absolute;right:24px;top:10px;font-family:"Playfair Display",serif;font-size:5rem;line-height:1;color:var(--gold);opacity:.5}
.featured-review{background:linear-gradient(135deg,#fffaf1,#fff)}
.stars{color:var(--berry);letter-spacing:.12em;font-size:1rem;margin-bottom:18px}
.review-card blockquote{margin:0;color:#4d3e3f;font-family:"Playfair Display",serif;font-size:1.18rem;line-height:1.7;position:relative;z-index:1}
.review-source{margin-top:22px;color:#8c7778;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
@media(max-width:820px){.review-grid{grid-template-columns:1fr}.review-card{padding:28px}.review-card blockquote{font-size:1.08rem}}

/* Behind the Bake */
.bake-section{background:#fbf4ec}
.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:34px}
.video-card{background:#fff;border:1px solid rgba(91,21,45,.12);box-shadow:0 16px 40px rgba(61,28,35,.08);overflow:hidden}
.video-featured{transform:translateY(-6px)}
.video-frame{background:#1e1014;aspect-ratio:16/11;overflow:hidden}
.video-frame video{width:100%;height:100%;display:block;object-fit:cover}
.video-copy{padding:22px 22px 24px}
.video-copy .tag{display:inline-block;font-size:11px;letter-spacing:.14em;font-weight:800;color:#a11d55;margin-bottom:9px}
.video-copy h3{font-family:'Playfair Display',serif;font-size:26px;line-height:1.08;margin:0 0 9px;color:#57152f}
.video-copy p{margin:0;color:#604b4d;line-height:1.65}
@media(max-width:850px){.video-grid{grid-template-columns:1fr}.video-featured{transform:none}.video-copy h3{font-size:24px}}

/* Bakery photo gallery */
.gallery-section{background:#fff}
.photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:34px}
.photo-card{margin:0;position:relative;overflow:hidden;background:#f3e8df;min-height:250px}
.photo-card img{width:100%;height:100%;min-height:250px;display:block;object-fit:cover;transition:transform .5s ease}
.photo-card:hover img{transform:scale(1.035)}
.photo-card figcaption{position:absolute;left:14px;right:14px;bottom:14px;padding:9px 12px;background:rgba(255,255,255,.92);color:#57152f;font-weight:800;font-size:12px;letter-spacing:.04em}
.photo-large{grid-column:span 2;grid-row:span 2;min-height:516px}
.photo-large img{min-height:516px}
@media(max-width:850px){.photo-grid{grid-template-columns:repeat(2,1fr)}.photo-large{grid-column:span 2;grid-row:auto;min-height:360px}.photo-large img{min-height:360px}}
@media(max-width:520px){.photo-grid{grid-template-columns:1fr}.photo-large{grid-column:auto}}

/* Order policy */
.order-policy{padding:16px 18px;background:#fff7ed;border:1px solid var(--gold);border-radius:14px;color:var(--muted);font-size:.86rem;line-height:1.55}.order-policy>strong:first-child{color:var(--wine);letter-spacing:.04em}.field-help{font-size:.74rem;line-height:1.4;color:var(--muted)}
.specialty-menu-item{position:relative}
.specialty-menu-item .tag{background:var(--gold);color:var(--wine)}
.specialty-note{display:block;margin-top:7px;padding:9px 11px;border-radius:10px;background:#fff7ed;color:var(--wine)}
.specialty-note.available{background:#f3f8ef;color:#315b2c}
.specialty-note.unavailable{background:#fff0f0;color:#8b3030}

/* v19 mobile safety patch: prevent any order-form content from creating horizontal scroll */
html, body { width:100%; max-width:100%; overflow-x:hidden; }
.order-form-section, .order-form, .order-form * { max-width:100%; }
.order-form { width:100%; box-sizing:border-box; min-width:0; }
.order-form .field { width:100%; min-width:0; }
.order-form input,
.order-form select,
.order-form textarea,
.order-form button { width:100%; max-width:100%; min-width:0; box-sizing:border-box; }
.order-form .order-policy,
.order-form .pickup-timing,
.order-form .form-status { width:100%; min-width:0; overflow-wrap:anywhere; word-break:normal; }
@media (max-width:820px) {
  .section.order-form-section { width:100%; max-width:100%; overflow-x:hidden; padding-left:16px; padding-right:16px; }
  .order-form { width:100%; margin-left:0; margin-right:0; padding:20px; }
  .order-form .full { grid-column:1 / -1; }
  .order-form input[type="date"] { display:block; }
  .order-form button { white-space:normal; line-height:1.25; }
}

/* v20 final mobile form sizing: keep every form control inside the card on narrow screens */
.order-form,
.order-form .field,
.order-form .field > *,
.order-form input,
.order-form select,
.order-form textarea,
.order-form button {
  box-sizing: border-box;
}
.order-form .field { min-width: 0; }
@media (max-width: 820px) {
  .section.order-form-section { overflow-x: clip; }
  .order-form {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: 20px;
    gap: 18px;
  }
  .order-form .field,
  .order-form .full {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
  }
  .order-form input,
  .order-form select,
  .order-form textarea,
  .order-form button {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
  .order-form input[type="date"] {
    -webkit-appearance: none;
    appearance: none;
    min-height: 52px;
  }
  .order-form select {
    min-height: 52px;
  }
  .order-form textarea { resize: vertical; }
}
