/* ============================================
   CAFÉ SEL — HOMEPAGE STYLES
   Moved verbatim out of index.html's inline <style> block so the
   Content-Security-Policy can forbid inline styles. Additions for the
   launch-hardening work are at the end of this file.
   ============================================ */
/* ============================================
   CAFÉ SEL — DESIGN TOKENS
   ============================================ */
:root{
  /* Colour */
  --cream:        #F4EEE2;
  --cream-soft:   #FBF8F2;
  --charcoal:     #211C16;
  --charcoal-soft:#2C251E;
  --coffee:       #6B4028;
  --coffee-dark:  #4E2E1C;
  --sage:         #75805D;
  --gold:         #B8863B;
  --line:         #E3D7C1;
  --ink:          #2A241D;
  --ink-soft:     #6B6156;
  --cream-70:     rgba(251,248,242,.72);
  --charcoal-40:  rgba(33,28,22,.4);

  /* Type */
  --font-display: 'Fraunces', Georgia, 'Times New Roman', serif;
  --font-script:  'Beau Rivage', cursive;
  --font-body:    'Work Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono:    'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;

  /* Radius */
  --r-sm: 10px;
  --r-md: 20px;
  --r-lg: 32px;
  --r-pill: 999px;

  /* Shadow */
  --shadow-sm: 0 2px 10px rgba(33,28,22,.07);
  --shadow-md: 0 14px 34px rgba(33,28,22,.13);
  --shadow-lg: 0 26px 64px rgba(33,28,22,.20);

  --container: 1180px;
}

/* ============================================
   RESET
   ============================================ */
*,*::before,*::after{ box-sizing:border-box; }
*{ margin:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  font-family: var(--font-body);
  background: var(--cream);
  color: var(--ink);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,picture,svg{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:none; cursor:pointer; }
ul{ list-style:none; padding:0; }
h1,h2,h3,h4{ font-family:var(--font-display); font-weight:600; line-height:1.12; color:var(--charcoal); }
.icon{ width:1em; height:1em; stroke:currentColor; fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
.icon.filled{ fill:currentColor; stroke:none; }

.skip-link{
  position:absolute; left:-999px; top:auto;
  background:var(--charcoal); color:var(--cream-soft);
  padding:.8rem 1.2rem; border-radius:var(--r-sm); z-index:200;
}
.skip-link:focus{ left:1rem; top:1rem; }

:focus-visible{ outline:2.5px solid var(--coffee); outline-offset:3px; border-radius:4px; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}

/* ============================================
   LAYOUT UTILITIES
   ============================================ */
.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:1.5rem; }
.section{ padding-block:clamp(4rem,8vw,7.5rem); }
.section-head{ max-width:640px; margin-bottom:clamp(2.5rem,5vw,3.5rem); }
.section-head.center{ margin-inline:auto; text-align:center; }

.eyebrow{
  display:inline-flex; align-items:center; gap:.7rem;
  font-family:var(--font-mono); font-size:.78rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--coffee); font-weight:500;
  margin-bottom:1rem;
}
.eyebrow::before{ content:''; width:26px; height:2px; background:var(--coffee); display:inline-block; }
.section-head.center .eyebrow::before{ display:none; }
.section-head.center .eyebrow{ justify-content:center; }
.on-dark .eyebrow{ color:var(--gold); }
.on-dark .eyebrow::before{ background:var(--gold); }

h2.h2{ font-size:clamp(2rem,4vw,2.9rem); }
p.lede{ font-size:1.08rem; color:var(--ink-soft); max-width:52ch; }
.on-dark p.lede{ color:var(--cream-70); }
.on-dark h2, .on-dark h3, .on-dark h4{ color:var(--cream-soft); }

.fr{ font-style:italic; color:var(--ink-soft); font-size:.86em; }
.on-dark .fr{ color:var(--cream-70); }

em{ font-family:var(--font-display); font-style:italic; color:var(--coffee); }
.on-dark em{ color:var(--gold); }

/* Buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  padding:1rem 1.7rem; border-radius:var(--r-pill);
  font-family:var(--font-body); font-weight:600; font-size:.95rem;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease;
  white-space:nowrap;
}
.btn .icon{ font-size:1.05em; }
.btn-primary{ background:var(--coffee); color:var(--cream-soft); box-shadow:var(--shadow-sm); }
.btn-primary:hover{ background:var(--coffee-dark); transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn-outline{ background:transparent; border:1.5px solid var(--charcoal); color:var(--charcoal); }
.btn-outline:hover{ background:var(--charcoal); color:var(--cream-soft); transform:translateY(-2px); }
.btn-light{ background:var(--cream-soft); color:var(--charcoal); box-shadow:var(--shadow-sm); }
.btn-light:hover{ background:#fff; transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn-ghost-light{ background:transparent; border:1.5px solid rgba(251,248,242,.5); color:var(--cream-soft); }
.btn-ghost-light:hover{ background:rgba(251,248,242,.12); border-color:var(--cream-soft); }
.btn-sm{ padding:.65rem 1.3rem; font-size:.85rem; }
.btn-block{ width:100%; }

/* Sprinkle texture (salt motif) */
.sprinkle-bg{
  background-image:
    radial-gradient(circle at 8% 22%,  rgba(244,238,226,.4) 1.4px, transparent 1.6px),
    radial-gradient(circle at 22% 68%, rgba(244,238,226,.22) 1px, transparent 1.3px),
    radial-gradient(circle at 38% 12%, rgba(244,238,226,.32) 1.2px, transparent 1.5px),
    radial-gradient(circle at 54% 55%, rgba(244,238,226,.18) 1px, transparent 1.3px),
    radial-gradient(circle at 68% 80%, rgba(244,238,226,.3) 1.3px, transparent 1.6px),
    radial-gradient(circle at 82% 30%, rgba(244,238,226,.22) 1px, transparent 1.3px),
    radial-gradient(circle at 92% 65%, rgba(244,238,226,.32) 1.4px, transparent 1.6px);
  background-repeat:repeat;
  background-size:190px 190px;
}

/* ============================================
   REVEAL ON SCROLL (opt-in via JS; visible by default)
   ============================================ */
.js-reveal .reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
.js-reveal .reveal.in-view{ opacity:1; transform:translateY(0); }
.js-reveal .reveal-stagger.in-view > *{ transition-delay:calc(var(--i,0) * 90ms); }

/* ============================================
   ANNOUNCEMENT BAR
   ============================================ */
.announce{
  background:var(--charcoal); color:var(--cream-70);
  text-align:center; font-size:.82rem; letter-spacing:.02em;
  padding:.55rem 1rem;
}
.announce strong{ color:var(--cream-soft); font-weight:600; }

/* ============================================
   HEADER / NAV
   ============================================ */
.site-header{
  position:sticky; top:0; z-index:100;
  background:var(--cream-70); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid transparent;
  transition:border-color .3s ease, box-shadow .3s ease, background .3s ease;
}
.site-header.scrolled{ border-color:var(--line); box-shadow:0 4px 24px rgba(33,28,22,.06); background:var(--cream-soft); }
.header-inner{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding-block:.85rem; }

.logo{ display:flex; align-items:center; gap:.55rem; flex-shrink:0; }
.logo .icon{ width:26px; height:26px; color:var(--coffee); }
.logo-text{ font-family:var(--font-script); font-size:1.9rem; color:var(--charcoal); line-height:1; padding-top:.3rem; }

.nav{ display:flex; align-items:center; gap:2.1rem; }
.nav a{ font-size:.94rem; font-weight:500; color:var(--ink); position:relative; padding:.3rem 0; }
.nav a::after{ content:''; position:absolute; left:0; right:0; bottom:-2px; height:2px; background:var(--coffee); transform:scaleX(0); transform-origin:left; transition:transform .25s ease; }
.nav a:hover::after{ transform:scaleX(1); }

.header-cta{ display:flex; align-items:center; gap:1.1rem; }
.header-phone{ display:flex; align-items:center; gap:.5rem; font-size:.9rem; font-weight:600; color:var(--charcoal); }
.header-phone .icon{ color:var(--coffee); width:1.05em; height:1.05em; }

.nav-toggle{ display:none; flex-direction:column; justify-content:center; gap:5px; width:26px; height:22px; }
.nav-toggle span{ display:block; width:100%; height:2px; background:var(--charcoal); border-radius:2px; transition:transform .3s ease, opacity .3s ease; }
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

@media (max-width:900px){
  .nav{
    position:fixed; inset:0 0 0 auto; top:var(--headerH,64px); height:calc(100vh - var(--headerH,64px));
    width:min(78vw,320px); background:var(--cream-soft); flex-direction:column; align-items:flex-start;
    padding:2rem 1.75rem; gap:1.6rem; box-shadow:-16px 0 40px rgba(33,28,22,.15);
    transform:translateX(100%); transition:transform .35s ease; overflow-y:auto;
  }
  .nav.open{ transform:translateX(0); }
  .nav a{ font-size:1.15rem; }
  .header-phone{ display:none; }
  .nav-toggle{ display:flex; }
}
@media (max-width:560px){
  .header-cta .btn-sm{ display:none; }
}

/* ============================================
   HERO
   ============================================ */
.hero{ padding-block:clamp(2.75rem,6vw,5rem) clamp(4rem,7vw,6rem); position:relative; overflow:hidden; }
.hero-grid{ display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(2.5rem,5vw,4.5rem); align-items:center; }
.hero-title{ font-size:clamp(2.75rem,6vw,4.85rem); margin-bottom:1.4rem; }
.script-accent{ font-family:var(--font-script); font-weight:400; color:var(--coffee); font-size:1.18em; line-height:1; display:inline-block; padding-top:.15em; }
.hero-sub{ font-size:1.12rem; color:var(--ink-soft); max-width:46ch; margin-bottom:1.9rem; }
.hero-rating{ display:inline-flex; align-items:center; gap:.6rem; font-size:.95rem; margin-bottom:2rem; padding:.5rem 1rem .5rem .7rem; background:var(--cream-soft); border:1px solid var(--line); border-radius:var(--r-pill); }
.stars{ color:var(--gold); letter-spacing:1px; font-size:1rem; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:1rem; margin-bottom:1.5rem; }
.hero-more{ display:inline-flex; align-items:center; gap:.4rem; font-size:.9rem; font-weight:600; color:var(--coffee); }
.hero-more .icon{ width:.9em; height:.9em; }

.hero-media{ position:relative; }
.hero-media .frame{ border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-lg); aspect-ratio:4/4.6; }
.hero-media img{ width:100%; height:100%; object-fit:cover; }
.hero-tag{
  position:absolute; top:1.4rem; left:1.4rem;
  background:var(--cream-70); backdrop-filter:blur(6px);
  padding:.55rem 1rem; border-radius:var(--r-pill);
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--charcoal); font-weight:500;
}
.hero-float{
  position:absolute; left:-1.5rem; bottom:1.8rem;
  background:var(--cream-soft); border-radius:var(--r-md); box-shadow:var(--shadow-lg);
  padding:1rem 1.3rem; display:flex; align-items:center; gap:.8rem; max-width:230px;
}
.hero-float .stars{ font-size:.85rem; }
.hero-float strong{ display:block; font-family:var(--font-display); font-size:1.05rem; color:var(--charcoal); }
.hero-float span{ font-size:.78rem; color:var(--ink-soft); }

@media (max-width:980px){
  .hero-grid{ grid-template-columns:1fr; }
  .hero-media{ order:-1; max-width:420px; margin-inline:auto; width:100%; }
  .hero-float{ left:1rem; }
}
@media (max-width:480px){
  .hero-actions .btn{ width:100%; }
}

/* ============================================
   MARQUEE
   ============================================ */
.marquee{ background:var(--charcoal); color:var(--cream-soft); padding-block:1.3rem; overflow:hidden; position:relative; }
.marquee-track{ display:flex; width:max-content; animation:marquee 34s linear infinite; }
.marquee-group{ display:flex; align-items:center; flex-shrink:0; }
.marquee-group span{ font-family:var(--font-mono); font-size:.85rem; letter-spacing:.1em; text-transform:uppercase; padding-inline:1.3rem; white-space:nowrap; opacity:.9; }
.marquee-group span.dot{ color:var(--gold); padding-inline:0; }
@keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ============================================
   ABOUT
   ============================================ */
.about-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2.5rem,6vw,5rem); align-items:center; }
.about-media{ border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-md); }
.about-media img{ width:100%; height:100%; object-fit:cover; }
.about-copy p{ color:var(--ink-soft); margin-bottom:1.3rem; font-size:1.03rem; }
.about-quote{
  border-left:3px solid var(--coffee); padding-left:1.3rem; margin-block:1.8rem;
  font-family:var(--font-display); font-style:italic; font-size:1.18rem; color:var(--charcoal); line-height:1.5;
}
.about-quote cite{ display:block; margin-top:.7rem; font-family:var(--font-body); font-style:normal; font-size:.85rem; font-weight:600; color:var(--ink-soft); }
.chip-row{ display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.8rem; }
.chip{ display:inline-flex; align-items:center; gap:.55rem; background:var(--cream-soft); border:1px solid var(--line); padding:.65rem 1.1rem; border-radius:var(--r-pill); font-size:.85rem; font-weight:600; color:var(--charcoal); }
.chip .icon{ color:var(--coffee); width:1.05em; height:1.05em; }

@media (max-width:900px){ .about-grid{ grid-template-columns:1fr; } .about-media{ max-width:440px; margin-inline:auto; width:100%; aspect-ratio:4/3.1; } .about-media img{ height:100%; } }

/* ============================================
   MENU — COFFEE
   ============================================ */
.menu-coffee{ background:var(--charcoal); color:var(--cream-soft); position:relative; }
.menu-coffee-grid{ display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(2.5rem,6vw,5rem); align-items:start; }
.photo-stack{ position:relative; }
.photo-stack .photo-main{ border-radius:var(--r-md); overflow:hidden; box-shadow:var(--shadow-lg); aspect-ratio:.72; }
.photo-stack .photo-main img{ width:100%; height:100%; object-fit:cover; }
.photo-stack .photo-accent{ position:absolute; width:52%; right:-8%; bottom:-9%; border:6px solid var(--cream-soft); border-radius:var(--r-sm); box-shadow:var(--shadow-lg); transform:rotate(5deg); overflow:hidden; aspect-ratio:4/3; }
.photo-stack .photo-accent img{ width:100%; height:100%; object-fit:cover; }

.menu-intro{ font-family:var(--font-script); font-size:2rem; color:var(--gold); margin-bottom:2.2rem; }
.menu-intro-sub{ color:var(--cream-70); font-size:.92rem; margin-bottom:2.2rem; }

.price-cols{ display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; }
.price-list{ display:flex; flex-direction:column; }
.price-list h4, .price-list .price-list-title{ font-family:var(--font-mono); font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); margin-bottom:1.1rem; font-weight:600; }
.price-row{ display:flex; justify-content:space-between; align-items:baseline; gap:1rem; padding-block:.65rem; border-bottom:1px dashed rgba(251,248,242,.18); }
.price-row:last-of-type{ border-bottom:none; }
.price-row .item{ font-size:.98rem; }
.price-row .item .fr{ display:block; }
.price-row .amount{ font-family:var(--font-mono); font-size:.95rem; color:var(--cream-soft); white-space:nowrap; }
.price-note{ font-size:.76rem; color:var(--cream-70); margin-top:.6rem; font-style:italic; }
.menu-footnote{ margin-top:2.2rem; padding-top:1.5rem; border-top:1px solid rgba(251,248,242,.15); font-family:var(--font-mono); font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--cream-70); text-align:center; }

@media (max-width:900px){
  .menu-coffee-grid{ grid-template-columns:1fr; }
  .photo-stack{ max-width:340px; margin-inline:auto; margin-bottom:3rem; width:100%; }
  .price-cols{ grid-template-columns:1fr; gap:2rem; }
}

/* ============================================
   KITCHEN FAVOURITES
   ============================================ */
.fav-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.75rem; }
.fav-card{ border-radius:var(--r-md); overflow:hidden; background:var(--cream-soft); box-shadow:var(--shadow-sm); transition:transform .3s ease, box-shadow .3s ease; }
.fav-card:hover{ transform:translateY(-5px); box-shadow:var(--shadow-md); }
.fav-card .fav-media{ aspect-ratio:4/3; overflow:hidden; }
.fav-card .fav-media img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.fav-card:hover .fav-media img{ transform:scale(1.06); }
.fav-body{ padding:1.3rem 1.4rem 1.5rem; }
.fav-body h3{ font-size:1.2rem; margin-bottom:.4rem; }
.fav-body p{ font-size:.9rem; color:var(--ink-soft); }

.fav-card.dark{ background:var(--charcoal); color:var(--cream-soft); padding:1.6rem 1.5rem; display:flex; flex-direction:column; justify-content:center; }
.fav-card.dark h3{ color:var(--cream-soft); font-size:1.2rem; margin-bottom:.9rem; }
.fav-card.dark ul{ display:flex; flex-direction:column; gap:.55rem; margin-bottom:1.1rem; }
.fav-card.dark li{ font-size:.9rem; color:var(--cream-70); padding-left:1.1rem; position:relative; }
.fav-card.dark li::before{ content:''; position:absolute; left:0; top:.55em; width:5px; height:5px; border-radius:50%; background:var(--gold); }
.fav-card.dark .note{ font-size:.82rem; font-style:italic; color:var(--gold); }

@media (max-width:900px){ .fav-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .fav-grid{ grid-template-columns:1fr; } }

/* ============================================
   GALLERY
   ============================================ */
.gallery-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:.9rem; }
.gallery-item{ aspect-ratio:1; border-radius:var(--r-sm); overflow:hidden; position:relative; cursor:pointer; }
.gallery-item img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.gallery-item:hover img{ transform:scale(1.08); }
.gallery-item .overlay{ position:absolute; inset:0; background:linear-gradient(0deg, rgba(33,28,22,.55), transparent 55%); opacity:0; transition:opacity .3s ease; display:flex; align-items:flex-end; padding:.9rem; }
.gallery-item:hover .overlay{ opacity:1; }
.gallery-item .overlay .icon{ color:var(--cream-soft); width:20px; height:20px; }
.gallery-foot{ display:flex; justify-content:center; margin-top:2.5rem; }

@media (max-width:640px){ .gallery-grid{ grid-template-columns:repeat(2,1fr); gap:.6rem; } }

/* Lightbox */
.lightbox{ position:fixed; inset:0; background:rgba(20,17,13,.92); z-index:300; display:none; align-items:center; justify-content:center; padding:2rem; }
.lightbox.open{ display:flex; }
.lightbox img{ max-width:min(900px,92vw); max-height:86vh; border-radius:var(--r-sm); box-shadow:var(--shadow-lg); object-fit:contain; }
.lightbox-close{ position:absolute; top:1.5rem; right:1.5rem; width:44px; height:44px; border-radius:50%; background:rgba(251,248,242,.12); color:var(--cream-soft); display:flex; align-items:center; justify-content:center; }
.lightbox-close:hover{ background:rgba(251,248,242,.22); }
.lightbox-close .icon{ width:20px; height:20px; }

/* ============================================
   REVIEWS
   ============================================ */
.review-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; }
.review-card{ background:var(--cream-soft); border:1px solid var(--line); border-radius:var(--r-md); padding:1.7rem 1.6rem; display:flex; flex-direction:column; gap:1rem; }
.review-card .stars{ font-size:.95rem; }
.review-card p{ font-size:.94rem; color:var(--ink); flex-grow:1; }
.review-who{ display:flex; align-items:center; gap:.7rem; }
.review-avatar{ width:36px; height:36px; border-radius:50%; background:var(--coffee); color:var(--cream-soft); display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:600; font-size:.9rem; flex-shrink:0; }
.review-who strong{ display:block; font-size:.88rem; color:var(--charcoal); }
.review-who span{ font-size:.76rem; color:var(--ink-soft); }

.owner-banner{
  margin-top:3rem; text-align:center; background:var(--sage); color:var(--cream-soft);
  border-radius:var(--r-md); padding:1.8rem 2rem; font-family:var(--font-display); font-style:italic; font-size:1.15rem; line-height:1.5;
}
.owner-banner strong{ display:block; margin-top:.6rem; font-family:var(--font-body); font-style:normal; font-size:.8rem; letter-spacing:.06em; text-transform:uppercase; opacity:.85; }
.review-foot{ display:flex; justify-content:center; margin-top:2rem; }
.review-foot a{ font-size:.92rem; font-weight:600; color:var(--coffee); display:inline-flex; align-items:center; gap:.4rem; }
.review-foot .icon{ width:.9em; height:.9em; }

@media (max-width:900px){ .review-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .review-grid{ grid-template-columns:1fr; } }

/* ============================================
   VISIT
   ============================================ */
.visit-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.5rem,6vw,4.5rem); align-items:center; }
.visit-list{ display:flex; flex-direction:column; gap:1.5rem; margin-block:2rem; }
.visit-row{ display:flex; gap:1rem; align-items:flex-start; }
.visit-row .icon-badge{ width:44px; height:44px; border-radius:50%; background:var(--cream-soft); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.visit-row .icon-badge .icon{ color:var(--coffee); width:19px; height:19px; }
.visit-row h4, .visit-row .visit-row-title{ font-size:1rem; margin-bottom:.25rem; }
.visit-row p, .visit-row a.plain{ font-size:.94rem; color:var(--ink-soft); }
.visit-row a.plain:hover{ color:var(--coffee); }
.visit-actions{ display:flex; flex-wrap:wrap; gap:1rem; }

.map-card{ position:relative; border-radius:var(--r-lg); overflow:hidden; aspect-ratio:1/1; background:var(--charcoal); box-shadow:var(--shadow-lg); }
.map-card svg{ width:100%; height:100%; }
.map-pin-label{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-135%);
  background:var(--cream-soft); padding:.6rem 1rem; border-radius:var(--r-sm); box-shadow:var(--shadow-md);
  font-family:var(--font-display); font-weight:600; font-size:.92rem; color:var(--charcoal); white-space:nowrap;
}

@media (max-width:900px){ .visit-grid{ grid-template-columns:1fr; } .map-card{ max-width:440px; margin-inline:auto; width:100%; } }

/* ============================================
   FOOTER
   ============================================ */
.site-footer{ background:var(--charcoal); color:var(--cream-70); padding-block:4.5rem 2rem; }
.footer-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:2.5rem; padding-bottom:3rem; border-bottom:1px solid rgba(251,248,242,.12); }
.footer-brand .logo-text{ color:var(--cream-soft); }
.footer-brand .logo .icon{ color:var(--gold); }
.footer-tagline{ margin-top:1rem; font-size:.85rem; color:var(--cream-70); max-width:26ch; }
.footer-col h5{ font-family:var(--font-mono); font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); margin-bottom:1.1rem; font-weight:600; }
.footer-col ul{ display:flex; flex-direction:column; gap:.7rem; }
.footer-col a, .footer-col address{ font-size:.9rem; color:var(--cream-70); font-style:normal; }
.footer-col a:hover{ color:var(--cream-soft); }
.social-row{ display:flex; gap:.8rem; margin-top:.3rem; }
.social-row a{ width:38px; height:38px; border-radius:50%; border:1px solid rgba(251,248,242,.25); display:flex; align-items:center; justify-content:center; }
.social-row a:hover{ background:rgba(251,248,242,.1); border-color:var(--cream-soft); }
.social-row .icon{ width:17px; height:17px; }
.footer-bottom{ padding-top:1.8rem; display:flex; flex-wrap:wrap; justify-content:space-between; gap:.75rem; font-size:.8rem; color:rgba(251,248,242,.55); }

@media (max-width:820px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .footer-grid{ grid-template-columns:1fr; } }

/* ============================================
   MOBILE STICKY CTA BAR
   ============================================ */
.mobile-cta{ display:none; position:fixed; left:0; right:0; bottom:0; z-index:90; gap:.75rem; padding:.7rem 1rem calc(.7rem + env(safe-area-inset-bottom)); background:var(--cream-soft); box-shadow:0 -6px 24px rgba(33,28,22,.12); }
@media (max-width:760px){ .mobile-cta{ display:flex; } body{ padding-bottom:70px; } }

/* ============================================
   LANGUAGE TOGGLE
   ============================================ */
.lang-toggle{
  display:flex; align-items:center; background:var(--cream-soft); border:1px solid var(--line);
  border-radius:var(--r-pill); padding:3px; gap:2px; flex-shrink:0;
}
.lang-btn{
  font-family:var(--font-mono); font-size:.74rem; font-weight:600; letter-spacing:.05em;
  padding:.42rem .68rem; border-radius:var(--r-pill); color:var(--ink-soft);
  transition:background .25s ease, color .25s ease;
}
.lang-btn.active{ background:var(--coffee); color:var(--cream-soft); }
.lang-btn:not(.active):hover{ background:rgba(33,28,22,.07); color:var(--charcoal); }

/* ============================================
   ADDITIONS (replace former inline style="" attributes, photo labels)
   ============================================ */
.icon-sprite{ display:none; }
.section-soft{ background:var(--cream-soft); }
.lede-center{ margin-inline:auto; }
.hero-media .frame, .about-media{ position:relative; }
.menu-coffee .photo-note{ color:var(--cream-70); }
