:root {
  --ink: #402c35;
  --berry: #d72c57;
  --hot-pink: #f55194;
  --rose: #fce6ec;
  --blush: #f7c6d4;
  --cream: #fffaf7;
  --butter: #fff0bd;
  --mint: #bce6dd;
  --deep-mint: #2c7d78;
  --line: rgba(64, 44, 53, 0.12);
  --serif: "Playfair Display", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--cream); color: var(--ink); font-family: var(--sans); font-size: 17px; line-height: 1.5; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
.site-shell { overflow: hidden; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.site-header { align-items: center; display: flex; justify-content: space-between; margin: 0 auto; max-width: 1440px; padding: 17px 6.3%; position: relative; z-index: 20; }
.brand { align-items: center; display: flex; gap: 10px; font-family: var(--serif); font-size: 22px; font-style: italic; font-weight: 700; letter-spacing: -.04em; white-space: nowrap; }
.brand img { height: 58px; object-fit: contain; object-position: center; width: 65px; }
.main-nav { align-items: center; display: flex; gap: clamp(18px, 2.5vw, 37px); font-size: 13px; font-weight: 600; }
.main-nav > a:not(.nav-cta) { position: relative; }
.main-nav > a:not(.nav-cta)::after { background: var(--berry); bottom: -4px; content: ""; height: 1px; left: 0; position: absolute; transform: scaleX(0); transform-origin: right; transition: transform .25s ease; width: 100%; }
.main-nav > a:not(.nav-cta):hover::after { transform: scaleX(1); transform-origin: left; }
.nav-cta { background: var(--ink); border-radius: 999px; color: #fff; padding: 10px 16px; transition: transform .2s ease, background .2s ease; }
.nav-cta:hover { background: var(--berry); transform: translateY(-2px); }
.menu-toggle { background: transparent; border: 0; cursor: pointer; display: none; height: 42px; padding: 10px; width: 42px; }
.menu-toggle i { background: var(--ink); display: block; height: 1.5px; margin: 5px auto; transition: transform .2s; width: 20px; }

.hero { align-items: center; display: grid; gap: 3vw; grid-template-columns: minmax(360px, .88fr) 1.12fr; margin: 0 auto; max-width: 1440px; min-height: min(760px, calc(100vh - 80px)); padding: 32px 6.3% 72px; }
.eyebrow { align-items: center; color: var(--berry); display: flex; font-size: 11px; font-weight: 700; gap: 8px; letter-spacing: .13em; margin: 0 0 19px; text-transform: uppercase; }
.eyebrow span { background: currentColor; border-radius: 50%; display: inline-block; height: 6px; width: 6px; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { letter-spacing: -.05em; line-height: .95; }
h1, h2 { font-family: var(--serif); font-weight: 600; }
h1 { font-size: clamp(53px, 6.25vw, 96px); margin: 0 0 27px; }
h1 em, h2 em, h3 em { color: var(--berry); font-weight: 600; }
.hero-intro { font-size: 17px; line-height: 1.65; max-width: 430px; }
.hero-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 20px; margin-top: 30px; }
.button { align-items: center; border-radius: 999px; display: inline-flex; font-size: 13px; font-weight: 700; gap: 14px; justify-content: center; min-height: 49px; padding: 11px 20px; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.button:hover { transform: translateY(-3px); }
.button-primary { background: var(--berry); box-shadow: 0 7px 17px rgba(215,44,87,.24); color: #fff; }
.button-primary:hover { background: #bd2048; box-shadow: 0 10px 20px rgba(215,44,87,.3); }
.button-text { padding-left: 0; }
.button-text:hover { color: var(--berry); }
.social-proof { align-items: center; display: flex; gap: 11px; margin-top: 43px; }
.avatars { display: flex; padding-left: 4px; }
.avatars b { align-items: center; background: var(--butter); border: 2px solid var(--cream); border-radius: 50%; color: var(--ink); display: flex; font-size: 9px; height: 28px; justify-content: center; margin-left: -6px; width: 28px; }
.avatars b:nth-child(2) { background: var(--mint); }.avatars b:nth-child(3) { background: var(--blush); }.avatars b:nth-child(4) { background: var(--ink); color: #fff; }
.social-proof p { font-size: 11px; margin: 0; }.social-proof strong { font-size: 13px; }.social-proof strong span { color: #f7a600; }

.hero-art { height: 535px; position: relative; }
.shape { border-radius: 48% 52% 57% 43% / 45% 44% 56% 55%; position: absolute; }.shape-mint { background: var(--mint); height: 75%; right: 5%; top: 8%; transform: rotate(14deg); width: 70%; }.shape-pink { background: var(--rose); height: 55%; left: 2%; top: 31%; transform: rotate(-13deg); width: 65%; }
.photo-card { overflow: hidden; position: absolute; }.photo-card img { height: 100%; object-fit: cover; width: 100%; }.photo-card-main { border: 11px solid #fff; border-radius: 49% 51% 39% 61% / 48% 43% 57% 52%; box-shadow: 0 24px 50px rgba(64,44,53,.13); height: 92%; right: 9%; top: 3%; transform: rotate(4deg); width: 62%; }.photo-card-detail { border: 8px solid var(--cream); border-radius: 50%; bottom: 3%; box-shadow: 0 16px 28px rgba(64,44,53,.16); height: 160px; left: 7%; transform: rotate(-8deg); width: 160px; }
.ribbon { background: var(--berry); border-radius: 0 0 18px 18px; color: #fff; font-family: var(--serif); font-size: 14px; font-style: italic; left: 10%; padding: 7px 15px 9px; position: absolute; top: 7%; transform: rotate(-8deg); z-index: 2; }.floating-note { align-items: center; background: var(--butter); border-radius: 50%; bottom: 5%; box-shadow: 0 6px 22px rgba(64,44,53,.1); display: flex; flex-direction: column; height: 105px; justify-content: center; position: absolute; right: 2%; transform: rotate(9deg); width: 105px; z-index: 2; }.floating-note span { font-size: 20px; line-height: 1; }.floating-note strong { font-size: 11px; line-height: 1.2; text-align: center; }.scribble { bottom: 0; color: var(--berry); height: 83px; left: 26%; position: absolute; transform: rotate(-9deg); width: 140px; }

.marquee { background: var(--ink); color: #fff; overflow: hidden; padding: 18px 0; transform: rotate(-1.15deg) scale(1.02); }.marquee-track { align-items: center; animation: marquee 29s linear infinite; display: flex; gap: 24px; min-width: max-content; white-space: nowrap; }.marquee span { font-family: var(--serif); font-size: 21px; font-weight: 700; letter-spacing: .02em; }.marquee i { color: var(--blush); font-style: normal; }
@keyframes marquee { to { transform: translateX(-50%); } }

.section { margin: 0 auto; max-width: 1440px; padding: 123px 6.3%; }.center-heading { align-items: center; display: flex; flex-direction: column; text-align: center; }.center-heading .eyebrow { color: var(--deep-mint); }.center-heading h2 { font-size: clamp(43px, 5vw, 72px); margin-bottom: 17px; }.center-heading > p:last-child { font-size: 15px; max-width: 425px; }.treat-grid { display: grid; gap: 18px; grid-template-columns: 1.2fr .9fr .9fr; margin-top: 56px; }.treat-card { border-radius: 16px; min-height: 442px; overflow: hidden; padding: 17px; position: relative; }.treat-card.peach { background: #ffd8c4; }.treat-card.mint { background: #c9e8e0; }.treat-card.butter { background: #fff0bd; }.treat-image { border-radius: 10px; height: 58%; overflow: hidden; }.treat-card-large .treat-image { height: 65%; }.treat-image img { height: 100%; object-fit: cover; transition: transform .5s ease; width: 100%; }.treat-card:hover img { transform: scale(1.055); }.treat-copy { padding: 18px 5px 4px; position: relative; }.treat-card h3 { font-family: var(--serif); font-size: clamp(26px, 2.5vw, 40px); font-weight: 600; margin: 0 0 12px; }.treat-card p { font-size: 12px; line-height: 1.5; margin-bottom: 0; max-width: 225px; }.inclusive-note { align-items: center; display: flex; gap: 15px; justify-content: center; margin: 56px auto 0; max-width: 650px; text-align: center; }.inclusive-note p { font-family: var(--serif); font-size: 18px; line-height: 1.45; margin: 0; }.sparkle { color: var(--berry); font-size: 21px; }

.bread-banner { background: var(--mint); display: grid; grid-template-columns: 1.05fr .95fr; min-height: 570px; }.bread-image { min-height: 450px; overflow: hidden; }.bread-image img { height: 100%; object-fit: cover; width: 100%; }.bread-copy { align-self: center; padding: 56px clamp(32px, 8vw, 130px) 56px clamp(32px, 7vw, 100px); }.bread-copy .eyebrow { color: var(--deep-mint); }.bread-copy h2 { font-size: clamp(42px, 4.6vw, 68px); margin: 0 0 24px; }.bread-copy > p:not(.eyebrow) { font-size: 15px; line-height: 1.65; max-width: 380px; }.day-tags { display: flex; gap: 8px; margin-top: 26px; }.day-tags span { background: var(--cream); border-radius: 999px; font-size: 11px; font-weight: 700; padding: 8px 12px; }

.space { padding-bottom: 110px; }.space > .space-copy { max-width: 490px; }.space-copy .eyebrow { color: var(--berry); }.space-copy h2 { font-size: clamp(45px, 5.2vw, 75px); margin-bottom: 22px; }.space-copy > p:not(.eyebrow) { font-size: 16px; line-height: 1.7; }.inline-link { border-bottom: 1px solid currentColor; display: inline-flex; font-size: 13px; font-weight: 700; gap: 15px; margin-top: 16px; padding-bottom: 5px; transition: color .2s ease; }.inline-link:hover { color: var(--berry); }.space-collage { height: 510px; margin: 62px 0 0 auto; max-width: 850px; position: relative; }.space-photo { overflow: hidden; position: absolute; }.space-photo img { height: 100%; object-fit: cover; width: 100%; }.space-photo-top { border-radius: 33% 67% 60% 40% / 38% 44% 56% 62%; height: 77%; left: 12%; top: 0; width: 57%; }.space-photo-bottom { border: 9px solid var(--cream); border-radius: 17px; bottom: 0; height: 51%; right: 2%; transform: rotate(5deg); width: 39%; }.stats-card { background: var(--berry); border-radius: 16px; bottom: 1%; color: #fff; left: 2%; padding: 22px 25px; position: absolute; transform: rotate(-4deg); width: 180px; }.stats-card strong { font-family: var(--serif); font-size: 35px; letter-spacing: -.06em; line-height: 1; }.stats-card strong span { font-size: 15px; letter-spacing: 0; margin-left: 2px; }.stats-card p { font-size: 10px; margin: 5px 0 0; }.stats-card hr { border: 0; border-top: 1px solid rgba(255,255,255,.35); margin: 13px 0; }.space-features { border-top: 1px solid var(--line); display: grid; gap: 28px; grid-template-columns: repeat(3, 1fr); margin-top: 81px; padding-top: 25px; }.space-features > div { position: relative; }.space-features span { color: var(--berry); font-size: 11px; font-weight: 700; position: absolute; right: 0; top: 3px; }.space-features h3 { font-family: var(--serif); font-size: 23px; font-weight: 600; margin: 0 0 9px; }.space-features p { font-size: 13px; line-height: 1.55; margin: 0; max-width: 225px; }

.cakes { background: var(--berry); color: #fff; display: grid; grid-template-columns: 1fr 1fr; min-height: 626px; position: relative; }.cakes-image { min-height: 460px; overflow: hidden; }.cakes-image img { height: 100%; object-fit: cover; width: 100%; }.cakes-copy { align-self: center; padding: 62px clamp(30px, 8vw, 125px); }.eyebrow.light { color: var(--butter); }.cakes-copy h2 { font-size: clamp(45px, 5vw, 73px); margin: 0 0 24px; }.cakes-copy h2 em { color: var(--butter); }.cakes-copy > p:not(.eyebrow) { font-size: 15px; line-height: 1.7; max-width: 430px; }.lead-time { color: var(--butter); font-size: 14px !important; margin-top: 21px; }.button-light { background: var(--cream); color: var(--berry); margin-top: 22px; }.button-light:hover { box-shadow: 0 9px 17px rgba(84,11,35,.22); }.cake-sticker { align-items: center; background: var(--butter); border-radius: 50%; color: var(--berry); display: flex; font-family: var(--serif); font-size: 13px; font-style: italic; font-weight: 700; height: 105px; justify-content: center; line-height: 1.15; position: absolute; right: 47%; text-align: center; top: 15%; transform: rotate(13deg); width: 105px; }

.reviews { display: grid; gap: 7vw; grid-template-columns: .7fr 1.3fr; }.review-intro .eyebrow { color: var(--deep-mint); }.review-intro h2 { font-size: clamp(45px, 5vw, 72px); margin-bottom: 39px; }.rating { align-items: center; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 12px; padding-top: 18px; }.rating strong { font-family: var(--serif); font-size: 32px; line-height: 1; }.rating span { color: #f7a600; font-size: 14px; letter-spacing: 2px; }.rating p { flex-basis: 100%; font-size: 11px; margin: -6px 0 0; padding-left: 3px; }.review-stack { display: flex; flex-direction: column; gap: 17px; }.review-card { background: #fff; border: 1px solid rgba(64,44,53,.06); border-radius: 14px; box-shadow: 0 14px 33px rgba(64,44,53,.05); margin: 0; padding: 30px; }.review-card-offset { margin-left: 9%; }.quote-mark { color: var(--berry); font-family: var(--serif); font-size: 49px; height: 30px; line-height: 1; }.review-card > p { font-family: var(--serif); font-size: clamp(18px, 2vw, 25px); line-height: 1.32; margin: 5px 0 26px; }.review-card footer { align-items: center; display: flex; gap: 10px; }.reviewer { align-items: center; border-radius: 50%; color: #fff; display: flex; font-family: var(--serif); font-size: 15px; font-weight: 700; height: 30px; justify-content: center; width: 30px; }.reviewer.a { background: var(--deep-mint); }.reviewer.b { background: var(--hot-pink); }.review-card footer div { display: flex; flex-direction: column; line-height: 1.15; }.review-card footer strong { font-size: 11px; }.review-card footer small { color: rgba(64,44,53,.59); font-size: 9px; margin-top: 3px; }.stars { color: #f7a600; font-size: 10px; letter-spacing: 1px; margin-left: auto; }

.visit { background: var(--rose); padding: 103px 6.3% 107px; }.visit-heading { margin: 0 auto; max-width: 1440px; text-align: center; }.visit-heading .eyebrow { color: var(--berry); justify-content: center; }.visit-heading h2 { font-size: clamp(46px, 5.4vw, 75px); margin-bottom: 57px; }.visit-content { align-items: center; display: grid; gap: 7vw; grid-template-columns: .7fr 1.3fr; margin: 0 auto; max-width: 1100px; }.address p { font-family: var(--serif); font-size: 27px; line-height: 1.35; margin-bottom: 7px; }.map-card { background: #bde4d9; border-radius: 14px; color: var(--ink); display: block; height: 260px; overflow: hidden; position: relative; transition: transform .25s ease, box-shadow .25s ease; }.map-card:hover { box-shadow: 0 13px 25px rgba(64,44,53,.12); transform: translateY(-4px); }.map-grid { background-image: linear-gradient(rgba(255,255,255,.62) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.62) 1px, transparent 1px); background-size: 23px 23px; inset: 0; opacity: .75; position: absolute; transform: rotate(-6deg) scale(1.2); }.map-road { background: #fbeebf; border: 8px solid rgba(255,255,255,.9); border-radius: 999px; position: absolute; }.road-one { height: 70%; left: 40%; top: -14%; transform: rotate(34deg); width: 24%; }.road-two { height: 20%; left: -10%; top: 55%; transform: rotate(-9deg); width: 85%; }.pin { align-items: center; background: var(--berry); border: 6px solid #fff; border-radius: 50% 50% 50% 0; box-shadow: 0 6px 10px rgba(64,44,53,.17); color: #fff; display: flex; font-size: 8px; height: 43px; justify-content: center; left: 51%; position: absolute; top: 37%; transform: rotate(-45deg); width: 43px; }.pin::first-letter { transform: rotate(45deg); }.map-card > span { background: #fff; border-radius: 4px; font-size: 11px; font-weight: 700; left: 56%; padding: 5px 8px; position: absolute; top: 34%; }.map-card small { background: var(--ink); border-radius: 999px; bottom: 14px; color: #fff; font-size: 11px; font-weight: 700; padding: 9px 13px; position: absolute; right: 14px; }

.site-footer { background: var(--ink); color: #fff; display: grid; grid-template-columns: 1fr 1fr; padding: 49px 6.3% 22px; }.footer-brand { align-items: flex-start; display: flex; gap: 13px; }.footer-brand img { background: #fff; border-radius: 50%; height: 53px; object-fit: contain; padding: 3px; width: 53px; }.footer-brand p { font-family: var(--serif); font-size: 19px; font-style: italic; line-height: 1.15; margin: 3px 0; }.footer-links { align-items: flex-start; display: flex; flex-direction: column; font-size: 12px; font-weight: 600; gap: 10px; justify-self: end; }.footer-links a { opacity: .84; }.footer-links a:hover { color: var(--blush); opacity: 1; }.footer-copy { border-top: 1px solid rgba(255,255,255,.18); font-size: 10px; grid-column: 1 / -1; margin: 40px 0 0; opacity: .63; padding-top: 15px; }
.whatsapp-float { align-items: center; background: #2aaa73; border: 2px solid #fff; border-radius: 999px; bottom: 20px; box-shadow: 0 7px 22px rgba(19,91,60,.28); color: #fff; display: flex; font-size: 12px; font-weight: 700; gap: 7px; padding: 10px 15px 10px 11px; position: fixed; right: 20px; transition: transform .2s ease; z-index: 25; }.whatsapp-float:hover { transform: translateY(-3px); }.whatsapp-float svg { height: 19px; width: 19px; }

/* Supporting text is deliberately more generous for relaxed mobile reading. */
.main-nav { font-size: 14px; }
.eyebrow { font-size: 12px; }
.button { border: 0; cursor: pointer; font-family: inherit; font-size: 14px; }
.social-proof p { font-size: 13px; }.social-proof strong { font-size: 15px; }
.avatars b { font-size: 10px; }
.treat-card p { font-size: 14px; }
.bread-copy > p:not(.eyebrow), .cakes-copy > p:not(.eyebrow) { font-size: 16px; }
.day-tags span, .inline-link { font-size: 13px; }
.stats-card p, .space-features span, .rating p, .review-card footer strong, .map-card > span, .map-card small { font-size: 11px; }
.space-features p { font-size: 14px; }.lead-time { font-size: 15px !important; }
.review-card footer small { font-size: 10px; }.stars { font-size: 11px; }.footer-links { font-size: 13px; }.footer-copy { font-size: 11px; }.whatsapp-float { font-size: 13px; }

.hours { align-items: center; display: grid; gap: 7vw; grid-template-columns: .84fr 1.16fr; padding-top: 88px; padding-bottom: 110px; }.hours-heading .eyebrow { color: var(--deep-mint); }.hours-heading h2 { font-size: clamp(46px, 5.1vw, 74px); margin: 0 0 20px; }.hours-heading > p:not(.eyebrow) { font-size: 16px; line-height: 1.65; max-width: 345px; }.hours-card { background: #fff; border-radius: 18px; box-shadow: 0 18px 45px rgba(64,44,53,.08); overflow: hidden; padding: 9px 27px 20px; }.hours-row { align-items: center; border-bottom: 1px solid var(--line); display: flex; font-size: 14px; justify-content: space-between; padding: 16px 1px; }.hours-row span { font-weight: 700; }.hours-row strong { font-size: 14px; font-weight: 500; }.hours-row.is-closed strong { color: var(--berry); font-weight: 700; }.hours-map-link { align-items: center; color: var(--berry); display: inline-flex; font-size: 12px; font-weight: 700; gap: 11px; margin-top: 19px; }.hours-map-link:hover { text-decoration: underline; }

.cake-dialog { background: var(--cream); border: 0; border-radius: 22px; box-shadow: 0 25px 70px rgba(64,44,53,.3); color: var(--ink); max-height: min(860px, 92vh); max-width: 690px; overflow: auto; padding: 30px; width: calc(100% - 28px); }.cake-dialog::backdrop { backdrop-filter: blur(4px); background: rgba(64,44,53,.45); }.dialog-topbar { align-items: flex-start; display: flex; gap: 18px; justify-content: space-between; }.dialog-topbar .eyebrow { color: var(--berry); margin-bottom: 11px; }.dialog-topbar h2 { font-size: clamp(38px, 5vw, 55px); margin: 0; }.dialog-close { align-items: center; background: var(--rose); border: 0; border-radius: 50%; color: var(--ink); cursor: pointer; display: flex; font-family: var(--sans); font-size: 29px; font-weight: 400; height: 40px; justify-content: center; line-height: 1; min-width: 40px; padding: 0 0 4px; transition: background .2s ease, transform .2s ease; }.dialog-close:hover { background: var(--blush); transform: rotate(90deg); }.dialog-intro { font-size: 14px; line-height: 1.55; margin: 17px 0 23px; max-width: 520px; }.cake-form { display: grid; gap: 17px; }.form-row { border-top: 1px solid var(--line); display: grid; gap: 10px; margin: 0; padding-top: 15px; }.form-row > span, .form-row legend { font-size: 14px; font-weight: 700; padding: 0; }.form-row b { align-items: center; background: var(--mint); border-radius: 50%; display: inline-flex; font-size: 10px; height: 21px; justify-content: center; margin-right: 6px; width: 21px; }.form-row input[type="text"], .form-row input[type="date"], .form-row textarea { background: #fff; border: 1px solid rgba(64,44,53,.18); border-radius: 9px; color: var(--ink); font: inherit; font-size: 14px; outline: 0; padding: 12px 13px; width: 100%; }.form-row input:focus, .form-row textarea:focus { border-color: var(--berry); box-shadow: 0 0 0 3px rgba(215,44,87,.12); }.form-row textarea { resize: vertical; }.pill-group { display: flex; flex-wrap: wrap; gap: 8px; }.pill-group label { cursor: pointer; position: relative; }.pill-group input { height: 1px; opacity: 0; position: absolute; width: 1px; }.pill-group span { background: #fff; border: 1px solid rgba(64,44,53,.18); border-radius: 999px; display: block; font-size: 13px; padding: 8px 12px; transition: background .18s ease, border-color .18s ease, color .18s ease; }.pill-group input:checked + span { background: var(--berry); border-color: var(--berry); color: #fff; }.pill-group input:focus-visible + span { box-shadow: 0 0 0 3px rgba(215,44,87,.18); }.form-submit { justify-self: start; margin-top: 4px; }

@media (max-width: 820px) {
  .site-header { padding: 13px 6%; }.brand { font-size: 20px; }.brand img { height: 52px; width: 58px; }.main-nav { background: var(--cream); box-shadow: 0 14px 25px rgba(64,44,53,.09); display: flex; flex-direction: column; gap: 22px; left: 0; opacity: 0; padding: 33px 6%; pointer-events: none; position: absolute; top: 100%; transform: translateY(-10px); transition: opacity .2s ease, transform .2s ease; visibility: hidden; width: 100%; }.main-nav.is-open { opacity: 1; pointer-events: all; transform: translateY(0); visibility: visible; }.menu-toggle { display: block; }.menu-toggle.is-open i:first-of-type { transform: translateY(3.25px) rotate(45deg); }.menu-toggle.is-open i:last-of-type { transform: translateY(-3.25px) rotate(-45deg); }.hero { gap: 8px; grid-template-columns: 1fr; padding: 40px 8% 60px; }.hero-art { height: 425px; margin: 18px auto 0; max-width: 540px; width: 100%; }.photo-card-main { height: 90%; width: 64%; }.photo-card-detail { height: 130px; width: 130px; }.section { padding: 88px 8%; }.treat-grid { grid-template-columns: 1.1fr 1fr; }.treat-card-large { grid-row: span 2; }.treat-card { min-height: 375px; }.treat-card-large { min-height: 768px; }.treat-card-large .treat-image { height: 68%; }.bread-banner { grid-template-columns: 1fr; }.bread-image { min-height: 340px; }.bread-copy { padding: 67px 9%; }.space-collage { height: 440px; }.cakes { grid-template-columns: 1fr; }.cakes-image { max-height: 420px; min-height: 340px; }.cakes-copy { padding: 67px 9%; }.cake-sticker { right: 8%; top: 41%; }.reviews, .hours { gap: 50px; grid-template-columns: 1fr; }.review-stack { max-width: 620px; }.hours { padding-top: 76px; padding-bottom: 88px; }.hours-heading > p:not(.eyebrow) { max-width: 430px; }.visit-content { grid-template-columns: 1fr; }.map-card { height: 240px; }.site-footer { padding-left: 8%; padding-right: 8%; }
}
@media (max-width: 540px) {
  .brand { font-size: 16px; gap: 7px; }.brand img { height: 43px; width: 48px; }.hero { min-height: auto; padding-top: 30px; }.hero-copy .eyebrow { font-size: 10px; }h1 { font-size: 51px; }.hero-intro { font-size: 16px; }.hero-actions { align-items: flex-start; flex-direction: column; gap: 6px; margin-top: 25px; }.social-proof { margin-top: 29px; }.hero-art { height: 326px; margin-top: 25px; }.photo-card-main { border-width: 7px; }.photo-card-detail { bottom: 0; height: 104px; left: 2%; width: 104px; }.ribbon { font-size: 11px; padding: 5px 11px 7px; }.floating-note { height: 78px; right: 1%; width: 78px; }.floating-note span { font-size: 15px; }.floating-note strong { font-size: 9px; }.scribble { height: 54px; left: 23%; width: 94px; }.marquee { padding: 13px 0; }.marquee span { font-size: 16px; }.section { padding: 76px 6%; }.center-heading h2 { font-size: 44px; }.treat-grid { display: flex; flex-direction: column; gap: 12px; margin-top: 36px; }.treat-card, .treat-card-large { min-height: 376px; }.treat-card-large .treat-image, .treat-image { height: 64%; }.inclusive-note { gap: 9px; margin-top: 37px; }.inclusive-note p { font-size: 16px; }.bread-image { min-height: 280px; }.bread-copy { padding: 58px 8%; }.space-copy h2 { font-size: 48px; }.space-collage { height: 315px; margin-top: 42px; }.space-photo-top { height: 77%; left: 4%; width: 64%; }.space-photo-bottom { border-width: 6px; height: 47%; right: 0; width: 44%; }.stats-card { bottom: -3%; left: 0; padding: 14px 16px; width: 135px; }.stats-card strong { font-size: 26px; }.stats-card p { font-size: 9px; }.stats-card hr { margin: 8px 0; }.space-features { gap: 25px; grid-template-columns: 1fr; margin-top: 70px; }.space-features h3 { font-size: 25px; }.space-features p { font-size: 14px; max-width: 280px; }.cakes-image { min-height: 265px; }.cakes-copy { padding: 57px 8% 65px; }.cake-sticker { height: 81px; right: 4%; top: 34%; width: 81px; }.review-intro h2 { margin-bottom: 28px; }.review-card { padding: 24px; }.review-card > p { font-size: 21px; }.review-card-offset { margin-left: 0; }.hours-card { padding-left: 18px; padding-right: 18px; }.hours-row { align-items: flex-start; flex-direction: column; gap: 3px; }.hours-row strong { font-size: 13px; }.cake-dialog { border-radius: 18px; padding: 23px 18px; }.dialog-intro { font-size: 13px; }.form-submit { width: 100%; }.visit { padding: 78px 6%; }.visit-heading h2 { margin-bottom: 40px; }.address p { font-size: 24px; }.map-card { height: 210px; }.site-footer { grid-template-columns: 1fr; padding: 39px 7% 20px; }.footer-links { margin-top: 31px; justify-self: start; }.footer-copy { margin-top: 30px; }.whatsapp-float { bottom: 13px; right: 13px; }.whatsapp-float span { display: none; }.whatsapp-float { height: 48px; justify-content: center; padding: 0; width: 48px; }
}

/* Real photography — retained as the original Polaroids so the handwritten labels stay part of the story. */
.hero-polaroid { filter: drop-shadow(0 17px 19px rgba(64,44,53,.16)); position: absolute; z-index: 1; }.hero-polaroid img { display: block; height: auto; width: 100%; }.hero-polaroid-main { right: 8%; top: -3%; transform: rotate(5deg); width: 48%; }.hero-polaroid-detail { bottom: 0; left: 2%; transform: rotate(-8deg); width: 32%; z-index: 3; }
.treat-card { min-height: 492px; }.treat-image { align-items: center; background: rgba(255,255,255,.28); display: flex; height: 63%; justify-content: center; }.treat-card-large .treat-image { height: 69%; }.treat-image img { height: 100%; object-fit: contain; width: 100%; }.treat-card:hover img { transform: scale(1.025); }
.polaroid-display { align-items: center; background: rgba(255,255,255,.22); display: flex; justify-content: center; }.polaroid-display img { height: auto; max-height: 93%; max-width: 88%; object-fit: contain; width: auto; }.bread-image.polaroid-display img { max-height: 91%; max-width: 75%; }.space-photo.polaroid-display { background: transparent; border-radius: 0; }.space-photo.polaroid-display img { max-height: 100%; max-width: 100%; }.cakes-image.polaroid-display img { max-height: 89%; max-width: 76%; }
.polaroid-album { background: #f5d4df; padding: 105px 0 83px; }.album-heading { margin: 0 auto; max-width: 670px; padding: 0 6%; text-align: center; }.album-heading .eyebrow { color: var(--berry); justify-content: center; }.album-heading h2 { font-size: clamp(45px, 5.1vw, 73px); margin: 0 0 17px; }.album-heading > p:last-child { font-size: 16px; line-height: 1.6; margin: 0 auto; max-width: 490px; }.album-track { -ms-overflow-style: none; display: flex; gap: 7px; margin-top: 38px; overflow-x: auto; overscroll-behavior-inline: contain; padding: 22px 7% 28px; scrollbar-width: none; scroll-snap-type: x mandatory; }.album-track::-webkit-scrollbar { display: none; }.album-track figure { flex: 0 0 clamp(170px, 17.4vw, 248px); margin: 0; scroll-snap-align: start; transition: transform .25s ease; }.album-track figure:nth-child(3n+1) { transform: rotate(-2.6deg); }.album-track figure:nth-child(3n+2) { transform: translateY(14px) rotate(1.8deg); }.album-track figure:nth-child(3n) { transform: translateY(-4px) rotate(-.8deg); }.album-track figure:hover { transform: translateY(-7px) rotate(0deg); }.album-track img { box-shadow: 0 12px 20px rgba(64,44,53,.13); display: block; height: auto; width: 100%; }.album-track figcaption { font-size: 12px; font-weight: 700; margin-top: 8px; text-align: center; }.album-hint { align-items: center; display: flex; font-size: 13px; font-weight: 700; gap: 9px; justify-content: center; margin: 3px 0 0; }.album-hint span { color: var(--berry); font-size: 20px; }

@media (max-width: 820px) {
  .hero-polaroid-main { right: 9%; top: 1%; width: 46%; }.hero-polaroid-detail { bottom: 1%; left: 3%; width: 29%; }.treat-card { min-height: 450px; }.treat-card-large { min-height: 768px; }.treat-card-large .treat-image { height: 69%; }.bread-image.polaroid-display img { max-height: 90%; max-width: 58%; }.polaroid-album { padding-top: 83px; }.album-track { padding-left: 8%; padding-right: 8%; }.album-track figure { flex-basis: clamp(190px, 32vw, 245px); }
}
@media (max-width: 540px) {
  .hero-polaroid-main { right: 10%; top: 3%; width: 48%; }.hero-polaroid-detail { bottom: 3%; left: 2%; width: 31%; }.treat-card, .treat-card-large { min-height: 430px; }.treat-card-large .treat-image, .treat-image { height: 66%; }.bread-image.polaroid-display img { max-height: 93%; max-width: 61%; }.cakes-image.polaroid-display img { max-height: 88%; max-width: 68%; }.polaroid-album { padding: 75px 0 62px; }.album-heading { padding: 0 8%; }.album-heading > p:last-child { font-size: 15px; }.album-track { gap: 5px; margin-top: 26px; padding: 16px 6% 25px; }.album-track figure { flex-basis: 185px; }.album-track figcaption { font-size: 11px; }.album-hint { font-size: 12px; }
}

/* Readability pass: all supporting type is intentionally larger across the site. */
.main-nav { font-size: 16px; }.eyebrow { font-size: 13px; }.button { font-size: 15px; }
.social-proof p { font-size: 14px; }.social-proof strong { font-size: 16px; }.avatars b { font-size: 11px; }
.treat-card p { font-size: 15px; }.day-tags span, .inline-link { font-size: 14px; }
.stats-card p, .space-features span, .rating p, .review-card footer strong, .map-card > span, .map-card small { font-size: 12px; }
.space-features p { font-size: 15px; }.review-card footer small { font-size: 11px; }.stars { font-size: 12px; }
.footer-links { font-size: 14px; }.footer-copy { font-size: 12px; }.whatsapp-float { font-size: 14px; }
.hours-row, .hours-row strong { font-size: 15px; }.hours-map-link { font-size: 14px; }
.dialog-intro, .form-row > span, .form-row legend { font-size: 15px; }.form-row b { font-size: 11px; }.form-row input[type="text"], .form-row input[type="date"], .form-row textarea { font-size: 15px; }.pill-group span { font-size: 14px; }.album-track figcaption { font-size: 13px; }.album-hint { font-size: 14px; }

/* The facade Polaroid is now the visual focal point of the space section. */
.space-collage { height: 560px; }.space-photo-top.polaroid-display { height: 87%; left: 4%; width: 69%; z-index: 1; }.space-photo-bottom.polaroid-display { bottom: -1%; right: 0; width: 40%; z-index: 2; }.stats-card { z-index: 3; }

@media (max-width: 820px) {
  .space-collage { height: 480px; }.space-photo-top.polaroid-display { height: 86%; left: 2%; width: 70%; }.space-photo-bottom.polaroid-display { height: 51%; width: 42%; }
}
@media (max-width: 540px) {
  .eyebrow { font-size: 12px; }.main-nav { font-size: 16px; }.button { font-size: 15px; }.hero-copy .eyebrow { font-size: 11px; }.floating-note strong { font-size: 10px; }
  .space-collage { height: 355px; }.space-photo-top.polaroid-display { height: 87%; left: 0; width: 73%; }.space-photo-bottom.polaroid-display { height: 49%; width: 45%; }.stats-card { bottom: -4%; }
}

/* Pequeños momentazos: the three feature cards have equal visual weight. */
.treat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; }
.treat-card, .treat-card-large { display: grid; grid-template-rows: minmax(0, 1fr) 190px; grid-row: auto; height: 540px; min-height: 0; padding: 18px; border: 1px solid var(--line); border-radius: 22px; }
.treat-card-large .treat-image, .treat-image { height: 100%; min-height: 0; border-radius: 13px; }
.treat-image img { padding: 8px; }
.treat-copy { padding: 23px 9px 6px; }
.treat-card h3 { font-size: clamp(28px, 2.8vw, 40px); line-height: 1.05; padding-right: 15px; }
.treat-card p { max-width: 29ch; font-size: 16px; line-height: 1.55; }
.treat-card.peach { background: #f9dce5; }
.treat-card.butter { background: #f9e9df; }

/* Refined rhythm, tactile controls and generous mobile reading. */
html { scroll-padding-top: 24px; }
body.dialog-open { overflow: hidden; }
:focus-visible { outline: 3px solid var(--deep-mint); outline-offset: 5px; }
.skip-link { position: fixed; left: 16px; top: -100px; z-index: 100; background: var(--ink); color: white; padding: 12px 20px; border-radius: 10px; }
.skip-link:focus { top: 16px; }
.site-header { border-bottom: 1px solid var(--line); }
.main-nav { gap: clamp(14px, 1.8vw, 28px); }
.main-nav > a { min-height: 44px; display: inline-flex; align-items: center; }
.hero { padding-top: 62px; padding-bottom: 85px; }
.hero-copy { position: relative; z-index: 4; }
.hero-copy .eyebrow { display: block; max-width: 380px; font-size: 12px; line-height: 1.8; letter-spacing: .08em; }
.hero-copy .eyebrow > span { margin-right: 5px; vertical-align: middle; }
.hero-copy .eyebrow strong { font-weight: inherit; }
h1 { line-height: 1.04; letter-spacing: -.065em; }
.hero-intro { font-size: 18px; max-width: 37ch; }
.hero-art::before { content: ""; position: absolute; inset: -8% -6%; border: 1px solid rgba(44,125,120,.15); border-radius: 50%; transform: rotate(-14deg); }
.hero-polaroid-main { width: 52%; right: 5%; top: 1%; transform: rotate(7deg); }
.hero-polaroid-detail { width: 36%; left: 0; bottom: 3%; }
.hero-shortcuts { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 24px; }
.hero-shortcuts a { display: inline-flex; align-items: center; gap: 15px; min-height: 44px; font-size: 14px; font-weight: 600; border-bottom: 1px solid var(--line); }
.hero-shortcuts a:hover { color: var(--berry); border-color: currentColor; }
.social-proof { flex-wrap: wrap; row-gap: 8px; }
.social-proof p { max-width: 31ch; }
.button { min-height: 52px; }
.center-heading > p:last-child, .album-heading > p:last-child { font-size: 17px; }
.bread-banner, .cakes { margin: 0 3%; border-radius: 30px; overflow: hidden; }
.bread-copy, .cakes-copy { padding-left: clamp(30px, 5vw, 80px); padding-right: clamp(30px, 5vw, 80px); }
.bread-image.polaroid-display img, .cakes-image.polaroid-display img { filter: drop-shadow(0 14px 14px rgba(64,44,53,.1)); }
.space-features { gap: 32px; }
.space-features h3 { padding-right: 28px; }
.space-features p { max-width: 31ch; }
.hours-card { border: 1px solid var(--line); }
.hours-row { gap: 12px; }
.hours-row strong { font-variant-numeric: tabular-nums; }
.hours-row.is-closed { color: var(--berry); }
.hours-map-link { min-height: 44px; line-height: 1.5; }
.album-track { scroll-padding-inline: 7%; }
.album-navigation { display: flex; align-items: center; justify-content: center; gap: 24px; }
.album-hint { margin: 0; }
.album-arrow { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; flex: 0 0 46px; border: 1px solid rgba(64,44,53,.25); border-radius: 50%; color: var(--ink); background: transparent; font-size: 23px; cursor: pointer; transition: background .2s, color .2s; }
.album-arrow[hidden] { display: none; }
.album-arrow:hover:not(:disabled) { color: #fff; background: var(--ink); }
.album-arrow:disabled { opacity: .3; cursor: default; }
.cake-dialog { max-height: min(860px, 92dvh); overscroll-behavior: contain; }
.dialog-close { min-width: 44px; height: 44px; }
fieldset.form-row { border-left: 0; border-right: 0; border-bottom: 0; padding-left: 0; padding-right: 0; min-width: 0; }
.form-row input[type="text"], .form-row input[type="date"], .form-row textarea { font-size: 16px; min-width: 0; }
.pill-group span { min-height: 44px; display: flex; align-items: center; padding: 10px 15px; }
.form-row small { font-size: 13px; font-weight: 400; }
.form-note { margin: 4px 0 0; font-size: 14px; line-height: 1.5; color: var(--deep-mint); }
.footer-links a { min-height: 44px; display: flex; align-items: center; }
.whatsapp-float { bottom: max(20px, env(safe-area-inset-bottom)); }

@media (max-width: 1020px) {
  .site-header { padding: 13px 6%; }
  .menu-toggle { display: block; min-width: 44px; height: 44px; }
  .main-nav { background: var(--cream); box-shadow: 0 18px 25px rgba(64,44,53,.1); display: flex; flex-direction: column; align-items: stretch; gap: 4px; left: 0; opacity: 0; padding: 18px 6% 25px; pointer-events: none; position: absolute; top: 100%; transform: translateY(-10px); transition: opacity .2s ease, transform .2s ease; visibility: hidden; width: 100%; max-height: calc(100dvh - 85px); overflow-y: auto; }
  .main-nav > a:not(.nav-cta) { border-bottom: 1px solid var(--line); padding: 8px 0; min-height: 48px; }
  .main-nav .nav-cta { justify-content: center; margin-top: 12px; }
  .main-nav.is-open { opacity: 1; pointer-events: all; transform: translateY(0); visibility: visible; }
  .menu-toggle.is-open i:first-of-type { transform: translateY(3.25px) rotate(45deg); }
  .menu-toggle.is-open i:last-of-type { transform: translateY(-3.25px) rotate(-45deg); }
  .treat-card, .treat-card-large { height: 515px; grid-template-rows: minmax(0, 1fr) 220px; padding: 12px; }
  .treat-copy { padding-left: 5px; padding-right: 5px; }
}

@media (max-width: 820px) {
  .hero { padding: 40px 8% 60px; }
  .hero-art { height: 435px; max-width: 510px; }
  .hero-polaroid-main { width: 49%; right: 8%; }
  .hero-polaroid-detail { width: 33%; left: 1%; }
  .bread-banner, .cakes { margin-inline: 4%; border-radius: 24px; }
  .bread-copy, .cakes-copy { padding: 48px 8% 56px; }
  .bread-copy h2 br:nth-of-type(2) { display: none; }
  .cake-sticker { top: 24px; right: 20px; }
  .bread-image, .cakes-image { height: 370px; min-height: 0; }
  .space-collage { margin-top: 40px; }
}

@media (max-width: 700px) {
  .treat-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; max-width: 480px; margin-inline: auto; }
  .treat-card, .treat-card-large { height: 510px; grid-template-rows: minmax(0, 1fr) 175px; padding: 16px; }
  .treat-card h3 { font-size: 34px; }
  .treat-copy { padding-top: 20px; padding-inline: 7px; }
  .treat-card p { max-width: 33ch; }
}

@media (max-width: 540px) {
  .hero { padding: 32px 6% 48px; gap: 10px; }
  h1 { font-size: clamp(43px, 12.3vw, 63px); margin-bottom: 21px; }
  .hero-copy .eyebrow { font-size: 11px; margin-bottom: 18px; }
  .hero-intro { font-size: 17px; line-height: 1.65; }
  .hero-actions { margin-top: 24px; gap: 8px; align-items: stretch; }
  .hero-actions .button-text { justify-content: flex-start; padding-left: 4px; }
  .social-proof { margin-top: 18px; }
  .hero-shortcuts { margin-top: 12px; gap: 18px; }
  .hero-art { height: 340px; margin-top: 30px; max-width: 380px; }
  .hero-polaroid-main { width: 51%; right: 7%; }
  .hero-polaroid-detail { width: 36%; left: 0; bottom: 0; }
  .floating-note { bottom: 2%; right: 2%; width: 85px; height: 85px; }
  .floating-note strong { font-size: 11px; }
  .ribbon { top: 4%; left: 0; font-size: 13px; }
  .section { padding-block: 68px; }
  .center-heading h2 { font-size: clamp(36px, 10.5vw, 50px); line-height: 1.05; }
  .inclusive-note p { font-size: 18px; }
  .bread-image, .cakes-image { height: 310px; }
  .bread-image.polaroid-display img { max-width: 74%; }
  .cakes-image.polaroid-display img { max-width: 74%; }
  .space-copy h2 { font-size: 48px; }
  .space-collage { height: 390px; }
  .space-photo-top.polaroid-display { width: 84%; height: 87%; }
  .space-photo-bottom.polaroid-display { width: 45%; height: 43%; bottom: -2%; }
  .stats-card { bottom: -1%; left: 0; padding: 14px; width: 142px; }
  .stats-card p { font-size: 12px; }
  .space-features { margin-top: 58px; gap: 24px; }
  .space-features > div + div { border-top: 1px solid var(--line); padding-top: 22px; }
  .space-features > div + div > span { top: 25px; }
  .space-features p { font-size: 16px; }
  .polaroid-album { padding-block: 66px 48px; }
  .album-track { scroll-padding-inline: 6%; }
  .album-track figure { flex-basis: 210px; }
  .album-navigation { gap: 16px; padding: 0 6%; }
  .album-hint { font-size: 13px; }
  .album-hint > span { display: none; }
  .hours-row { padding-block: 15px; gap: 5px; }
  .hours-row strong { font-size: 16px; }
  .hours-heading h2 { font-size: clamp(39px, 11vw, 54px); }
  .cake-dialog { max-height: 94dvh; padding: 22px 18px; }
  .dialog-topbar h2 { font-size: 39px; }
  .dialog-intro { font-size: 15px; }
  .form-submit { margin-bottom: env(safe-area-inset-bottom); }
  .site-footer { padding-bottom: 85px; }
  .whatsapp-float { width: 52px; height: 52px; bottom: max(15px, env(safe-area-inset-bottom)); }
}

@media (max-width: 360px) {
  .hero-art { height: 300px; }
  .hero-shortcuts { gap: 12px; }
  .hero-shortcuts a { font-size: 13px; gap: 8px; }
  .treat-card, .treat-card-large { height: 520px; grid-template-rows: minmax(0, 1fr) 195px; }
  .treat-card h3 { font-size: 31px; }
  .space-collage { height: 345px; }
  .review-card { padding: 21px 18px; }
  .stars { letter-spacing: 0; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* La galería se abre a pantalla completa sin mostrar rótulos bajo las fotos. */
.album-track figure, .treat-image { cursor: zoom-in; }
.album-track figure:focus-visible, .treat-image:focus-visible { outline: 3px solid var(--berry); outline-offset: 5px; }
.photo-lightbox { align-items: center; background: transparent; border: 0; height: 100dvh; justify-content: center; margin: 0; max-height: none; max-width: none; overflow: visible; padding: 26px; width: 100dvw; }
.photo-lightbox[open] { display: flex; }
.photo-lightbox::backdrop { background: rgba(43, 26, 36, .78); backdrop-filter: blur(8px); }
.photo-lightbox img { box-shadow: 0 26px 70px rgba(0, 0, 0, .38); max-height: calc(100dvh - 52px); max-width: min(94dvw, 1000px); object-fit: contain; width: auto; }
.photo-lightbox-close { align-items: center; background: var(--cream); border: 0; border-radius: 50%; color: var(--ink); cursor: pointer; display: flex; font: 400 32px/1 var(--sans); height: 45px; justify-content: center; padding: 0 0 4px; position: fixed; right: max(20px, env(safe-area-inset-right)); top: max(20px, env(safe-area-inset-top)); width: 45px; z-index: 2; }
.photo-lightbox-close:hover { background: var(--mint); transform: rotate(90deg); }

.bread-varieties { margin-top: 18px; }
.bread-sale-days { margin-top: 16px; }
.bread-extras { margin-top: 8px; }
.bread-reserve { align-items: center; border-bottom: 2px solid var(--berry); color: var(--berry); display: inline-flex; font-size: 16px; font-weight: 800; gap: 10px; margin-top: 20px; padding-bottom: 5px; transition: color .2s ease, gap .2s ease; }
.bread-reserve:hover { color: var(--ink); gap: 14px; }

/* La tarta recortada se mantiene completa, sobre un fondo transparente. */
.cakes-image.polaroid-display img {
  height: 100%;
  max-height: none;
  max-width: none;
  object-fit: contain;
  object-position: center;
  width: 100%;
}

/* Pequeños momentazos: fotografía protagonista, amplia y sin márgenes interiores. */
.treat-card,
.treat-card-large {
  grid-template-rows: minmax(0, 1fr) 185px;
  height: 630px;
}

.treat-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.treat-card-large .treat-image,
.treat-image {
  height: 100%;
}

.treat-image img {
  object-fit: cover;
  padding: 0;
}

@media (max-width: 700px) {
  .treat-card,
  .treat-card-large {
    grid-template-rows: minmax(0, 1fr) 180px;
    height: 590px;
  }
}

@media (max-width: 1050px) and (min-width: 701px) {
  .treat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 760px;
    margin-inline: auto;
  }
}

@media (max-width: 420px) {
  .treat-card,
  .treat-card-large {
    grid-template-rows: minmax(0, 1fr) 175px;
    height: 540px;
  }
}

/* Reseñas reales sincronizadas desde Google mediante Elfsight. */
.review-stack > .elfsight-app-bcced770-cf72-44a5-921b-12b2ff6eff1e {
  min-height: 360px;
  width: 100%;
}

/* Más que una cafetería: una presentación amplia y centrada del establecimiento. */
.space {
  padding-top: 132px;
}

.space > .space-copy {
  margin: 0 auto;
  max-width: 760px;
  text-align: center;
}

.space-copy .eyebrow {
  justify-content: center;
}

.space-copy h2 {
  font-size: clamp(54px, 6vw, 84px);
  margin-bottom: 24px;
}

.space-copy > p:not(.eyebrow) {
  font-size: clamp(18px, 1.8vw, 21px);
  line-height: 1.65;
  margin-inline: auto;
  max-width: 660px;
}

.space-copy .inline-link {
  font-size: 16px;
  margin-top: 22px;
}

.space-collage {
  height: clamp(480px, 59vw, 740px);
  margin: 50px auto 0;
  max-width: 1040px;
}

.space-photo-top.polaroid-display {
  border-radius: 28px;
  height: 100%;
  inset: 0;
  left: 0;
  width: 100%;
}

.space-photo-top.polaroid-display img {
  object-position: center 58%;
}

.stats-card {
  align-items: center;
  background: var(--cream);
  border: 1px solid rgba(64, 44, 53, .14);
  border-radius: 18px;
  bottom: -56px;
  color: var(--ink);
  display: flex;
  gap: 24px;
  justify-content: center;
  left: 50%;
  padding: 20px 34px;
  transform: translateX(-50%);
  width: min(88%, 650px);
}

.stats-card > div {
  flex: 1;
  text-align: center;
}

.stats-card strong {
  display: block;
  font-size: clamp(42px, 4.8vw, 60px);
}

.stats-card strong span {
  font-size: .4em;
}

.stats-card p {
  font-size: 15px;
  font-weight: 600;
  margin: 8px 0 0;
}

.stats-card hr {
  border: 0;
  border-left: 1px solid var(--line);
  height: 64px;
  margin: 0;
}

.space-features {
  gap: 38px;
  margin-top: 142px;
  padding-top: 30px;
}

.space-features h3 {
  font-size: clamp(27px, 2.3vw, 34px);
  margin-bottom: 12px;
}

.space-features p {
  font-size: 17px;
  line-height: 1.6;
  max-width: 32ch;
}

@media (max-width: 700px) {
  .space {
    padding-top: 90px;
  }

  .space-copy h2 {
    font-size: clamp(47px, 13vw, 63px);
  }

  .space-copy > p:not(.eyebrow) {
    font-size: 17px;
  }

  .space-collage {
    height: min(108vw, 500px);
    margin-top: 42px;
  }

  .stats-card {
    bottom: -62px;
    gap: 12px;
    padding: 16px 13px;
    width: min(94%, 500px);
  }

  .stats-card strong {
    font-size: clamp(34px, 9vw, 47px);
  }

  .stats-card p {
    font-size: 13px;
  }

  .stats-card hr {
    height: 48px;
  }

  .space-features {
    margin-top: 126px;
  }
}

/* Galería: todas las miniaturas mantienen un encuadre vertical antes de abrirse. */
.album-track figure {
  aspect-ratio: 3 / 4;
  overflow: hidden;
}

.album-track img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

/* Mensaje inclusivo, más visible y en una línea en pantallas amplias. */
.inclusive-note {
  max-width: none;
  width: max-content;
}

.inclusive-note p {
  font-size: clamp(21px, 1.65vw, 25px);
  white-space: nowrap;
}

@media (max-width: 900px) {
  .inclusive-note {
    max-width: 92%;
    width: auto;
  }

  .inclusive-note p {
    font-size: clamp(18px, 3.1vw, 22px);
    white-space: normal;
  }
}

/* Zona infantil: foto y texto para presentar el espacio de juego interior y exterior. */
.kids-zone {
  align-items: center;
  border-top: 1px solid var(--line);
  display: grid;
  gap: clamp(32px, 6vw, 94px);
  grid-template-columns: minmax(240px, .82fr) minmax(280px, 1fr);
  margin-top: 70px;
  padding-top: 62px;
}

.kids-zone-photo {
  aspect-ratio: 4 / 5;
  background: var(--peach);
  box-shadow: 16px 18px 0 rgba(239, 173, 188, .34);
  overflow: hidden;
}

.kids-zone-photo img {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.kids-zone-copy .eyebrow {
  color: var(--berry);
  margin-bottom: 15px;
}

.kids-zone-copy h3 {
  font-family: var(--serif);
  font-size: clamp(38px, 4vw, 58px);
  font-weight: 600;
  line-height: .98;
  margin: 0 0 22px;
}

.kids-zone-copy h3 em {
  color: var(--berry);
  font-weight: 400;
}

.kids-zone-copy > p:not(.eyebrow) {
  font-size: 17px;
  line-height: 1.65;
  margin: 0 0 12px;
  max-width: 48ch;
}

@media (max-width: 700px) {
  .kids-zone {
    gap: 30px;
    grid-template-columns: 1fr;
    margin-top: 56px;
    padding-top: 48px;
  }

  .kids-zone-photo {
    aspect-ratio: 4 / 4.7;
    max-width: 430px;
  }

  .kids-zone-copy h3 {
    font-size: clamp(40px, 11vw, 54px);
  }

  .kids-zone-copy > p:not(.eyebrow) {
    font-size: 16px;
  }
}
