:root { --background:#f8f2e8; --foreground:#27150e; --card:#fffaf2; --card-foreground:#27150e; --primary:#a63b1f; --primary-foreground:#fffaf2; --secondary:#eadbc4; --secondary-foreground:#321c13; --muted:#efe4d2; --muted-foreground:#725f52; --accent:#d8a645; --accent-foreground:#27150e; --destructive:#b91c1c; --border:#dac9af; --input:#dac9af; --ring:#a63b1f; --radius:1rem; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; background:var(--background); color:var(--foreground); font-family:Arial,Helvetica,sans-serif; } a { color:inherit; text-decoration:none; } button,input { font:inherit; } img { display:block; width:100%; } section { scroll-margin-top:81px; }
.skip-link { position:fixed; z-index:100; left:18px; top:12px; transform:translateY(-150%); padding:11px 15px; background:#27150e; color:#fff; border-radius:6px; font-weight:800; }.skip-link:focus { transform:translateY(0); }
a:focus-visible,button:focus-visible,input:focus-visible { outline:3px solid #d8a645; outline-offset:3px; }
.topbar { position:sticky; z-index:40; top:0; height:82px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:0 clamp(22px,5vw,84px); background:rgba(248,242,232,.94); border-bottom:1px solid rgba(109,71,46,.18); backdrop-filter:blur(16px); }
.logo { display:inline-flex; align-items:center; gap:10px; line-height:.95; letter-spacing:.04em; }.logo-mark { width:40px; height:40px; display:grid; place-items:center; border-radius:50%; background:#a63b1f; color:#fff8e8; }.logo b,.logo small { display:block; }.logo b { font-family:Georgia,serif; font-size:1.2rem; }.logo small { margin-top:4px; font-size:.62rem; letter-spacing:.18em; }
.nav { display:flex; align-items:center; gap:34px; font-weight:700; font-size:.93rem; }.nav a:hover { color:#a63b1f; }.phone-pill { justify-self:end; display:inline-flex; align-items:center; gap:8px; padding:11px 17px; border:1px solid #a63b1f; border-radius:99px; color:#a63b1f; font-weight:800; font-size:.9rem; }.menu-toggle { display:none; background:transparent; border:0; color:#2c1810; }.mobile-contact-bar { display:none; }
.hero { min-height:680px; display:grid; grid-template-columns:minmax(0,1fr) minmax(360px,.92fr); gap:clamp(35px,7vw,110px); align-items:center; padding:70px clamp(22px,7vw,120px) 95px; overflow:hidden; background:radial-gradient(circle at 13% 30%,#fff9ed 0,transparent 34%),linear-gradient(135deg,#f7ead5,#eee0cb); }.hero-copy { max-width:680px; position:relative; z-index:2; }.eyebrow { margin:0 0 16px; color:#a63b1f; letter-spacing:.22em; font-size:.76rem; font-weight:900; }
h1,h2 { font-family:Georgia,"Times New Roman",serif; font-weight:600; letter-spacing:-.045em; } h1 { margin:0; font-size:clamp(3.7rem,6.2vw,7.5rem); line-height:.92; } h1 em { color:#a63b1f; font-weight:500; }.hero-text { max-width:560px; margin:28px 0 0; color:#685448; font-size:1.1rem; line-height:1.75; }.hero-actions { display:flex; flex-wrap:wrap; gap:13px; margin-top:34px; }.button { min-height:50px; display:inline-flex; align-items:center; justify-content:center; gap:9px; padding:0 23px; border-radius:7px; font-weight:800; }.button.primary { background:#a63b1f; color:#fff; box-shadow:0 14px 28px rgba(116,39,20,.2); }.button.secondary { border:1px solid #c8b496; background:rgba(255,255,255,.38); }
.hero-visual { position:relative; height:min(570px,58vw); min-height:450px; }.hero-visual::before { content:""; position:absolute; inset:8% -12% -7% 10%; background:#d7a64c; border-radius:48% 52% 42% 58% / 56% 44% 56% 44%; transform:rotate(-4deg); opacity:.72; }.hero-visual img { position:relative; z-index:1; height:100%; object-fit:cover; border-radius:46% 46% 18px 18px; box-shadow:0 32px 70px rgba(74,42,25,.28); }.fresh-card { position:absolute; z-index:2; left:-35px; bottom:35px; padding:18px 25px; background:#fffaf2; border-left:4px solid #a63b1f; box-shadow:0 16px 40px rgba(68,37,21,.2); }.fresh-card span,.fresh-card b { display:block; }.fresh-card span { color:#876f61; font-size:.75rem; text-transform:uppercase; letter-spacing:.18em; }.fresh-card b { margin-top:4px; font-family:Georgia,serif; font-size:1.35rem; }
.menu-section { padding:100px clamp(22px,7vw,120px); background:#fffaf2; }.section-heading { display:flex; align-items:end; justify-content:space-between; gap:30px; max-width:1440px; margin:0 auto 38px; }.section-heading h2,.contact-section h2 { margin:0; font-size:clamp(2.5rem,4.5vw,5.2rem); line-height:1; }.menu-summary { margin:13px 0 0; color:#8a7465; font-size:.88rem; font-weight:700; }.search { width:min(340px,100%); display:flex; align-items:center; gap:10px; padding:0 10px 0 15px; border:1px solid #d5c5ae; border-radius:8px; background:#fff; color:#8e7767; }.search:focus-within { border-color:#a63b1f; box-shadow:0 0 0 3px rgba(166,59,31,.1); }.search input { width:100%; height:48px; border:0; outline:0; background:transparent; color:#27150e; font-size:1rem; }.search-clear { width:34px; height:34px; flex:0 0 auto; display:grid; place-items:center; border:0; border-radius:50%; background:#f1e5d4; color:#5f4a3e; cursor:pointer; }.category-strip { max-width:1440px; margin:0 auto 22px; display:flex; gap:9px; overflow-x:auto; padding-bottom:8px; scrollbar-width:thin; }.category-strip button { flex:0 0 auto; border:1px solid #d8c7ae; background:transparent; color:#5f4a3e; padding:10px 16px; border-radius:99px; cursor:pointer; font-weight:700; }.category-strip button:hover,.category-strip button.active { background:#a63b1f; border-color:#a63b1f; color:#fff; }
.menu-card { max-width:1440px; margin:auto; border:1px solid #dfd0ba; background:#fffdf8; box-shadow:0 24px 70px rgba(68,37,21,.08); }.menu-card-title { display:flex; align-items:end; justify-content:space-between; padding:28px clamp(20px,4vw,48px); border-bottom:1px solid #eadcca; background:linear-gradient(100deg,#f3e7d3,#fffaf2); }.menu-card-title span { color:#9b725b; font-size:.68rem; letter-spacing:.18em; font-weight:900; }.menu-card-title h3 { margin:5px 0 0; font:600 clamp(1.7rem,3vw,2.8rem)/1 Georgia,serif; }.menu-card-title .item-count { letter-spacing:0; font-size:.8rem; }.menu-grid { display:grid; grid-template-columns:1fr 1fr; column-gap:54px; padding:12px clamp(20px,4vw,48px) 34px; }.menu-item { min-height:70px; display:flex; align-items:center; justify-content:space-between; gap:22px; border-bottom:1px dashed #d8c8b1; }.menu-item h4 { margin:0; font-size:1rem; }.menu-item p { margin:5px 0 0; color:#927c6d; font-size:.75rem; }.menu-item b { flex:0 0 auto; color:#a63b1f; font-size:1.02rem; }.empty { grid-column:1/-1; padding:45px 0; color:#826d5f; }.menu-note { max-width:1440px; margin:16px auto 0; color:#8a776a; font-size:.8rem; }
.gallery-section { padding:100px clamp(22px,7vw,120px); background:#2a1710; color:#fff7e9; }.section-heading.light .eyebrow { color:#e2b250; }.gallery-grid { max-width:1440px; height:570px; margin:auto; display:grid; grid-template-columns:1.3fr 1fr 1fr; grid-template-rows:1fr 1fr; gap:18px; }.gallery-grid figure { position:relative; margin:0; overflow:hidden; }.gallery-grid figure::after { content:""; position:absolute; inset:55% 0 0; background:linear-gradient(transparent,rgba(23,10,6,.72)); pointer-events:none; }.gallery-grid img { height:100%; object-fit:cover; transition:transform .6s ease; }.gallery-grid figure:hover img { transform:scale(1.035); }.gallery-grid figcaption { position:absolute; z-index:2; left:20px; bottom:17px; color:#fff; font-family:Georgia,serif; font-size:1.35rem; }.photo-1 { grid-row:1/3; }.photo-2,.photo-3,.photo-4 { min-height:0; }.photo-4 { grid-column:2/4; }
.contact-section { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; padding:100px clamp(22px,7vw,120px); background:#d99e39; }.contact-section>div:first-child>p:last-child { max-width:600px; margin:22px 0 0; font-size:1.06rem; line-height:1.7; color:#5d391f; }.contact-section .eyebrow { color:#6e2a19; }.contact-actions { display:grid; gap:12px; }.contact-actions a { display:flex; align-items:center; gap:18px; padding:20px 22px; background:#fff8e9; border:1px solid rgba(70,37,20,.18); box-shadow:0 10px 25px rgba(72,41,21,.09); }.contact-actions svg { color:#a63b1f; }.contact-actions small,.contact-actions b { display:block; }.contact-actions small { margin-bottom:4px; color:#8d7668; }.contact-actions b { font-size:1.05rem; }
footer { min-height:105px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:25px; padding:24px clamp(22px,7vw,120px); background:#21110c; color:#f7ecdc; } footer p { color:#af9b8c; font-size:.82rem; } footer>div { justify-self:end; display:flex; gap:22px; font-weight:700; font-size:.85rem; } footer .logo-mark { background:#d99e39; color:#21110c; }
@media (max-width:900px) { .topbar { grid-template-columns:1fr auto; }.phone-pill { display:none; }.menu-toggle { display:block; }.nav { position:absolute; top:81px; left:0; right:0; display:none; flex-direction:column; align-items:stretch; gap:0; padding:12px 22px 22px; background:#f8f2e8; border-bottom:1px solid #dac9af; }.nav.open { display:flex; }.nav a { padding:15px 0; border-bottom:1px solid #e4d6c1; }.hero { grid-template-columns:1fr; padding-top:55px; }.hero-visual { height:500px; }.fresh-card { left:15px; }.menu-grid { grid-template-columns:1fr; }.gallery-grid { height:auto; grid-template-columns:1fr 1fr; grid-template-rows:430px 240px 240px; }.photo-1 { grid-column:1/-1; grid-row:auto; }.photo-4 { grid-column:1/-1; }.contact-section { grid-template-columns:1fr; gap:40px; } footer { grid-template-columns:1fr auto; } footer p { display:none; } }
@media (max-width:560px) { body { padding-bottom:64px; } .topbar { height:72px; }.nav { top:71px; }.mobile-contact-bar { position:fixed; z-index:50; left:0; right:0; bottom:0; display:grid; grid-template-columns:1fr 1fr; height:64px; background:#fffaf2; border-top:1px solid #d8c7ae; box-shadow:0 -10px 30px rgba(49,23,14,.12); }.mobile-contact-bar a { display:flex; align-items:center; justify-content:center; gap:8px; font-weight:900; }.mobile-contact-bar a:first-child { background:#a63b1f; color:#fff; }.hero { min-height:auto; padding-bottom:65px; }.hero-visual { min-height:360px; height:390px; }.hero-visual::before { right:-24%; }.hero-visual img { border-radius:42% 42% 12px 12px; } h1 { font-size:clamp(3.25rem,17vw,5.2rem); }.hero-text { font-size:1rem; }.hero-actions .button { width:100%; }.section-heading { align-items:stretch; flex-direction:column; }.search { width:100%; }.menu-section,.gallery-section,.contact-section { padding-top:74px; padding-bottom:74px; }.menu-card-title { align-items:start; }.gallery-grid { grid-template-columns:1fr; grid-template-rows:370px 220px 220px 220px; }.photo-1,.photo-4 { grid-column:auto; }.contact-section h2 { font-size:3.2rem; } footer { grid-template-columns:1fr; } footer>div { justify-self:start; } }
.content-section { padding:90px clamp(22px,7vw,120px); }
.content-section h2 { margin:0; font-size:clamp(2.5rem,4.5vw,4.7rem); line-height:1.08; }
.content-section h3 { font:600 1.65rem Georgia,serif; margin:18px 0; }
.story-grid,.visit-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,6vw,90px); max-width:1440px; margin:auto; }
.body-copy { font-size:1.06rem; line-height:1.8; color:#685448; margin:0 0 18px; max-width:720px; }
.cake-section { background:#f5e9d7; }
.cake-list { padding:18px 28px 28px; background:#fffaf2; border:1px solid #dac9af; }
.cake-list>div { display:flex; justify-content:space-between; gap:20px; padding:20px 0; border-bottom:1px dashed #dac9af; }
.cake-list b { color:#a63b1f; white-space:nowrap; }
.cake-list b { white-space:normal; text-align:right; max-width:58%; line-height:1.45; }
.menu-item b { flex:0 1 auto; max-width:58%; text-align:right; line-height:1.35; }
@media (max-width:560px) { .cake-list>div { flex-direction:column; gap:6px; }.cake-list b { max-width:100%; text-align:left; }.menu-item { align-items:flex-start; padding-block:16px; }.menu-item b { max-width:54%; font-size:.875rem; } }
.text-link { display:inline-block; margin-top:14px; color:#a63b1f; font-weight:700; text-decoration:underline; text-underline-offset:5px; }
.about-section { background:#fffaf2; }
.venue-section { border-top:1px solid #dac9af; }
.venue-photos { display:grid; grid-template-columns:minmax(0, 1fr); gap:24px; }
.venue-photos figure { margin:0; min-width:0; }
.venue-photos img { width:100%; height:clamp(300px, 48vw, 560px); object-fit:cover; background:#2a1710; }
.venue-photos figcaption { padding:14px 0; font-weight:700; }
.venue-section .menu-note a { text-decoration:underline; }
@media (max-width:700px) { .venue-photos { grid-template-columns:1fr; }.venue-photos img { height:auto; max-height:500px; } }
.visit-section { background:#efe2cd; }
.visit-grid { gap:24px; }
.visit-grid article { padding:32px; background:#fffaf2; border:1px solid #dac9af; }
.visit-grid article>svg { color:#a63b1f; }
.visit-grid address { font-style:normal; font-size:1.05rem; line-height:1.8; margin-bottom:24px; }
.hours { display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px; padding:16px 0; border-block:1px solid #dac9af; }
.hours b { color:#a63b1f; }
.nav { gap:18px; font-size:.875rem; }
.logo { line-height:1.15; }
.logo small { font-size:.75rem; margin:0 0 3px; }
.logo b { white-space:nowrap; }
@media (min-width:901px) and (max-width:1250px) { .topbar { grid-template-columns:auto 1fr; gap:24px; padding-inline:24px; }.nav { justify-content:flex-end; gap:16px; }.phone-pill { display:none; } }
@media (max-width:900px) { .story-grid,.visit-grid { grid-template-columns:1fr; gap:28px; }.content-section { padding-block:70px; }.nav { gap:0; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .gallery-grid img { transition:none; } }
/* Inline icon equivalents retain the original Lucide icon sizing and line style. */
svg { display:block; width:1.25em; height:1.25em; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; flex:0 0 auto; }
.logo-mark svg { width:20px; height:20px; }
.phone-pill svg { width:17px; height:17px; }
.button svg { width:18px; height:18px; }
.mobile-contact-bar svg { width:18px; height:18px; }
.search>svg { width:18px; height:18px; }
.menu-toggle svg { width:24px; height:24px; }
.section-heading>svg { width:44px; height:44px; }
.visit-grid article>svg,.contact-actions svg { width:24px; height:24px; }

.logo-mark svg { stroke-width:2.2; }

/* Cafe identity and shop-photo watermark replacement. */
.logo-mark { background:transparent; color:inherit; }
.logo-mark img { display:block; width:40px; height:40px; object-fit:contain; border-radius:50%; }
footer .logo-mark { background:transparent; color:inherit; }
.venue-photos { grid-template-columns:repeat(2,minmax(0,1fr)); }
.venue-photo { position:relative; overflow:hidden; }
@media (max-width:700px) { .venue-photos { grid-template-columns:1fr; } }
.hero { background:#f2e6d5; }
.hero-visual::before { border-radius:48% 48% 0 0; }
h1 { line-height:1.04; }
.eyebrow { font-size:.875rem; line-height:1.6; }
.fresh-card span { font-size:.875rem; }
.menu-note { line-height:1.7; }
.menu-note a { text-decoration:underline; text-underline-offset:3px; }
.gallery-grid img { object-position:center; }
.cake-gallery { padding:0 clamp(22px,7vw,120px) 90px; background:#f5e9d7; }
.cake-gallery-heading { max-width:1440px; margin:0 auto 28px; }
.cake-gallery-heading h3 { font:500 clamp(2rem,3vw,3rem)/1.2 Georgia,serif; margin:0 0 12px; }
.cake-gallery-heading p:last-child { line-height:1.7; color:#685448; }
.cake-grid { max-width:1440px; margin:auto; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.cake-photo { padding:0; border:0; background:transparent; text-align:left; color:inherit; cursor:zoom-in; min-width:0; }
.cake-photo img { width:100%; height:auto; aspect-ratio:3/4; object-fit:cover; border-radius:100px 100px 8px 8px; }
.cake-photo:nth-child(even) img { border-radius:8px; }
.cake-photo span { display:block; padding:14px 0 10px; font-size:.9375rem; line-height:1.5; }
.cake-photo:hover img { filter:brightness(1.06); }
#photo-dialog { padding:16px; border:0; border-radius:12px; background:#fffaf2; max-width:min(94vw,800px); max-height:92dvh; }
#photo-dialog::backdrop { background:rgba(22,12,8,.85); }
#dialog-image { width:auto; max-width:100%; height:auto; max-height:72dvh; margin:auto; object-fit:contain; }
#dialog-caption { margin:16px 0 4px; text-align:center; }
.dialog-close { display:block; margin:0 0 12px auto; padding:10px 16px; border:1px solid #dac9af; background:#fffaf2; cursor:pointer; border-radius:6px; }
[hidden] { display:none !important; }
.venue-photos img { object-position:center; }
@media (max-width:900px) { .cake-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; } }
@media (max-width:560px) { .cake-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.cake-photo span { font-size:.875rem; }.hero-visual img { object-position:center 55%; }.hero { gap:34px; } }

.cake-price-notice { grid-column:1/-1; margin:20px 0 8px; padding:18px 24px; background:#f4e6d5; border-left:4px solid #a63b1f; color:#71331f; font-weight:700; font-size:1rem; line-height:1.5; }

.cake-contact-text { margin:12px 0; color:#71331f; font:500 clamp(1.5rem,2.5vw,2.2rem)/1.3 Georgia,serif; }
.special-cakes-card { grid-column:1/-1; display:grid; grid-template-columns:minmax(150px,280px) 1fr; align-items:center; gap:clamp(24px,5vw,70px); padding:18px 0; }
.special-cakes-card img { width:100%; height:300px; object-fit:cover; border-radius:140px 140px 8px 8px; }
.special-cakes-card p { color:#71331f; font:500 clamp(1.5rem,3vw,2.5rem)/1.25 Georgia,serif; max-width:620px; margin:0 0 26px; }
.special-cakes-card .text-link { margin-left:18px; }
.menu-subgroup { grid-column:1/-1; margin:18px 0 0; padding:12px 0 8px; border-bottom:1px solid #dfd0ba; color:#71331f; font-size:.875rem; font-weight:800; letter-spacing:.04em; }
@media (max-width:560px) { .special-cakes-card { grid-template-columns:1fr; }.special-cakes-card img { height:260px; object-position:center 60%; }.special-cakes-card .text-link { margin:18px 0 0; } }
