/* =========================================================
   BÓVEDA — Sistema de diseño
   Apertura, traslado y restauración de cajas fuertes en Chile
   ========================================================= */

:root{
  /* Color */
  --ink:        #14181C;
  --steel-900:  #1B222A;
  --steel-800:  #232B34;
  --steel-700:  #313C46;
  --steel-500:  #5B6B78;
  --steel-300:  #9AA7B0;
  --steel-200:  #D7DEE3;
  --line:       #DBE0E3;
  --paper:      #F4F4F2;
  --paper-alt:  #EAEBE7;
  --white:      #FFFFFF;
  --brass:      #A9834A;
  --brass-deep: #8A6A38;
  --brass-light:#D8BE8C;
  --brass-tint: #F3ECDE;
  --success:    #3F6B52;
  --urgent:     #8C3B34;
  --urgent-tint:#F3E4E2;

  /* Type */
  --font-display: "Fraunces", "Iowan Old Style", Georgia, serif;
  --font-body: "Inter", -apple-system, "Segoe UI", sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  /* Scale */
  --step--1: clamp(0.83rem, 0.8rem + 0.15vw, 0.9rem);
  --step-0:  clamp(1rem, 0.96rem + 0.2vw, 1.08rem);
  --step-1:  clamp(1.2rem, 1.12rem + 0.4vw, 1.4rem);
  --step-2:  clamp(1.5rem, 1.35rem + 0.75vw, 1.9rem);
  --step-3:  clamp(1.9rem, 1.6rem + 1.4vw, 2.6rem);
  --step-4:  clamp(2.4rem, 1.9rem + 2.4vw, 3.6rem);
  --step-5:  clamp(3rem, 2.2rem + 3.8vw, 5rem);

  --radius-sm: 3px;
  --radius-md: 6px;
  --maxw: 1240px;
  --edge: clamp(1.25rem, 4vw, 3rem);
}

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

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:var(--step-0);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; display:block; }
a{ color:inherit; }
h1,h2,h3,h4{ font-family:var(--font-display); font-weight:600; line-height:1.12; margin:0 0 0.5em 0; letter-spacing:-0.01em; }
p{ margin:0 0 1em 0; }
ul,ol{ margin:0 0 1em 0; padding-left:1.2em; }
:focus-visible{ outline:2.5px solid var(--brass); outline-offset:3px; }

.wrap{ max-width:var(--maxw); margin:0 auto; padding-left:var(--edge); padding-right:var(--edge); }
.section{ padding:clamp(3.2rem,6vw,6rem) 0; }
.section-tight{ padding:clamp(2rem,4vw,3.4rem) 0; }
.section--dark{ background:var(--steel-900); color:var(--paper); }
.section--dark h1, .section--dark h2, .section--dark h3{ color:var(--white); }
.section--alt{ background:var(--paper-alt); }
.section--brass{ background:var(--brass-tint); }

.eyebrow{
  display:inline-flex; align-items:center; gap:.55em;
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--brass-deep); font-weight:600; margin-bottom:.9em;
}
.section--dark .eyebrow{ color:var(--brass-light); }
.eyebrow::before{ content:""; width:18px; height:1.5px; background:var(--brass); display:inline-block; }

.lede{ font-size:var(--step-1); color:var(--steel-500); max-width:62ch; }
.section--dark .lede{ color:var(--steel-300); }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55em;
  font-family:var(--font-body); font-weight:600; font-size:.95rem;
  padding:.85em 1.5em; border-radius:var(--radius-sm); text-decoration:none;
  border:1.5px solid transparent; cursor:pointer; transition:transform .15s ease, background .2s ease, border-color .2s ease, color .2s ease;
  line-height:1.1;
}
.btn:hover{ transform:translateY(-1px); }
.btn-primary{ background:var(--brass); color:var(--ink); border-color:var(--brass); }
.btn-primary:hover{ background:var(--brass-deep); border-color:var(--brass-deep); color:var(--white); }
.btn-outline{ background:transparent; color:var(--ink); border-color:var(--steel-700); }
.btn-outline:hover{ border-color:var(--ink); }
.section--dark .btn-outline{ color:var(--white); border-color:var(--steel-300); }
.section--dark .btn-outline:hover{ border-color:var(--white); }
.hero .btn-outline{ color:var(--white); border-color:var(--steel-300); }
.hero .btn-outline:hover{ border-color:var(--white); background:rgba(255,255,255,.06); }
.btn-ghost{ background:transparent; color:var(--brass-deep); border-color:transparent; padding-left:0; padding-right:0; }
.btn-ghost::after{ content:"→"; margin-left:.4em; transition:transform .15s ease; display:inline-block; }
.btn-ghost:hover::after{ transform:translateX(3px); }
.btn-row{ display:flex; flex-wrap:wrap; gap:.9em; align-items:center; }
.btn-lg{ padding:1.05em 2em; font-size:1.02rem; }

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(20,24,28,.94); backdrop-filter:blur(6px);
  border-bottom:1px solid #2a323b;
}
.site-header .wrap{ display:flex; align-items:center; justify-content:space-between; padding-top:.9rem; padding-bottom:.9rem; gap:1.5rem; }
.brand{ display:flex; align-items:center; gap:.65em; text-decoration:none; color:var(--white); flex-shrink:0; }
.brand-mark{ width:34px; height:34px; flex-shrink:0; }
.brand-word{ font-family:var(--font-display); font-weight:700; font-size:1.18rem; letter-spacing:-.01em; }
.brand-word span{ color:var(--brass-light); }

.nav-desktop{ display:none; }
.nav-desktop ul{ list-style:none; display:flex; gap:1.9rem; margin:0; padding:0; align-items:center; }
.nav-desktop a{ text-decoration:none; color:var(--steel-300); font-size:.92rem; font-weight:500; transition:color .15s; }
.nav-desktop a:hover, .nav-desktop a[aria-current="page"]{ color:var(--white); }
.nav-cta{ display:none; }

.nav-toggle{
  display:inline-flex; background:transparent; border:1.5px solid #384049; color:var(--white);
  border-radius:var(--radius-sm); padding:.5em .7em; cursor:pointer;
}
.mobile-panel{
  display:none; background:var(--steel-900); border-bottom:1px solid #2a323b;
}
.mobile-panel.is-open{ display:block; }
.mobile-panel ul{ list-style:none; margin:0; padding:1rem var(--edge) 1.4rem; }
.mobile-panel li{ border-top:1px solid #2a323b; }
.mobile-panel li:first-child{ border-top:none; }
.mobile-panel a{ display:block; padding:.85em 0; color:var(--paper); text-decoration:none; font-size:1rem; }
.mobile-panel .btn{ margin-top:1rem; width:100%; }

@media (min-width:920px){
  .nav-desktop{ display:block; }
  .nav-cta{ display:inline-flex; }
  .nav-toggle{ display:none; }
  .mobile-panel{ display:none !important; }
}

/* ---------- Hero ---------- */
.hero{ background:var(--steel-900); color:var(--white); position:relative; overflow:hidden; padding:clamp(3.4rem,7vw,6.5rem) 0 clamp(2.6rem,5vw,4rem); }
.hero .wrap{ display:grid; gap:3rem; grid-template-columns:1fr; align-items:center; }
@media (min-width:960px){ .hero .wrap{ grid-template-columns:1.05fr .95fr; } }
.hero h1{ font-size:var(--step-5); color:var(--white); margin-bottom:.4em; }
.hero h1 em{ font-style:italic; color:var(--brass-light); }
.hero-dial{ justify-self:center; width:min(420px,90%); }

/* ---------- Hero con fotografía real (composición apilada) ---------- */
.hero-photo-stack{ position:relative; justify-self:center; width:min(400px,92%); aspect-ratio:5/7; }
.hero-photo-main{
  position:absolute; inset:0; border-radius:6px; overflow:hidden;
  border:1px solid #333e49; box-shadow:0 30px 60px -20px rgba(0,0,0,.55);
}
.hero-photo-main img{ width:100%; height:100%; object-fit:cover; display:block; }
.hero-photo-main::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(20,24,28,0) 55%, rgba(15,18,21,.75) 100%);
}
.hero-photo-tag{
  position:absolute; left:1.1rem; bottom:1.1rem; z-index:2;
  font-family:var(--font-mono); font-size:.72rem; color:var(--brass-light); letter-spacing:.06em;
}
.hero-photo-tag b{ display:block; color:var(--white); font-family:var(--font-display); font-size:1.05rem; font-weight:600; }
.hero-photo-accent{
  position:absolute; width:48%; aspect-ratio:15/16; right:-8%; bottom:-9%; z-index:3;
  border-radius:5px; overflow:hidden; border:3px solid var(--paper);
  box-shadow:0 20px 40px -12px rgba(0,0,0,.6);
  transform:rotate(3deg);
}
.hero-photo-accent img{ width:100%; height:100%; object-fit:cover; display:block; }
.hero-photo-badge{
  position:absolute; top:-16px; left:-16px; z-index:4;
  width:64px; height:64px; border-radius:50%;
  background:var(--steel-900); border:1.5px solid var(--brass);
  display:flex; align-items:center; justify-content:center;
}
@media (max-width:520px){
  .hero-photo-badge{ width:52px; height:52px; top:-12px; left:-12px; }
}
.trust-strip{ display:flex; flex-wrap:wrap; gap:1.6em 2.2em; margin-top:2.2rem; padding-top:1.6rem; border-top:1px solid #2c353f; }
.trust-item{ font-family:var(--font-mono); font-size:.78rem; color:var(--steel-300); letter-spacing:.02em; }
.trust-item b{ display:block; font-family:var(--font-display); font-size:1.5rem; color:var(--white); font-weight:600; }

/* ---------- Spec strip ---------- */
.spec-strip{ background:var(--ink); border-top:1px solid #2a323b; border-bottom:1px solid #2a323b; }
.spec-strip .wrap{ display:grid; grid-template-columns:repeat(2,1fr); gap:0; }
@media (min-width:760px){ .spec-strip .wrap{ grid-template-columns:repeat(4,1fr); } }
.spec-item{ padding:1.2rem 1rem 1.2rem 0; border-right:1px solid #262e37; }
.spec-item:last-child{ border-right:none; }
.spec-item .k{ font-family:var(--font-mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--steel-300); }
.spec-item .v{ font-family:var(--font-display); font-size:1.15rem; color:var(--white); margin-top:.3em; }

/* ---------- Cards ---------- */
.grid{ display:grid; gap:1.6rem; }
.grid-3{ grid-template-columns:1fr; }
.grid-4{ grid-template-columns:1fr; }
@media (min-width:700px){ .grid-3{ grid-template-columns:repeat(3,1fr);} .grid-4{ grid-template-columns:repeat(2,1fr);} }
@media (min-width:980px){ .grid-4{ grid-template-columns:repeat(4,1fr);} }

.card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius-md);
  padding:1.8rem; transition:border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.card:hover{ border-color:var(--brass); transform:translateY(-2px); box-shadow:0 12px 28px -18px rgba(20,24,28,.35); }
.card .num{ font-family:var(--font-mono); font-size:.75rem; color:var(--brass-deep); letter-spacing:.08em; }
.card h3{ font-size:1.18rem; margin-top:.5em; }
.card p{ color:var(--steel-500); font-size:.96rem; margin-bottom:.6em; }
.card-link{ font-family:var(--font-mono); font-size:.8rem; color:var(--brass-deep); text-decoration:none; }
.card-link:hover{ text-decoration:underline; }

.service-card{ background:var(--steel-900); color:var(--white); border-radius:var(--radius-md); padding:2.1rem; border:1px solid #2a323b; }
.service-card h3{ color:var(--white); font-size:1.35rem; }
.service-card p{ color:var(--steel-300); }
.service-card .icon{ width:44px; height:44px; margin-bottom:1.1rem; color:var(--brass-light); }

/* ---------- Photo placeholder ---------- */
.photo-slot{
  aspect-ratio:4/3; border-radius:var(--radius-md);
  background:
    repeating-linear-gradient(135deg, #e3e6e2 0 10px, #ddded9 10px 20px);
  border:1.5px dashed var(--steel-300);
  display:flex; align-items:center; justify-content:center; text-align:center; padding:1.2rem;
  color:var(--steel-500); font-family:var(--font-mono); font-size:.76rem; line-height:1.5;
}
.photo-slot span{ max-width:22ch; }

/* ---------- Process / numbered steps (genuinely sequential) ---------- */
.process{ counter-reset:step; display:grid; gap:2rem; }
@media (min-width:760px){ .process{ grid-template-columns:repeat(4,1fr); } }
.process-step{ position:relative; padding-top:2.6rem; border-top:2px solid var(--line); }
.process-step .step-no{ position:absolute; top:-.05em; left:0; font-family:var(--font-mono); font-size:1.6rem; color:var(--brass); font-weight:600; }
.process-step h4{ font-family:var(--font-display); font-size:1.08rem; margin-bottom:.4em; }
.process-step p{ color:var(--steel-500); font-size:.93rem; }

/* ---------- Region / coverage ---------- */
.region-card{ border:1px solid var(--line); border-radius:var(--radius-md); background:var(--white); padding:1.6rem; }
.region-card h3{ font-size:1.15rem; display:flex; align-items:center; gap:.5em; }
.region-card .dot{ width:9px; height:9px; border-radius:50%; background:var(--brass); flex-shrink:0; }
.comuna-list{ list-style:none; padding:0; margin:0.8em 0 0; display:flex; flex-wrap:wrap; gap:.4em .5em; }
.comuna-list li{ font-size:.83rem; font-family:var(--font-mono); background:var(--paper-alt); border:1px solid var(--line); padding:.25em .6em; border-radius:2px; color:var(--steel-700); }

/* ---------- FAQ accordion ---------- */
.faq-item{ border-bottom:1px solid var(--line); }
.faq-q{
  width:100%; text-align:left; background:none; border:none; cursor:pointer;
  padding:1.3rem 0; display:flex; align-items:center; justify-content:space-between; gap:1rem;
  font-family:var(--font-display); font-size:1.05rem; color:var(--ink);
}
.faq-q .plus{ font-family:var(--font-mono); font-size:1.3rem; color:var(--brass-deep); flex-shrink:0; transition:transform .2s ease; }
.faq-item[open] .plus{ transform:rotate(45deg); }
.faq-a{ padding:0 0 1.4rem; color:var(--steel-500); max-width:70ch; }
.faq-a a{ color:var(--brass-deep); }

/* ---------- Brand grid ---------- */
.brand-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
@media (min-width:700px){ .brand-grid{ grid-template-columns:repeat(4,1fr);} }
.brand-tile{ background:var(--white); padding:1.5rem 1rem; text-align:center; font-family:var(--font-mono); font-size:.85rem; color:var(--steel-700); }

/* ---------- Testimonial / stat placeholder callouts ---------- */
.pending{
  border:1.5px dashed var(--steel-300); border-radius:var(--radius-md); padding:1rem 1.2rem;
  font-family:var(--font-mono); font-size:.78rem; color:var(--steel-500); background:var(--paper-alt);
}
.pending b{ color:var(--urgent); }

/* ---------- Breadcrumbs (franja oscura continua con el header, sin corte blanco) ---------- */
.breadcrumb-bar{ background:var(--steel-900); border-bottom:1px solid #232b33; }
.breadcrumbs{ font-family:var(--font-mono); font-size:.74rem; color:var(--steel-300); padding:.85rem 0; display:flex; align-items:center; flex-wrap:wrap; }
.breadcrumbs a{ color:var(--steel-300); text-decoration:none; transition:color .15s ease; }
.breadcrumbs a:hover{ color:var(--brass-light); }
.breadcrumbs span:not(.sep){ color:var(--steel-500); }
.breadcrumbs .sep{ margin:0 .55em; color:#3a4550; }

/* ---------- Blog ---------- */
.post-card{ border-bottom:1px solid var(--line); padding:2rem 0; display:grid; gap:.6rem; }
.post-card .eyebrow{ margin-bottom:0; }
.post-card h3{ font-size:1.35rem; }
.post-card h3 a{ text-decoration:none; color:var(--ink); }
.post-card h3 a:hover{ color:var(--brass-deep); }
.post-meta{ font-family:var(--font-mono); font-size:.76rem; color:var(--steel-500); }

article.prose{ max-width:70ch; }
article.prose h2{ font-size:var(--step-2); margin-top:1.6em; }
article.prose h3{ font-size:var(--step-1); margin-top:1.4em; }
article.prose p{ color:var(--steel-700); }
article.prose ul, article.prose ol{ color:var(--steel-700); }
article.prose blockquote{
  border-left:3px solid var(--brass); margin:1.6em 0; padding:.2em 0 .2em 1.2em;
  font-family:var(--font-display); font-style:italic; font-size:1.15rem; color:var(--steel-700);
}
article.prose table{ width:100%; border-collapse:collapse; margin:1.4em 0; font-size:.92rem; }
article.prose th, article.prose td{ border:1px solid var(--line); padding:.6em .8em; text-align:left; }
article.prose th{ background:var(--paper-alt); font-family:var(--font-mono); font-size:.78rem; text-transform:uppercase; letter-spacing:.05em; }

/* ---------- Tabla responsive (evita overflow en mobile) ---------- */
.table-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; margin:1.4em 0; }
.table-scroll table{ margin:0; min-width:520px; }

/* ---------- Experiencia / credencial ---------- */
.credential{
  display:inline-flex; align-items:center; gap:.9em;
  background:var(--steel-800); border:1px solid #2e3944; border-radius:var(--radius-md);
  padding:.9em 1.3em; margin-bottom:1.4em;
}
.credential .years{ font-family:var(--font-display); font-size:1.9rem; font-weight:700; color:var(--brass-light); line-height:1; }
.credential .label{ font-family:var(--font-mono); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--steel-300); max-width:14ch; line-height:1.3; }
.credential--light{ background:var(--white); border-color:var(--line); }
.credential--light .years{ color:var(--brass-deep); }
.credential--light .label{ color:var(--steel-500); }

/* ---------- Galería de trabajos ---------- */
.gallery-tabs{ display:flex; flex-wrap:wrap; gap:.6em; margin:1.8rem 0 2rem; }
.gallery-tab{
  font-family:var(--font-mono); font-size:.8rem; letter-spacing:.03em;
  padding:.55em 1.1em; border-radius:999px; border:1.5px solid var(--steel-200);
  background:var(--white); color:var(--steel-700); cursor:pointer; transition:all .15s ease;
}
.gallery-tab:hover{ border-color:var(--brass); }
.gallery-tab.is-active{ background:var(--ink); border-color:var(--ink); color:var(--white); }
.gallery-grid{ display:grid; grid-template-columns:1fr; gap:1.4rem; }
@media (min-width:620px){ .gallery-grid{ grid-template-columns:repeat(2,1fr);} }
@media (min-width:980px){ .gallery-grid{ grid-template-columns:repeat(3,1fr);} }
.gallery-item{ display:none; }
.gallery-item.is-visible{ display:block; }
.gallery-item .photo-slot{ aspect-ratio:4/3; }
.gallery-item .photo-card{ aspect-ratio:4/3; }
.gallery-caption{ margin-top:.7em; }
.gallery-caption .tag{
  display:inline-block; font-family:var(--font-mono); font-size:.68rem; text-transform:uppercase; letter-spacing:.07em;
  color:var(--brass-deep); background:var(--brass-tint); padding:.2em .6em; border-radius:2px; margin-bottom:.4em;
}
.gallery-caption p{ margin:0; font-size:.9rem; color:var(--steel-700); }

/* ---------- Fotos reales: tarjeta con transición profesional ---------- */
.photo-card{
  position:relative; aspect-ratio:3/4; border-radius:var(--radius-md); overflow:hidden;
  background:var(--paper-alt); cursor:zoom-in;
  box-shadow:0 1px 2px rgba(20,24,28,.06);
}
.photo-card img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .6s cubic-bezier(.2,.7,.2,1);
}
.photo-card:hover img{ transform:scale(1.07); }
.photo-card::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(20,24,28,0) 45%, rgba(20,24,28,.82) 100%);
  opacity:0; transition:opacity .35s ease;
}
.photo-card:hover::after{ opacity:1; }
.photo-card .photo-caption{
  position:absolute; left:0; right:0; bottom:0; padding:1.1rem 1.2rem;
  color:var(--white); transform:translateY(10px); opacity:0;
  transition:transform .35s ease .05s, opacity .35s ease .05s;
}
.photo-card:hover .photo-caption{ transform:translateY(0); opacity:1; }
.photo-card .photo-caption .tag{
  display:inline-block; font-family:var(--font-mono); font-size:.66rem; text-transform:uppercase; letter-spacing:.08em;
  color:var(--brass-light); margin-bottom:.35em;
}
.photo-card .photo-caption p{ margin:0; font-size:.88rem; line-height:1.4; }

/* Aparición progresiva al hacer scroll (respeta prefers-reduced-motion, definido arriba) */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.is-in{ opacity:1; transform:translateY(0); }

/* ---------- Lightbox (visor de imagen a pantalla completa) ---------- */
.lightbox{
  position:fixed; inset:0; z-index:200; background:rgba(15,18,21,.94);
  display:flex; align-items:center; justify-content:center; padding:2rem;
  opacity:0; visibility:hidden; transition:opacity .25s ease;
}
.lightbox.is-open{ opacity:1; visibility:visible; }
.lightbox img{ max-width:min(900px,92vw); max-height:86vh; border-radius:4px; box-shadow:0 30px 80px rgba(0,0,0,.5); }
.lightbox-caption{ position:absolute; left:0; right:0; bottom:1.6rem; text-align:center; color:var(--steel-300); font-family:var(--font-mono); font-size:.8rem; padding:0 2rem; }
.lightbox-close{
  position:absolute; top:1.4rem; right:1.6rem; width:42px; height:42px; border-radius:50%;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.2); color:var(--white);
  font-size:1.4rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:background .2s ease;
}
.lightbox-close:hover{ background:rgba(255,255,255,.18); }

/* ---------- Contacto: CTA de WhatsApp como protagonista ---------- */
.whatsapp-hero{
  background:#1e2b22; border:1px solid #2c3d31; border-radius:var(--radius-md);
  padding:clamp(2.2rem,5vw,3.6rem); text-align:center; color:var(--white);
}
.whatsapp-hero .wa-icon{ width:56px; height:56px; margin:0 auto 1.3rem; }
.whatsapp-hero h2{ color:var(--white); font-size:var(--step-3); margin-bottom:.5em; }
.whatsapp-hero p{ color:var(--steel-300); max-width:44ch; margin:0 auto 1.8rem; }
.whatsapp-hero .btn-primary{ background:#3FA047; border-color:#3FA047; color:var(--white); font-size:1.05rem; padding:1em 2.2em; }
.whatsapp-hero .btn-primary:hover{ background:#358c3c; border-color:#358c3c; }
.contact-secondary{ display:grid; gap:1.4rem; grid-template-columns:1fr; margin-top:2rem; }
@media (min-width:700px){ .contact-secondary{ grid-template-columns:repeat(3,1fr); } }

/* ---------- CTA band ---------- */
.cta-band{ background:var(--brass); color:var(--ink); border-radius:var(--radius-md); padding:clamp(2rem,5vw,3.4rem); display:grid; gap:1.6rem; }
@media (min-width:760px){ .cta-band{ grid-template-columns:1.4fr auto; align-items:center; } }
.cta-band h2{ color:var(--ink); font-size:var(--step-2); margin-bottom:.2em; }
.cta-band .btn-primary{ background:var(--ink); border-color:var(--ink); color:var(--white); }
.cta-band .btn-primary:hover{ background:var(--steel-900); }
.cta-band .btn-outline{ border-color:var(--ink); color:var(--ink); }

/* ---------- Footer ---------- */
.site-footer{ background:var(--ink); color:var(--steel-300); padding:3.4rem 0 2rem; }
.footer-grid{ display:grid; gap:2.4rem; grid-template-columns:1.3fr repeat(3,1fr); }
.footer-grid > div > h4{ color:var(--white); font-family:var(--font-mono); font-size:.78rem; text-transform:uppercase; letter-spacing:.1em; margin-bottom:1em; }
.footer-grid ul{ list-style:none; padding:0; margin:0; }
.footer-grid li{ margin-bottom:.6em; }
.footer-grid a{ text-decoration:none; color:var(--steel-300); font-size:.9rem; }
.footer-grid a:hover{ color:var(--white); }
.footer-bottom{ margin-top:2.6rem; padding-top:1.6rem; border-top:1px solid #262e37; display:flex; flex-wrap:wrap; gap:1rem; justify-content:space-between; font-size:.8rem; color:var(--steel-500); }
@media (max-width:760px){ .footer-grid{ grid-template-columns:1fr 1fr; } }

/* ---------- Utility ---------- */
.mt-0{ margin-top:0; }
.text-center{ text-align:center; }
.max-w{ max-width:60ch; }
.visually-hidden{ position:absolute; width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap; }
.skip-link{
  position:absolute; left:-999px; top:0; background:var(--brass); color:var(--ink); padding:.7em 1.2em; z-index:100; font-weight:600; text-decoration:none;
}
.skip-link:focus{ left:1rem; top:1rem; }
