@import url('https://fonts.googleapis.com/css2?family=Quicksand:wght@400;500;600;700&family=Fraunces:ital,opsz,wght@0,9..144,300..700;1,9..144,400..600&display=swap');

:root{
  --bg:#0b0906; --bg-elevated:#141110; --bg-elevated-2:#1b1613;
  --copper:#c68a46; --copper-soft:#e0b47c; --ember:#d6572e; --wine:#5c1f2e; --sage:#7c8b6f;
  --ivory:#f3eee4; --muted:#b7afa0; --faint:#847a6c;
  --line: rgba(243,238,228,0.10); --glass-fill: rgba(255,255,255,0.045); --glass-fill-2: rgba(255,255,255,0.07); --glass-border: rgba(243,238,228,0.12);
  --font: 'Quicksand', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-display: 'Fraunces', 'Quicksand', serif;
  --container: 1200px; --gutter: clamp(1.25rem, 4vw, 3rem);
  --radius-sm: 10px; --radius-md: 16px; --radius-lg: 26px;
  --ease: cubic-bezier(0.16, 1, 0.3, 1); --dur: 700ms;
}
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } *,*::before,*::after{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; } }
body,h1,h2,h3,h4,p,figure,blockquote,ul,ol,dl,dd{ margin:0; }
ul,ol{ padding:0; list-style:none; }
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button,input,textarea,select{ font-family:inherit; font-size:inherit; color:inherit; }
button{ cursor:pointer; }
body{ background:var(--bg); color:var(--ivory); font-family:var(--font); font-weight:500; line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
body::before{ content:""; position:fixed; inset:0; z-index:0; pointer-events:none;
  background: radial-gradient(ellipse 80% 55% at 18% -10%, rgba(198,138,70,0.16), transparent 60%),
    radial-gradient(ellipse 70% 50% at 100% 10%, rgba(92,31,46,0.22), transparent 55%),
    radial-gradient(ellipse 60% 40% at 50% 100%, rgba(198,138,70,0.08), transparent 60%); }
body::after{ content:""; position:fixed; inset:0; z-index:0; pointer-events:none; opacity:0.05; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
:focus-visible{ outline:2px solid var(--copper-soft); outline-offset:3px; border-radius:4px; }
[id]{ scroll-margin-top:7rem; }
.ico{ width:20px; height:20px; }
.container{ max-width:var(--container); margin-inline:auto; padding-inline:var(--gutter); position:relative; z-index:1; }

h1,h2,h3{ font-family:var(--font-display); font-weight:600; line-height:1.08; color:var(--ivory); letter-spacing:-0.01em; }
h4{ font-family:var(--font); font-weight:700; line-height:1.2; color:var(--ivory); }
h1{ font-size:clamp(2.6rem, 5vw + 1rem, 5.4rem); font-weight:500; }
h2{ font-size:clamp(2rem, 2.8vw + 1rem, 3.3rem); font-weight:500; }
h3{ font-size:clamp(1.35rem, 1vw + 1rem, 1.8rem); font-weight:600; }
h4{ font-size:1.05rem; font-weight:600; }
p{ color:var(--muted); font-size:clamp(1rem, 0.4vw + 0.9rem, 1.08rem); max-width:62ch; }
.lede{ font-size:clamp(1.1rem, 0.6vw + 1rem, 1.35rem); color:var(--ivory); opacity:0.88; max-width:52ch; }
.eyebrow{ font-size:0.92rem; color:var(--copper-soft); font-weight:600; }
.section-head{ display:flex; flex-direction:column; gap:0.9rem; margin-bottom:clamp(2rem, 4vw, 3.4rem); }
.section-head p{ max-width:60ch; }
.center{ text-align:center; align-items:center; margin-inline:auto; }
.center p{ margin-inline:auto; }

.btn{ display:inline-flex; align-items:center; justify-content:center; gap:0.6rem; padding:0.9rem 1.6rem; border-radius:999px; border:1px solid transparent; font-weight:600; font-size:0.98rem; white-space:nowrap; transition:transform 320ms var(--ease), background 320ms var(--ease), border-color 320ms var(--ease), box-shadow 320ms var(--ease); }
.btn:hover{ transform:translateY(-2px); }
.btn-primary{ background:linear-gradient(135deg, var(--copper), var(--ember)); color:#180f08; box-shadow:0 12px 28px -12px rgba(214,87,46,0.55); }
.btn-primary:hover{ box-shadow:0 16px 34px -12px rgba(214,87,46,0.7); }
.btn-ghost{ background:var(--glass-fill); border-color:var(--glass-border); color:var(--ivory); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); }
.btn-ghost:hover{ background:var(--glass-fill-2); border-color:rgba(243,238,228,0.24); }
.btn-row{ display:flex; flex-wrap:wrap; gap:0.9rem; }
.glass{ background:var(--glass-fill); border:1px solid var(--glass-border); border-radius:var(--radius-lg); backdrop-filter:blur(18px) saturate(140%); -webkit-backdrop-filter:blur(18px) saturate(140%); box-shadow:0 20px 60px -30px rgba(0,0,0,0.65); }

.utility-bar{ position:sticky; top:0; z-index:51; background:var(--wine); border-bottom:1px solid rgba(243,238,228,0.08); }
.utility-inner{ display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-block:0.45rem; font-size:0.78rem; }
.utility-ticker{ color:rgba(243,238,228,0.82); font-weight:600; letter-spacing:0.01em; }
.utility-links{ display:flex; gap:1.2rem; }
.utility-links a{ color:var(--copper-soft); font-weight:600; }
.utility-links a:hover{ color:var(--ivory); }

.site-header{ position:sticky; top:28px; z-index:50; padding-block:0.5rem; background:rgba(11,9,6,0.62); backdrop-filter:blur(16px) saturate(140%); -webkit-backdrop-filter:blur(16px) saturate(140%); border-bottom:1px solid var(--line); }
.site-header .container{ display:flex; align-items:center; justify-content:space-between; gap:1.2rem; flex-wrap:nowrap; }

/* ---------- HEADER BRAND CONTAINER ---------- */
.brand {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  height: 60px;
  max-height: 60px;
}

/* ---------- LOGO SIZES ---------- */
img.brand-mark {
  height: 58px !important;
  max-height: 58px !important;
  width: auto !important;
  max-width: 280px !important;
  object-fit: contain !important;
  flex-shrink: 0;
  display: block !important;
}

.door-center .brand-mark,
img.door-logo {
  height: 110px !important;
  max-height: 110px !important;
  width: auto !important;
  max-width: 320px !important;
  object-fit: contain !important;
  margin-bottom: 0.8rem;
  filter: drop-shadow(0 0 16px rgba(198, 138, 70, 0.4));
}

.footer-brand img.brand-mark {
  height: 58px !important;
  max-height: 58px !important;
  max-width: 280px !important;
}

.brand .brand-text {
  display: none !important;
}

.desktop-cta{ display:none; }
.nav-primary{ display:flex; align-items:center; gap:1.7rem; flex-wrap:nowrap; }
.nav-primary a{ font-size:0.96rem; color:var(--muted); font-weight:600; position:relative; white-space:nowrap; transition:color 240ms var(--ease); }
.nav-primary a::after{ content:""; position:absolute; left:0; right:0; bottom:-6px; height:2px; background:var(--copper-soft); transform:scaleX(0); transform-origin:left; transition:transform 300ms var(--ease); }
.nav-primary a:hover{ color:var(--ivory); }
.nav-primary a:hover::after{ transform:scaleX(1); }
.nav-primary a.current{ color:var(--ivory); }
.nav-primary a.current::after{ transform:scaleX(1); }
.header-actions{ display:flex; align-items:center; gap:0.8rem; }
.nav-toggle{ display:none; width:44px; height:44px; border-radius:12px; background:var(--glass-fill); border:1px solid var(--glass-border); align-items:center; justify-content:center; flex-direction:column; gap:5px; }
.nav-toggle span{ width:20px; height:2px; background:var(--ivory); border-radius:2px; transition:transform 260ms var(--ease), opacity 260ms var(--ease); }
.nav-toggle.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle.open span:nth-child(2){ opacity:0; }
.nav-toggle.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

#ember-canvas{ position:fixed; inset:0; z-index:0; pointer-events:none; opacity:0.55; }

/* Door intro — premium bar-door entrance, homepage only */
body.has-door{ overflow:hidden; }
body.has-door.entered{ overflow:auto; }
.door-intro{ position:fixed; inset:0; z-index:300; background:#050403; }
.door-frame{ position:absolute; inset:0; display:flex; perspective:2400px; }
.door-panel{ flex:1; position:relative; overflow:hidden;
  background: repeating-linear-gradient(90deg, rgba(0,0,0,0.22) 0 3px, transparent 3px 34px), linear-gradient(155deg, #241811 0%, #150e0a 45%, #0b0704 100%);
  box-shadow:inset 0 0 120px rgba(0,0,0,0.75); transition:transform 1250ms cubic-bezier(0.76, 0, 0.24, 1), opacity 700ms ease; will-change:transform; transform-style:preserve-3d; opacity:0; }
.door-left{ transform:translateX(-100%); }
.door-right{ transform:translateX(100%); }
.door-intro.panels-in .door-panel{ opacity:1; }
.door-intro.panels-in .door-left{ transform:translateX(0); }
.door-intro.panels-in .door-right{ transform:translateX(0); }
.door-panel::before{ content:""; position:absolute; inset:0; background:radial-gradient(ellipse 55% 60% at 50% 50%, rgba(198,138,70,0.14), transparent 68%); }
.door-panel-inset{ position:absolute; inset:14px; border:1px solid rgba(198,138,70,0.28); border-radius:4px; box-shadow:inset 0 0 0 1px rgba(0,0,0,0.4), inset 0 2px 10px rgba(0,0,0,0.5); }
.door-panel-inset::before{ content:""; position:absolute; inset:26px; border:1px solid rgba(198,138,70,0.16); }
.door-left{ border-right:1px solid rgba(198,138,70,0.4); transform-origin:left center; }
.door-right{ border-left:1px solid rgba(198,138,70,0.4); transform-origin:right center; }
.door-hinge{ position:absolute; width:14px; height:34px; border-radius:3px; background:linear-gradient(180deg, #8a6636, #4a331a); box-shadow:0 1px 3px rgba(0,0,0,0.6), inset 0 0 3px rgba(255,220,180,0.3); }
.door-hinge-top{ top:64px; } .door-hinge-bottom{ bottom:64px; }
.door-left .door-hinge{ left:22px; } .door-right .door-hinge{ right:22px; }
.door-handle-plate{ position:absolute; top:50%; width:26px; height:96px; border-radius:6px; transform:translateY(-50%);
  background:linear-gradient(155deg, #e6c07f, #a9762f 55%, #6b4620); box-shadow:0 0 22px rgba(198,138,70,0.45), inset 0 0 6px rgba(255,235,200,0.4); display:flex; align-items:center; justify-content:center; }
.door-left .door-handle-plate{ right:26px; } .door-right .door-handle-plate{ left:26px; }
.door-handle-bar{ width:8px; height:64px; border-radius:4px; background:linear-gradient(180deg, #3a2712, #1c1208); }
.door-seam-glow{ position:absolute; top:0; bottom:0; left:50%; width:2px; transform:translateX(-50%); background:linear-gradient(180deg, transparent, rgba(224,180,124,0.9), transparent); box-shadow:0 0 40px 6px rgba(198,138,70,0.55); animation:seamFlicker 3.6s ease-in-out infinite; }
@keyframes seamFlicker{ 0%,100%{ opacity:0.7; } 50%{ opacity:1; } }
.door-center{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); z-index:2; display:flex; flex-direction:column; align-items:center; gap:0.5rem; text-align:center; transition:opacity 480ms var(--ease), transform 480ms var(--ease); padding:0 1.2rem; animation:doorCenterIn 900ms var(--ease) both; }
@keyframes doorCenterIn{ from{ opacity:0; transform:translate(-50%,-50%) scale(0.92); } to{ opacity:1; transform:translate(-50%,-50%) scale(1); } }
@media (prefers-reduced-motion: reduce){ .door-center{ animation:none; } }
.door-crest{ color:var(--copper-soft); font-size:1.1rem; opacity:0.8; margin-bottom:0.2rem; }
.door-name{ font-family:var(--font-display); font-style:italic; font-weight:600; font-size:clamp(1.7rem,4.2vw,2.6rem); color:var(--ivory); }
.door-tag{ font-family:var(--font); font-size:0.76rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--copper-soft); font-weight:600; }
.door-enter{ margin-top:1.5rem; padding:0.9rem 2rem; border-radius:999px; background:linear-gradient(135deg, rgba(198,138,70,0.14), rgba(214,87,46,0.1)); border:1px solid rgba(224,180,124,0.5); color:var(--ivory); font-family:var(--font); font-weight:600; font-size:0.95rem; letter-spacing:0.02em; display:inline-flex; align-items:center; gap:0.55rem; animation:doorPulse 2.6s ease-in-out infinite; }
.door-enter span{ transition:transform 260ms var(--ease); }
.door-enter:hover span{ transform:translateX(4px); }
.door-hint{ margin-top:0.7rem; font-size:0.72rem; color:var(--faint); letter-spacing:0.04em; }
@keyframes doorPulse{ 0%,100%{ box-shadow:0 0 0 0 rgba(198,138,70,0.4); } 50%{ box-shadow:0 0 0 12px rgba(198,138,70,0); } }
.door-intro.opening .door-left{ transform:translateX(-102%) rotateY(-8deg); }
.door-intro.opening .door-right{ transform:translateX(102%) rotateY(8deg); }
.door-intro.opening .door-seam-glow{ opacity:0; transition:opacity 300ms ease; }
.door-intro.opening .door-center{ opacity:0; transform:translate(-50%,-50%) scale(0.9); transition:opacity 380ms ease, transform 380ms ease; }
.door-intro.gone{ display:none; }
@media (max-width:700px){ .door-hinge{ width:11px; height:26px; } .door-handle-plate{ width:20px; height:74px; } .door-handle-bar{ height:48px; } }

.cursor-glow{ position:fixed; top:0; left:0; width:420px; height:420px; z-index:1; pointer-events:none; border-radius:50%; opacity:0; background:radial-gradient(circle, rgba(198,138,70,0.10), transparent 70%); transform:translate(-50%,-50%); transition:opacity 400ms ease; will-change:transform; }
.cursor-glow.active{ opacity:1; }
@media (max-width:860px){ .cursor-glow{ display:none; } }

.marquee{ overflow:hidden; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding-block:1.1rem; background:linear-gradient(90deg, rgba(198,138,70,0.05), rgba(92,31,46,0.08)); }
.marquee-track{ display:flex; width:max-content; gap:0.9rem; align-items:center; animation:marqueeScroll 26s linear infinite; font-family:var(--font-display); font-style:italic; font-weight:500; font-size:clamp(1rem, 1.4vw, 1.3rem); color:var(--copper-soft); white-space:nowrap; }
.marquee-track .dot{ color:var(--ember); font-size:0.7rem; opacity:0.7; }
@keyframes marqueeScroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce){ .marquee-track{ animation:none; } }

/* Hero: full-bleed cinematic video */
.hero{ position:relative; min-height:min(88vh, 780px); display:flex; align-items:center; overflow:hidden; margin-top:-1px; }
.hero-bg{ position:absolute; inset:0; z-index:0; }
.hero-video, .immersive-video{ width:100%; height:100%; object-fit:cover; filter:brightness(0.62) saturate(0.9); animation:kenBurns 26s ease-in-out infinite alternate; }
.immersive-video{ position:absolute; inset:0; animation:none !important; }
@keyframes kenBurns{ from{ transform:scale(1); } to{ transform:scale(1.09); } }
@media (prefers-reduced-motion: reduce){ .hero-video, .immersive-video{ animation:none; } }
.hero-bg::after{ content:""; position:absolute; inset:0;
  background: radial-gradient(ellipse 70% 60% at 28% 46%, rgba(11,9,6,0.78), transparent 62%),
    linear-gradient(180deg, rgba(11,9,6,0.55) 0%, rgba(11,9,6,0.3) 30%, rgba(11,9,6,0.96) 96%),
    linear-gradient(90deg, rgba(11,9,6,0.92) 0%, rgba(11,9,6,0.22) 58%); }
.hero-inner{ position:relative; z-index:2; padding-block:clamp(5rem, 9vw, 7rem) clamp(3.5rem, 6vw, 4.5rem); max-width:50rem; }
.hero-inner .eyebrow{ display:block; margin-bottom:1rem; }
.hero-title{ font-size:clamp(2.4rem, 4vw + 1rem, 4.3rem); margin-bottom:0.65rem; text-wrap:balance; text-shadow:0 4px 24px rgba(0,0,0,0.5); }
.hero-typed{ min-height:1.5em; margin-bottom:1.1rem; font-family:var(--font-display); font-style:italic; font-weight:500; font-size:clamp(1.05rem, 0.8vw + 0.85rem, 1.3rem); color:var(--copper-soft); }
.typed-cursor{ display:inline-block; width:2px; height:1em; background:var(--copper-soft); margin-left:2px; vertical-align:middle; animation:typedBlink 0.9s step-end infinite; }
@keyframes typedBlink{ 50%{ opacity:0; } }
.hero-inner .lede{ margin-bottom:1.8rem; font-size:0.98rem; max-width:52ch; }
body.has-door .hero{ filter:blur(3px) brightness(0.85); transform:scale(1.035); }
body.has-door.entered .hero{ filter:blur(0) brightness(1); transform:scale(1); transition:filter 1000ms var(--ease), transform 1000ms var(--ease); }
.scroll-cue{ position:absolute; left:50%; bottom:1.6rem; transform:translateX(-50%); z-index:2; display:flex; flex-direction:column; align-items:center; gap:0.4rem; color:var(--faint); font-size:0.7rem; letter-spacing:0.08em; text-transform:uppercase; opacity:0.8; }
.scroll-cue::after{ content:""; width:1px; height:26px; background:linear-gradient(180deg, var(--copper-soft), transparent); animation:scrollCue 1.8s ease-in-out infinite; }
@keyframes scrollCue{ 0%{ transform:scaleY(0.3); opacity:0.3; } 50%{ transform:scaleY(1); opacity:1; } 100%{ transform:scaleY(0.3); opacity:0.3; } }
@media (prefers-reduced-motion: reduce){ .scroll-cue::after{ animation:none; } }

.fact-strip{ padding-block:1.6rem; position:relative; z-index:3; }
.fact-strip-float{ margin-top:clamp(-3.6rem, -5vw, -2rem); }
.fact-strip-float .container > ul{ background:var(--glass-fill); border:1px solid var(--glass-border); border-radius:var(--radius-lg); backdrop-filter:blur(18px) saturate(140%); -webkit-backdrop-filter:blur(18px) saturate(140%); box-shadow:0 30px 70px -30px rgba(0,0,0,0.7); }
.fact-strip ul{ display:flex; flex-wrap:wrap; gap:0; }
.fact-strip li{ padding:1.3rem clamp(1rem, 2rem, 2.2rem); flex:1 1 auto; border-right:1px solid var(--line); display:flex; align-items:center; gap:0.9rem; }
.fact-strip li:last-child{ border-right:none; }
.fact-strip .ico{ width:26px; height:26px; flex-shrink:0; color:var(--copper-soft); opacity:0.9; }
.fact-strip b{ display:block; font-size:1.05rem; color:var(--copper-soft); font-weight:700; line-height:1.25; }
.fact-strip span{ font-size:0.8rem; color:var(--muted); }

.hero-status{ position:absolute; top:clamp(5.5rem, 9vw, 7.5rem); right:var(--gutter); z-index:3; display:flex; align-items:center; gap:0.6rem; padding:0.65rem 1.1rem; border-radius:999px; font-size:0.82rem; font-weight:600; color:var(--ivory); }
.hero-status-dot{ width:8px; height:8px; border-radius:50%; background:#7fbf7f; box-shadow:0 0 8px #7fbf7f; animation:statusPulse 2s ease-in-out infinite; }
@keyframes statusPulse{ 0%,100%{ opacity:1; } 50%{ opacity:0.4; } }
@media (max-width:860px){ .hero-status{ display:none; } }

.section{ padding-block:clamp(3.5rem, 7vw, 6.5rem); position:relative; z-index:1; }
.section-alt{ background:linear-gradient(180deg, transparent, rgba(255,255,255,0.015), transparent); }

.story-grid{ display:grid; grid-template-columns:1fr 0.85fr; gap:clamp(2rem, 5vw, 4rem); align-items:start; }
.story-index{ display:block; font-family:var(--font-display); font-style:italic; font-weight:600; font-size:1.1rem; color:var(--copper); opacity:0.75; margin-bottom:0.3rem; }

/* ---------- OUR STORY SECTION ---------- */
.story-copy h2 {
  font-size: clamp(1.25rem, 1.8vw + 0.9rem, 1.75rem) !important;
  line-height: 1.35 !important;
  font-weight: 500;
  color: var(--ivory);
}

.story-copy p {
  font-size: 0.98rem !important;
  line-height: 1.65;
  color: var(--muted);
}

.story-copy .pull {
  font-size: clamp(1.05rem, 1vw + 0.8rem, 1.25rem) !important;
  line-height: 1.45 !important;
  margin-block: 1.2rem !important;
  padding-left: 1.1rem !important;
  border-left-width: 2px;
}

.story-copy .drop-cap::first-letter {
  font-size: 2.2em !important;
  line-height: 0.8 !important;
  margin-right: 0.12em;
  float: left;
  color: var(--copper-soft);
}

.pull{ border-left:2px solid var(--copper); padding-left:1.4rem; margin-block:1.6rem; font-family:var(--font-display); font-style:italic; font-weight:500; font-size:clamp(1.25rem, 0.8vw + 1rem, 1.6rem); color:var(--ivory); line-height:1.4; max-width:44ch; }
.story-signoff{ margin-top:1.3rem; font-family:var(--font-display); font-style:italic; color:var(--muted); font-size:0.95rem; }
.story-media{ position:sticky; top:6.5rem; }
.story-media-main{ width:100%; border-radius:var(--radius-lg); border:1px solid var(--glass-border); aspect-ratio:3/4; object-fit:cover; }
.story-media-badge{ position:absolute; top:-1rem; left:-1rem; z-index:2; padding:0.9rem 1.2rem; border-radius:var(--radius-md); display:flex; flex-direction:column; align-items:center; line-height:1.1; }
.story-media-badge span{ font-size:0.65rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--muted); }
.story-media-badge b{ font-family:var(--font-display); font-style:italic; font-size:1.1rem; color:var(--copper-soft); }
.story-media-inset{ position:absolute; bottom:-1.4rem; right:-1.2rem; width:42%; aspect-ratio:1/1; object-fit:cover; border-radius:var(--radius-md); border:3px solid var(--bg); box-shadow:0 20px 40px -16px rgba(0,0,0,0.7); z-index:2; }

.service-list{ border-top:1px solid var(--line); }
.service-row{ display:grid; grid-template-columns:auto 1.6fr 1fr; gap:1.8rem; align-items:center; padding-block:clamp(1.8rem, 3vw, 2.6rem); border-bottom:1px solid var(--line); }
.service-icon{ width:52px; height:52px; border-radius:14px; flex-shrink:0; display:flex; align-items:center; justify-content:center; background:linear-gradient(150deg, rgba(198,138,70,0.16), rgba(92,31,46,0.14)); border:1px solid var(--glass-border); }
.service-icon .ico{ width:24px; height:24px; color:var(--copper-soft); }
.service-copy h3{ font-size:clamp(1.25rem, 1vw + 1rem, 1.55rem); margin-bottom:0.5rem; }
.service-copy p{ margin:0; max-width:56ch; }
.service-link{ display:inline-flex; align-items:center; gap:0.4rem; margin-top:0.7rem; font-size:0.9rem; font-weight:600; color:var(--copper-soft); }
.service-link span{ transition:transform 240ms var(--ease); }
.service-link:hover span{ transform:translateX(3px); }
.service-thumb{ border-radius:var(--radius-md); overflow:hidden; aspect-ratio:4/3; border:1px solid var(--glass-border); justify-self:end; width:100%; max-width:220px; }
.service-thumb img{ width:100%; height:100%; object-fit:cover; }
.service-row-rev{ direction:rtl; }
.service-row-rev > *{ direction:ltr; }

.chip-grid{ display:flex; flex-wrap:wrap; gap:0.75rem; }
.chip{ padding:0.7rem 1.1rem; border-radius:999px; font-size:0.92rem; font-weight:600; color:var(--ivory); display:inline-flex; flex-direction:column; gap:0.1rem; }
.chip span{ font-weight:500; font-size:0.78rem; color:var(--muted); }

.immersive{ position:relative; border-radius:var(--radius-lg); overflow:hidden; height:clamp(460px, 55vw, 560px); display:flex; align-items:flex-end; border:1px solid var(--glass-border); }
.immersive::before{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(11,9,6,0.1), rgba(11,9,6,0.95)); }
.immersive-content{ position:relative; z-index:1; padding:clamp(1.6rem, 4vw, 3.2rem); width:100%; }
.roof-points-wrap{ position:relative; }
.roof-points-wrap::after{ content:""; position:absolute; top:0; bottom:0.4rem; right:0; width:3.5rem; pointer-events:none; background:linear-gradient(90deg, transparent, rgba(11,9,6,0.85)); }
.roof-points{ display:flex; gap:1.1rem; margin-top:1.6rem; overflow-x:auto; scroll-snap-type:x proximity; padding-bottom:0.4rem; -webkit-overflow-scrolling:touch; scrollbar-width:thin; }
.roof-points::-webkit-scrollbar{ height:5px; }
.roof-points::-webkit-scrollbar-thumb{ background:rgba(198,138,70,0.4); border-radius:4px; }
.roof-point{ flex:0 0 260px; min-height:200px; scroll-snap-align:start; overflow:hidden; background:rgba(11,9,6,0.62); border:1px solid rgba(243,238,228,0.16); border-radius:var(--radius-md); padding:1.3rem 1.4rem; backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); display:flex; flex-direction:column; }
.roof-point-icon{ width:38px; height:38px; margin-bottom:0.8rem; display:flex; align-items:center; justify-content:center; border-radius:10px; background:rgba(198,138,70,0.14); }
.roof-point-icon .ico{ width:20px; height:20px; color:var(--copper-soft); }
.roof-points h4{ color:var(--ivory); font-weight:700; margin-bottom:0.4rem; font-size:1rem; }
.roof-points p{ font-size:0.9rem; margin:0; max-width:38ch; color:var(--muted); }

.signature-block{ display:grid; grid-template-columns:1fr 0.9fr; gap:clamp(2rem,5vw,4rem); align-items:center; padding-block:clamp(2rem,4vw,3rem); }
.signature-block + .signature-block{ border-top:1px solid var(--line); }
.signature-rev{ direction:rtl; }
.signature-rev > *{ direction:ltr; }
.signature-media{ position:relative; aspect-ratio:4/3; }
.signature-media-main{ width:100%; height:100%; object-fit:cover; border-radius:var(--radius-lg); border:1px solid var(--glass-border); }
.signature-media-inset{ position:absolute; width:38%; aspect-ratio:1/1; object-fit:cover; bottom:-1.2rem; left:-1.2rem; border-radius:var(--radius-md); border:3px solid var(--bg); box-shadow:0 20px 40px -16px rgba(0,0,0,0.7); }
.signature-rev .signature-media-inset{ left:auto; right:-1.2rem; }

.journey{ max-width:52rem; margin-inline:auto; }
.journey-item{ display:grid; grid-template-columns:5rem 2rem 1fr; gap:0; }
.journey-time{ font-family:var(--font-display); font-style:italic; color:var(--copper-soft); font-weight:600; padding-top:0.1rem; }
.journey-line{ display:flex; flex-direction:column; align-items:center; position:relative; }
.journey-line::before{ content:""; position:absolute; top:1.4rem; bottom:-1rem; width:1px; background:var(--line); }
.journey-item:last-child .journey-line::before{ display:none; }
.journey-dot{ width:10px; height:10px; border-radius:50%; background:var(--copper-soft); box-shadow:0 0 0 4px rgba(198,138,70,0.18); margin-top:0.35rem; }
.journey-copy{ padding-bottom:2.2rem; }
.journey-copy h4{ margin-bottom:0.3rem; }
.journey-copy p{ margin:0; font-size:0.94rem; }

.home-map-grid{ display:grid; grid-template-columns:1.3fr 1fr; gap:clamp(1.6rem,3vw,2.4rem); align-items:stretch; }
.home-map-frame{ min-height:380px; }
.home-map-info{ padding:clamp(1.6rem,3vw,2.2rem); display:flex; flex-direction:column; gap:1.2rem; }
.home-map-info .info-row{ border-bottom:1px solid var(--line); padding-bottom:1.1rem; display:flex; gap:0.9rem; }
.home-map-info .info-row .ico{ width:22px; height:22px; color:var(--copper-soft); }
.home-map-info h4{ margin-bottom:0.2rem; }
.home-map-info p{ margin:0; font-size:0.92rem; }

.statement{ font-family:var(--font-display); font-style:italic; font-weight:500; font-size:clamp(1.8rem, 3vw + 1rem, 3.2rem); color:var(--ivory); line-height:1.25; max-width:24ch; }
.diff-list{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.6rem 2.4rem; margin-top:2.6rem; }
.diff-list h4{ color:var(--copper-soft); margin-bottom:0.35rem; }
.diff-list p{ margin:0; font-size:0.95rem; }

.serve-in{ opacity:0; transform:translateY(52px) rotate(var(--rot, -2deg)) scale(0.94); transition:opacity 640ms var(--ease), transform 640ms var(--ease); transition-delay:calc(var(--i, 0) * 90ms); }
.serve-in.in{ opacity:1; transform:translateY(0) rotate(0deg) scale(1); }
.memory-card.serve-in{ transform:translateY(52px) rotate(var(--rot,-2deg)) scale(0.92); }
.memory-card.serve-in.in{ transform:translateY(0) rotate(var(--rot,-2deg)) scale(1); }

.offer-deck{ display:grid; grid-template-columns:repeat(4, 1fr); gap:1.4rem; }
.offer-deck-full{ grid-template-columns:repeat(2, 1fr); }
.offer-card{ position:relative; overflow:hidden; background:var(--glass-fill); border:1px solid var(--glass-border); border-radius:var(--radius-lg); backdrop-filter:blur(18px) saturate(140%); -webkit-backdrop-filter:blur(18px) saturate(140%); padding:clamp(1.6rem,3vw,2.2rem); display:flex; flex-direction:column; gap:0.7rem; border-top:3px solid var(--copper); box-shadow:0 26px 50px -28px rgba(0,0,0,0.6); transition:transform 320ms var(--ease), box-shadow 320ms var(--ease); }
.offer-card:hover{ transform:translateY(-6px); box-shadow:0 36px 64px -26px rgba(0,0,0,0.72); }
.offer-card:nth-child(4n+2){ border-top-color:var(--ember); }
.offer-card:nth-child(4n+3){ border-top-color:var(--sage); }
.offer-card:nth-child(4n+4){ border-top-color:var(--wine); }
.offer-thumb{ margin:-1.6rem -1.6rem 0.5rem; aspect-ratio:16/10; overflow:hidden; }
.offer-thumb img{ width:100%; height:100%; object-fit:cover; }
.offer-badge{ position:absolute; top:0.9rem; right:0.9rem; z-index:2; padding:0.35rem 0.8rem; border-radius:999px; background:rgba(11,9,6,0.72); border:1px solid rgba(224,180,124,0.5); backdrop-filter:blur(6px); font-size:0.68rem; font-weight:700; letter-spacing:0.03em; text-transform:uppercase; color:var(--copper-soft); }
.offer-icon{ width:38px; height:38px; border-radius:10px; display:flex; align-items:center; justify-content:center; background:rgba(198,138,70,0.14); margin-bottom:0.2rem; }
.offer-icon .ico{ width:20px; height:20px; color:var(--copper-soft); }
.offer-hook{ font-family:var(--font-display); font-style:italic; font-weight:500; color:var(--copper-soft); font-size:1.05rem; }
.offer-card h3{ font-size:1.25rem; }
.offer-bestfor{ font-size:0.78rem; color:var(--muted); font-weight:600; }
.offer-pitch{ font-size:0.95rem; margin:0; }
.offer-card ul{ display:flex; flex-direction:column; gap:0.5rem; margin:0.2rem 0 0.4rem; }
.offer-card li{ font-size:0.9rem; color:var(--muted); padding-left:1.1rem; position:relative; }
.offer-card li::before{ content:""; position:absolute; left:0; top:0.55em; width:6px; height:6px; border-radius:50%; background:var(--copper-soft); }
.offer-cta-row{ margin-top:auto; padding-top:0.4rem; }
.offer-cta{ align-self:flex-start; padding:0.7rem 1.3rem; font-size:0.9rem; }
.offer-cta span{ transition:transform 240ms var(--ease); }
.offer-cta:hover span{ transform:translateX(3px); }

.memory-wall{ display:grid; grid-template-columns:repeat(3, 1fr); gap:2.2rem 1.6rem; padding-block:1rem; }
.memory-card{ background:#f3eee4; border-radius:6px; padding:0.7rem 0.7rem 1rem; box-shadow:0 20px 40px -18px rgba(0,0,0,0.65), 0 2px 4px rgba(0,0,0,0.3); transition:transform 320ms var(--ease), box-shadow 320ms var(--ease); }
.memory-card:hover{ transform:translateY(-6px) rotate(0deg) !important; box-shadow:0 28px 54px -20px rgba(0,0,0,0.7); z-index:2; }
.memory-photo{ aspect-ratio:1/1; overflow:hidden; border-radius:2px; background:#000; }
.memory-photo img{ width:100%; height:100%; object-fit:cover; }
.memory-caption{ padding:0.9rem 0.4rem 0.2rem; text-align:center; }
.memory-date{ display:block; font-family:var(--font); font-weight:700; font-size:0.72rem; letter-spacing:0.05em; color:#8a6636; text-transform:uppercase; margin-bottom:0.35rem; }
.memory-caption p{ font-family:var(--font-display); font-style:italic; font-weight:500; color:#241a10; font-size:1.05rem; margin:0 0 0.3rem; max-width:none; }
.memory-occasion{ font-family:var(--font); font-size:0.76rem; color:#7a6f5e; }
.memory-share{ background:transparent; box-shadow:none; border:2px dashed var(--glass-border); display:flex; align-items:center; justify-content:center; aspect-ratio:auto; }
.memory-share-inner{ padding:1.6rem 1rem; text-align:center; display:flex; flex-direction:column; align-items:center; gap:0.6rem; }
.memory-share-icon{ font-size:1.6rem; color:var(--copper-soft); }
.memory-share-inner h4{ color:var(--ivory); font-family:var(--font-display); font-style:italic; font-weight:600; font-size:1.2rem; }
.memory-share-inner p{ font-size:0.86rem; max-width:22ch; }

.chat-faq{ display:flex; flex-direction:column; gap:2.2rem; max-width:62rem; }
.chat-faq-item{ display:flex; flex-direction:column; gap:0.9rem; }
.chat-bubble{ max-width:78%; padding:1.1rem 1.4rem; border-radius:var(--radius-md); position:relative; }
.chat-label{ display:block; font-size:0.72rem; font-weight:700; letter-spacing:0.04em; text-transform:uppercase; margin-bottom:0.4rem; }
.chat-guest{ align-self:flex-end; background:var(--glass-fill); border:1px solid var(--glass-border); border-bottom-right-radius:4px; }
.chat-guest .chat-label{ color:var(--muted); text-align:right; }
.chat-guest p{ color:var(--ivory); margin:0; font-family:var(--font-display); font-style:italic; font-size:1.08rem; }
.chat-host{ align-self:flex-start; background:linear-gradient(135deg, rgba(198,138,70,0.14), rgba(92,31,46,0.12)); border:1px solid var(--glass-border); border-bottom-left-radius:4px; }
.chat-host .chat-label{ color:var(--copper-soft); }
.chat-host p{ margin:0; color:var(--ivory); font-size:0.98rem; }

.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.6rem, 3vw, 2.8rem); align-items:start; }
.info-block{ padding:clamp(1.6rem, 3vw, 2.4rem); display:flex; flex-direction:column; gap:1.5rem; }
.info-row{ display:flex; gap:1rem; align-items:flex-start; border-bottom:1px solid var(--line); padding-bottom:1.3rem; }
.info-row:last-child{ border-bottom:none; padding-bottom:0; }
.info-row h4{ margin-bottom:0.25rem; }
.info-row p{ margin:0; font-size:0.95rem; }
.info-row a{ color:var(--copper-soft); font-weight:600; }
.form-block{ padding:clamp(1.6rem, 3vw, 2.4rem); }
.field{ display:flex; flex-direction:column; gap:0.5rem; margin-bottom:1.2rem; }
.field label{ font-size:0.86rem; font-weight:600; color:var(--muted); }
.field input, .field select, .field textarea{ background:rgba(255,255,255,0.04); border:1px solid var(--glass-border); border-radius:var(--radius-sm); padding:0.85rem 1rem; color:var(--ivory); }
.field textarea{ resize:vertical; min-height:110px; }
.field input::placeholder, .field textarea::placeholder{ color:var(--faint); }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.map-frame{ border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--glass-border); aspect-ratio:16/9; }
.map-frame iframe{ width:100%; height:100%; border:0; filter:grayscale(0.25) invert(0.92) contrast(0.9); }
.hours-table{ display:flex; flex-direction:column; }
.hours-row{ display:flex; justify-content:space-between; gap:2rem; padding-block:0.7rem; border-bottom:1px solid var(--line); font-size:0.95rem; }
.hours-row span:first-child{ color:var(--ivory); font-weight:600; }
.hours-row span:last-child{ color:var(--muted); }

.legal-copy{ max-width:70ch; }
.legal-copy h2{ font-size:1.3rem; margin-top:2.2rem; margin-bottom:0.7rem; }
.legal-copy h2:first-child{ margin-top:0; }
.legal-copy p{ max-width:none; margin-bottom:0.3rem; }
.legal-copy a{ color:var(--copper-soft); font-weight:600; }

.site-footer{ border-top:1px solid var(--line); padding-block:clamp(3rem, 6vw, 4.5rem) 2rem; margin-top:clamp(3rem,6vw,5rem); }
.footer-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:2.4rem; padding-bottom:2.6rem; border-bottom:1px solid var(--line); align-items:start; }
.footer-brand .brand{ align-items:flex-start; margin-top:-0.2rem; }
.footer-brand .brand-mark{ margin-top:0.1rem; }
.footer-brand p{ margin-top:1rem; font-size:0.92rem; max-width:36ch; }
.footer-col h4{ margin-bottom:1.1rem; font-size:0.92rem; color:var(--copper-soft); }
.footer-col ul{ display:flex; flex-direction:column; gap:0.75rem; }
.footer-col a{ font-size:0.94rem; color:var(--muted); transition:color 220ms var(--ease); }
.footer-col a:hover{ color:var(--ivory); }
.footer-social{ display:flex; gap:0.7rem; margin-top:1.2rem; }
.footer-social a{ width:38px; height:38px; border-radius:10px; display:flex; align-items:center; justify-content:center; border:1px solid var(--glass-border); background:var(--glass-fill); color:var(--muted); transition:color 220ms var(--ease), border-color 220ms var(--ease), transform 220ms var(--ease); }
.footer-social a:hover{ color:var(--copper-soft); border-color:rgba(198,138,70,0.4); transform:translateY(-2px); }
.footer-social .ico{ width:18px; height:18px; }
.footer-bottom{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:0.6rem 1rem; padding-top:1.6rem; font-size:0.85rem; color:var(--faint); line-height:1.5; }
.footer-bottom span{ display:inline-block; }
.footer-bottom a{ color:var(--faint); }
.footer-bottom a:hover{ color:var(--muted); }
.footer-legal-links a{ font-weight:600; }
@media (max-width:640px){ .footer-bottom{ flex-direction:column; align-items:flex-start; gap:0.4rem; } }

.page-hero{ padding-block:clamp(2.6rem, 6vw, 4.5rem) clamp(2rem, 4vw, 3rem); border-bottom:1px solid var(--line); }
.breadcrumb{ font-size:0.85rem; color:var(--faint); margin-bottom:1rem; }
.breadcrumb a{ color:var(--muted); }

.reveal{ opacity:0; transform:translateY(18px); transition:opacity var(--dur) var(--ease), transform var(--dur) var(--ease); }
.reveal.in{ opacity:1; transform:translateY(0); }

.mt-lg{ margin-top:clamp(2rem,4vw,3rem); }
.flex-between{ display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.credit-note{ font-size:0.78rem; color:var(--faint); margin-top:1rem; }

@media (max-width:1024px){
  .story-grid{ grid-template-columns:1fr; }
  .story-media{ position:static; order:-1; max-width:400px; margin-inline:auto 2.5rem; width:100%; }
  .service-row{ grid-template-columns:auto 1fr; }
  .service-thumb{ grid-column:1 / -1; justify-self:start; max-width:260px; order:1; margin-top:0.5rem; }
  .service-row-rev{ direction:ltr; }
  .offer-deck{ grid-template-columns:repeat(2,1fr); }
  .offer-deck-full{ grid-template-columns:1fr; max-width:640px; margin-inline:auto; }
  .memory-wall{ grid-template-columns:repeat(2,1fr); }
  .chat-bubble{ max-width:88%; }
  .diff-list{ grid-template-columns:1fr; }
  .contact-grid{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .signature-block{ grid-template-columns:1fr; }
  .signature-rev{ direction:ltr; }
  .signature-media{ order:-1; max-width:480px; margin-inline:auto; width:100%; }
  .home-map-grid{ grid-template-columns:1fr; }
  .home-map-frame{ min-height:260px; }
}
@media (max-width:860px){
  .utility-ticker{ display:none; }
  .nav-toggle{ display:flex; }
  .nav-primary{ position:fixed; inset:96px 0 0 0; z-index:200; background:var(--bg); flex-direction:column; align-items:flex-start; gap:0; padding:1.5rem var(--gutter) 2rem; transform:translateY(-12px); opacity:0; pointer-events:none; transition:opacity 280ms var(--ease), transform 280ms var(--ease); overflow-y:auto; }
  .nav-primary.open{ opacity:1; transform:translateY(0); pointer-events:auto; }
  .nav-primary a{ width:100%; padding-block:0.95rem; border-bottom:1px solid var(--line); font-size:1.05rem; }
  .nav-primary .nav-cta{ margin-top:1.2rem; }
  .site-header{ z-index:201; backdrop-filter:none; -webkit-backdrop-filter:none; background:rgba(11,9,6,0.92); }
  .utility-bar{ z-index:202; }
  body.has-door.entered.nav-open .hero{ transform:none !important; filter:none !important; }
}
@media (max-width:700px){
  .offer-deck{ grid-template-columns:1fr; }
  .memory-wall{ grid-template-columns:repeat(2,1fr); gap:1.4rem 1rem; }
  .chat-bubble{ max-width:100%; }
  .field-row{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr; gap:2rem; }
  .hero{ min-height:600px; }
  .scroll-cue{ display:none; }
  .hero-inner{ padding-block:5rem 3rem; }
  .fact-strip-float{ margin-top:0; }
  .fact-strip li{ flex:1 1 45%; border-bottom:1px solid var(--line); }
  .journey-item{ grid-template-columns:3.6rem 1.6rem 1fr; }
  .journey-time{ font-size:0.85rem; }
  .signature-media-inset{ width:34%; }
  .service-icon{ width:44px; height:44px; }
  .roof-point{ flex-basis:220px; min-height:210px; }
  .immersive{ height:auto; min-height:520px; }
}

/* ---------- BUTTON HOVER & UTILITY DECORATION ---------- */
.btn-primary, .btn-ghost{ position:relative; }
.btn-primary::after, .btn-ghost::after{
  content:"\2192"; display:inline-block; opacity:0; transform:translateX(-8px);
  transition:opacity 320ms var(--ease), transform 320ms var(--ease);
}
.btn-primary:hover::after, .btn-ghost:hover::after{ opacity:1; transform:translateX(0); }

.wa-float{
  position:fixed; right:1.4rem; bottom:1.4rem; z-index:80;
  width:56px; height:56px; border-radius:50%;
  background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center;
  box-shadow:0 12px 30px -8px rgba(37,211,102,0.6);
  animation:waPulse 2.6s ease-in-out infinite;
  transition:transform 260ms var(--ease);
}
.wa-float:hover{ transform:scale(1.08); }
.wa-float .ico{ width:28px; height:28px; }
@keyframes waPulse{ 0%,100%{ box-shadow:0 12px 30px -8px rgba(37,211,102,0.6); } 50%{ box-shadow:0 12px 30px -4px rgba(37,211,102,0.85); } }
@media (prefers-reduced-motion: reduce){ .wa-float{ animation:none; } }
@media (max-width:700px){ .wa-float{ width:50px; height:50px; right:1rem; bottom:1rem; } .wa-float .ico{ width:24px; height:24px; } }

.map-pin-wrap{ position:relative; }
.map-pin{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-100%); z-index:5; pointer-events:none;
  display:flex; flex-direction:column; align-items:center; filter:drop-shadow(0 10px 14px rgba(0,0,0,0.45));
}
.map-pin-logo{ width:52px; height:52px; object-fit:contain; background:#0b0906; border-radius:50%; padding:6px; border:2px solid var(--copper-soft); }
.map-pin-point{ width:0; height:0; border-left:7px solid transparent; border-right:7px solid transparent; border-top:12px solid var(--copper-soft); margin-top:-2px; }

/* ---------- BROCHURE MODAL ---------- */
.brochure-modal{ position:fixed; inset:0; z-index:300; display:none; align-items:center; justify-content:center; padding:2vh 15vw; }
.brochure-modal.open{ display:flex; }
.brochure-modal-backdrop{ position:absolute; inset:0; background:rgba(5,4,3,0.88); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
.brochure-modal-panel{
  position:relative; z-index:1; width:100%; height:100%;
  background:var(--bg-elevated); border:1px solid var(--glass-border); border-radius:var(--radius-lg);
  box-shadow:0 40px 100px -30px rgba(0,0,0,0.8); overflow:hidden;
}
.brochure-modal-panel iframe{ width:100%; height:100%; border:0; background:var(--bg-elevated); }
@media (max-width:860px){ .brochure-modal{ padding:2vh 4vw; } }
.brochure-modal-close{
  position:absolute; top:1rem; right:1rem; z-index:3; width:44px; height:44px; border-radius:50%;
  background:linear-gradient(135deg, var(--copper), var(--ember)); border:2px solid rgba(255,255,255,0.25); color:#180f08;
  font-size:1.5rem; font-weight:700; line-height:1; display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 28px -8px rgba(214,87,46,0.65);
  transition:transform 280ms var(--ease), box-shadow 280ms var(--ease);
}
.brochure-modal-close:hover{ transform:rotate(90deg) scale(1.08); box-shadow:0 14px 34px -8px rgba(214,87,46,0.85); }

/* ---------- developer credit, subtle ---------- */
.footer-credit{ text-align:center; padding-top:0.9rem; }
.footer-credit a{ font-size:0.68rem !important; color:var(--faint) !important; opacity:0.45 !important; letter-spacing:0.02em; font-weight:400 !important; transition:opacity 220ms ease; }
.footer-credit a:hover{ opacity:0.75 !important; }

/* ---------- TABLE BOOKING FORM ---------- */
#reserve-form .field input, #reserve-form .field textarea{ color-scheme:dark; width:100%; box-sizing:border-box; }
#reserve-form .field input:not([type="hidden"]){ min-height:3rem; }
#reserve-form .field .hint{ font-weight:400; opacity:.65; font-size:.85em; margin-left:.4rem; }
/* white, clearly visible calendar icon */
#reserve-form input[type="date"]::-webkit-calendar-picker-indicator{ filter:none; opacity:1; cursor:pointer; padding:4px; }
.reserve-notice{ margin:0.9rem 0 0; padding:0.85rem 1rem; font-size:0.9rem; line-height:1.5; color:var(--ivory); background:rgba(198,138,70,0.12); border-left:3px solid var(--copper); border-radius:var(--radius-sm); }
/* time slot buttons */
.slots{ display:grid; grid-template-columns:repeat(auto-fill,minmax(92px,1fr)); gap:.5rem; max-height:11.5rem; overflow:auto; padding:2px; }
.slots-msg{ grid-column:1/-1; font-size:.92rem; opacity:.75; padding:.6rem 0; }
.slot{ font:inherit; font-size:.9rem; padding:.55rem .3rem; color:var(--ivory); background:rgba(255,255,255,.05); border:1px solid var(--glass-border); border-radius:var(--radius-sm); cursor:pointer; transition:background .15s,border-color .15s; }
.slot:hover:not(:disabled){ border-color:var(--copper); background:rgba(198,138,70,.15); }
.slot.on{ background:var(--copper); border-color:var(--copper); color:#1a120a; font-weight:700; }
.slot:disabled{ opacity:.35; text-decoration:line-through; cursor:not-allowed; }
.reserve-status{ margin:1rem 0 0; min-height:1.3em; font-size:0.95rem; font-weight:600; line-height:1.5; }
.reserve-status.success{ color:#8fd49a; }
.reserve-status.error{ color:#ff9b85; }
