/*
Theme Name: Ancillary Oil Tools & Services
Theme URI: https://ancillarytools.com
Author: Ancillary Oil Tools & Services
Author URI: https://ancillarytools.com
Description: Field Authority — a cinematic, photo-forward WordPress block theme for Ancillary Oil Tools & Services. Deep navy authority, Energy Red CTAs, gold engineering-bracket accents, Archivo + Source Sans 3 typography. Light and dark modes.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ancillary
*/

/* ============================================================
   FIELD AUTHORITY TOKENS (ported from approved mockups — LAW)
   Light mode is the default :root; dark mode via [data-theme="dark"].
   ============================================================ */
:root {
  --primary:#0B2E63; --navy:#081E45; --energy:#C62828; --safety:#E53935;
  --gold:#D4A017; --gold-soft:#E6BE4E; --gold-dark:#8A6508; --white:#FFFFFF;
  /* light mode default */
  --bg:#F5F6F8; --surface:#FFFFFF; --surface-2:#ECEFF4;
  --text:#14213D; --text-muted:#4C566A;
  --hairline:rgba(160,118,8,0.65);
  --overlay-1:rgba(8,30,69,0.30); --overlay-2:rgba(8,30,69,0.78);
  --card-shadow:0 20px 48px -26px rgba(8,30,69,0.30);
  --grid-line:rgba(11,46,99,0.07);
  --eyebrow-color:var(--gold-dark); --link-color:var(--gold-dark);
  --link-hover:var(--energy); --card-link:var(--energy);
  --content-size:800px; --wide-size:1180px;
}
[data-theme="dark"] {
  --bg:#050F22; --surface:#0B2E63; --surface-2:#081E45;
  --text:#F5F6F8; --text-muted:#AEBAD0;
  --hairline:rgba(212,160,23,0.55);
  --overlay-1:rgba(5,15,34,0.40); --overlay-2:rgba(8,30,69,0.88);
  --card-shadow:0 24px 60px -28px rgba(0,0,0,0.85);
  --grid-line:rgba(174,186,208,0.08);
  --eyebrow-color:var(--gold); --link-color:var(--gold);
  --link-hover:var(--safety); --card-link:var(--gold-soft);
}

* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  font-family:'Source Sans 3',system-ui,sans-serif; background:var(--bg); color:var(--text);
  line-height:1.6; -webkit-font-smoothing:antialiased;
  transition:background .45s ease,color .45s ease;
}
h1,h2,h3,h4 { font-family:'Archivo',system-ui,sans-serif; letter-spacing:-0.01em; text-wrap:balance; }
p { text-wrap:pretty; }
img { display:block; }

/* WordPress layout integration: full-bleed sections, constrained inner content */
.wp-site-blocks > main { overflow-x:clip; }
.wp-site-blocks > footer { margin-block-start:0; }
main.wp-block-group { margin-top:0; }
.wp-block-group.alignfull { margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); }

.wrap { max-width:var(--wide-size); margin:0 auto; padding:0 28px; width:100%; }
.narrow { max-width:var(--content-size); margin:0 auto; padding:0 28px; }

/* ---- eyebrow / labels ---- */
.eyebrow { display:inline-flex; align-items:center; gap:10px; color:var(--eyebrow-color);
  font-size:12px; font-weight:700; letter-spacing:0.32em; text-transform:uppercase; margin-bottom:20px; }
.eyebrow::before { content:""; width:28px; height:1px; background:var(--eyebrow-color); flex:none; }
.label { font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--eyebrow-color); font-weight:600; }
.gold-rule { width:88px; height:2px; background:var(--gold); margin:28px 0; }
.gold-rule.sm { width:40px; margin:14px 0; }

/* ---- engineering corner-tick bracket ---- */
.tick { position:relative; }
.tick::before,.tick::after { content:""; position:absolute; width:22px; height:22px; pointer-events:none;
  border-color:var(--gold); opacity:.9; }
.tick::before { top:0; left:0; border-top:1.5px solid; border-left:1.5px solid; }
.tick::after { bottom:0; right:0; border-bottom:1.5px solid; border-right:1.5px solid; }

/* ---- buttons ---- */
.btn { font-family:'Archivo',sans-serif; font-weight:800; font-size:13.5px; letter-spacing:0.12em;
  text-transform:uppercase; cursor:pointer; padding:15px 28px; border-radius:3px; border:1.5px solid transparent;
  display:inline-flex; align-items:center; gap:10px; text-decoration:none;
  transition:transform .2s ease,box-shadow .25s ease,background .25s ease,color .25s ease; }
.btn-primary { background:var(--energy); color:#fff; box-shadow:0 10px 26px -12px rgba(198,40,40,.8); }
.btn-primary:hover { background:var(--safety); color:#fff; transform:translateY(-2px); box-shadow:0 16px 34px -12px rgba(229,57,53,.9); }
.btn-ghost { background:transparent; color:#fff; border-color:rgba(245,246,248,.6); }
.btn-ghost:hover { border-color:var(--gold); color:var(--gold-soft); transform:translateY(-2px); }
.on-light .btn-ghost { color:var(--text); border-color:rgba(11,46,99,.45); }
.on-light .btn-ghost:hover { color:var(--primary); border-color:var(--gold); }

/* Map WordPress core button blocks onto the same look as .btn */
.wp-block-button__link { font-family:'Archivo',sans-serif; font-weight:800; font-size:13.5px;
  letter-spacing:0.12em; text-transform:uppercase; padding:15px 28px; border-radius:3px;
  border:1.5px solid transparent; text-decoration:none;
  transition:transform .2s ease,box-shadow .25s ease,background .25s ease,color .25s ease; }
.is-style-fill .wp-block-button__link, .btn-primary-block .wp-block-button__link {
  background:var(--energy); color:#fff; box-shadow:0 10px 26px -12px rgba(198,40,40,.8); }
.is-style-fill .wp-block-button__link:hover, .btn-primary-block .wp-block-button__link:hover {
  background:var(--safety); transform:translateY(-2px); box-shadow:0 16px 34px -12px rgba(229,57,53,.9); }
.is-style-outline .wp-block-button__link, .btn-ghost-block .wp-block-button__link {
  background:transparent; color:#fff; border-color:rgba(245,246,248,.6); }
.is-style-outline .wp-block-button__link:hover, .btn-ghost-block .wp-block-button__link:hover {
  border-color:var(--gold); color:var(--gold-soft); transform:translateY(-2px); }

/* ============================================================
   NAVBAR (template part header)
   ============================================================ */
header.nav { position:sticky; top:0; z-index:80; background:rgba(255,255,255,0.97);
  border-bottom:1px solid rgba(11,46,99,0.12); backdrop-filter:blur(6px); }
.nav-inner { display:flex; align-items:center; justify-content:space-between; height:88px; }
.brand { display:flex; align-items:center; gap:12px; text-decoration:none; flex-shrink:0; }
.brand img { height:74px; width:auto; flex-shrink:0; max-width:none; }
.nav-inner .brand { margin-left:-16px; }
nav.links { min-width:0; }
nav.links { display:flex; align-items:center; gap:28px; }
nav.links a { color:var(--primary); text-decoration:none; font-family:'Archivo'; font-weight:600; font-size:13px;
  letter-spacing:.1em; text-transform:uppercase; padding:6px 0; position:relative; transition:color .2s; }
nav.links a:hover { color:var(--energy); }
nav.links a.active, nav.links a[aria-current="page"], nav.links .current-menu-item > a { color:var(--energy); }
nav.links a.active::after, nav.links a[aria-current="page"]::after, nav.links .current-menu-item > a::after {
  content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px; background:var(--gold); }
.nav-cta { background:var(--energy); color:#fff; padding:11px 20px; border-radius:3px; font-family:'Archivo';
  font-weight:800; font-size:12px; letter-spacing:.12em; text-transform:uppercase; text-decoration:none; transition:background .25s,transform .2s;
  white-space:nowrap; flex:none; display:inline-block; line-height:1; }
.nav-cta:hover { background:var(--safety); color:#fff; transform:translateY(-2px); }
.nav-tools { display:flex; align-items:center; gap:14px; }
.theme-btn { appearance:none; cursor:pointer; border:1px solid var(--hairline); background:rgba(255,255,255,.06);
  color:#fff; font-family:'Archivo'; font-weight:700; font-size:10px; letter-spacing:.16em; text-transform:uppercase;
  padding:8px 12px; border-radius:3px; }
.hamburger { display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:6px; }
.hamburger span { width:24px; height:2px; background:var(--primary); display:block; }
.mobile-menu { display:none; }
@media (max-width:980px){
  nav.links { display:none; }
  .nav-cta { display:none; }
  .hamburger { display:flex; }
  .mobile-menu { display:block; max-height:0; overflow:hidden; background:#FFFFFF; border-bottom:1px solid rgba(11,46,99,0.12);
    transition:max-height .35s ease; }
  .mobile-menu.open { max-height:600px; }
  .mobile-menu a { display:block; color:var(--primary); text-decoration:none; padding:14px 28px; font-family:'Archivo';
    font-weight:600; letter-spacing:.1em; text-transform:uppercase; font-size:13px; border-bottom:1px solid rgba(11,46,99,0.08); }
  .mobile-menu a:hover { color:var(--energy); }
}

/* ============================================================
   HERO
   ============================================================ */
.hero { position:relative; overflow:hidden; min-height:88vh; display:flex; align-items:flex-start; }
.hero-photo, .hero > .wp-block-cover__image-background { position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  filter:grayscale(.25) contrast(1.08) brightness(.78); transform:scale(1.04);
  animation:slowpan 22s ease-in-out infinite alternate; }

/* ---- Full-bleed photos rendered by WordPress as wp:image <figure> wrappers ----
   The mockups used a bare <img class="hero-photo">; the block build wraps it in
   <figure class="hero-photo"><img></figure>, so the inner <img> must be forced to
   cover (beating core .wp-block-image img{height:auto;max-width:100%}). */
.hero-photo, .dhero-photo, .safety .bg { margin:0; }
.hero-photo img, .dhero-photo img, .safety .bg img {
  position:absolute; inset:0; width:100% !important; height:100% !important;
  max-width:none; object-fit:cover; display:block; margin:0; }
.safety .bg { position:absolute; inset:0; width:100%; height:100%;
  filter:grayscale(.3) contrast(1.05) brightness(.55); }
/* WordPress block-gap adds margin-block-start:24px to flow children; on these
   full-bleed sections that shifts the absolutely-positioned photo/veil/grid down
   (top:0 + margin) and leaves an un-covered strip at the top. Zero it. */
.hero > *, .dhero > *, .safety > * { margin-block-start:0 !important; margin-top:0 !important; }
@keyframes slowpan { from{transform:scale(1.04) translateX(0);} to{transform:scale(1.10) translateX(-2%);} }
.hero-veil { position:absolute; inset:0; background:
  linear-gradient(90deg,var(--overlay-2) 0%,var(--overlay-2) 38%,var(--overlay-1) 100%),
  linear-gradient(180deg,rgba(5,15,34,.5),rgba(5,15,34,.2)); }
.hero-grid { position:absolute; inset:0; pointer-events:none;
  background-image:linear-gradient(rgba(174,186,208,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(174,186,208,.10) 1px,transparent 1px);
  background-size:64px 64px; -webkit-mask-image:linear-gradient(90deg,#000 0%,#000 55%,transparent 100%);
  mask-image:linear-gradient(90deg,#000 0%,#000 55%,transparent 100%); }
.hero-inner { position:relative; z-index:2; padding:clamp(5rem,11vw,8rem) 28px 5rem; max-width:720px; margin:0 auto; width:100%; }
.hero-inner.wrap { max-width:var(--wide-size); }
.hero-col { max-width:660px; }
.hero .eyebrow { color:var(--gold); } .hero .eyebrow::before { background:var(--gold); }
.hero h1 { color:#fff; font-weight:900; font-size:clamp(2.1rem,4.4vw,3.5rem); line-height:1.04;
  text-transform:uppercase; letter-spacing:-0.015em; }
.hero h1 .accent { color:var(--gold-soft); }
.hero p.sub { color:#E4E9F2; font-size:1.2rem; margin:24px 0 14px; max-width:560px; }
.hero .support { color:var(--gold-soft); font-family:'Archivo'; font-weight:700; font-size:14px;
  letter-spacing:.06em; text-transform:uppercase; margin-bottom:30px; }
.hero-cta { display:flex; flex-wrap:wrap; gap:16px; }

/* ============================================================
   TRUST BAND
   ============================================================ */
.trustband { background:linear-gradient(120deg,var(--navy),var(--primary)); border-top:1px solid var(--hairline);
  border-bottom:1px solid var(--hairline); position:relative; overflow:hidden; }
.trustband .spark { position:absolute; top:-60px; left:8%; width:240px; height:240px;
  background:radial-gradient(circle,rgba(212,160,23,.22),transparent 68%); border-radius:50%;
  animation:pulse 6s ease-in-out infinite; }
@keyframes pulse { 0%,100%{opacity:.5;transform:scale(1);} 50%{opacity:1;transform:scale(1.15);} }
.trustband .inner { position:relative; display:grid; gap:30px; align-items:center; padding:64px 28px; }
@media(min-width:900px){ .trustband .inner { grid-template-columns:auto 1px 1fr; } }
.bignum { display:flex; align-items:baseline; gap:4px; }
.bignum .n { font-family:'Archivo'; font-weight:900; font-size:clamp(4rem,9vw,7rem); line-height:.85; color:#fff; }
.bignum .plus { font-family:'Archivo'; font-weight:900; font-size:clamp(2.4rem,5vw,4rem); color:var(--gold-soft); }
.trustband .cap { color:var(--gold-soft); font-family:'Archivo'; font-weight:700; font-size:13px;
  letter-spacing:.3em; text-transform:uppercase; margin-top:10px; }
.trustband .vdiv { display:none; }
@media(min-width:900px){ .trustband .vdiv { display:block; width:1px; height:120px; background:var(--gold); justify-self:center; } }
.trustband .statement { color:#E7ECF5; font-size:1.2rem; max-width:54ch; }
.trustband .statement strong { color:#fff; }
.ministats { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:26px; max-width:560px; }
.ministats .ms { border-left:2px solid var(--gold); padding-left:14px; }
.ministats .ms b { display:block; font-family:'Archivo'; font-weight:900; color:#fff; font-size:1.5rem; line-height:1; }
.ministats .ms span { color:#C7D2E6; font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
@media(max-width:560px){ .ministats { grid-template-columns:1fr; } }

/* ============================================================
   SECTION SHELL
   ============================================================ */
section.block, .block { padding:clamp(4.5rem,8vw,6.5rem) 0; }
.alt { background:var(--surface-2); }
.sec-head { max-width:680px; margin-bottom:48px; }
.sec-head h2 { font-weight:800; font-size:clamp(1.7rem,3vw,2.5rem); text-transform:uppercase; color:var(--text); }
.sec-head p { color:var(--text-muted); margin-top:16px; font-size:1.08rem; max-width:56ch; }
.lede { color:var(--text-muted); font-size:1.14rem; max-width:64ch; }
.lead-p { color:var(--text-muted); font-size:1.12rem; max-width:60ch; }

/* ============================================================
   SERVICES IMAGE-CARD GRID (homepage)
   ============================================================ */
.cards { display:flex; flex-wrap:wrap; justify-content:center; gap:20px; }
.cards > * { flex:0 1 100%; }
@media(min-width:640px){ .cards > * { flex-basis:calc(50% - 10px); } }
@media(min-width:1000px){ .cards > * { flex-basis:calc(25% - 15px); } }

/* Before/After showcase (Preventative Maintenance) */
.ba-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:24px; }
@media(max-width:640px){ .ba-grid { grid-template-columns:1fr; } }
.ba { margin:0; position:relative; border:1px solid var(--hairline); border-radius:4px; overflow:hidden; }
.ba img { width:100%; height:100%; object-fit:cover; display:block; aspect-ratio:4/3; }
.ba figcaption { position:absolute; top:12px; left:12px; background:var(--energy); color:#fff; font-family:'Archivo',sans-serif;
  font-weight:800; font-size:11px; letter-spacing:.16em; text-transform:uppercase; padding:5px 12px; border-radius:3px; }

/* Image gallery (Torque In Action) */
.gal-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:24px; }
@media(max-width:700px){ .gal-grid { grid-template-columns:1fr 1fr; } }
.gal { margin:0; border:1px solid var(--hairline); border-radius:4px; overflow:hidden; }
.gal img { width:100%; height:100%; object-fit:cover; display:block; aspect-ratio:4/3; transition:transform .45s ease; }
.gal:hover img { transform:scale(1.06); }
.card { background:var(--surface); border:1px solid var(--hairline); border-radius:4px; overflow:hidden;
  box-shadow:var(--card-shadow); transition:transform .3s ease,box-shadow .3s ease; }
.card:hover { transform:translateY(-5px); box-shadow:0 30px 60px -26px rgba(8,30,69,.4); }
.card .img-wrap { position:relative; aspect-ratio:16/10; overflow:hidden; }
.card .img-wrap img { width:100%; height:100%; object-fit:cover;
  filter:grayscale(.18) contrast(1.06) brightness(.9); transition:transform .6s ease; }
.card:hover .img-wrap img { transform:scale(1.06); }
.card .img-wrap::after { content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(8,30,69,.05),var(--overlay-2)); }
.card .badge { position:absolute; bottom:12px; left:12px; z-index:2; background:var(--energy); color:#fff;
  font-family:'Archivo'; font-weight:800; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase;
  padding:6px 11px; border-radius:3px; }
.card .body { padding:22px 22px 24px; }
.card .body h3 { color:var(--text); font-size:1.18rem; font-weight:800; text-transform:uppercase; }
.card .body p { color:var(--text-muted); font-size:.97rem; margin-top:4px; }
.card .body a.more { display:inline-block; margin-top:16px; color:var(--card-link); font-family:'Archivo';
  font-weight:800; font-size:12px; letter-spacing:.14em; text-transform:uppercase; text-decoration:none;
  border-bottom:1.5px solid var(--card-link); padding-bottom:3px; transition:color .2s,border-color .2s; }
.card .body a.more:hover { color:var(--safety); border-color:var(--safety); }

/* ============================================================
   SERVICE TEXT CARDS (services index)
   ============================================================ */
.scard { background:var(--surface); border:1px solid var(--hairline); border-radius:4px; padding:30px 26px 28px;
  box-shadow:var(--card-shadow); transition:transform .3s ease,box-shadow .3s ease; display:flex; flex-direction:column; }
.scard:hover { transform:translateY(-5px); box-shadow:0 30px 60px -26px rgba(8,30,69,.4); }
.scard .idx { font-family:'Archivo'; font-weight:900; color:var(--gold-dark); font-size:1.1rem; letter-spacing:.1em; }
[data-theme="dark"] .scard .idx { color:var(--gold); }
.scard h3 { color:var(--text); font-size:1.22rem; font-weight:800; text-transform:uppercase; margin-top:8px; }
.scard p { color:var(--text-muted); font-size:.99rem; margin-top:14px; flex:1; }
.scard a.more { display:inline-flex; align-items:center; gap:8px; margin-top:22px; color:var(--card-link); font-family:'Archivo';
  font-weight:800; font-size:12px; letter-spacing:.14em; text-transform:uppercase; text-decoration:none; align-self:flex-start;
  border-bottom:1.5px solid var(--card-link); padding-bottom:3px; transition:color .2s,border-color .2s,gap .2s; }
.scard a.more:hover { color:var(--safety); border-color:var(--safety); gap:12px; }

/* ============================================================
   OPERATIONAL CAPABILITIES — alternating rows
   ============================================================ */
.caprow { display:grid; grid-template-columns:1fr; gap:0; align-items:stretch; border:1px solid var(--hairline);
  border-radius:4px; overflow:hidden; margin-bottom:34px; background:var(--surface); box-shadow:var(--card-shadow); }
@media(min-width:860px){ .caprow { grid-template-columns:1fr 1fr; } }
.caprow .ph { position:relative; min-height:320px; overflow:hidden; }
.caprow .ph img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  filter:grayscale(.22) contrast(1.06) brightness(.84); transition:transform .6s ease; }
.caprow:hover .ph img { transform:scale(1.05); }
.caprow .ph::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(8,30,69,.1),rgba(8,30,69,.45)); }
.caprow .txt { padding:clamp(2rem,4vw,3rem); align-self:center; }
@media(min-width:860px){ .caprow.reverse .ph { order:2; } }
.caprow .txt h3 { color:var(--text); font-weight:800; font-size:1.45rem; text-transform:uppercase; }
.caprow .txt p { color:var(--text-muted); margin-top:14px; font-size:1.02rem; }
.caprow .txt ul { list-style:none; margin-top:18px; display:grid; gap:9px; padding-left:0; }
.caprow .txt li { position:relative; padding-left:22px; color:var(--text); font-size:.97rem; list-style:none; }
.caprow .txt li::before { content:""; position:absolute; left:0; top:9px; width:10px; height:2px; background:var(--gold); }

/* ============================================================
   WHY CHOOSE — split text + stat insets
   ============================================================ */
.why { background:var(--surface-2); }
.why-grid { display:grid; grid-template-columns:1fr; gap:48px; align-items:center; }
@media(min-width:920px){ .why-grid { grid-template-columns:1.1fr 1fr; } }
.why-grid .lead p { color:var(--text-muted); font-size:1.08rem; margin-top:16px; }
.why-grid .lead .points { margin-top:26px; display:grid; gap:18px; }
.why-grid .lead .points .pt { display:flex; gap:14px; align-items:flex-start; }
.why-grid .lead .points .pt .mk { flex:none; width:34px; height:34px; border:1px solid var(--hairline);
  display:flex; align-items:center; justify-content:center; color:var(--gold-dark); font-family:'Archivo';
  font-weight:900; border-radius:3px; }
[data-theme="dark"] .why-grid .lead .points .pt .mk { color:var(--gold); }
.why-grid .lead .points .pt h4 { font-size:1.05rem; font-weight:800; text-transform:uppercase; color:var(--text); line-height:34px; margin:0; }
.why-grid .lead .points .pt > div { min-width:0; }
.why-grid .lead .points .pt p { margin-top:4px; font-size:.96rem; }
.stat-insets { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.stat-insets .si { background:var(--surface); border:1px solid var(--hairline); border-radius:4px; padding:28px 22px;
  box-shadow:var(--card-shadow); }
.stat-insets .si b { display:block; font-family:'Archivo'; font-weight:900; color:var(--primary); font-size:2.4rem; line-height:1; }
[data-theme="dark"] .stat-insets .si b { color:#fff; }
.stat-insets .si .g { width:40px; height:2px; background:var(--gold); margin:12px 0; }
.stat-insets .si span { color:var(--text-muted); font-size:13px; letter-spacing:.06em; text-transform:uppercase; }

/* ============================================================
   COVERAGE MAP
   ============================================================ */
.cov-grid { display:grid; grid-template-columns:1fr; gap:42px; align-items:start; }
@media(min-width:920px){ .cov-grid { grid-template-columns:1.15fr 0.85fr; align-items:start; } }
.cov-solo { max-width:880px; margin:0 auto; }
.map-stage { position:relative; aspect-ratio:1869.736 / 1479.172; background:linear-gradient(140deg,var(--navy),var(--primary));
  border:1px solid var(--hairline); border-radius:4px; overflow:hidden; }
.map-stage .grid-bg { position:absolute; inset:0;
  background-image:linear-gradient(rgba(174,186,208,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(174,186,208,.10) 1px,transparent 1px);
  background-size:42px 42px; }
.map-stage svg { position:absolute; inset:0; width:100%; height:100%; }
.map-stage .vez { fill:rgba(212,160,23,.10); stroke:var(--gold); stroke-width:1.4; }
.map-stage .vez-glow { fill:none; stroke:rgba(212,160,23,.25); stroke-width:5; }
/* Real Venezuela states map: full country muted, the 5 covered states highlighted gold. */
.map-stage .vez-map { position:absolute; inset:0; width:100%; height:100%; }
.vez-base { filter:saturate(.28) brightness(.5) contrast(1.05); }
.vez-veil { fill:rgba(8,30,69,0.5); }
.vez-hi-path { fill:var(--gold); stroke:#fff; stroke-width:2.5; paint-order:stroke; }
.vez-label { fill:#fff; stroke:#06122b; stroke-width:5; paint-order:stroke; font-family:'Archivo',sans-serif;
  font-weight:800; font-size:34px; letter-spacing:.5px; text-anchor:middle; }
.marker { position:absolute; transform:translate(-50%,-50%); }
.marker .dot { width:14px; height:14px; background:var(--energy); border:2px solid #fff; border-radius:50%;
  box-shadow:0 0 0 6px rgba(198,40,40,.25); animation:pulse 4s ease-in-out infinite; }
.marker .lbl { position:absolute; left:20px; top:-4px; white-space:nowrap; color:#fff; font-family:'Archivo';
  font-weight:800; font-size:12px; letter-spacing:.12em; text-transform:uppercase; }
.marker .lbl small { display:block; color:var(--gold-soft); font-size:10px; letter-spacing:.16em; font-weight:600; }
/* Eastern markers sit near the map's right border; flip their labels to read
   inward (leftward) so the text doesn't collide with the gold outline. */
.marker.flip .lbl { left:auto; right:20px; text-align:right; }
.marker .lbl, .marker .lbl small { text-shadow:0 1px 6px rgba(5,15,34,.9); }
.map-cap { position:absolute; bottom:14px; left:14px; color:#C7D2E6; font-family:'Archivo'; font-weight:700;
  font-size:10px; letter-spacing:.2em; text-transform:uppercase; }
.cov-list .reg { display:flex; align-items:flex-start; gap:14px; padding:12px 0; border-bottom:1px solid var(--grid-line); }
.cov-list .reg:last-child { border-bottom:0; }
.cov-list .reg .num { font-family:'Archivo'; font-weight:900; color:var(--gold-dark); font-size:1.4rem; flex:none; width:40px; }
[data-theme="dark"] .cov-list .reg .num { color:var(--gold); }
.cov-list .reg h4 { font-size:1.15rem; font-weight:800; text-transform:uppercase; color:var(--text); }
.cov-list .reg p { color:var(--text-muted); font-size:.96rem; margin-top:4px; }

/* ============================================================
   SAFETY DARK BAND
   ============================================================ */
.safety { position:relative; overflow:hidden; }
.safety img.bg, .safety > .wp-block-cover__image-background { position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  filter:grayscale(.3) contrast(1.05) brightness(.55); }
.safety .veil { position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,30,69,.92),rgba(5,15,34,.7)); }
.safety .inner { position:relative; z-index:2; padding:clamp(5rem,9vw,7rem) 0; max-width:640px; }
.safety .eyebrow { color:var(--gold); } .safety .eyebrow::before { background:var(--gold); }
.safety h2 { color:#fff; font-weight:900; font-size:clamp(2rem,4vw,3rem); text-transform:uppercase; }
.safety p { color:#E4E9F2; margin-top:18px; font-size:1.1rem; }
.safety .pillars { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:32px; }
@media(max-width:560px){ .safety .pillars { grid-template-columns:1fr; } }
.safety .pillars .p { border:1px solid var(--hairline); border-radius:4px; padding:18px; background:rgba(8,30,69,.4); }
.safety .pillars .p b { color:#fff; font-family:'Archivo'; font-weight:800; text-transform:uppercase; font-size:.95rem; letter-spacing:.06em; }
.safety .pillars .p span { display:block; color:#C7D2E6; font-size:.9rem; margin-top:6px; }

/* ============================================================
   CONTACT CTA
   ============================================================ */
.cta { background:linear-gradient(120deg,var(--navy),var(--primary)); position:relative; overflow:hidden; }
.cta .spark { position:absolute; top:-50px; right:6%; width:220px; height:220px;
  background:radial-gradient(circle,rgba(212,160,23,.22),transparent 68%); border-radius:50%; animation:pulse 6s ease-in-out infinite; }
.cta .inner { position:relative; z-index:2; text-align:center; padding:clamp(4.5rem,8vw,6.5rem) 0; }
.cta .eyebrow { color:var(--gold); justify-content:center; } .cta .eyebrow::before { background:var(--gold); }
.cta h2 { color:#fff; font-weight:900; font-size:clamp(2rem,4vw,3rem); text-transform:uppercase; }
.cta p { color:#E7ECF5; max-width:54ch; margin:18px auto 32px; font-size:1.12rem; }
.cta-row { display:flex; flex-wrap:wrap; gap:16px; justify-content:center; }

/* ============================================================
   PAGE HEADER band (interior pages + page-title part)
   ============================================================ */
.pagehead { position:relative; overflow:hidden; background:linear-gradient(120deg,var(--navy),var(--primary));
  border-bottom:1px solid var(--hairline); }
.pagehead .spark { position:absolute; top:-60px; right:8%; width:240px; height:240px;
  background:radial-gradient(circle,rgba(212,160,23,.22),transparent 68%); border-radius:50%; animation:pulse 6s ease-in-out infinite; }
.pagehead .grid-bg { position:absolute; inset:0; pointer-events:none;
  background-image:linear-gradient(rgba(174,186,208,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(174,186,208,.08) 1px,transparent 1px);
  background-size:64px 64px; -webkit-mask-image:linear-gradient(90deg,#000 0%,#000 55%,transparent 100%);
  mask-image:linear-gradient(90deg,#000 0%,#000 55%,transparent 100%); }
.pagehead .inner { position:relative; z-index:2; padding:clamp(4rem,8vw,6rem) 0 clamp(3.5rem,6vw,5rem); max-width:760px; }
.pagehead .eyebrow { color:var(--gold); } .pagehead .eyebrow::before { background:var(--gold); }
.pagehead h1 { color:#fff; font-weight:900; font-size:clamp(2.1rem,4.4vw,3.4rem); line-height:1.05;
  text-transform:uppercase; letter-spacing:-0.015em; }
.pagehead p.intro { color:#E4E9F2; font-size:1.18rem; margin-top:22px; max-width:60ch; }

/* ============================================================
   GENERIC PROSE / VALUE CARDS (about, safety, coverage)
   ============================================================ */
.split { display:grid; grid-template-columns:1fr; gap:48px; }
@media(min-width:920px){ .split { grid-template-columns:1fr 1fr; } }
.prose-card { background:var(--surface); border:1px solid var(--hairline); border-radius:4px;
  padding:clamp(1.8rem,3vw,2.6rem); box-shadow:var(--card-shadow); }
.prose-card h3 { color:var(--text); font-weight:800; font-size:1.35rem; text-transform:uppercase; }
.prose-card p { color:var(--text-muted); margin-top:14px; font-size:1.05rem; }
.vcards { display:grid; grid-template-columns:1fr; gap:20px; }
@media(min-width:640px){ .vcards { grid-template-columns:1fr 1fr; } }
@media(min-width:1000px){ .vcards { grid-template-columns:repeat(3,1fr); } }
.vcards.four { grid-template-columns:1fr; }
@media(min-width:640px){ .vcards.four { grid-template-columns:1fr 1fr; } }
@media(min-width:1000px){ .vcards.four { grid-template-columns:repeat(4,1fr); } }
.vcard { background:var(--surface); border:1px solid var(--hairline); border-radius:4px; padding:28px 24px;
  box-shadow:var(--card-shadow); transition:transform .3s ease,box-shadow .3s ease; }
.vcard:hover { transform:translateY(-5px); box-shadow:0 30px 60px -26px rgba(8,30,69,.4); }
.vcard .vk { font-family:'Archivo'; font-weight:900; color:var(--gold-dark); font-size:1.3rem; }
[data-theme="dark"] .vcard .vk { color:var(--gold); }
.vcard h4 { color:var(--text); font-weight:800; font-size:1.12rem; text-transform:uppercase; margin-top:10px; }
.vcard p { color:var(--text-muted); margin-top:10px; font-size:.98rem; }

/* ============================================================
   AVAILABILITY BAND (coverage)
   ============================================================ */
.availband { background:linear-gradient(120deg,var(--navy),var(--primary)); border-top:1px solid var(--hairline);
  border-bottom:1px solid var(--hairline); position:relative; overflow:hidden; }
.availband .spark { position:absolute; top:-60px; left:8%; width:240px; height:240px;
  background:radial-gradient(circle,rgba(212,160,23,.22),transparent 68%); border-radius:50%; animation:pulse 6s ease-in-out infinite; }
.availband .inner { position:relative; display:grid; gap:30px; align-items:center; padding:64px 28px; }
@media(min-width:900px){ .availband .inner { grid-template-columns:auto 1px 1fr; } }
.availband .big { font-family:'Archivo'; font-weight:900; font-size:clamp(3.4rem,8vw,6rem); line-height:.85; color:#fff; }
.availband .cap { color:var(--gold-soft); font-family:'Archivo'; font-weight:700; font-size:13px;
  letter-spacing:.3em; text-transform:uppercase; margin-top:10px; }
.availband .vdiv { display:none; }
@media(min-width:900px){ .availband .vdiv { display:block; width:1px; height:120px; background:var(--gold); justify-self:center; } }
.availband .statement { color:#E7ECF5; font-size:1.2rem; max-width:54ch; }
.availband .statement strong { color:#fff; }
.availband .note { display:inline-block; margin-top:18px; color:var(--gold-soft); font-family:'Archivo'; font-weight:700;
  font-size:12px; letter-spacing:.14em; text-transform:uppercase; border:1px solid var(--hairline); padding:8px 14px; border-radius:3px; }

/* ============================================================
   SERVICE DETAIL — dhero layout (torque, gate-valve, integrity)
   ============================================================ */
.dhero { position:relative; overflow:hidden; min-height:62vh; display:flex; align-items:flex-end; border-bottom:1px solid var(--hairline); }
.dhero-photo, .dhero > .wp-block-cover__image-background { position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  filter:grayscale(.25) contrast(1.08) brightness(.78); transform:scale(1.04);
  animation:slowpan 22s ease-in-out infinite alternate; }
.dhero-veil { position:absolute; inset:0; background:
  linear-gradient(90deg,var(--overlay-2) 0%,var(--overlay-2) 38%,var(--overlay-1) 100%),
  linear-gradient(180deg,rgba(5,15,34,.25),rgba(5,15,34,.55)); }
.dhero-inner { position:relative; z-index:2; padding:clamp(4rem,9vw,7rem) 0 clamp(3rem,6vw,4.5rem); max-width:720px; }
.dhero .eyebrow { color:var(--gold); } .dhero .eyebrow::before { background:var(--gold); }
.dhero h1 { color:#fff; font-weight:900; font-size:clamp(2.1rem,4.4vw,3.4rem); line-height:1.04; text-transform:uppercase; letter-spacing:-0.015em; }
.dhero p.sub { color:#E4E9F2; font-size:1.2rem; margin-top:22px; max-width:56ch; }

/* tick lists (capabilities / benefits) — boxed checkbox variant */
.ticklist { display:grid; grid-template-columns:1fr; gap:16px; margin-top:8px; padding-left:0; list-style:none; }
@media(min-width:680px){ .ticklist { grid-template-columns:1fr 1fr; } }
.ticklist .ti { display:flex; gap:14px; align-items:flex-start; background:var(--surface); border:1px solid var(--hairline);
  border-radius:4px; padding:18px 20px; box-shadow:var(--card-shadow); transition:transform .25s ease,box-shadow .25s ease; }
.ticklist .ti:hover { transform:translateY(-3px); box-shadow:0 26px 54px -28px rgba(8,30,69,.4); }
.ticklist .ti .ck { flex:none; width:24px; height:24px; border:1.5px solid var(--gold); border-radius:3px; position:relative; margin-top:1px; }
.ticklist .ti .ck::after { content:""; position:absolute; left:8px; top:3px; width:6px; height:12px;
  border:solid var(--gold); border-width:0 2px 2px 0; transform:rotate(45deg); }
.ticklist .ti span { color:var(--text); font-size:1.02rem; font-weight:500; }
/* tick lists — simple <li> checkmark variant (service detail pages) */
.ticklist li { position:relative; padding-left:34px; color:var(--text); font-size:1.02rem; list-style:none; }
.ticklist li::before { content:""; position:absolute; left:0; top:7px; width:16px; height:9px;
  border-left:2px solid var(--gold); border-bottom:2px solid var(--gold); transform:rotate(-45deg); }

/* industry chips */
.chips { display:flex; flex-wrap:wrap; gap:12px; margin-top:8px; }
.chip { display:inline-flex; align-items:center; gap:9px; background:var(--surface); border:1px solid var(--hairline);
  border-radius:3px; padding:11px 18px; font-family:'Archivo'; font-weight:700; font-size:12.5px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--text); transition:transform .2s ease,border-color .2s ease,color .2s ease; }
.chip::before { content:""; width:8px; height:8px; background:var(--gold); border-radius:50%; flex:none; }
.chip:hover { transform:translateY(-2px); border-color:var(--gold); color:var(--primary); }
[data-theme="dark"] .chip:hover { color:var(--gold-soft); }

/* related services cards (rcard) */
.rel-grid { display:grid; grid-template-columns:1fr; gap:22px; }
@media(min-width:760px){ .rel-grid { grid-template-columns:repeat(3,1fr); } }
.rcard { background:var(--surface); border:1px solid var(--hairline); border-radius:4px; padding:26px 24px;
  box-shadow:var(--card-shadow); transition:transform .3s ease,box-shadow .3s ease; text-decoration:none; display:block; }
.rcard:hover { transform:translateY(-5px); box-shadow:0 30px 60px -26px rgba(8,30,69,.4); }
.rcard span.k { font-family:'Archivo'; font-weight:700; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-dark); }
[data-theme="dark"] .rcard span.k { color:var(--gold); }
.rcard h3 { color:var(--text); font-size:1.12rem; font-weight:800; text-transform:uppercase; margin-top:10px; }
.rcard .arr { display:inline-block; margin-top:16px; color:var(--card-link); font-family:'Archivo'; font-weight:800;
  font-size:12px; letter-spacing:.14em; text-transform:uppercase; border-bottom:1.5px solid var(--card-link); padding-bottom:3px; }

/* ============================================================
   SERVICE DETAIL — hero/twocol/bencard/relcard layout
   (service detail pages)
   ============================================================ */
.detail-hero { min-height:62vh; }
.detail-hero h1 { font-size:clamp(2rem,3.6vw,3.1rem); }
.breadcrumb { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:18px;
  font-family:'Archivo'; font-weight:700; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:#C7D2E6; }
.breadcrumb a { color:var(--gold-soft); text-decoration:none; transition:color .2s; }
.breadcrumb a:hover { color:#fff; }
.breadcrumb span { color:rgba(199,210,230,.5); }
.twocol { display:grid; grid-template-columns:1fr; gap:48px; align-items:start; }
@media(min-width:920px){ .twocol { grid-template-columns:1fr 1fr; } }
.bencard-grid { display:grid; grid-template-columns:1fr; gap:18px; }
@media(min-width:680px){ .bencard-grid { grid-template-columns:repeat(3,1fr); } }
.bencard { background:var(--surface); border:1px solid var(--hairline); border-radius:4px; padding:26px 22px;
  box-shadow:var(--card-shadow); transition:transform .3s ease,box-shadow .3s ease; }
.bencard:hover { transform:translateY(-5px); box-shadow:0 30px 60px -26px rgba(8,30,69,.4); }
.bencard .bn { font-family:'Archivo'; font-weight:900; color:var(--gold-dark); font-size:1.4rem; }
[data-theme="dark"] .bencard .bn { color:var(--gold); }
.bencard h4 { margin-top:10px; font-size:1.08rem; font-weight:800; text-transform:uppercase; color:var(--text); }
.bencard p { color:var(--text-muted); font-size:.96rem; margin-top:8px; }
.related-grid { display:grid; grid-template-columns:1fr; gap:22px; }
@media(min-width:760px){ .related-grid { grid-template-columns:repeat(3,1fr); } }
.relcard { display:block; text-decoration:none; background:var(--surface); border:1px solid var(--hairline);
  border-radius:4px; padding:26px 22px; box-shadow:var(--card-shadow);
  transition:transform .3s ease,box-shadow .3s ease,border-color .2s ease; }
.relcard:hover { transform:translateY(-5px); box-shadow:0 30px 60px -26px rgba(8,30,69,.4); border-color:var(--gold); }
.relcard .rl { font-family:'Source Sans 3'; font-weight:700; font-size:11px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--eyebrow-color); }
.relcard h4 { margin-top:10px; font-size:1.12rem; font-weight:800; text-transform:uppercase; color:var(--text); }
.relcard .arrow { display:inline-block; margin-top:16px; color:var(--card-link); font-family:'Archivo';
  font-weight:800; font-size:12px; letter-spacing:.14em; text-transform:uppercase; border-bottom:1.5px solid var(--card-link);
  padding-bottom:3px; transition:color .2s,border-color .2s; }
.relcard:hover .arrow { color:var(--safety); border-color:var(--safety); }

/* ============================================================
   PROJECTS placeholder
   ============================================================ */
.placeholder { display:flex; align-items:center; }
.placeholder .inner { padding:clamp(5rem,12vw,9rem) 0; text-align:center; width:100%; }
.placeholder .card {
  position:relative; max-width:680px; margin:0 auto; background:var(--surface);
  border:1px solid var(--hairline); border-radius:4px; box-shadow:var(--card-shadow);
  padding:clamp(2.6rem,6vw,4.5rem) clamp(1.6rem,5vw,3.5rem); }
.placeholder .eyebrow { justify-content:center; }
.placeholder h2 { color:var(--text); font-weight:800; font-size:clamp(1.6rem,3vw,2.2rem); text-transform:uppercase; }
.placeholder .gold-rule { margin:24px auto; }
.placeholder p { color:var(--text-muted); font-size:1.1rem; max-width:52ch; margin:0 auto; }
.placeholder .btns { display:flex; flex-wrap:wrap; gap:16px; justify-content:center; margin-top:36px; }

/* ============================================================
   CONTACT layout (form + info + emergency)
   ============================================================ */
.contact-grid { display:grid; grid-template-columns:1fr; gap:48px; align-items:start; }
@media(min-width:920px){ .contact-grid { grid-template-columns:1.35fr 1fr; } }
.form-panel { background:var(--surface); border:1px solid var(--hairline); border-radius:4px;
  padding:clamp(1.8rem,4vw,2.6rem); box-shadow:var(--card-shadow); }
.form-panel h2 { color:var(--text); font-weight:800; font-size:1.5rem; text-transform:uppercase; }
.form-panel > p.note { color:var(--text-muted); margin-top:10px; font-size:.97rem; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:24px; }
@media(max-width:560px){ .form-grid { grid-template-columns:1fr; } }
.field { display:flex; flex-direction:column; gap:8px; }
.field.full { grid-column:1 / -1; }
.field label { font-family:'Source Sans 3'; font-weight:600; font-size:11px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--text); }
.field label .req { color:var(--energy); }
[data-theme="dark"] .field label .req { color:var(--gold-soft); }
.field input, .field select, .field textarea { font-family:'Source Sans 3'; font-size:1rem; color:var(--text);
  background:var(--bg); border:1px solid var(--hairline); border-radius:3px; padding:13px 14px; width:100%;
  transition:border-color .2s, box-shadow .2s, background .2s; }
.field textarea { min-height:140px; resize:vertical; }
.field select { appearance:none; cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%);
  background-position:calc(100% - 20px) calc(1.25em + 1px),calc(100% - 14px) calc(1.25em + 1px);
  background-size:6px 6px,6px 6px; background-repeat:no-repeat; padding-right:42px; }
.field input::placeholder, .field textarea::placeholder { color:var(--text-muted); opacity:.8; }
.field input:focus, .field select:focus, .field textarea:focus { outline:none; border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(212,160,23,.18); background:var(--surface); }
.form-actions { margin-top:26px; display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
.form-actions .hint { color:var(--text-muted); font-size:.86rem; }

.info-panel { display:grid; gap:18px; }
.info-card { background:var(--surface); border:1px solid var(--hairline); border-radius:4px;
  padding:26px 24px; box-shadow:var(--card-shadow); }
.info-card h3 { color:var(--text); font-weight:800; font-size:1.1rem; text-transform:uppercase; }
.info-card .gold-rule.sm { margin:12px 0 16px; }
.info-item { display:flex; gap:14px; align-items:flex-start; padding:12px 0; border-bottom:1px solid var(--grid-line); }
.info-item:last-child { border-bottom:0; }
.info-item .ic { flex:none; width:34px; height:34px; border:1px solid var(--hairline); border-radius:3px;
  display:flex; align-items:center; justify-content:center; color:var(--gold-dark); font-family:'Archivo';
  font-weight:900; font-size:11px; letter-spacing:.04em; }
[data-theme="dark"] .info-item .ic { color:var(--gold); }
.info-item .ic svg { width:18px; height:18px; }
.info-item .lab { font-family:'Source Sans 3'; font-weight:600; font-size:10px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--text-muted); }
.info-item .val { display:block; margin-top:2px; color:var(--text); font-size:1.02rem; font-weight:600; word-break:break-word; }
.info-item a.val { color:var(--link-color); text-decoration:none; transition:color .2s; }
.info-item a.val:hover { color:var(--link-hover); }
.info-item .sub { display:block; color:var(--text-muted); font-size:.85rem; margin-top:2px; font-weight:400; }

.emergency { background:linear-gradient(120deg,var(--navy),var(--primary)); border:1px solid var(--hairline);
  border-radius:4px; padding:28px 24px; position:relative; overflow:hidden; }
.emergency .spark { position:absolute; top:-50px; right:-30px; width:180px; height:180px;
  background:radial-gradient(circle,rgba(212,160,23,.22),transparent 68%); border-radius:50%; animation:pulse 6s ease-in-out infinite; }
.emergency .e-inner { position:relative; z-index:2; }
.emergency .eyebrow { color:var(--gold); } .emergency .eyebrow::before { background:var(--gold); }
.emergency h3 { color:#fff; font-weight:900; font-size:1.3rem; text-transform:uppercase; }
.emergency p { color:#E7ECF5; font-size:.97rem; margin-top:10px; }
.emergency .phone-big { display:block; margin-top:16px; color:var(--gold-soft); font-family:'Archivo';
  font-weight:900; font-size:1.55rem; letter-spacing:.02em; text-decoration:none; transition:color .2s; }
.emergency .phone-big:hover { color:#fff; }
.emergency .avail { display:inline-flex; align-items:center; gap:8px; margin-top:14px; color:#C7D2E6;
  font-family:'Archivo'; font-weight:700; font-size:11px; letter-spacing:.2em; text-transform:uppercase; }
.emergency .avail::before { content:""; width:9px; height:9px; border-radius:50%; background:var(--safety);
  box-shadow:0 0 0 4px rgba(229,57,53,.25); }

/* ============================================================
   CONTACT FORM 7 — styled to match .field design
   ============================================================ */
.wpcf7-form .cf7-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:24px; }
@media(max-width:560px){ .wpcf7-form .cf7-grid { grid-template-columns:1fr; } }
.wpcf7-form .cf7-field { display:flex; flex-direction:column; gap:8px; margin:0; }
.wpcf7-form .cf7-full, .wpcf7-form .cf7-field.full { grid-column:1 / -1; }
.wpcf7-form .cf7-field label { font-family:'Source Sans 3'; font-weight:600; font-size:11px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--text); }
.wpcf7-form input[type="text"], .wpcf7-form input[type="email"], .wpcf7-form input[type="tel"],
.wpcf7-form select, .wpcf7-form textarea {
  font-family:'Source Sans 3'; font-size:1rem; color:var(--text);
  background:var(--bg); border:1px solid var(--hairline); border-radius:3px; padding:13px 14px; width:100%;
  transition:border-color .2s, box-shadow .2s, background .2s; }
.wpcf7-form textarea { min-height:140px; resize:vertical; }
.wpcf7-form select { appearance:none; cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%);
  background-position:calc(100% - 20px) calc(1.25em + 1px),calc(100% - 14px) calc(1.25em + 1px);
  background-size:6px 6px,6px 6px; background-repeat:no-repeat; padding-right:42px; }
.wpcf7-form input::placeholder, .wpcf7-form textarea::placeholder { color:var(--text-muted); opacity:.8; }
.wpcf7-form input:focus, .wpcf7-form select:focus, .wpcf7-form textarea:focus { outline:none; border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(212,160,23,.18); background:var(--surface); }
.wpcf7-form .wpcf7-list-item { margin:0; }
.wpcf7-submit { font-family:'Archivo',sans-serif; font-weight:800; font-size:13.5px; letter-spacing:0.12em;
  text-transform:uppercase; cursor:pointer; padding:15px 28px; border-radius:3px; border:1.5px solid transparent;
  background:var(--energy); color:#fff; box-shadow:0 10px 26px -12px rgba(198,40,40,.8); margin-top:26px;
  transition:transform .2s ease,box-shadow .25s ease,background .25s ease; }
.wpcf7-submit:hover { background:var(--safety); transform:translateY(-2px); box-shadow:0 16px 34px -12px rgba(229,57,53,.9); }
.wpcf7 .wpcf7-spinner { margin:18px 0 0 12px; }
.wpcf7-not-valid-tip { color:var(--energy); font-size:.82rem; }
.wpcf7-response-output { margin:18px 0 0; padding:12px 16px; border-radius:3px; font-size:.95rem; }

/* ============================================================
   FOOTER
   ============================================================ */
footer { background:#FFFFFF; border-top:1px solid rgba(11,46,99,0.12); color:#41506E; }
.foot-grid { display:grid; grid-template-columns:1fr; gap:40px; padding:64px 0 40px; }
@media(min-width:760px){ .foot-grid { grid-template-columns:1.4fr 1fr 1fr 1fr; } }
.foot-grid .brand { display:block; }
.foot-grid .brand img { height:140px; width:auto; }
.foot-grid .brand p { margin-top:16px; font-size:.95rem; max-width:34ch; color:#41506E; }
footer h5 { color:var(--primary); font-family:'Archivo'; font-weight:800; font-size:12px; letter-spacing:.18em;
  text-transform:uppercase; margin-bottom:16px; }
footer ul { list-style:none; display:grid; gap:10px; padding-left:0; margin:0; }
footer ul li { list-style:none; }
footer a { color:#34507E; text-decoration:none; font-size:.95rem; transition:color .2s; }
footer a:hover { color:var(--energy); }
.foot-bottom { border-top:1px solid rgba(11,46,99,0.12); padding:22px 0; display:flex; flex-wrap:wrap;
  gap:10px; justify-content:space-between; font-size:.85rem; color:#5A6A8A; }

/* ============================================================
   SCROLL / FADE-IN ENTRANCE
   ============================================================ */
.fade { opacity:0; transform:translateY(18px); }
.fade.in { animation:rise .8s ease forwards; }
@keyframes rise { to { opacity:1; transform:none; } }
.d1{animation-delay:.05s;} .d2{animation-delay:.18s;} .d3{animation-delay:.32s;}

/* ============================================================
   REDUCED MOTION
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
  .fade, .hero-photo, .dhero-photo { opacity:1 !important; transform:none !important; }
}

/* ============================================================
   EDITOR VISIBILITY — keep animated content visible while editing
   ============================================================ */
.editor-styles-wrapper .fade {
  opacity:1 !important; transform:none !important; animation:none !important; transition:none !important;
}

/* Slim coverage teaser (home + about) — full interactive map lives only on /coverage/ */
.cov-strip { display:flex; flex-wrap:wrap; align-items:center; gap:16px; margin-top:8px; }
.cov-pill { display:flex; flex-direction:column; gap:3px; padding:14px 22px; background:var(--surface);
  border:1px solid var(--grid-line); border-left:3px solid var(--gold); border-radius:4px; }
.cov-pill .reg-name { font-family:'Archivo',sans-serif; font-weight:800; font-size:1.05rem; color:var(--text); }
.cov-pill .reg-sub { font-family:'Archivo',sans-serif; font-weight:600; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-dark); }
.cov-link { font-family:'Archivo',sans-serif; font-weight:800; font-size:13px; letter-spacing:.1em; text-transform:uppercase; color:var(--energy); text-decoration:none; border-bottom:2px solid transparent; transition:color .2s,border-color .2s; }
.cov-link:hover { color:var(--safety); border-color:var(--gold); }
[data-theme="dark"] .cov-pill .reg-sub { color:var(--gold-soft); }
[data-theme="dark"] .cov-link { color:var(--gold-soft); }

/* ============================================================
   LANGUAGE SWITCHER (flag dropdown, inline in the header)
   ============================================================ */
.lang-switch { position:relative; display:inline-flex; }
.lang-toggle { display:inline-flex; align-items:center; gap:7px; cursor:pointer;
  background:transparent; border:1px solid rgba(11,46,99,.20); border-radius:7px; padding:6px 9px;
  font-family:'Archivo',sans-serif; font-weight:800; font-size:12px; letter-spacing:.06em; color:var(--primary);
  transition:border-color .2s,background .2s; }
.lang-toggle:hover { border-color:var(--gold); }
.lang-toggle .lang-code { line-height:1; }
.lang-toggle .lang-chev { width:14px; height:14px; transition:transform .2s; }
.lang-switch.open .lang-toggle .lang-chev { transform:rotate(180deg); }
.lang-switch .flag-wrap { display:inline-flex; line-height:0; }
.lang-switch .flag { width:22px; height:15px; border-radius:2px; display:block; box-shadow:0 0 0 1px rgba(11,46,99,.18); }
.lang-menu { position:absolute; top:calc(100% + 8px); right:0; min-width:172px; z-index:120;
  background:#fff; border:1px solid rgba(11,46,99,.15); border-radius:9px; padding:6px;
  box-shadow:0 18px 44px -14px rgba(8,30,69,.45); display:none; flex-direction:column; gap:2px; }
.lang-switch.open .lang-menu { display:flex; }
.lang-menu .lang-opt { display:flex; align-items:center; gap:11px; padding:9px 11px; border-radius:6px;
  font-family:'Archivo',sans-serif; font-weight:700; font-size:13px; letter-spacing:.02em; color:var(--primary);
  text-decoration:none; transition:background .15s; }
.lang-menu .lang-opt:hover { background:var(--bg); }
.lang-menu .lang-opt.active { color:var(--energy); }
@media (max-width:560px){ .lang-toggle { padding:5px 7px; } .lang-menu { min-width:160px; } }
