:root {
  --ink: #603726;
  --ink-deep: #34221e;
  --cream: #fffaf4;
  --cream-dark: #f5eadf;
  --sage: #bfeed9;
  --sage-deep: #87d8b3;
  --berry: #bc5d72;
  --gold: #d8b975;
  --muted: #6c5f55;
  --line: #dfd8cc;
}

.site-header { background: rgba(255, 250, 244, .97); }
.brand-original { gap: 8px; }
.brand-original .brand-emblem { width: 49px; height: 49px; object-fit: contain; }
.brand-original .brand-wordmark { width: 158px; height: auto; object-fit: contain; }
.footer-official-logo { display: inline-block; width: 190px; background: transparent; padding: 0; }
.footer-official-logo img { width: 100%; height: auto; filter: none; }
.footer-top .footer-map { color: #e7d09a; text-decoration: underline; text-underline-offset: 4px; }
.hero { background: linear-gradient(115deg, #d8ffeb 0%, #a7e7c8 64%, #c5f6df 100%); }
.hero::before { content: ''; position: absolute; width: 290px; height: 290px; border: 1px solid rgba(96, 55, 38, .2); border-radius: 50%; left: -125px; top: -155px; pointer-events: none; }
.hero-photo-wrap { box-shadow: 17px 17px 0 rgba(96, 55, 38, .1); }
.feature-delivery { background: #d6a99d; }
.menu-teaser { background: #442820; }
.story-section { background: var(--cream); }
.story-photo { height: 560px; max-width: 540px; }
.story-photo > img:first-child { object-fit: cover; object-position: center; border-radius: 240px 240px 3px 3px; }
.story-photo .story-diploma { position: absolute; width: 176px; height: 176px; right: -55px; bottom: 43px; object-fit: cover; object-position: center 27%; border: 6px solid var(--cream); border-radius: 2px; transform: rotate(5deg); box-shadow: 0 13px 30px rgba(61, 33, 24, .2); }
.story-photo > span { right: auto; left: -15px; bottom: 13px; transform: rotate(-3deg); }
.calculator-section { background: #d4f3e2; }
.delivery-section { background: var(--cream-dark); }
.course-card { background: #c4f2d9; }
.kiosk-section { background: #d2f5e1; border-top: 1px solid #a4d8b9; }
.kiosk-section .eyebrow { color: #466c56; }
.store-address span, .store-copy small { color: #6b5549; }

/* A capa real reforça o mint e o dourado da marca, sem redesenhar a assinatura. */
.brand-cover { display: block; height: clamp(310px, 39vw, 610px); margin: 0; overflow: hidden; background: var(--sage); border-block: 1px solid #b2e2cc; }
.brand-cover img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 60%; }

/* Narrativa cinematográfica: fotografias reais substituem a ilustração de bolo. */
.cake-journey { position: relative; height: 345vh; background: #34221e; color: #fff9ee; }
.cake-journey-sticky { position: sticky; top: 0; height: 100vh; min-height: 690px; padding: 93px max(5vw, calc((100vw - 1420px) / 2)) 45px; overflow: hidden; display: grid; grid-template-columns: minmax(0, .96fr) minmax(0, 1.04fr); gap: 5vw; align-items: center; }
.cake-journey-sticky::before { content: ''; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle at 74% 45%, rgba(199, 145, 85, .16), transparent 38%), radial-gradient(circle at 5% 100%, rgba(137, 76, 68, .2), transparent 35%); }
.cake-journey-copy { position: relative; z-index: 2; align-self: center; }
.cake-journey-copy h2 { color: #fff8ed; font-size: clamp(3.8rem, 5.7vw, 6.6rem); max-width: 670px; margin: 0 0 23px; }
.cake-journey-copy h2 em { color: var(--gold); }
.journey-intro { max-width: 400px; color: #efdfca; font-size: 15px; line-height: 1.75; }
.journey-steps { position: relative; max-width: 480px; height: 182px; margin-top: 26px; border-top: 1px solid rgba(216, 185, 117, .45); }
.journey-step { position: absolute; inset: 18px 0 auto; opacity: 0; transform: translateY(18px); pointer-events: none; transition: opacity .35s ease, transform .35s ease; }
.journey-step.is-active { opacity: 1; transform: translateY(0); pointer-events: auto; }
.journey-step > span { display: block; color: var(--gold); font: 700 11px/1.4 var(--sans); letter-spacing: .16em; text-transform: uppercase; }
.journey-step h3 { color: #fff9ee; font-size: clamp(2.3rem, 3.5vw, 3.4rem); margin: 9px 0; }
.journey-step p { max-width: 410px; color: #f0e5d8; font-size: 14px; line-height: 1.6; }
.journey-progress { height: 2px; width: min(100%, 440px); background: rgba(255, 242, 222, .3); margin: 3px 0 26px; }
.journey-progress span { display: block; width: 0; height: 100%; background: var(--gold); }
.journey-menu-link { display: inline-flex; gap: 24px; align-items: center; font-size: 12px; font-weight: 700; color: var(--gold); padding-bottom: 5px; border-bottom: 1px solid currentColor; }
.journey-hint { position: absolute; right: 5vw; bottom: 23px; color: #f0d8ae; font: 700 11px/1 var(--sans); text-transform: uppercase; letter-spacing: .14em; }
.cake-journey-graphic { position: relative; z-index: 1; width: 100%; height: 100%; display: grid; place-items: center; }
.cinematic-glow { position: absolute; width: min(90%, 610px); aspect-ratio: 1; border: 1px solid rgba(216, 185, 117, .36); border-radius: 50%; box-shadow: 0 0 0 35px rgba(216, 185, 117, .035), 0 0 0 80px rgba(216, 185, 117, .025); transform: translateY(var(--glow-shift, 0px)); }
.cinematic-frame { position: relative; width: min(100%, 520px); height: min(73vh, 655px); min-height: 440px; overflow: hidden; border-radius: 255px 255px 12px 12px; border: 1px solid rgba(245, 218, 168, .5); background: #9bdcc4; box-shadow: 0 32px 90px rgba(12, 7, 6, .4), 16px 18px 0 rgba(216, 185, 117, .1); transform: perspective(1100px) rotateY(var(--tilt, 0deg)); transition: transform .11s linear; }
.cinematic-frame::after { content: ''; position: absolute; inset: 0; pointer-events: none; box-shadow: inset 0 0 50px rgba(42, 19, 15, .13); }
.cinematic-shot { position: absolute; inset: 0; margin: 0; opacity: 0; overflow: hidden; pointer-events: none; }
.shot-whole { opacity: 1; }
.cinematic-shot img { display: block; width: 100%; height: 100%; object-fit: cover; transform: scale(var(--zoom, 1.04)) translateY(var(--shift, 0px)); transition: transform .11s linear; }
.shot-whole img { object-position: center 55%; }
.shot-slice img { object-position: center 42%; }
.shot-cafe img { object-position: center 50%; }
.cinematic-caption { position: absolute; z-index: 3; right: -2%; bottom: 43px; max-width: 270px; padding: 15px 20px; transform: rotate(-4deg); background: var(--sage); box-shadow: 8px 9px 0 rgba(22, 13, 11, .23); color: var(--ink); }
.cinematic-caption span { display: block; font: 700 9px/1.4 var(--sans); letter-spacing: .13em; }
.cinematic-caption strong { display: block; margin-top: 3px; font: italic 29px/1 var(--serif); }
.cinematic-orbit { position: absolute; color: var(--gold); left: 1%; top: 14%; font: 70px/1 var(--serif); opacity: .8; }

/* A fotografia enviada traz a vitrine de doces também ao bloco de delivery. */
.delivery-photo { height: 395px; overflow: visible; }
.delivery-photo img { display: block; width: min(100%, 395px); height: 100%; object-fit: cover; object-position: center; border-radius: 190px 190px 12px 12px; box-shadow: 14px 14px 0 rgba(96, 55, 38, .1); }
.delivery-photo-label { position: absolute; bottom: -18px; left: -6%; background: var(--sage); color: var(--ink); padding: 14px 20px; font: italic 38px/.86 var(--serif); text-align: center; transform: rotate(-8deg); }

/* Fotos reais da loja, sem afirmar horário ou funcionamento atual. */
.store-section { background: var(--cream); display: grid; grid-template-columns: 1fr .85fr; align-items: center; gap: clamp(55px, 8vw, 125px); }
.store-gallery { position: relative; height: 520px; display: grid; grid-template-columns: 1.1fr .8fr; grid-template-rows: 1fr 1fr; gap: 13px; }
.store-gallery img { width: 100%; height: 100%; object-fit: cover; min-width: 0; min-height: 0; }
.store-facade { grid-column: 1; grid-row: 1 / 3; border-radius: 210px 210px 3px 3px; object-position: center top; }
.store-room { grid-column: 2; grid-row: 1; border-radius: 120px 120px 3px 3px; object-position: center 20%; }
.store-counter { grid-column: 2; grid-row: 2; border-radius: 3px 3px 95px 95px; object-position: center; }
.store-photo-label { position: absolute; left: 26%; bottom: -21px; padding: 13px 19px; background: var(--sage); color: var(--ink); font: italic 23px/1 var(--serif); transform: rotate(-3deg); }
.store-copy h2 { margin: 23px 0 26px; max-width: 580px; }
.store-copy > p:not(.eyebrow) { color: var(--muted); max-width: 480px; line-height: 1.85; }
.store-address { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 19px 0; margin: 28px 0 27px; }
.store-address span { display: block; text-transform: uppercase; letter-spacing: .17em; font-size: 10px; font-weight: 700; margin-bottom: 8px; }
.store-address strong { font: 500 28px/1.18 var(--serif); }
.store-copy small { display: block; max-width: 430px; margin-top: 15px; font-size: 11px; line-height: 1.5; }

@media (max-width: 1000px) {
  .brand-original .brand-emblem { width: 43px; height: 43px; }
  .brand-original .brand-wordmark { width: 135px; }
  .cake-journey-sticky { gap: 2vw; }
  .cinematic-frame { height: min(65vh, 590px); }
  .store-section { gap: 5vw; }
}
@media (max-width: 800px) {
  .brand-original .brand-wordmark { width: 145px; }
  .story-photo .story-diploma { width: 135px; height: 135px; right: -15px; bottom: 50px; }
  .cake-journey-sticky { padding-left: 6vw; padding-right: 6vw; }
  .cake-journey-copy h2 { font-size: 4.2rem; }
  .cinematic-frame { min-height: 380px; }
  .store-gallery { height: 440px; }
}
@media (max-width: 620px) {
  .brand-original { gap: 4px; }
  .brand-original .brand-emblem { width: 39px; height: 39px; }
  .brand-original .brand-wordmark { width: 128px; }
  .hero::before { display: none; }
  .brand-cover { height: 235px; }
  .brand-cover img { object-position: center; }
  .story-photo { width: 87%; height: 400px; }
  .story-photo .story-diploma { width: 126px; height: 126px; right: -32px; bottom: 29px; }
  .story-photo > span { bottom: 8px; left: -10px; font-size: 18px; }
  .cake-journey { height: 325vh; }
  .cake-journey-sticky { height: 100svh; min-height: 670px; display: flex; flex-direction: column; align-items: stretch; gap: 0; padding: 78px 6vw 18px; }
  .cake-journey-copy { flex: none; }
  .cake-journey-copy h2 { font-size: clamp(3.15rem, 11.5vw, 4.15rem); margin: 0 0 10px; }
  .journey-intro { font-size: 13px; line-height: 1.4; margin: 0; }
  .journey-steps { height: 128px; margin-top: 12px; }
  .journey-step { inset: 10px 0 auto; }
  .journey-step > span { font-size: 10px; }
  .journey-step h3 { font-size: 27px; margin: 5px 0; }
  .journey-step p { font-size: 12px; line-height: 1.45; }
  .journey-progress { margin: 1px 0 10px; }
  .journey-menu-link { font-size: 11px; }
  .cake-journey-graphic { flex: 1; min-height: 310px; }
  .cinematic-frame { width: min(72vw, 300px); height: min(42svh, 380px); min-height: 275px; border-radius: 190px 190px 9px 9px; }
  .cinematic-glow { width: 83%; }
  .cinematic-caption { right: 0; bottom: 5px; padding: 7px 10px; max-width: 165px; }
  .cinematic-caption span { font-size: 7px; }
  .cinematic-caption strong { font-size: 17px; }
  .cinematic-orbit, .journey-hint { display: none; }
  .delivery-photo { width: 76%; height: 345px; margin: 20px auto 15px; }
  .delivery-photo-label { font-size: 27px; left: -15%; bottom: -17px; padding: 12px 15px; }
  .store-section { display: flex; flex-direction: column; gap: 45px; }
  .store-gallery { width: 100%; height: 390px; gap: 8px; }
  .store-facade { border-radius: 150px 150px 2px 2px; }
  .store-room { border-radius: 80px 80px 2px 2px; }
  .store-photo-label { font-size: 17px; left: 10%; bottom: -15px; padding: 8px 10px; }
  .store-copy { width: 100%; }
  .store-copy h2 { margin: 14px 0 20px; }
}
@media (max-width: 620px) and (max-height: 720px) {
  .cake-journey-sticky { padding-top: 70px; min-height: 630px; }
  .cake-journey-copy h2 { font-size: 2.8rem; }
  .journey-steps { height: 118px; }
  .cinematic-frame { height: 285px; }
}
@media (prefers-reduced-motion: reduce) {
  .cake-journey { height: auto; }
  .cake-journey-sticky { position: static; display: block; height: auto; min-height: 0; padding: 85px 6vw; }
  .journey-steps { height: auto; }
  .journey-step { position: static; opacity: 1; transform: none; padding: 9px 0; }
  .journey-progress, .journey-hint, .cinematic-glow, .cinematic-orbit { display: none; }
  .cake-journey-graphic { margin-top: 32px; height: auto; }
  .cinematic-frame { width: 100%; height: auto; min-height: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; overflow: visible; border: 0; border-radius: 0; background: transparent; box-shadow: none; transform: none; }
  .cinematic-frame::after { display: none; }
  .cinematic-shot { position: relative; opacity: 1; aspect-ratio: 4 / 5; border-radius: 120px 120px 6px 6px; }
  .cinematic-shot img { transform: none; }
  .cinematic-caption { display: none; }
}
@media (prefers-reduced-motion: reduce) and (max-width: 620px) {
  .cinematic-frame { grid-template-columns: 1fr; gap: 16px; }
  .cinematic-shot { aspect-ratio: 4 / 4; }
}

/* Quiosque inaugurado no Shopping Jardim Sul */
.kiosk-section h2 { margin-bottom: 20px; }

.kiosk-section { display: block !important; }
.kiosk-gallery { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; padding-bottom: 10px; margin-bottom: 28px; scrollbar-width: thin; }
.kiosk-gallery img { flex: 0 0 auto; width: 260px; height: 340px; object-fit: cover; border-radius: 120px 120px 4px 4px; scroll-snap-align: start; }
.kiosk-copy { max-width: 640px; margin: 0 auto; text-align: center; }
@media (max-width: 620px) { .kiosk-gallery img { width: 70vw; height: 300px; border-radius: 100px 100px 3px 3px; } }