:root { --cream:#f7f0e7; --paper:#fffaf4; --ink:#241b18; --coffee:#653d30; --dark:#38251f; --rose:#e3aba8; --pink:#f2c8c3; --line:rgba(56,37,31,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Arial, Helvetica, sans-serif; }
button, input, select { font:inherit; }
button, a { -webkit-tap-highlight-color:transparent; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
.site-header { position:sticky; top:0; z-index:50; min-height:84px; display:grid; grid-template-columns:150px 1fr auto; align-items:center; gap:32px; padding:10px clamp(22px,4vw,72px); background:rgba(255,250,244,.94); border-bottom:1px solid var(--line); backdrop-filter:blur(16px); }
.brand img { width:74px; height:64px; object-fit:contain; }
.nav { display:flex; justify-content:center; gap:clamp(20px,3vw,48px); font-size:14px; font-weight:700; }
.nav a { position:relative; }
.nav a:after { content:""; position:absolute; left:0; right:100%; bottom:-8px; height:2px; background:var(--coffee); transition:.25s; }
.nav a:hover:after { right:0; }
.header-actions { display:flex; align-items:center; gap:18px; }
.phone { font-size:14px; font-weight:700; white-space:nowrap; }
.button { border:0; border-radius:999px; padding:16px 24px; display:inline-flex; align-items:center; justify-content:center; gap:10px; color:white; background:var(--coffee); font-weight:800; cursor:pointer; transition:transform .2s, box-shadow .2s, background .2s; }
.button:hover { transform:translateY(-2px); box-shadow:0 12px 28px rgba(101,61,48,.18); background:#503027; }
.button-small { padding:13px 20px; font-size:13px; }
.button-ghost { color:var(--ink); background:transparent; border:1px solid var(--line); }
.button-ghost:hover { background:white; }
.menu-toggle { display:none; width:42px; height:42px; border:1px solid var(--line); border-radius:50%; background:white; cursor:pointer; }
.menu-toggle span { display:block; width:17px; height:2px; margin:4px auto; background:var(--ink); }
.hero { min-height:720px; display:grid; grid-template-columns:minmax(0,1fr) minmax(430px,.95fr); background:var(--cream); overflow:hidden; }
.hero-copy { padding:clamp(76px,10vw,150px) clamp(28px,6vw,100px) 72px; align-self:center; }
.eyebrow { margin:0 0 22px; color:var(--coffee); font-size:12px; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:Georgia, 'Times New Roman', serif; font-weight:500; letter-spacing:-.045em; }
h1 { max-width:770px; margin-bottom:28px; font-size:clamp(56px,6.4vw,104px); line-height:.92; }
h2 { font-size:clamp(45px,5.3vw,78px); line-height:.98; }
.hero-text { max-width:560px; color:#5d514c; font-size:20px; line-height:1.55; }
.hero-buttons { display:flex; flex-wrap:wrap; gap:12px; margin:36px 0 54px; }
.hero-meta { display:flex; gap:56px; }
.hero-meta div { display:grid; gap:5px; }
.hero-meta strong { font-family:Georgia,serif; font-size:26px; }
.hero-meta span { color:#746862; font-size:12px; }
.hero-visual { position:relative; min-height:720px; display:grid; place-items:center; background:var(--rose); isolation:isolate; }
.hero-visual:before { content:""; position:absolute; inset:4% 6%; border:1px solid rgba(255,255,255,.42); border-radius:48% 52% 47% 53%; z-index:-1; transform:rotate(-7deg); }
.hero-main-photo { width:min(57%,430px); aspect-ratio:2/3; object-fit:cover; border:12px solid var(--paper); border-radius:46% 46% 12px 12px; box-shadow:0 40px 70px rgba(72,39,34,.25); transform:rotate(3deg); }
.hero-orbit { position:absolute; border:1px solid rgba(56,37,31,.3); border-radius:50%; z-index:-2; }
.hero-orbit-one { width:84%; height:55%; transform:rotate(25deg); }
.hero-orbit-two { width:70%; height:74%; transform:rotate(-18deg); }
.hero-note { position:absolute; left:7%; top:22%; width:128px; height:128px; display:grid; place-content:center; text-align:center; border-radius:50%; color:white; background:var(--coffee); transform:rotate(-10deg); box-shadow:0 18px 35px rgba(56,37,31,.25); }
.hero-note span { font-size:11px; text-transform:uppercase; letter-spacing:.15em; }
.hero-note strong { font-family:Georgia,serif; font-size:21px; }
.hero-stamp { position:absolute; right:7%; bottom:12%; color:#6f3731; font-size:12px; font-weight:900; line-height:1.45; letter-spacing:.18em; transform:rotate(8deg); }
.marquee { padding:18px 0; overflow:hidden; color:white; background:var(--coffee); white-space:nowrap; font-family:Georgia,serif; font-size:21px; font-style:italic; }
.marquee div { width:max-content; animation:marquee 24s linear infinite; }
.marquee span { margin:0 25px; color:var(--pink); }
@keyframes marquee { to { transform:translateX(-50%); } }
.section { padding:clamp(76px,9vw,140px) clamp(24px,6vw,96px); }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:40px; margin-bottom:48px; }
.section-heading h2 { max-width:760px; margin-bottom:0; }
.section-heading > p { max-width:400px; color:#6e625d; font-size:17px; line-height:1.6; }
.menu-section { background:var(--paper); }
.category-tabs { display:flex; gap:10px; overflow:auto; padding-bottom:16px; margin-bottom:26px; }
.category { flex:0 0 auto; padding:12px 20px; border:1px solid var(--line); border-radius:999px; color:#6b5b54; background:transparent; font-weight:800; cursor:pointer; }
.category.active { color:white; background:var(--dark); border-color:var(--dark); }
.menu-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; min-height:520px; align-items:start; }
.dish-card { overflow:hidden; background:white; border:1px solid var(--line); border-radius:150px 150px 22px 22px; box-shadow:0 16px 45px rgba(56,37,31,.07); }
.dish-card:nth-child(even) { margin-top:48px; }
.dish-image-wrap { position:relative; aspect-ratio:2/3; overflow:hidden; background:var(--cream); }
.dish-image-wrap img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.dish-card:hover img { transform:scale(1.045); }
.dish-image-wrap span { position:absolute; top:16px; left:50%; transform:translateX(-50%); padding:8px 13px; border-radius:99px; background:rgba(255,250,244,.92); font-size:10px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.dish-content { padding:22px 22px 28px; }
.dish-title { display:flex; justify-content:space-between; gap:12px; }
.dish-title h3 { margin-bottom:12px; font-family:Georgia,serif; font-size:21px; font-weight:500; }
.dish-title strong { white-space:nowrap; }
.dish-content p { margin-bottom:0; color:#776a64; font-size:13px; line-height:1.5; }
.menu-footer { display:flex; align-items:center; gap:24px; margin-top:52px; }
.button-dark { background:var(--dark); }
.menu-footer small { max-width:340px; color:#897d77; line-height:1.4; }
.story { display:grid; grid-template-columns:1.1fr .9fr; min-height:720px; padding-top:0; padding-bottom:0; background:#efe2d2; }
.story-photo { position:relative; min-height:660px; overflow:hidden; background:#ddd; }
.story-photo > img { width:100%; height:100%; object-fit:cover; object-position:65% center; }
.story-number { position:absolute; right:30px; bottom:30px; width:215px; aspect-ratio:1; display:grid; place-content:center; padding:25px; color:white; background:var(--coffee); border-radius:50%; text-align:center; }
.story-number strong { font-family:Georgia,serif; font-size:56px; font-weight:500; line-height:.9; }
.story-number span { margin-top:9px; font-size:12px; line-height:1.4; }
.story-copy { align-self:center; padding:80px clamp(30px,6vw,100px); }
.story-copy h2 { margin-bottom:32px; }
.story-copy > p:not(.eyebrow) { max-width:590px; color:#64564f; font-size:18px; line-height:1.7; }
.story-points { display:flex; flex-wrap:wrap; gap:10px; margin-top:36px; }
.story-points span { padding:10px 14px; border:1px solid rgba(101,61,48,.35); border-radius:99px; color:var(--coffee); font-size:12px; font-weight:800; }
.cakes { position:relative; min-height:650px; display:flex; align-items:center; overflow:hidden; }
.cakes > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.cakes:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(255,250,244,.98) 0%,rgba(255,250,244,.88) 38%,rgba(255,250,244,0) 70%); }
.cakes-copy { position:relative; z-index:1; max-width:650px; }
.cakes-copy p:not(.eyebrow) { max-width:510px; color:#64564f; font-size:18px; line-height:1.6; }
.reviews { color:white; background:var(--dark); }
.reviews .eyebrow { color:var(--pink); }
.reviews-top { display:flex; justify-content:space-between; align-items:start; }
.rating { display:flex; gap:14px; align-items:center; }
.rating strong { font-family:Georgia,serif; font-size:60px; font-weight:400; }
.rating span { color:var(--pink); font-size:12px; line-height:1.5; }
blockquote { max-width:1150px; margin:70px auto 42px; font-family:Georgia,serif; font-size:clamp(34px,4.4vw,68px); line-height:1.15; letter-spacing:-.025em; text-align:center; }
.review-note { margin:0 auto; max-width:580px; color:#b8a6a0; font-size:12px; line-height:1.5; text-align:center; }
.contact { display:grid; grid-template-columns:.9fr 1.1fr; padding:0; min-height:700px; }
.contact-card { display:flex; flex-direction:column; justify-content:center; padding:80px clamp(28px,6vw,100px); color:white; background:var(--coffee); }
.contact-card .eyebrow { color:var(--pink); }
.contact-card address { display:grid; gap:22px; margin:18px 0 40px; font-style:normal; }
.contact-card address div { display:grid; gap:6px; }
.contact-card address span { color:#dfc9c1; font-size:11px; text-transform:uppercase; letter-spacing:.12em; }
.contact-card address strong,.contact-card address a { font-size:18px; font-weight:700; }
.contact-actions { display:flex; flex-wrap:wrap; gap:10px; }
.contact-card .button { color:var(--coffee); background:var(--paper); }
.button-outline-light { color:white!important; background:transparent!important; border:1px solid rgba(255,255,255,.45); }
.map-art { position:relative; overflow:hidden; background:#ead9c3; background-image:linear-gradient(rgba(101,61,48,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(101,61,48,.08) 1px,transparent 1px); background-size:52px 52px; }
.map-line { position:absolute; width:120%; height:18px; background:var(--paper); box-shadow:0 0 0 1px rgba(101,61,48,.08); transform-origin:left center; }
.line-a { left:-10%; top:32%; transform:rotate(16deg); }
.line-b { left:18%; top:75%; transform:rotate(-35deg); }
.line-c { width:18px; height:120%; left:62%; top:-10%; transform:rotate(12deg); }
.map-pin { position:absolute; left:48%; top:40%; width:102px; height:102px; display:grid; place-items:center; padding:17px; border-radius:50% 50% 50% 5px; background:var(--coffee); box-shadow:0 16px 35px rgba(56,37,31,.25); transform:rotate(-45deg); }
.map-pin img { transform:rotate(45deg); filter:brightness(0) invert(1); }
.map-label { position:absolute; left:13%; top:21%; padding:8px 12px; border-radius:5px; background:rgba(255,250,244,.86); font-size:12px; font-weight:800; }
.map-label.label-two { left:auto; right:8%; top:auto; bottom:15%; }
footer { display:grid; grid-template-columns:1fr 1fr auto; align-items:end; gap:40px; padding:55px clamp(24px,6vw,96px); background:var(--paper); }
.footer-brand { display:flex; align-items:center; gap:20px; }
.footer-brand img { width:80px; }
.footer-brand p { margin-bottom:0; color:#746660; font-size:13px; line-height:1.5; }
.footer-links { display:flex; flex-wrap:wrap; gap:24px; font-size:13px; font-weight:800; }
.footer-social { display:grid; gap:12px; text-align:right; font-size:12px; }
.footer-social a { font-weight:900; }
.footer-social span { color:#8d7f79; }
.modal-backdrop { position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:20px; background:rgba(36,27,24,.68); backdrop-filter:blur(8px); }
.booking-modal { position:relative; width:min(100%,560px); max-height:92vh; overflow:auto; padding:48px; border-radius:28px; background:var(--paper); box-shadow:0 35px 100px rgba(0,0,0,.28); }
.booking-modal h2 { margin-bottom:15px; font-size:45px; }
.booking-modal > p:not(.eyebrow) { color:#6e625d; line-height:1.5; }
.modal-close { position:absolute; right:20px; top:18px; width:40px; height:40px; border:1px solid var(--line); border-radius:50%; background:transparent; font-size:26px; cursor:pointer; }
.booking-modal form { display:grid; gap:15px; margin-top:26px; }
.booking-modal label { display:grid; gap:7px; color:#5f514b; font-size:12px; font-weight:800; }
.booking-modal input,.booking-modal select { width:100%; padding:14px 15px; border:1px solid var(--line); border-radius:12px; color:var(--ink); background:white; outline:none; }
.booking-modal input:focus,.booking-modal select:focus { border-color:var(--coffee); box-shadow:0 0 0 3px rgba(101,61,48,.1); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.booking-modal small { color:#90837d; font-size:10px; line-height:1.4; text-align:center; }
.booking-success { padding:30px 5px 10px; text-align:center; }
.booking-success > span { width:72px; height:72px; display:grid; place-items:center; margin:0 auto 22px; border-radius:50%; color:white; background:var(--coffee); font-size:34px; }
.booking-success p { color:#6e625d; line-height:1.6; }
[hidden] { display:none!important; }

@media (max-width:1100px) {
  .site-header { grid-template-columns:90px 1fr auto; }
  .phone { display:none; }
  .hero { grid-template-columns:1fr 440px; }
  .menu-grid { grid-template-columns:repeat(2,1fr); }
  .dish-card:nth-child(even) { margin-top:0; }
  .story { grid-template-columns:1fr; padding:0; }
  .story-photo { min-height:520px; }
  .story-copy { padding:80px 7vw; }
}
@media (max-width:780px) {
  .site-header { min-height:72px; grid-template-columns:64px 1fr; padding:7px 18px; }
  .brand img { width:58px; height:58px; }
  .header-actions { justify-content:flex-end; }
  .header-actions .button { display:none; }
  .menu-toggle { display:block; }
  .nav { position:absolute; left:0; right:0; top:72px; display:grid; justify-content:stretch; gap:0; padding:12px 20px 22px; background:var(--paper); border-bottom:1px solid var(--line); transform:translateY(-140%); opacity:0; pointer-events:none; transition:.25s; }
  .nav-open { transform:translateY(0); opacity:1; pointer-events:auto; }
  .nav a { padding:15px 0; border-bottom:1px solid var(--line); }
  .nav a:after { display:none; }
  .hero { display:flex; flex-direction:column; min-height:0; }
  .hero-copy { padding:68px 22px 56px; }
  h1 { font-size:clamp(51px,15vw,75px); }
  .hero-text { font-size:17px; }
  .hero-meta { gap:26px; }
  .hero-meta span { max-width:130px; }
  .hero-visual { min-height:570px; }
  .hero-main-photo { width:62%; max-width:330px; }
  .hero-note { width:105px; height:105px; left:5%; }
  .section { padding:78px 20px; }
  .section-heading { display:block; }
  .section-heading > p { margin-top:22px; }
  .menu-grid { grid-template-columns:1fr 1fr; gap:10px; min-height:0; }
  .dish-card { border-radius:90px 90px 16px 16px; }
  .dish-content { padding:16px 13px 20px; }
  .dish-title { display:block; }
  .dish-title h3 { font-size:17px; }
  .dish-content p { display:none; }
  .menu-footer { align-items:flex-start; flex-direction:column; }
  .story { padding:0; }
  .story-photo { min-height:430px; }
  .story-number { width:155px; right:16px; bottom:16px; }
  .story-number strong { font-size:43px; }
  .story-copy { padding:74px 22px; }
  .cakes { min-height:650px; align-items:flex-end; padding-bottom:60px; }
  .cakes > img { object-position:68% center; }
  .cakes:after { background:linear-gradient(0deg,rgba(255,250,244,.98) 5%,rgba(255,250,244,.85) 55%,rgba(255,250,244,0) 90%); }
  .rating { display:block; text-align:right; }
  .rating strong { font-size:48px; }
  blockquote { margin-top:50px; }
  .contact { grid-template-columns:1fr; }
  .contact-card { min-height:620px; padding:70px 22px; }
  .map-art { min-height:500px; }
  footer { grid-template-columns:1fr; align-items:start; }
  .footer-social { text-align:left; }
  .booking-modal { padding:42px 22px 28px; }
  .booking-modal h2 { font-size:39px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*:before,*:after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; } }
