/*
Theme Name: Sword & Sparrow Child
Theme URI: https://swordandsparrow.com
Description: Child theme of GeneratePress for swordandsparrow.com — private tattoo studio, Prestwich.
Author: Lewis Pugh
Template: generatepress
Version: 1.2.0
Text Domain: swordandsparrow-child
*/

/* ============================================================
   FONTS — self-hosted variable fonts (latin subset)
   ============================================================ */
@font-face{
  font-family:'Archivo';
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
  src:url('assets/fonts/archivo-var.woff2') format('woff2');
}
@font-face{
  font-family:'DM Serif Display';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url('assets/fonts/dm-serif-display.woff2') format('woff2');
}
@font-face{
  font-family:'DM Serif Display';
  font-style:italic;
  font-weight:400;
  font-display:swap;
  src:url('assets/fonts/dm-serif-display-italic.woff2') format('woff2');
}

/* ============================================================
   TOKENS
   Swap --brass to the studio's exact brand gold and the whole
   site follows.
   ============================================================ */
:root{
  --ink:        #17131a;   /* page ground, slate-plum black */
  --ink-2:      #1f1922;   /* raised surface */
  --ink-3:      #322937;   /* hairlines on dark */
  --vellum:     #efe8dc;   /* light ground + text on dark */
  --vellum-2:   #e2d9ca;   /* hairlines on light */
  --brass:      #ffa133;   /* primary accent */
  --brass-deep: #9a5b13;   /* accent on light ground */
  --oxblood:    #7a2e2e;   /* secondary accent, used sparingly */

  --t-dim:      rgba(239,232,220,.62);
  --t-dim-dark: rgba(23,19,26,.66);

  --wrap: 1180px;
  --pad: 20px;
  --r: 2px;                /* near-zero radius: engraved, not soft */
  --ease: cubic-bezier(.22,.61,.36,1);
}
@media (min-width:900px){ :root{ --pad: 40px } }

/* ============================================================
   BASE
   ============================================================ */
*,*::before,*::after{ box-sizing:border-box }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth }
body{
  margin:0; background:var(--ink); color:var(--vellum);
  font:400 16px/1.7 'Archivo',system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
  padding-bottom:76px; /* room for the mobile action dock */
}
@media (min-width:1000px){ body{ padding-bottom:0 } }
img{ max-width:100%; height:auto; display:block }
a{ color:inherit; text-decoration:none }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer }
:focus-visible{ outline:2px solid var(--brass); outline-offset:3px }

/* GeneratePress structural wrappers — neutralised; the child
   theme owns every section's own width and padding. */
.site.grid-container,
.site-content,
.site-main{ max-width:none; width:100%; margin:0; padding:0; display:block; float:none }
.screen-reader-text{
  clip-path:inset(50%); height:1px; width:1px; overflow:hidden;
  position:absolute !important; word-wrap:normal !important;
}
.skip-link:focus{
  clip-path:none; position:fixed !important; top:8px; left:8px; z-index:100;
  width:auto; height:auto; padding:12px 18px; background:var(--brass); color:var(--ink);
  font-size:.8rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
}

/* ---------- type ---------- */
.display{ font-family:'DM Serif Display',Georgia,serif; font-weight:400; letter-spacing:-.015em; line-height:.98 }
h1{ margin:0; font-family:'DM Serif Display',Georgia,serif; font-weight:400; line-height:.95;
    letter-spacing:-.02em; font-size:clamp(2.5rem,9vw,5rem) }
h2{ margin:0; font-family:'DM Serif Display',Georgia,serif; font-weight:400; line-height:1.02;
    letter-spacing:-.015em; font-size:clamp(1.85rem,5.2vw,2.9rem) }
h3{ margin:0; font-family:'DM Serif Display',Georgia,serif; font-weight:400; line-height:1.1;
    font-size:clamp(1.15rem,2.6vw,1.5rem) }
h4,h5,h6{ margin:0; font-family:'DM Serif Display',Georgia,serif; font-weight:400 }
p{ margin:0 0 1.05em }
.eyebrow{
  font-size:.7rem; font-weight:600; letter-spacing:.24em; text-transform:uppercase;
  color:var(--brass); margin:0 0 14px;
}
.lede{ font-size:clamp(1.02rem,2.4vw,1.2rem); line-height:1.62; color:var(--t-dim); max-width:62ch }
.sub{ color:var(--t-dim) }
.h1-max{ max-width:18ch }

/* ---------- layout ---------- */
.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--pad) }
.section{ padding-block:clamp(56px,9vw,104px) }
.band-light{ background:var(--vellum); color:var(--ink) }
.band-light .sub,.band-light .lede{ color:var(--t-dim-dark) }
.band-light .eyebrow{ color:var(--brass-deep) }
.band-raised{ background:var(--ink-2) }

/* ---------- SIGNATURE: dotwork rule ---------- */
.dots{
  height:6px; color:var(--brass);
  background-image:radial-gradient(currentColor .9px, transparent 1.1px);
  background-size:9px 6px; background-position:center; opacity:.5;
}
.dots--tight{ background-size:6px 6px; opacity:.75 }
.dots-short{ width:64px }
.dots--head{ margin:30px 0 40px }
.dots--under{ margin-bottom:14px }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  min-height:52px; padding:0 26px; border-radius:var(--r);
  font-size:.78rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  transition:transform .25s var(--ease), background-color .25s, color .25s, border-color .25s;
}
.btn:active{ transform:translateY(1px) }
.btn--fill{ background:var(--brass); color:#17131a }
.btn--fill:hover{ background:#ffb35c; color:#17131a }
.btn--line{ border:1px solid rgba(239,232,220,.34); color:var(--vellum) }
.btn--line:hover{ border-color:var(--brass); color:var(--brass) }
.band-light .btn--line{ border-color:rgba(23,19,26,.28); color:var(--ink) }
.band-light .btn--line:hover{ border-color:var(--brass-deep); color:var(--brass-deep) }
.btn--sm{ min-height:42px; padding:0 18px; font-size:.7rem }
.btn--wide{ width:100% }
.btn-row{ display:flex; flex-wrap:wrap; gap:12px }

.link-arrow{
  display:inline-flex; align-items:center; gap:10px; font-size:.76rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--brass);
  border-bottom:1px solid rgba(255,161,51,.35); padding-bottom:5px;
}
.link-arrow span{ transition:transform .3s var(--ease) }
.link-arrow:hover span{ transform:translateX(5px) }
.band-light .link-arrow{ color:var(--brass-deep); border-color:rgba(154,91,19,.35) }

/* ============================================================
   HEADER
   ============================================================ */
.hdr{
  position:fixed; inset:0 0 auto 0; z-index:60; height:66px;
  display:flex; align-items:center;
  background:rgba(23,19,26,.72); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(239,232,220,.09);
}
.hdr__in{ display:flex; align-items:center; gap:18px; width:100%; max-width:var(--wrap);
  margin-inline:auto; padding-inline:var(--pad) }
.brand{ display:flex; align-items:center; gap:11px; margin-right:auto }
.brand img{ width:38px; height:38px; object-fit:contain }
.brand b{ font-family:'DM Serif Display',serif; font-weight:400; font-size:1rem; letter-spacing:.01em;
  line-height:1.1; display:block }
.brand small{ display:none }
@media (min-width:560px){
  .brand small{ display:block; font-size:.6rem; letter-spacing:.2em; text-transform:uppercase;
    color:var(--t-dim); margin-top:2px }
}
.nav{ display:none; gap:26px }
.nav ul{ display:contents; list-style:none; margin:0; padding:0 }
.nav li{ display:contents }
.nav a{ font-size:.74rem; font-weight:500; letter-spacing:.15em; text-transform:uppercase;
  color:var(--t-dim); padding-block:6px; position:relative; transition:color .25s }
.nav a::after{ content:''; position:absolute; left:0; right:100%; bottom:0; height:1px;
  background:var(--brass); transition:right .3s var(--ease) }
.nav a:hover{ color:var(--vellum) }
.nav a:hover::after{ right:0 }
.nav .current-menu-item > a,
.nav .current_page_item > a,
.nav a[aria-current]{ color:var(--vellum) }
.nav .current-menu-item > a::after,
.nav .current_page_item > a::after,
.nav a[aria-current]::after{ right:0 }
.hdr .btn{ display:none }
@media (min-width:1000px){
  .hdr{ height:78px }
  .nav{ display:flex }
  .hdr .btn{ display:inline-flex }
}
.burger{ width:44px; height:44px; display:grid; place-items:center; margin-right:-8px }
.burger i{ display:block; width:22px; height:1.5px; background:var(--vellum); position:relative }
.burger i::before,.burger i::after{ content:''; position:absolute; left:0; width:22px; height:1.5px;
  background:var(--vellum); transition:transform .3s var(--ease) }
.burger i::before{ top:-7px } .burger i::after{ top:7px }
@media (min-width:1000px){ .burger{ display:none } }

/* push page content below the fixed header */
.site{ padding-top:66px }
@media (min-width:1000px){ .site{ padding-top:78px } }

/* mobile menu */
.menu-overlay{
  position:fixed; inset:0; z-index:70; background:var(--ink);
  display:flex; flex-direction:column; padding:24px var(--pad) 40px; overflow:auto;
  transform:translateY(-100%); transition:transform .42s var(--ease), visibility .42s; visibility:hidden;
}
.menu-overlay[data-open]{ transform:none; visibility:visible }
.menu-overlay__top{ display:flex; justify-content:flex-end }
.menu-overlay__x{ width:44px; height:44px; font-size:1.6rem; line-height:1 }
.menu-overlay nav ul{ list-style:none; margin:8px 0 0; padding:0; counter-reset:mnav }
.menu-overlay nav a{
  font-family:'DM Serif Display',serif; font-size:clamp(1.9rem,9vw,2.6rem); font-weight:400;
  padding:14px 0; border-bottom:1px solid rgba(239,232,220,.1);
  display:flex; align-items:baseline; gap:14px;
}
.menu-overlay nav a::after{
  counter-increment:mnav; content:'0' counter(mnav);
  font-family:'Archivo',sans-serif; font-size:.62rem; letter-spacing:.2em;
  color:var(--brass); font-weight:600;
}
.menu-overlay__foot{ margin-top:auto; padding-top:28px }
.menu-overlay__foot .dots{ margin-bottom:18px }
.menu-overlay__foot .sub{ font-size:.8rem; margin-top:14px }

/* mobile sticky action bar — the studio is appointment-only,
   so enquire + call are always one thumb away */
.dock{
  position:fixed; inset:auto 0 0 0; z-index:55; display:flex; gap:10px;
  padding:10px var(--pad) calc(10px + env(safe-area-inset-bottom));
  background:rgba(23,19,26,.9); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-top:1px solid rgba(239,232,220,.1);
}
.dock .btn{ flex:1; min-height:48px; padding:0 10px }
.dock .btn--line{ flex:0 0 40% }
@media (min-width:1000px){ .dock{ display:none } }

/* ============================================================
   HERO
   ============================================================ */
.hero{ position:relative; display:grid; align-items:end; min-height:min(88svh,760px); overflow:hidden;
  padding:0 }
.hero__bg{ position:absolute; inset:0 }
.hero__bg img{ width:100%; height:100%; object-fit:cover; filter:saturate(.5) contrast(1.06) brightness(.52) }
.hero__bg::after{
  content:''; position:absolute; inset:0;
  background:
    radial-gradient(120% 80% at 50% 0%, rgba(23,19,26,.35), transparent 60%),
    linear-gradient(to top, var(--ink) 2%, rgba(23,19,26,.86) 34%, rgba(23,19,26,.42) 72%);
}
.hero__in{ position:relative; z-index:2; width:100%; max-width:var(--wrap); margin-inline:auto;
  padding:120px var(--pad) 40px }
.crest{ width:76px; height:76px; object-fit:contain; margin-bottom:22px }
.hero h1{ max-width:15ch }
.hero h1 i{ font-style:italic; font-weight:400; color:var(--brass) }
.hero .lede{ margin-top:20px; max-width:46ch }
.hero .btn-row{ margin-top:28px }
.hero__note{ margin-top:16px; font-size:.76rem; letter-spacing:.04em; color:var(--t-dim) }

/* trust strip */
.trust{ border-top:1px solid rgba(239,232,220,.12); border-bottom:1px solid rgba(239,232,220,.12) }
.trust ul{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr }
.trust li{ padding:20px 16px; border-right:1px solid rgba(239,232,220,.09);
  border-bottom:1px solid rgba(239,232,220,.09) }
.trust li:nth-child(2n){ border-right:0 }
.trust li:nth-last-child(-n+2){ border-bottom:0 }
.trust b{ display:block; font-family:'DM Serif Display',serif; font-size:1.35rem; font-weight:400 }
.trust span{ display:block; font-size:.66rem; letter-spacing:.19em; text-transform:uppercase;
  color:var(--t-dim); margin-top:6px }
@media (min-width:820px){
  .trust ul{ grid-template-columns:repeat(4,1fr) }
  .trust li{ border-bottom:0; padding:26px 22px }
  .trust li:nth-child(2n){ border-right:1px solid rgba(239,232,220,.09) }
  .trust li:last-child{ border-right:0 }
}

/* ---------- generic section head ---------- */
.head{ display:grid; gap:18px; margin-bottom:clamp(30px,5vw,52px) }
.head__end{ align-self:end }
@media (min-width:820px){
  .head{ grid-template-columns:1fr auto; align-items:end; gap:32px }
}

/* ---------- artist grid ---------- */
.artists{ display:grid; gap:26px; grid-template-columns:1fr }
@media (min-width:600px){ .artists{ grid-template-columns:1fr 1fr; gap:30px } }
@media (min-width:1080px){ .artists{ grid-template-columns:repeat(4,1fr) } }
.card{ display:flex; flex-direction:column }
.card__ph{ position:relative; overflow:hidden; background:var(--ink-2); aspect-ratio:1/1; display:block }
.card__ph img{ width:100%; height:100%; object-fit:cover; filter:saturate(.62) contrast(1.04);
  transition:transform .7s var(--ease), filter .5s }
.card:hover .card__ph img{ transform:scale(1.05); filter:saturate(.9) contrast(1.04) }
.card__no{ position:absolute; top:12px; left:12px; z-index:2; font-size:.62rem; letter-spacing:.2em;
  font-weight:600; color:var(--brass); background:rgba(23,19,26,.72); padding:5px 9px;
  text-transform:uppercase }
.card__body{ padding-top:16px }
.card h3{ margin-bottom:4px }
.card__role{ font-size:.64rem; letter-spacing:.2em; text-transform:uppercase; color:var(--brass);
  font-weight:600 }
.card p{ margin:12px 0 14px; font-size:.92rem; line-height:1.6; color:var(--t-dim) }
.chips{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:16px }
.chips--top{ margin-top:10px; margin-bottom:0 }
.chip{ font-size:.62rem; letter-spacing:.11em; text-transform:uppercase; font-weight:600;
  padding:5px 9px; border:1px solid var(--ink-3); color:var(--t-dim) }
.band-light .chip{ border-color:var(--vellum-2); color:var(--t-dim-dark) }
.card__foot{ margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding-top:14px; border-top:1px solid var(--ink-3) }
.socials{ display:flex; gap:4px }
.socials a{ width:34px; height:34px; display:grid; place-items:center; color:var(--t-dim);
  transition:color .25s, background-color .25s }
.socials a:hover{ color:var(--brass); background:rgba(255,161,51,.1) }
.socials svg{ width:16px; height:16px; fill:currentColor }
.handle{ font-size:.76rem; color:var(--t-dim) }

/* ---------- work gallery ---------- */
.filters{ margin-bottom:26px; display:grid; gap:14px }
.filter-row{ display:flex; align-items:center; gap:10px; flex-wrap:wrap }
.filter-row > b{ font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; color:var(--brass);
  font-weight:600; flex:0 0 100%; }
@media (min-width:700px){ .filter-row > b{ flex:0 0 78px } }
.f{ font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; font-weight:600;
  padding:9px 14px; border:1px solid var(--ink-3); color:var(--t-dim);
  transition:border-color .25s,color .25s,background-color .25s }
.f:hover{ border-color:rgba(255,161,51,.6); color:var(--vellum) }
.f[aria-pressed="true"]{ background:var(--brass); border-color:var(--brass); color:#17131a }
.f--star[aria-pressed="true"]{ background:var(--oxblood); border-color:var(--oxblood); color:var(--vellum) }

.grid{ display:grid; gap:10px; grid-template-columns:repeat(2,1fr) }
@media (min-width:700px){ .grid{ grid-template-columns:repeat(4,1fr); gap:14px } }
@media (min-width:1080px){ .grid{ grid-template-columns:repeat(6,1fr) } }
.tile{
  position:relative; overflow:hidden; aspect-ratio:4/5; background:var(--ink-2);
  border:1px solid var(--ink-3); cursor:zoom-in; text-align:left; width:100%; padding:0;
}
.tile[hidden]{ display:none }
.tile img{ width:100%; height:100%; object-fit:cover; filter:saturate(.6) contrast(1.05);
  transition:transform .7s var(--ease), filter .45s }
.tile:hover img{ transform:scale(1.06); filter:saturate(.95) }
@media (min-width:700px){
  .tile.is-featured{ grid-column:span 2; grid-row:span 2; aspect-ratio:auto }
}
.tile__star{ position:absolute; top:9px; right:9px; z-index:3; width:24px; height:24px;
  display:grid; place-items:center; background:var(--oxblood); color:var(--vellum);
  font-size:.62rem }
.tile__meta{
  position:absolute; inset:auto 0 0 0; z-index:2; padding:14px 12px 11px;
  background:linear-gradient(to top, rgba(23,19,26,.94), transparent);
  opacity:0; transform:translateY(8px); transition:opacity .3s, transform .3s var(--ease);
}
.tile:hover .tile__meta,.tile:focus-visible .tile__meta{ opacity:1; transform:none }
.tile__meta b{ display:block; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase }
.tile__meta span{ font-size:.66rem; color:var(--t-dim) }
.count{ margin-top:22px; font-size:.74rem; letter-spacing:.1em; color:var(--t-dim) }
.grid__empty{ grid-column:1/-1; color:var(--t-dim) }
.grid__empty a{ color:var(--brass) }

/* ---------- lightbox ---------- */
.lb{ position:fixed; inset:0; z-index:90; display:none; place-items:center; padding:var(--pad);
  background:rgba(12,9,14,.94); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px) }
.lb[data-open]{ display:grid }
.lb__box{ max-width:820px; width:100% }
.lb__img{ background:var(--ink-2); border:1px solid var(--ink-3); aspect-ratio:4/3;
  display:grid; place-items:center; overflow:hidden }
.lb__img img{ width:100%; height:100%; object-fit:contain }
.lb__bar{ display:flex; flex-wrap:wrap; align-items:center; gap:12px; justify-content:space-between;
  padding-top:16px }
.lb__bar .chips{ margin:8px 0 0 }
.lb__x{ position:fixed; top:14px; right:14px; width:46px; height:46px; font-size:1.7rem; line-height:1;
  color:var(--vellum) }

/* ---------- artist detail ---------- */
.detail{ display:grid; gap:30px }
@media (min-width:900px){ .detail{ grid-template-columns:minmax(0,380px) minmax(0,1fr); gap:56px } }
.detail__ph{ background:var(--ink-2); aspect-ratio:1/1; overflow:hidden }
.detail__ph img{ width:100%; height:100%; object-fit:cover; filter:saturate(.65) contrast(1.04) }
.detail__foot{ margin-top:16px }
.detail h1{ font-size:clamp(2.2rem,7vw,3.6rem) }
.detail .chips{ margin-top:20px }
.detail .btn-row{ margin-top:8px }
.detail__rule{ margin:48px 0 34px }
.breadcrumb{ font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--t-dim);
  margin-bottom:20px }
.breadcrumb a:hover{ color:var(--brass) }
.band-light .breadcrumb{ color:var(--t-dim-dark) }
.band-light .breadcrumb a:hover{ color:var(--brass-deep) }

/* ---------- story / about ---------- */
.story{ display:grid; gap:34px }
@media (min-width:980px){ .story{ grid-template-columns:minmax(0,1fr) minmax(0,.85fr); gap:64px;
  align-items:start } }
.story__body p{ font-size:1.02rem }
.story__body .lede{ margin-top:20px }
.story__body > h3,
.story__body .entry-content h3{ margin:36px 0 12px }
.entry-content > *:last-child{ margin-bottom:0 }
.entry-content .dots-short{ margin-bottom:18px }
.aside{ border:1px solid var(--vellum-2); padding:26px 22px; background:rgba(255,255,255,.4) }
.aside h3{ margin-bottom:14px }
.aside .dots{ margin-bottom:16px }
.facts{ list-style:none; margin:0; padding:0 }
.facts li{ display:flex; justify-content:space-between; gap:14px; padding:11px 0;
  border-bottom:1px solid var(--vellum-2); font-size:.88rem }
.facts li:last-child{ border-bottom:0 }
.facts b{ font-weight:600 }
.facts span{ color:var(--t-dim-dark); text-align:right }
.figure{ margin:34px 0 0 }
.figure img{ width:100%; border:1px solid var(--vellum-2) }
.figure figcaption{ font-size:.76rem; letter-spacing:.05em; color:var(--t-dim-dark); padding-top:10px }

/* ---------- FAQ (native <details>) ---------- */
.faq{ max-width:820px; border-top:1px solid var(--vellum-2) }
.q{ border-bottom:1px solid var(--vellum-2) }
.q summary{
  display:flex; align-items:flex-start; gap:16px; cursor:pointer; list-style:none;
  padding:22px 0; font-family:'DM Serif Display',serif; font-size:clamp(1.05rem,2.8vw,1.3rem);
  font-weight:400; line-height:1.25;
}
.q summary::-webkit-details-marker{ display:none }
.q summary i{ flex:0 0 auto; font-family:'Archivo',sans-serif; font-style:normal; font-size:1.2rem;
  color:var(--brass-deep); line-height:1.1; transition:transform .3s var(--ease) }
.q[open] summary i{ transform:rotate(45deg) }
.q__a{ padding:0 0 24px; max-width:70ch }
.q__a p,.q__a li{ font-size:.94rem; color:var(--t-dim-dark) }
.q__a ul,.q__a ol{ margin:0 0 1em; padding-left:1.2em }
.q__a li{ margin-bottom:.5em }
.q__a strong{ color:var(--ink) }
.q__a a{ color:var(--brass-deep); border-bottom:1px solid rgba(154,91,19,.35) }

/* ---------- contact ---------- */
.contact{ display:grid; gap:34px }
@media (min-width:980px){ .contact{ grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:56px } }
.info{ display:grid; gap:26px }
.info__block h3{ margin-bottom:10px }
.info__block p{ margin-bottom:.5em; font-size:.96rem }
.info__block .btn-row{ margin-top:18px }
.hours{ list-style:none; margin:0; padding:0 }
.hours li{ display:flex; justify-content:space-between; gap:16px; padding:10px 0;
  border-bottom:1px solid var(--vellum-2); font-size:.92rem }
.hours li:last-child{ border-bottom:0 }
.hours li[data-closed] span{ color:var(--oxblood) }
.hours li[data-today]{ font-weight:600 }
.hours li[data-today] b::after{ content:'Today'; font-size:.6rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--brass-deep); margin-left:10px; font-weight:600 }
.hours a{ border-bottom:1px solid rgba(23,19,26,.3) }
.hero ~ * .hours li,
.section:not(.band-light) .hours li{ border-bottom-color:var(--ink-3) }
.section:not(.band-light) .hours li:last-child{ border-bottom:0 }
.map{ border:1px solid var(--vellum-2); background:#ddd4c4; aspect-ratio:4/3; min-height:300px }
.map iframe{ width:100%; height:100%; border:0; display:block; filter:grayscale(.34) contrast(1.03) }
.note{ border-left:2px solid var(--brass); padding:2px 0 2px 16px; font-size:.9rem;
  color:var(--t-dim-dark); margin-top:16px }

/* ---------- CTA band ---------- */
.cta{ text-align:center; background:var(--ink-2); border-block:1px solid var(--ink-3);
  padding-block:clamp(56px,9vw,104px) }
.cta h2{ max-width:22ch; margin-inline:auto }
.cta .btn-row{ justify-content:center; margin-top:26px }
.cta .lede{ margin-inline:auto; margin-top:16px; text-align:center }

/* ---------- footer ---------- */
.ftr{ padding:clamp(44px,7vw,72px) 0 34px; border-top:1px solid var(--ink-3); background:var(--ink);
  color:var(--vellum) }
.ftr__grid{ display:grid; gap:32px }
@media (min-width:760px){ .ftr__grid{ grid-template-columns:1.4fr 1fr 1fr } }
.ftr .brand{ margin-bottom:16px }
.ftr__blurb{ font-size:.88rem; max-width:34ch }
.ftr .socials{ margin-left:-8px }
.ftr h4{ margin:0 0 14px; font-size:.66rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--brass); font-weight:600; font-family:'Archivo',sans-serif }
.ftr ul{ list-style:none; margin:0; padding:0 }
.ftr li{ margin-bottom:9px; font-size:.9rem; color:var(--t-dim) }
.ftr a:hover{ color:var(--brass) }
.ftr__bot{ margin-top:38px; padding-top:20px; border-top:1px solid var(--ink-3);
  display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between;
  font-size:.72rem; letter-spacing:.06em; color:var(--t-dim) }

/* ---------- reveal ---------- */
.js .rv{ opacity:0; transform:translateY(16px) }
.js .rv[data-in]{ opacity:1; transform:none;
  transition:opacity .7s var(--ease), transform .7s var(--ease) }
@keyframes rise{ from{ opacity:0; transform:translateY(22px) } to{ opacity:1; transform:none } }
@keyframes bloom{ from{ opacity:0; transform:scale(.86) } to{ opacity:1; transform:none } }
.hero .crest{ animation:bloom .9s var(--ease) both }
.hero h1{ animation:rise .85s .12s var(--ease) both }
.hero .lede{ animation:rise .85s .24s var(--ease) both }
.hero .btn-row{ animation:rise .85s .36s var(--ease) both }
.hero__note{ animation:rise .85s .46s var(--ease) both }
@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition-duration:.01ms !important }
  .js .rv{ opacity:1; transform:none }
  html{ scroll-behavior:auto }
}

/* ---------- maintenance holding page ---------- */
body.sas-maintenance{ padding-bottom:0 }
.sas-maintenance .site{ padding-top:0 }
.maint{
  min-height:100svh; display:grid; place-items:center; text-align:center;
  padding:clamp(40px,8vw,80px) var(--pad);
}
.maint__in{ max-width:620px; display:flex; flex-direction:column; align-items:center }
.maint .crest{ width:96px; height:96px; object-fit:contain; margin-bottom:26px;
  animation:bloom .9s var(--ease) both }
.maint h1{ font-size:clamp(2.2rem,7vw,3.6rem); animation:rise .85s .12s var(--ease) both }
.maint .eyebrow{ margin-bottom:18px }
.maint__msg{ margin-top:18px; animation:rise .85s .24s var(--ease) both }
.maint__msg p{ margin-bottom:.6em }
.maint__rule{ margin:28px auto; animation:rise .85s .3s var(--ease) both }
.maint__actions{ justify-content:center; animation:rise .85s .36s var(--ease) both }
.maint__address{ margin:26px 0 14px; font-size:.9rem; line-height:1.8;
  animation:rise .85s .46s var(--ease) both }
.maint__address a{ color:var(--brass) }
.maint .socials{ justify-content:center; animation:rise .85s .52s var(--ease) both }

/* ---------- default / fallback content (404, search, blog) ---------- */
.plain-content{ padding-block:clamp(56px,9vw,104px) }
.plain-content .entry-content a,
.plain-content .entry-summary a{ color:var(--brass); border-bottom:1px solid rgba(255,161,51,.35) }
