/* Golden Crumb Bakery (concept site by Bates & Co. Digital) */
:root{--cream:#FBF4E8;--cream2:#F4E6CF;--butter:#F3C969;--butter-d:#E0AE3E;--crust:#B9772E;--cocoa:#3B2418;--cocoa2:#54362A;--rasp:#C4455A;--rasp-d:#A9364A;--ink:#3B2418;--muted:#7A6356;--line:#E6D5BC;--serif:"Fraunces",Georgia,serif;--sans:"Karla",system-ui,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--sans);color:var(--ink);background:var(--cream);line-height:1.65;overflow-x:hidden;font-size:17px}
img,svg{display:block;max-width:100%}
a{color:inherit}
.wrap{width:min(1160px,100% - 40px);margin:0 auto}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.05;letter-spacing:-.015em}
h1 em,h2 em,h3 em{font-style:italic;color:var(--rasp)}
.kicker{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--crust)}
.kicker::before{content:"";width:22px;height:1.5px;background:currentColor}
section{scroll-margin-top:90px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* buttons */
.btn{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;gap:12px;text-decoration:none;font-weight:700;font-size:.95rem;letter-spacing:.02em;padding:15px 28px;border-radius:999px;border:1.5px solid var(--cocoa);background:var(--cocoa);color:var(--cream);cursor:pointer;transition:color .35s,border-color .35s}
.btn.line{background:transparent;color:var(--cocoa)}
.btn.butter{background:var(--butter);border-color:var(--butter);color:var(--cocoa)}
.btn .ar{transition:transform .35s}.btn:hover .ar{transform:translateX(4px)}

/* header */
.top{position:sticky;top:0;z-index:40;background:rgba(251,244,232,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.top-in{display:flex;align-items:center;justify-content:space-between;height:80px}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none}
.logo svg{width:44px;height:44px;flex:none}
.logo b{display:block;font-family:var(--serif);font-weight:600;font-size:1.45rem;line-height:1;letter-spacing:-.01em}
.logo small{display:block;font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;color:var(--crust);margin-top:4px;font-weight:700}
.nav{display:flex;align-items:center;gap:30px}
.nav a{text-decoration:none;font-weight:500;font-size:.95rem;position:relative}
.nav a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:1.5px;background:var(--rasp);transform:scaleX(0);transform-origin:left;transition:transform .35s}
.nav a:not(.btn):hover::after,.nav a[aria-current=page]::after{transform:none}
.nav .btn{padding:11px 20px;font-size:.88rem}
.menu-btn{display:none;width:46px;height:46px;border-radius:50%;border:1.5px solid var(--cocoa);background:transparent;position:relative;cursor:pointer}
.menu-btn span{position:absolute;left:12px;right:12px;height:1.8px;background:var(--cocoa);transition:transform .3s,top .3s}
.menu-btn span:nth-child(1){top:18px}.menu-btn span:nth-child(2){top:26px}
.menu-btn[aria-expanded=true] span:nth-child(1){top:22px;transform:rotate(45deg)}
.menu-btn[aria-expanded=true] span:nth-child(2){top:22px;transform:rotate(-45deg)}
.mnav{display:none}
@media(max-width:900px){
  .nav{display:none}.menu-btn{display:block}
  .mnav{position:fixed;inset:0;z-index:35;background:var(--cocoa);color:var(--cream);display:flex;flex-direction:column;justify-content:center;padding:100px 30px 40px;opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s}
  .mnav.open{opacity:1;visibility:visible}
  .mnav a{font-family:var(--serif);font-size:2.4rem;text-decoration:none;line-height:1.3}
  .mnav a[aria-current=page]{font-style:italic;color:var(--butter)}
  .mnav .btn{font-family:var(--sans);font-size:1rem;margin-top:26px;align-self:flex-start}
  .mnav .m-hours{margin-top:30px;font-size:.85rem;color:#CDB6A3}
}

/* photo frames: a real photo covers the illustration once it's added to /img */
.ph{position:relative;overflow:hidden;background:var(--butter);display:flex;align-items:center;justify-content:center}
.ph>svg{width:52%;height:auto;color:var(--cocoa);opacity:.9}
.ph>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ph.t-rasp{background:#F2C7C9}.ph.t-sage{background:#D8DDC1}.ph.t-crust{background:#E8C18E}.ph.t-cocoa{background:var(--cocoa2)}.ph.t-cocoa>svg{color:var(--butter)}
.ph::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.35),transparent 55%);pointer-events:none}
.ph>img~*,.ph img+svg{display:none}
.arch{border-radius:999px 999px 18px 18px}

/* word-by-word headline (visual upgrade) */
.wbw .w{display:inline-block;opacity:0;transform:translateY(.45em);transition:opacity .6s ease,transform .7s cubic-bezier(.2,.7,.1,1)}
.wbw.go .w{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.wbw .w{opacity:1;transform:none;transition:none}}

/* scrolling text banner (visual upgrade) */
.marq{background:var(--cocoa);color:var(--cream);overflow:hidden;white-space:nowrap}
.marq-in{display:inline-flex;padding:18px 0;animation:marq 32s linear infinite}
.marq-in span{display:inline-flex;align-items:center;gap:34px;padding-right:34px;font-family:var(--serif);font-style:italic;font-size:1.5rem}
.marq-in i{font-style:normal;color:var(--butter);font-size:1rem}
@keyframes marq{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.marq-in{animation:none}}

/* home hero */
.hero{padding:70px 0 90px;position:relative}
.hero-in{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:60px;align-items:center}
.hero h1{font-size:clamp(3rem,7vw,6rem);margin:20px 0 22px}
.hero .lead{font-size:1.15rem;color:var(--muted);max-width:30em}
.hero .ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.hours-pill{display:inline-flex;align-items:center;gap:10px;margin-top:30px;font-size:.88rem;color:var(--muted)}
.hours-pill i{width:9px;height:9px;border-radius:50%;background:#6BAF6B;box-shadow:0 0 0 4px rgba(107,175,107,.2)}
.hero-art{position:relative;justify-self:end;width:100%;max-width:470px}
.hero-art .ph{aspect-ratio:4/5}
.seal{position:absolute;left:-44px;bottom:60px;width:132px;height:132px;animation:spin 22s linear infinite}
.seal text{font-family:var(--sans);font-weight:700;font-size:10.5px;letter-spacing:3.2px;fill:var(--cocoa);text-transform:uppercase}
@keyframes spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.seal{animation:none}}
.hero-art .tag{position:absolute;right:-18px;top:34px;background:var(--cream);border:1.5px solid var(--cocoa);border-radius:14px;padding:12px 16px;font-size:.82rem;line-height:1.35;box-shadow:6px 6px 0 var(--butter)}
.hero-art .tag b{display:block;font-family:var(--serif);font-size:1.15rem}
@media(max-width:900px){.hero-in{grid-template-columns:minmax(0,1fr);gap:50px}.hero-art{justify-self:center;max-width:380px}.seal{left:-10px;width:108px;height:108px}.hero-art .tag{right:-6px}.hero{padding:50px 0 70px}}

/* section heads */
.shead{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-bottom:44px}
.shead h2{font-size:clamp(2.3rem,5vw,3.8rem);margin-top:14px}
.shead p{color:var(--muted);max-width:30em}
.pad{padding:100px 0}
@media(max-width:700px){.pad{padding:72px 0}}

/* today cards */
.today{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}
.tcard .ph{aspect-ratio:4/5}
.tcard h3{font-size:1.7rem;margin-top:20px;display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.tcard h3 span{font-family:var(--sans);font-size:1rem;font-weight:700;color:var(--crust)}
.tcard p{color:var(--muted);margin-top:6px;font-size:.96rem}
.tcard:nth-child(2){margin-top:50px}
@media(max-width:860px){.today{grid-template-columns:minmax(0,1fr);gap:40px}.tcard:nth-child(2){margin-top:0}.tcard .ph{aspect-ratio:5/4}}

/* story */
.story{background:var(--cream2)}
.story-in{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:70px;align-items:center}
.story .ph{aspect-ratio:1/1;border-radius:18px}
.story h2{font-size:clamp(2.2rem,4.6vw,3.4rem);margin:14px 0 18px}
.story p{color:var(--muted);margin-top:14px}
.sig{font-family:var(--serif);font-style:italic;font-size:1.6rem;color:var(--rasp);margin-top:22px}
.facts{display:flex;gap:40px;flex-wrap:wrap;margin-top:32px;padding-top:26px;border-top:1px solid var(--line)}
.facts b{display:block;font-family:var(--serif);font-size:2.4rem;line-height:1}
.facts span{font-size:.85rem;color:var(--muted)}
@media(max-width:860px){.story-in{grid-template-columns:minmax(0,1fr);gap:40px}}

/* steps */
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;counter-reset:s}
.step{border:1.5px solid var(--cocoa);border-radius:22px;padding:30px 28px;background:var(--cream);position:relative}
.step::before{counter-increment:s;content:"0" counter(s);font-family:var(--serif);font-style:italic;font-size:3rem;line-height:1;color:var(--rasp);display:block;margin-bottom:16px}
.step h3{font-size:1.45rem}
.step p{color:var(--muted);font-size:.96rem;margin-top:8px}
@media(max-width:860px){.steps{grid-template-columns:minmax(0,1fr)}}

/* cocoa band */
.band{background:var(--cocoa);color:var(--cream)}
.band .kicker{color:var(--butter)}
.band h2 em{color:var(--butter)}
.band .shead p{color:#D8C4B2}
.band .btn{background:var(--butter);border-color:var(--butter);color:var(--cocoa)}

/* gallery (tap to enlarge) */
.gal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.gal button{all:unset;cursor:pointer;display:block;position:relative;border-radius:18px;overflow:hidden}
.gal button:focus-visible{outline:3px solid var(--butter);outline-offset:3px}
.gal .ph{aspect-ratio:1/1;transition:transform .6s cubic-bezier(.2,.7,.1,1)}
.gal button:hover .ph{transform:scale(1.04)}
.gal .cap{position:absolute;left:12px;bottom:12px;right:12px;display:flex;justify-content:space-between;align-items:center;background:rgba(251,244,232,.94);color:var(--cocoa);border-radius:12px;padding:9px 12px;font-size:.85rem;font-weight:700}
.gal .cap i{font-style:normal;font-size:1.1rem;line-height:1}
.gal.tall button:nth-child(1){grid-row:span 2}.gal.tall button:nth-child(1) .ph{aspect-ratio:auto;height:100%}
@media(max-width:700px){.gal{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.gal .cap{font-size:.74rem;left:8px;right:8px;bottom:8px;padding:7px 9px}.gal.tall button:nth-child(1){grid-row:auto}.gal.tall button:nth-child(1) .ph{aspect-ratio:1/1;height:auto}}
.lb{border:0;padding:0;background:transparent;max-width:min(900px,calc(100% - 24px));width:100%;margin:auto}
.lb::backdrop{background:rgba(35,20,13,.88)}
.lb-in{position:relative}
.lb .ph{aspect-ratio:4/3;border-radius:18px}
.lb p{color:var(--cream);text-align:center;margin-top:14px;font-family:var(--serif);font-size:1.3rem}
.lb-x,.lb-nav{position:absolute;width:48px;height:48px;border-radius:50%;border:0;background:var(--cream);color:var(--cocoa);font-size:1.4rem;cursor:pointer;display:flex;align-items:center;justify-content:center}
.lb-x{right:10px;top:10px}.lb-prev{left:10px;top:calc(50% - 44px)}.lb-next{right:10px;top:calc(50% - 44px)}
.lb[open]{animation:lbIn .35s cubic-bezier(.2,.7,.1,1)}
@keyframes lbIn{from{opacity:0;transform:scale(.96)}}

/* visit strip */
.visit-in{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.visit h3{font-size:1.5rem;margin-bottom:12px}
.visit p,.visit li{color:var(--muted)}
.hours{list-style:none;display:grid;gap:4px}
.hours li{display:flex;justify-content:space-between;gap:12px;border-bottom:1px dotted var(--line);padding:4px 0}
.hours li b{color:var(--ink);font-weight:500}
@media(max-width:860px){.visit-in{grid-template-columns:minmax(0,1fr);gap:34px}}

/* page hero (inner pages) */
.phero{padding:80px 0 60px;text-align:center}
.phero h1{font-size:clamp(3rem,8vw,6.2rem);margin:18px 0 16px}
.phero p{color:var(--muted);max-width:34em;margin:0 auto;font-size:1.1rem}
@media(max-width:700px){.phero{padding:56px 0 40px}}

/* menu page */
.chips{position:sticky;top:80px;z-index:20;background:rgba(251,244,232,.94);backdrop-filter:blur(8px);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.chips-in{display:flex;gap:10px;overflow-x:auto;padding:14px 0;scrollbar-width:none}
.chips-in::-webkit-scrollbar{display:none}
.chips a{flex:none;text-decoration:none;font-weight:700;font-size:.85rem;padding:9px 18px;border-radius:999px;border:1.5px solid var(--cocoa)}
.chips a.on{background:var(--cocoa);color:var(--cream)}
.mcat{padding:80px 0 20px;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:60px;align-items:start}
.mcat .ph{aspect-ratio:4/5;position:sticky;top:170px}
.mcat h2{font-size:clamp(2.2rem,4.5vw,3.3rem);margin:12px 0 26px}
.mi{padding:18px 0;border-bottom:1px dashed var(--line)}
.mi .ln{display:flex;align-items:baseline;gap:12px}
.mi h3{font-size:1.35rem}
.mi .dots{flex:1;border-bottom:2px dotted #CDB79B;transform:translateY(-5px);min-width:16px}
.mi .pr{font-weight:700;color:var(--crust);font-size:1.05rem}
.mi p{color:var(--muted);font-size:.95rem;margin-top:4px}
.badge{display:inline-block;font-size:.66rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;border-radius:999px;padding:2px 8px;margin-left:6px;vertical-align:3px;background:var(--butter);color:var(--cocoa)}
.badge.v{background:#D8DDC1}
.menu-note{margin:60px auto 90px;max-width:760px;text-align:center;background:var(--cream2);border-radius:22px;padding:30px}
.menu-note p{color:var(--muted);margin:8px 0 20px}
@media(max-width:860px){.mcat{grid-template-columns:minmax(0,1fr);gap:26px;padding-top:60px}.mcat .ph{position:relative;top:0;aspect-ratio:16/10}}

/* cakes page */
.sizes{width:100%;border-collapse:collapse;font-size:1rem}
.sizes th{text-align:left;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--crust);padding:12px 10px;border-bottom:1.5px solid var(--cocoa)}
.sizes td{padding:16px 10px;border-bottom:1px dashed var(--line)}
.sizes td:first-child{font-family:var(--serif);font-size:1.3rem}
.sizes td:last-child{text-align:right;font-weight:700;color:var(--crust)}
.sizes th:last-child{text-align:right}
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:60px;align-items:start}
.flav{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.flav span{border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:7px 14px;font-size:.9rem}
.two h3{font-size:1.6rem;margin-top:26px}
.two h3:first-child{margin-top:0}
.fine{font-size:.88rem;color:var(--muted);margin-top:16px}
@media(max-width:860px){.two{grid-template-columns:minmax(0,1fr);gap:40px}}

/* order page */
.order-in{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:50px;align-items:start;padding-bottom:100px}
.oform{background:#fff;border:1.5px solid var(--cocoa);border-radius:24px;padding:34px;box-shadow:10px 10px 0 var(--butter)}
.seg{display:grid;grid-template-columns:1fr 1fr;background:var(--cream2);border-radius:999px;padding:5px;margin-bottom:26px}
.seg label{margin:0;text-align:center;cursor:pointer;position:relative}
.seg input{position:absolute;left:0;top:0;width:1px;height:1px;opacity:0;pointer-events:none}
.seg span{display:block;border-radius:999px;padding:11px 10px;font-weight:700;font-size:.9rem;transition:background .3s,color .3s}
.seg input:checked+span{background:var(--cocoa);color:var(--cream)}
.seg input:focus-visible+span{outline:2px solid var(--rasp)}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fgrid .full{grid-column:1/-1}
label{display:block;font-weight:700;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:7px}
input,select,textarea{width:100%;font:inherit;font-size:16px;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:var(--cream);color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--cocoa);background:#fff}
textarea{min-height:110px;resize:vertical}
.hp{position:absolute;left:-9999px}
.oform .btn{margin-top:22px}
.cake-only[hidden],.pick-only[hidden]{display:none}
.odone{display:none;text-align:center;padding:30px 10px}
.odone h2{font-size:2.4rem}
.odone p{color:var(--muted);margin-top:10px}
.oside{display:grid;gap:22px}
.card2{border:1px solid var(--line);border-radius:20px;padding:24px;background:var(--cream2)}
.card2 h3{font-size:1.35rem;margin-bottom:10px}
.card2 p,.card2 li{color:var(--muted);font-size:.95rem}
.card2 ul{padding-left:18px}
@media(max-width:900px){.order-in{grid-template-columns:minmax(0,1fr)}.oform{padding:24px 20px;box-shadow:6px 6px 0 var(--butter)}}
@media(max-width:560px){.fgrid{grid-template-columns:minmax(0,1fr)}}

/* cta band */
.cta{background:var(--rasp);color:#fff;text-align:center;padding:90px 0;position:relative;overflow:hidden}
.cta h2{font-size:clamp(2.4rem,6vw,4.4rem)}
.cta h2 em{color:var(--butter)}
.cta p{color:#FBE0E3;margin:14px auto 30px;max-width:30em}
.cta .btn{background:var(--cream);border-color:var(--cream);color:var(--cocoa)}

/* footer */
footer{background:var(--cocoa);color:#CDB6A3;padding:64px 0 30px;font-size:.92rem}
.f-in{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:40px}
.f-in .logo{color:var(--cream)}
.f-in .logo small{color:var(--butter)}
.f-in p{margin-top:14px;max-width:24em}
.f-in h4{font-family:var(--serif);font-weight:400;font-size:1.2rem;color:var(--cream);margin-bottom:12px}
.f-in nav{display:grid;gap:6px}
.f-in nav a{text-decoration:none}.f-in nav a:hover{color:var(--butter)}
.f-bottom{margin-top:44px;padding-top:22px;border-top:1px solid rgba(251,244,232,.15);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px}
.f-bottom small{opacity:.8}
@media(max-width:800px){.f-in{grid-template-columns:minmax(0,1fr);gap:28px}}

/* Bates & Co. Digital footer badge, matched to this site's colors */
.bcd-badge{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;letter-spacing:.06em;text-decoration:none;color:#CDB6A3;border:1px solid rgba(243,201,105,.4);border-radius:999px;padding:6px 14px;position:relative;isolation:isolate;overflow:hidden;transition:color .3s}
.bcd-badge b{color:var(--butter);font-weight:700}
.bcd-badge::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--rasp);transform:translateX(-101%);transition:transform .5s cubic-bezier(.2,.7,.1,1)}
.bcd-badge:hover{color:#fff}.bcd-badge:hover b{color:#fff}.bcd-badge:hover::before{transform:none}
@media(prefers-reduced-motion:reduce){.bcd-badge::before{transition:none}}
