/* ==========================================================================
   Octaga Security Services — Site Stylesheet
   Shared across every page via header.php
   ========================================================================== */

:root{
  --blue-950:#071e2e;
  --blue-900:#0a2e47;
  --blue-800:#0d3f61;
  --blue-700:#0d5480;
  --blue:#0d67a4;
  --blue-500:#1478bb;
  --blue-100:#e1ecf4;
  --blue-50:#f3f8fb;
  --ink:#101820;
  --ink-soft:#3d4a55;
  --grey:#6b7680;
  --line:#e6ebee;
  --white:#ffffff;
  --radius:6px;
  --maxw:1240px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  color:var(--ink);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
}
h1,h2,h3,h4{
  font-family:'Manrope', 'Inter', sans-serif;
  margin:0;
  letter-spacing:-0.02em;
  color:var(--ink);
  font-weight:700;
}
p{margin:0;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
ul{margin:0; padding:0; list-style:none;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 40px;}
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family:'Inter', sans-serif; font-size:12.5px; font-weight:600;
  letter-spacing:0.14em; text-transform:uppercase; color:var(--blue);
}
.eyebrow::before{content:""; width:22px; height:1px; background:var(--blue);}
.eyebrow.on-dark{color:#8fc5e8;}
.eyebrow.on-dark::before{background:#8fc5e8;}
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:15px 30px; border-radius:2px; font-family:'Inter',sans-serif;
  font-weight:600; font-size:14.5px; letter-spacing:0.02em; cursor:pointer;
  border:1px solid transparent; transition:all .22s ease; white-space:nowrap;
}
.btn-primary{background:var(--blue); color:#fff;}
.btn-primary:hover{background:var(--blue-700); transform:translateY(-1px);}
.btn-outline{border-color:rgba(255,255,255,0.55); color:#fff;}
.btn-outline:hover{background:rgba(255,255,255,0.12); border-color:#fff;}
.btn-outline-dark{border-color:#c9d3d9; color:var(--ink);}
.btn-outline-dark:hover{border-color:var(--blue); color:var(--blue);}
.btn-ghost-blue{color:var(--blue); border-color:var(--blue);}
.btn-ghost-blue:hover{background:var(--blue); color:#fff;}

/* ---------- HEADER ---------- */
header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  background:rgba(255,255,255,0.0);
  transition:background .3s ease, box-shadow .3s ease, padding .3s ease;
  padding:22px 0;
}
header.scrolled{
  background:rgba(255,255,255,0.97);
  box-shadow:0 2px 24px rgba(10,30,50,0.08);
  padding:12px 0;
  backdrop-filter:blur(6px);
}
.nav-row{display:flex; align-items:center; justify-content:space-between;}
.logo-link img{height:34px; width:auto;}
.logo-link .lg-white{display:block;}
.logo-link .lg-blue{display:none;}
header.scrolled .logo-link .lg-white{display:none;}
header.scrolled .logo-link .lg-blue{display:block;}
nav.primary{display:flex; align-items:center; gap:38px;}
nav.primary a{
  font-size:14px; font-weight:500; color:#fff; position:relative; padding:4px 0;
  transition:color .2s ease;
}
header.scrolled nav.primary a{color:var(--ink-soft);}
nav.primary a:hover{color:#fff;}
header.scrolled nav.primary a:hover{color:var(--blue);}
nav.primary a.is-active{color:#7fc0ea;}
header.scrolled nav.primary a.is-active{color:var(--blue);}

.nav-item{position:relative; display:flex; align-items:center;}
.nav-item > a{display:flex; align-items:center; gap:6px;}
.nav-item .chev{transition:transform .2s ease;}
.nav-item:hover .chev, .nav-item:focus-within .chev{transform:rotate(180deg);}
.nav-dropdown{
  position:absolute; top:100%; left:0; margin-top:14px; min-width:200px;
  background:#fff; border:1px solid var(--line); border-radius:6px;
  box-shadow:0 16px 32px rgba(10,30,50,.12); padding:8px 0;
  opacity:0; visibility:hidden; transform:translateY(6px);
  transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
  z-index:60;
}
.nav-item:hover .nav-dropdown, .nav-item:focus-within .nav-dropdown{
  opacity:1; visibility:visible; transform:translateY(0);
}
.nav-item .nav-dropdown a{
  display:block; padding:11px 24px !important; margin:0; font-size:14px; font-weight:500;
  color:var(--ink) !important; white-space:nowrap;
}
.nav-item .nav-dropdown a:hover{background:var(--blue-50); color:var(--blue) !important;}

.nav-right{display:flex; align-items:center; gap:26px;}
.nav-phone{display:flex; align-items:center; gap:9px; font-size:14px; font-weight:600; color:#fff;}
header.scrolled .nav-phone{color:var(--ink);}
.nav-phone svg{flex-shrink:0;}
.nav-cta{background:#fff; color:var(--blue); padding:11px 22px; font-size:13.5px; font-weight:700; border-radius:2px;}
.nav-cta:hover{background:var(--blue); color:#fff;}
header.scrolled .nav-cta{background:var(--blue); color:#fff;}
header.scrolled .nav-cta:hover{background:var(--blue-700);}

/* ---------- HERO ---------- */
.hero{
  position:relative; min-height:100vh; display:flex; align-items:center;
  background:#0a2135;
  overflow:hidden;
  padding:0; /* override generic `section` padding below — hero manages its own spacing via .hero-inner */
}
.hero img.bg{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 68%;
}
.hero::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(7,20,32,.75) 0%, rgba(7,20,32,.55) 30%, rgba(7,20,32,.72) 72%, rgba(7,20,32,.94) 100%),
    linear-gradient(100deg, rgba(6,18,30,0.55) 0%, rgba(6,18,30,0.1) 45%);
}
.hero-inner{position:relative; z-index:2; padding-top:90px;}
.hero h1{
  color:#fff; font-size:clamp(38px, 5.4vw, 68px); line-height:1.05; margin:22px 0 24px;
  max-width:820px;
}
.hero h1 em{font-style:normal; color:#fff;}
.hero p.lede{
  color:rgba(255,255,255,0.82); font-size:18px; max-width:560px; margin-bottom:38px; font-weight:400;
  line-height:1.65;
}
.hero-ctas{display:flex; gap:16px; flex-wrap:wrap; margin-bottom:60px;}
.hero-foot{
  display:flex; align-items:center; gap:18px; padding-top:26px; border-top:1px solid rgba(255,255,255,0.16);
  max-width:640px; flex-wrap:wrap;
}
.hero-foot img{height:46px; width:auto; border-radius:3px;}
.hero-foot .txt{color:rgba(255,255,255,0.75); font-size:13.5px; line-height:1.5;}
.hero-foot .txt b{display:block; color:#fff; font-size:14.5px; font-weight:700;}
.scroll-cue{
  position:absolute; bottom:34px; left:50%; transform:translateX(-50%); z-index:2;
  color:rgba(255,255,255,0.55); font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  display:flex; flex-direction:column; align-items:center; gap:10px;
}
.scroll-cue .line{width:1px; height:34px; background:rgba(255,255,255,0.4); position:relative; overflow:hidden;}
.scroll-cue .line::after{content:""; position:absolute; top:-100%; left:0; width:100%; height:100%; background:#fff; animation:scrollLine 1.8s infinite;}
@keyframes scrollLine{0%{top:-100%;} 60%{top:100%;} 100%{top:100%;}}

/* ---------- PAGE HERO (inner pages) ---------- */
.page-hero{
  position:relative; padding:200px 0 90px; background:var(--blue-950); overflow:hidden;
}
.page-hero img.bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.34;}
.page-hero::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(7,20,32,.86), rgba(7,20,32,.94));}
.page-hero.photo-hero img.bg{opacity:1;}
.page-hero.photo-hero::after{background:linear-gradient(90deg, rgba(7,20,32,.88) 0%, rgba(7,20,32,.55) 45%, rgba(7,20,32,.15) 100%), linear-gradient(180deg, rgba(7,20,32,.25), rgba(7,20,32,.55));}
.page-hero .inner{position:relative; z-index:2;}
.page-hero h1{color:#fff; font-size:clamp(32px,4.4vw,52px); margin:16px 0 0;}
.breadcrumb{position:relative; z-index:2; display:flex; gap:8px; font-size:13px; color:rgba(255,255,255,0.55); margin-top:18px;}
.breadcrumb a{color:rgba(255,255,255,0.55);}
.breadcrumb a:hover{color:#fff;}

/* ---------- STATS BAR ---------- */
.stats{background:var(--white); border-bottom:1px solid var(--line); padding:0;} /* override generic `section` padding — .stats-grid below handles its own spacing */
.stats-grid{
  display:grid; grid-template-columns:repeat(4,1fr);
  padding:52px 0;
}
.stat{text-align:center; border-left:1px solid var(--line); padding:0 20px;}
.stat:first-child{border-left:none;}
.stat .num{font-family:'Manrope',sans-serif; font-size:40px; font-weight:800; color:var(--blue); line-height:1;}
.stat .lbl{margin-top:10px; font-size:13.5px; color:var(--grey); font-weight:500; letter-spacing:.01em;}

/* ---------- SECTION HELPERS ---------- */
section{padding:110px 0;}
.section-head{max-width:640px; margin-bottom:60px;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.section-head h2{font-size:clamp(28px,3.4vw,42px); margin:16px 0 18px; line-height:1.15;}
.section-head p{color:var(--ink-soft); font-size:16.5px;}
.bg-tint{background:var(--blue-50);}

/* ---------- LOGOS ---------- */
.logos-strip{padding:80px 0;}
.logos-head{display:flex; align-items:baseline; justify-content:space-between; margin-bottom:42px; flex-wrap:wrap; gap:14px;}
.logos-head h3{font-size:15px; font-weight:600; text-transform:uppercase; letter-spacing:.1em; color:var(--ink-soft); font-family:'Inter',sans-serif;}
.logo-grid{
  display:grid; grid-template-columns:repeat(6,1fr); gap:1px;
  background:var(--line); border:1px solid var(--line);
}
.logo-card{
  background:#fff; aspect-ratio:16/9; display:flex; align-items:center; justify-content:center; padding:26px;
  transition:background .2s ease;
}
.logo-card:hover{background:var(--blue-50);}
.logo-card img{max-height:38px; max-width:100%; width:auto; object-fit:contain; filter:grayscale(0); opacity:1; transition:all .25s ease;}
.logo-card:hover img{filter:grayscale(1); opacity:.72;}
.logo-card.enlarge img{max-height:56px;}
.sector-tile{aspect-ratio:auto; flex-direction:column; justify-content:flex-start; gap:16px; padding:34px 18px 30px; text-align:center; color:var(--ink); position:relative; transition:background .25s ease, color .25s ease;}
.sector-tile::after{content:""; position:absolute; left:50%; bottom:0; width:0; height:3px; background:var(--blue); transition:width .3s ease, left .3s ease;}
.sector-tile .st-icon{width:60px; height:60px; border-radius:50%; background:var(--blue-50); color:var(--blue); display:flex; align-items:center; justify-content:center; transition:all .3s ease;}
.sector-tile .st-label{font-family:'Manrope',sans-serif; font-weight:700; font-size:14.5px; line-height:1.3; min-height:2.6em; display:flex; align-items:flex-start; justify-content:center;}
.sector-tile:hover{background:#fff;}
.sector-tile:hover .st-icon{background:var(--blue); color:#fff; transform:translateY(-3px); box-shadow:0 10px 22px rgba(13,103,164,.25);}
.sector-tile:hover .st-label{color:var(--blue);}
.sector-tile:hover::after{width:100%; left:0;}

/* ---------- SERVICES ---------- */
.services-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.svc-card{background:#fff; padding:44px 38px; transition:background .25s ease;}
.svc-card:hover{background:var(--blue-50);}
.svc-num{font-family:'Manrope',sans-serif; font-size:14px; font-weight:800; color:var(--blue); letter-spacing:.06em;}
.svc-card h4{font-size:21px; margin:20px 0 12px;}
.svc-card p{color:var(--ink-soft); font-size:15px;}
.lrn{display:inline-flex; align-items:center; gap:6px; font-size:13.5px; font-weight:600; color:var(--blue);}
.lrn:hover{color:var(--blue-700);}
.svc-card .lrn{margin-top:20px;}

/* services-grid.four-col — same tile styling as the original 3-col
   .services-grid/.svc-card, just widened to 4 columns for the 8-service list */
.services-grid.four-col{grid-template-columns:repeat(4, 1fr);}
.svc-card h4 a:hover{color:var(--blue);}

/* ---------- FEATURE SPLIT ---------- */
.feature{display:grid; grid-template-columns:1fr 1fr; align-items:stretch; min-height:560px;}
.feature .media{position:relative; overflow:hidden; background:#0a2135;}
.feature .media img{width:100%; height:100%; object-fit:cover; position:absolute; inset:0;}
.feature .media.placeholder{background:linear-gradient(135deg, var(--blue-950), var(--blue-700)); display:flex; align-items:center; justify-content:center;}
.content-split .img-wrap.placeholder{display:flex; align-items:center; justify-content:center;}
.ph-label{font-family:'Manrope',sans-serif; font-size:11.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.55); border:1px solid rgba(255,255,255,.3); border-radius:999px; padding:9px 20px;}

/* ---------- TEAM ---------- */
.team-dept{margin:70px 0 0;}
.team-dept:first-child{margin-top:0;}
.team-dept h3{font-family:'Manrope',sans-serif; font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--blue); margin-bottom:28px; padding-bottom:14px; border-bottom:1px solid var(--line);}
.team-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:32px;}
.team-grid.leadership{grid-template-columns:repeat(2,1fr); max-width:560px;}
.team-card{text-align:center; cursor:pointer; border-radius:8px; padding:12px; margin:-12px; transition:background .2s ease, transform .2s ease;}
.team-card:hover{background:var(--blue-50); transform:translateY(-3px);}
.team-card:focus-visible{outline:2px solid var(--blue); outline-offset:2px;}
.team-photo{position:relative; aspect-ratio:1/1; border-radius:6px; overflow:hidden; background:linear-gradient(135deg, var(--blue-950), var(--blue-700)); display:flex; align-items:center; justify-content:center; margin-bottom:18px;}
.team-photo img{width:100%; height:100%; object-fit:cover; position:absolute; inset:0;}
.team-card h4{font-size:16.5px; margin-bottom:4px;}
.team-card p{font-size:13.5px; color:var(--ink-soft); margin:0;}
.team-card .bio-cta{display:inline-block; margin-top:10px; font-size:12px; font-weight:700; letter-spacing:.03em; color:var(--blue);}
@media (max-width:900px){.team-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.team-grid{grid-template-columns:1fr; max-width:280px; margin-left:auto; margin-right:auto;} .team-grid.leadership{max-width:280px;}}

/* ---------- BIO MODAL ---------- */
.bio-modal{position:fixed; inset:0; z-index:300; display:none; align-items:center; justify-content:center; padding:28px;}
.bio-modal.is-open{display:flex;}
.bio-modal-backdrop{position:absolute; inset:0; background:rgba(7,20,32,.75);}
.bio-modal-panel{
  position:relative; background:#fff; border-radius:10px; max-width:780px; width:100%; max-height:86vh;
  overflow-y:auto; display:grid; grid-template-columns:240px 1fr; box-shadow:0 30px 70px rgba(0,0,0,.35);
}
.bio-modal-photo{position:relative; background:#0a2135; min-height:260px;}
.bio-modal-photo img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.bio-modal-body{padding:46px 44px;}
.bio-modal-body .role{color:var(--blue); font-weight:600; font-size:14px; margin:10px 0 22px;}
.bio-modal-body h3{font-size:26px; margin:0;}
.bio-modal-body p{color:var(--ink-soft); font-size:15px; line-height:1.7; margin-bottom:14px;}
.bio-modal-body p:last-child{margin-bottom:0;}
.bio-modal-close{
  position:absolute; top:16px; right:16px; width:38px; height:38px; border-radius:50%; background:#fff;
  border:1px solid var(--line); font-size:20px; line-height:1; cursor:pointer; color:var(--ink);
  display:flex; align-items:center; justify-content:center; z-index:2; box-shadow:0 4px 12px rgba(0,0,0,.1);
}
.bio-modal-close:hover{background:var(--blue-50); color:var(--blue);}
body.modal-open{overflow:hidden;}
@media (max-width:700px){
  .bio-modal{padding:0;}
  .bio-modal-panel{grid-template-columns:1fr; max-height:100vh; height:100%; border-radius:0;}
  .bio-modal-photo{min-height:220px;}
  .bio-modal-body{padding:36px 26px 48px;}
}
.feature .copy{padding:80px 70px; display:flex; flex-direction:column; justify-content:center; background:#fff;}
.feature .copy h3{font-size:clamp(26px,3vw,36px); margin:16px 0 20px; line-height:1.15;}
.feature .copy p.desc{color:var(--ink-soft); font-size:16px; margin-bottom:26px;}
.flist li{display:flex; align-items:flex-start; gap:12px; padding:10px 0; border-top:1px solid var(--line); font-size:14.5px; color:var(--ink-soft);}
.flist li:first-child{border-top:none;}
.flist svg{flex-shrink:0; margin-top:3px;}
.feature .flist{margin-bottom:32px;}
.flist.plain li{border-top:none; padding:8px 0;}
.feature.reverse{grid-template-columns:1fr 1fr;}
.feature.reverse .media{order:2;}
.feature.reverse .copy{order:1;}

/* ---------- AWARDS ---------- */
.awards-quote{font-family:'Manrope',sans-serif; font-size:21px; line-height:1.55; color:var(--ink); font-weight:500; max-width:720px; margin:0 auto;}
.awards-quote .who{display:block; margin-top:22px; font-family:'Inter',sans-serif; font-size:14px; font-weight:600; color:var(--grey);}
.award-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:48px;}
.award-card{border:1px solid var(--line); background:#fff; overflow:hidden; border-radius:var(--radius); display:flex; flex-direction:column; transition:box-shadow .2s ease, transform .2s ease;}
.award-card:hover{box-shadow:0 20px 40px rgba(10,30,50,.1); transform:translateY(-3px);}
.award-card .img-frame{height:230px; background:var(--blue-50); display:flex; align-items:center; justify-content:center; padding:28px;}
.award-card .img-frame img{max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; display:block;}
.award-card .cap{padding:22px 24px 26px;}
.award-card .cap .tag{font-size:11.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--blue);}
.award-card .cap h4{font-size:17px; margin-top:8px; line-height:1.35;}

/* ---------- HERITAGE ---------- */
.heritage{background:var(--blue-950); color:#fff; position:relative; overflow:hidden;}
.heritage::before{
  content:""; position:absolute; top:0; right:-10%; width:60%; height:100%;
  background:radial-gradient(ellipse at center, rgba(20,120,187,0.28) 0%, rgba(20,120,187,0) 65%);
}
.heritage .wrap{position:relative; z-index:1;}
.heritage h2{color:#fff; font-size:clamp(30px,3.8vw,48px); line-height:1.12; margin-top:16px;}
.heritage-grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:80px; align-items:start; margin-top:48px; padding-top:48px; border-top:1px solid rgba(255,255,255,0.12);}
.heritage blockquote{
  font-family:'Manrope',sans-serif; font-size:clamp(22px,2.3vw,29px); line-height:1.45; font-weight:500; color:#fff;
  margin:0; padding-left:26px; border-left:2px solid var(--blue-500);
}
.heritage p{color:rgba(255,255,255,0.72); font-size:16px; line-height:1.75; margin-bottom:18px;}
.heritage .h-ctas{display:flex; gap:16px; margin-top:32px; flex-wrap:wrap;}

/* ---------- CONTENT SPLIT (text + image, reusable for service page overviews) ---------- */
.content-split{display:grid; grid-template-columns:1.05fr .95fr; gap:64px; align-items:start;}
.content-split .eyebrow{margin-bottom:16px;}
.content-split h2{font-size:clamp(28px,3.4vw,40px); line-height:1.15; margin-bottom:22px;}
.content-split p{color:var(--ink-soft); font-size:16px; line-height:1.75; margin-bottom:18px; max-width:560px;}
.content-split p:last-child{margin-bottom:0;}
.content-split .img-wrap{position:relative; border-radius:6px; overflow:hidden; aspect-ratio:4/5; background:linear-gradient(135deg, var(--blue-950), var(--blue-700)); display:flex; align-items:center; justify-content:center;}
.content-split .img-wrap img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
@media (max-width: 900px){
  .content-split{grid-template-columns:1fr; gap:32px;}
  .content-split .img-wrap{aspect-ratio:16/10; order:-1;}
  .content-split .img-wrap.portrait{aspect-ratio:4/5;}
}

/* ---------- CALLOUT (reusable highlight block for service pages) ---------- */
.callout{background:var(--blue-50); border-radius:4px; padding:44px 48px; display:grid; grid-template-columns:auto 1fr; gap:36px; align-items:center;}
.callout .callout-stat{font-family:'Manrope',sans-serif; font-size:46px; font-weight:800; color:var(--blue); line-height:1; white-space:nowrap;}
.callout .callout-stat span{display:block; font-size:11.5px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft); margin-top:10px; white-space:normal; max-width:140px;}
.callout h4{font-size:19px; margin-bottom:10px;}
.callout p{font-size:15px; color:var(--ink-soft); line-height:1.65; margin:0;}
@media (max-width: 700px){
  .callout{grid-template-columns:1fr; text-align:left;}
}

/* ---------- ACCREDITATIONS ---------- */
.accred-strip{padding:70px 0; border-top:1px solid var(--line);}
.accred-row{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:40px;}
.accred-row img{height:56px; width:auto; object-fit:contain; filter:grayscale(0); opacity:1; transition:filter .25s ease, opacity .25s ease;}
.accred-row img:hover{filter:grayscale(1); opacity:.72;}

/* ---------- ACCREDITATION DETAIL BLOCKS ---------- */
.accred-block{
  display:grid; grid-template-columns:320px 1fr; border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden; background:#fff; margin-bottom:24px;
}
.accred-block .logo-panel{
  background:var(--blue-50); display:flex; align-items:center; justify-content:center;
  padding:44px; min-height:100%;
}
.accred-block .logo-panel img{max-width:100%; max-height:130px; width:auto; height:auto; object-fit:contain;}
.accred-block .copy{padding:40px 46px; display:flex; flex-direction:column; justify-content:center;}
.accred-block .copy h3{font-size:22px; margin-bottom:14px; line-height:1.25;}
.accred-block .copy p{color:var(--ink-soft); font-size:15px; line-height:1.7; margin-bottom:14px;}
.accred-block .copy p:last-of-type{margin-bottom:0;}
.accred-meta{display:flex; flex-wrap:wrap; gap:8px 28px; margin:6px 0 20px; padding-top:16px; border-top:1px solid var(--line); font-size:13px; color:var(--grey);}
.accred-meta strong{color:var(--ink); font-weight:600;}
.accred-actions{display:flex; gap:14px; flex-wrap:wrap; margin-top:4px;}
.accred-actions .btn{padding:11px 22px; font-size:13.5px;}
.accred-block.reverse{grid-template-columns:1fr 320px;}
.accred-block.reverse .logo-panel{order:2;}
.accred-block.reverse .copy{order:1;}

.cred-mini-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;}
.cred-mini{background:#fff; padding:36px 32px; display:flex; flex-direction:column;}
.cred-mini .logo-box{height:88px; display:flex; align-items:center; justify-content:flex-start; margin-bottom:20px;}
.cred-mini .logo-box img{max-height:100%; max-width:150px; width:auto; height:auto; object-fit:contain;}
.cred-mini .logo-box.placeholder{border:1px dashed var(--line); border-radius:4px; padding:0 16px; justify-content:center; font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--grey); text-align:center;}
.cred-mini h4{font-size:16.5px; margin-bottom:10px;}
.cred-mini p{color:var(--ink-soft); font-size:14px; line-height:1.65; margin-bottom:14px; flex-grow:1;}
.cred-mini a.lrn{font-size:13.5px;}

@media (max-width:900px){
  .accred-block, .accred-block.reverse{grid-template-columns:1fr;}
  .accred-block .logo-panel, .accred-block.reverse .logo-panel{order:1; padding:36px; min-height:180px;}
  .accred-block .copy, .accred-block.reverse .copy{order:2; padding:32px 28px;}
  .cred-mini-grid{grid-template-columns:1fr;}
}

/* ---------- CTA ---------- */
.cta-band{background:linear-gradient(120deg, var(--blue-900), var(--blue-700)); color:#fff; padding:90px 0;}
.cta-inner{display:flex; align-items:center; justify-content:space-between; gap:40px; flex-wrap:wrap;}
.cta-inner h2{color:#fff; font-size:clamp(26px,3.4vw,38px); max-width:560px; line-height:1.2;}
.cta-inner p{color:rgba(255,255,255,0.78); margin-top:14px; font-size:16px; max-width:520px;}
.cta-actions{display:flex; align-items:center; gap:22px; flex-wrap:wrap;}
.cta-phone{display:flex; align-items:center; gap:12px; color:#fff; font-family:'Manrope',sans-serif; font-weight:700; font-size:19px;}
.cta-phone .ic{width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,0.14); display:flex; align-items:center; justify-content:center; flex-shrink:0;}

/* ---------- FOOTER ---------- */
footer{background:var(--blue-950); color:rgba(255,255,255,0.7); padding:80px 0 0;}
.foot-grid{display:grid; grid-template-columns:1.5fr 1.1fr 1fr 1fr 1fr; gap:40px; padding-bottom:60px; border-bottom:1px solid rgba(255,255,255,0.1);}
.foot-brand img{height:30px; margin-bottom:22px;}
.foot-brand p{font-size:14px; line-height:1.7; max-width:300px; color:rgba(255,255,255,0.55);}
.foot-social{display:flex; gap:12px; margin-top:24px;}
.foot-social a{width:36px; height:36px; border-radius:50%; border:1px solid rgba(255,255,255,0.2); display:flex; align-items:center; justify-content:center; transition:all .2s ease;}
.foot-social a:hover{background:var(--blue-500); border-color:var(--blue-500);}
.foot-col h5{color:#fff; font-size:14px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; margin-bottom:22px; font-family:'Inter',sans-serif;}
.foot-col ul li{margin-bottom:13px;}
.foot-col a{font-size:14.5px; color:rgba(255,255,255,0.62); transition:color .2s ease;}
.foot-col a:hover{color:#fff;}
.foot-col p{font-size:14.5px; color:rgba(255,255,255,0.62); line-height:1.7;}
.foot-bottom{display:flex; align-items:center; justify-content:space-between; padding:26px 0; font-size:13px; color:rgba(255,255,255,0.45); flex-wrap:wrap; gap:12px;}
.foot-bottom .links{display:flex; gap:10px 24px; flex-wrap:wrap;}
.foot-bottom a{color:rgba(255,255,255,0.45);}
.foot-bottom a:hover{color:#fff;}

/* ---------- CONTACT ---------- */
.contact-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:64px; align-items:start;}
.contact-form{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
.contact-form .field.full{grid-column:1/-1;}
.field label{display:block; font-size:13px; font-weight:600; color:var(--ink); margin-bottom:8px;}
.field input, .field select, .field textarea{
  width:100%; padding:13px 16px; border:1px solid var(--line); border-radius:4px;
  font-family:'Inter',sans-serif; font-size:14.5px; color:var(--ink); background:#fff;
  transition:border-color .2s ease;
}
.field input:focus, .field select:focus, .field textarea:focus{outline:none; border-color:var(--blue);}
.field textarea{resize:vertical; min-height:130px;}
.field.hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}
.form-note{font-size:13px; color:var(--grey); margin-top:14px;}
.form-alert{padding:16px 20px; border-radius:4px; font-size:14.5px; margin-bottom:26px; grid-column:1/-1;}
.form-alert.success{background:#e7f4ea; color:#1c6b34; border:1px solid #b9e0c4;}
.form-alert.error{background:#fbeaea; color:#a4292c; border:1px solid #f0c1c2;}

.contact-info{background:var(--blue-950); border-radius:6px; padding:48px 44px; color:#fff;}
.contact-info h4{color:#fff; font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; margin-bottom:10px; opacity:.7;}
.contact-info .big-num{display:block; font-family:'Manrope',sans-serif; font-size:26px; font-weight:800; color:#fff; margin-bottom:6px;}
.contact-info .info-block{margin-bottom:32px;}
.contact-info .info-block:last-child{margin-bottom:0;}
.contact-info a{color:#fff;}
.contact-info a:hover{color:#8fc5e8;}

.office-grid{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); margin-top:40px;}
.office-card{background:#fff; padding:44px 40px;}
.office-card h4{font-size:20px; margin-bottom:18px;}
.office-card address{font-style:normal; color:var(--ink-soft); font-size:15px; line-height:1.7; margin-bottom:18px;}
.office-card .office-phone{display:inline-flex; align-items:center; gap:8px; font-weight:600; color:var(--blue); font-size:15px;}
.map-embed{margin-top:24px; border-radius:4px; overflow:hidden; border:1px solid var(--line);}
.map-embed iframe{display:block; width:100%; height:220px; border:0;}

@media (max-width: 980px){
  .wrap{padding:0 24px;}
  nav.primary{display:none;}
  .stats-grid{grid-template-columns:repeat(2,1fr); row-gap:30px;}
  .stat:nth-child(3){border-left:none;}
  .logo-grid{grid-template-columns:repeat(3,1fr);}
  .services-grid, .services-grid.four-col{grid-template-columns:repeat(2,1fr);}
  .feature, .feature.reverse{grid-template-columns:1fr;}
  .feature .media{height:320px;}
  .feature.reverse .media{order:1;}
  .feature.reverse .copy{order:2;}
  .feature .copy{padding:56px 28px;}
  .award-cards{grid-template-columns:repeat(2,1fr);}
  .heritage-grid{grid-template-columns:1fr; gap:32px; margin-top:32px; padding-top:32px;}
  .cta-inner{flex-direction:column; align-items:flex-start;}
  .foot-grid{grid-template-columns:1fr 1fr; row-gap:40px;}
  section{padding:72px 0;}
  .contact-grid{grid-template-columns:1fr;}
  .contact-form{grid-template-columns:1fr;}
  .contact-form .field{grid-column:1/-1;}
  .office-grid{grid-template-columns:1fr;}
}
@media (max-width: 560px){
  .stats-grid{grid-template-columns:1fr 1fr;}
  .logo-grid{grid-template-columns:repeat(2,1fr);}
  .services-grid, .services-grid.four-col{grid-template-columns:1fr;}
  .award-cards{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr;}
  .hero h1{font-size:34px;}
}

/* ==========================================================================
   Case study section (service pages)
   Image sticks beside the copy on desktop; longer studies fold the rest of
   the text into a native <details> "Read the full case study" toggle.
   ========================================================================== */
.case-study{border-top:1px solid var(--line);}
.cs-grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:72px; align-items:start;}
.cs-media{position:sticky; top:110px; border-radius:var(--radius); overflow:hidden; aspect-ratio:3/2; background:linear-gradient(135deg, var(--blue-950), var(--blue-700));}
.cs-media img{width:100%; height:100%; object-fit:cover;}
.cs-copy h2{font-size:clamp(28px,3.4vw,40px); line-height:1.15; margin:16px 0 26px;}
.cs-copy h3{font-size:19px; line-height:1.3; margin:34px 0 12px; color:var(--blue);}
.cs-copy p{color:var(--ink-soft); font-size:16px; line-height:1.75; margin-bottom:18px;}
.cs-copy p.cs-lead{color:var(--ink); font-size:17.5px;}
.cs-more{margin-top:6px;}
.cs-more summary{
  display:inline-flex; align-items:center; gap:10px; cursor:pointer; list-style:none;
  font-weight:600; font-size:14.5px; color:var(--blue); padding:10px 0; user-select:none;
}
.cs-more summary::-webkit-details-marker{display:none;}
.cs-more summary::before{
  content:"+"; display:inline-flex; align-items:center; justify-content:center;
  width:24px; height:24px; border:1px solid var(--blue); border-radius:50%;
  font-size:16px; line-height:1; transition:transform .2s ease;
}
.cs-more[open] summary::before{content:"\2212";}
.cs-more summary:hover{color:var(--blue-700);}
.cs-more[open] summary{margin-bottom:14px;}
.cs-more .cs-less{display:none;}
.cs-more[open] .cs-less{display:inline;}
.cs-more[open] .cs-read{display:none;}
@media (max-width: 900px){
  .cs-grid{grid-template-columns:1fr; gap:36px;}
  .cs-media{position:relative; top:auto; aspect-ratio:16/10;}
}

/* Land anchor links (e.g. /tscm/#case-study) below the fixed header */
.case-study{scroll-margin-top:80px;}
.sector-card{scroll-margin-top:110px;}
.sector-card:target{background:var(--blue-50); box-shadow:inset 0 -3px 0 var(--blue);}

/* ==========================================================================
   Sectors page
   ========================================================================== */
.sector-card{display:flex; flex-direction:column;}
.sector-links{margin-top:auto; padding-top:22px;}
.sector-links li{border-top:1px solid var(--line); padding:12px 0 0; margin-top:12px;}
.sector-links li:first-child{margin-top:0;}
.sector-links a{display:block; font-size:14px; font-weight:600; color:var(--ink); line-height:1.4; transition:color .2s ease;}
.sector-links a:hover{color:var(--blue);}
.sector-links a span{display:block; font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--blue); margin-bottom:3px;}
.sector-links a::after{content:" \2192"; color:var(--blue);}
.sector-card p{margin-bottom:0;}

/* Case study gallery cards */
.cs-cards{display:grid; grid-template-columns:repeat(4,1fr); gap:24px;}
.cs-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column; transition:box-shadow .25s ease, transform .25s ease;}
.cs-card:hover{box-shadow:0 14px 40px rgba(10,30,50,0.10); transform:translateY(-3px);}
.cs-card .thumb{aspect-ratio:3/2; overflow:hidden; background:var(--blue-900);}
.cs-card .thumb img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
.cs-card:hover .thumb img{transform:scale(1.04);}
.cs-card .body{padding:22px 22px 26px; display:flex; flex-direction:column; flex:1;}
.cs-card .tag{font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--blue);}
.cs-card h4{font-size:18px; line-height:1.3; margin:10px 0 18px;}
.cs-card .lrn{margin-top:auto;}
@media (max-width: 980px){ .cs-cards{grid-template-columns:repeat(2,1fr);} }
@media (max-width: 560px){ .cs-cards{grid-template-columns:1fr;} }

/* Four-across award cards (About page) - reuses the homepage award-card style */
.award-cards.four{grid-template-columns:repeat(4,1fr); gap:24px; margin-top:20px;}
.award-cards.four .img-frame{height:200px; padding:22px;}
.award-card .cap p{color:var(--grey); font-size:13.5px; margin-top:8px;}
@media (max-width: 980px){ .award-cards.four{grid-template-columns:repeat(2,1fr);} }
@media (max-width: 560px){ .award-cards.four{grid-template-columns:1fr;} }

/* ---------- LEGAL / POLICY PAGES ---------- */
.legal{max-width:820px; margin:0 auto;}
.legal h2{font-size:clamp(21px,2.2vw,26px); margin:44px 0 14px; line-height:1.25;}
.legal h2:first-child{margin-top:0;}
.legal p{color:var(--ink-soft); font-size:16px; line-height:1.75; margin:0 0 16px;}
.legal ul{list-style:disc; padding-left:22px; margin:0 0 18px;}
.legal li{color:var(--ink-soft); font-size:16px; line-height:1.7; margin-bottom:8px;}
.legal a{color:var(--blue); text-decoration:underline; text-underline-offset:2px;}
.legal .legal-download{margin:0 0 32px;}
.legal .legal-download a{display:inline-flex; align-items:center; gap:10px; padding:12px 20px; border:1.5px solid var(--blue); border-radius:var(--radius); font-weight:600; font-size:14.5px; text-decoration:none; color:var(--blue); transition:all .2s ease;}
.legal .legal-download a:hover{background:var(--blue); color:#fff;}
.legal .legal-meta{font-size:13.5px; border-top:1px solid var(--line); padding-top:18px; margin-top:44px;}
.legal-table-wrap{overflow-x:auto; margin:8px 0 24px; border:1px solid var(--line); border-radius:var(--radius);}
.legal-table{width:100%; border-collapse:collapse; font-size:14.5px; min-width:640px;}
.legal-table th{background:var(--blue-50); text-align:left; padding:12px 14px; font-weight:700; color:var(--ink);}
.legal-table td{padding:12px 14px; border-top:1px solid var(--line); color:var(--ink-soft); vertical-align:top; line-height:1.55;}

/* ---------- CORPORATE RESPONSIBILITY ---------- */
.cr-cols{display:grid; grid-template-columns:1fr 1fr; gap:0 48px; max-width:1000px; margin:0 auto;}
.cr-single{max-width:720px; margin:36px auto 0;}
.cr-single h4{margin-bottom:12px;}
.section-head p + p{margin-top:14px;}
@media (max-width:760px){ .cr-cols{grid-template-columns:1fr;} }

/* ---------- COOKIE BANNER ---------- */
.cookie-banner{position:fixed; left:20px; right:20px; bottom:20px; z-index:2000; max-width:1040px; margin:0 auto; background:var(--blue-950); color:#fff; border-radius:var(--radius); box-shadow:0 18px 50px rgba(0,0,0,.35); padding:22px 26px; display:none; gap:28px; align-items:center; border-top:3px solid var(--blue-500);}
.cookie-banner.is-visible{display:flex;}
.cookie-text strong{display:block; font-family:'Manrope',sans-serif; font-size:15.5px; margin-bottom:4px;}
.cookie-text p{font-size:14px; line-height:1.6; color:rgba(255,255,255,.8); margin:0;}
.cookie-text a{color:#fff; text-decoration:underline;}
.cookie-actions{display:flex; gap:10px; flex-shrink:0;}
.cookie-btn{font:600 14px 'Inter',sans-serif; padding:12px 26px; border-radius:var(--radius); cursor:pointer; border:1.5px solid #fff; transition:all .2s ease; min-width:110px;}
.cookie-reject{background:transparent; color:#fff;}
.cookie-reject:hover{background:rgba(255,255,255,.12);}
.cookie-accept{background:#fff; color:var(--blue-950);}
.cookie-accept:hover{background:var(--blue-100);}
@media (max-width:720px){
  .cookie-banner{flex-direction:column; align-items:stretch; gap:16px; left:12px; right:12px; bottom:12px; padding:18px;}
  .cookie-actions .cookie-btn{flex:1;}
}

/* ---------- AREAS WE COVER ---------- */
.area-towns{margin-top:30px; padding-top:26px; border-top:1px solid var(--line);}
.area-towns h4{font-size:15px; margin-bottom:14px;}
.town-list{display:flex; flex-wrap:wrap; gap:8px;}
.town-list li{background:var(--blue-50); color:var(--blue-800); border:1px solid var(--blue-100); border-radius:40px; padding:7px 14px; font-size:13.5px; font-weight:600;}
.area-why{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start;}
.area-why h2{font-size:clamp(26px,3vw,36px); margin:14px 0 22px; line-height:1.2;}
.area-national{margin-top:26px; color:var(--ink-soft); font-size:15px; line-height:1.9;}
.area-national a{color:var(--blue); font-weight:600;}
.area-chip{display:inline-block; border:1px solid var(--blue); border-radius:40px; padding:3px 12px; margin:0 4px; font-size:13.5px;}
.faq-list h3{font-size:22px; margin-bottom:18px;}
.faq{border:1px solid var(--line); border-radius:var(--radius); margin-bottom:12px; background:#fff;}
.faq summary{cursor:pointer; list-style:none; padding:18px 52px 18px 20px; font-weight:700; font-size:15.5px; position:relative; color:var(--ink);}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+"; position:absolute; right:20px; top:50%; transform:translateY(-50%); font-size:22px; font-weight:400; color:var(--blue);}
.faq[open] summary::after{content:"\2212";}
.faq p{padding:0 20px 18px; color:var(--ink-soft); font-size:15px; line-height:1.7;}
.owner-note{background:#fff8d6; border:1px dashed #d9b400; color:#5c4b00; border-radius:var(--radius); padding:14px 18px; font-size:14px; line-height:1.6; margin:40px 0 0;}
.area-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:48px;}
.area-card{display:flex; flex-direction:column; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:#fff; transition:box-shadow .2s ease, transform .2s ease;}
.area-card:hover{box-shadow:0 14px 34px rgba(10,30,50,.12); transform:translateY(-3px);}
.area-card-img{aspect-ratio:16/9; overflow:hidden; background:var(--blue-900);}
.area-card-img img{width:100%; height:100%; object-fit:cover;}
.area-card-body{padding:24px 24px 26px; display:flex; flex-direction:column; gap:8px; flex:1;}
.area-card-body .tag, .office-card .tag{font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--blue);}
.area-card-body h4{font-size:21px;}
.area-card-body p{color:var(--ink-soft); font-size:14.5px; line-height:1.6; flex:1;}
.area-offices{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.office-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:30px 28px;}
.office-card h4{font-size:22px; margin:8px 0 12px;}
.office-card p{color:var(--ink-soft); font-size:15px; line-height:1.65; margin-bottom:6px;}
.office-card a{color:var(--blue); font-weight:600;}
.office-card .covers{margin-top:12px; padding-top:12px; border-top:1px solid var(--line); font-size:14px;}
@media (max-width:980px){ .area-cards, .area-offices{grid-template-columns:repeat(2,1fr);} .area-why{grid-template-columns:1fr; gap:44px;} }
@media (max-width:620px){ .area-cards, .area-offices{grid-template-columns:1fr;} }

/* ---------- MOBILE MENU ---------- */
.nav-toggle{display:none; width:44px; height:44px; border:0; background:transparent; cursor:pointer; flex-direction:column; align-items:center; justify-content:center; gap:5px; padding:0;}
.nav-toggle span{display:block; width:24px; height:2px; background:#fff; border-radius:2px; transition:transform .25s ease, opacity .2s ease, background .2s ease;}
header.scrolled .nav-toggle span, header.menu-open .nav-toggle span{background:var(--ink);}
header.menu-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg);}
header.menu-open .nav-toggle span:nth-child(2){opacity:0;}
header.menu-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.mobile-menu{display:none;}
@media (max-width: 1320px) and (min-width: 1101px){
  nav.primary{gap:26px;}
  .nav-phone-text{display:none;}
  .nav-phone{width:40px; height:40px; justify-content:center; border:1px solid rgba(255,255,255,.4); border-radius:50%;}
  header.scrolled .nav-phone{border-color:var(--line);}
}
@media (max-width: 1100px){
  nav.primary{display:none;}
  .nav-toggle{display:flex;}
  .nav-right{gap:14px;}
  .nav-phone-text{display:none;}
  .nav-phone{width:40px; height:40px; justify-content:center; border:1px solid rgba(255,255,255,.4); border-radius:50%;}
  header.scrolled .nav-phone, header.menu-open .nav-phone{border-color:var(--line); color:var(--ink);}
  header.menu-open{background:#fff; box-shadow:0 2px 24px rgba(10,30,50,0.08); z-index:2100;}
  header.menu-open .logo-link .lg-white{display:none;}
  header.menu-open .logo-link .lg-blue{display:block;}
  header.menu-open .nav-cta{background:var(--blue); color:#fff;}
  .mobile-menu{display:block; position:absolute; top:100%; left:0; right:0; background:#fff; max-height:0; overflow:hidden; visibility:hidden; transition:max-height .3s ease, visibility 0s linear .3s;}
  header.menu-open .mobile-menu{max-height:calc(100vh - 70px); overflow-y:auto; visibility:visible; border-top:1px solid var(--line); box-shadow:0 18px 30px rgba(10,30,50,.12); transition:max-height .3s ease, visibility 0s;}
  .mobile-menu nav{display:flex; flex-direction:column; padding-top:8px; padding-bottom:24px;}
  .mobile-menu nav > a, .mobile-menu summary{display:block; padding:15px 0; font-family:'Manrope',sans-serif; font-weight:700; font-size:17px; color:var(--ink); border-bottom:1px solid var(--line); cursor:pointer; list-style:none; position:relative;}
  .mobile-menu summary::-webkit-details-marker{display:none;}
  .mobile-menu summary::after{content:"+"; position:absolute; right:4px; top:50%; transform:translateY(-50%); font-weight:400; font-size:22px; color:var(--blue);}
  .mobile-menu details[open] summary::after{content:"\2212";}
  .mm-sub{display:flex; flex-direction:column; padding:6px 0 10px 14px; border-bottom:1px solid var(--line);}
  .mm-sub a{padding:10px 0; font-size:15px; color:var(--ink-soft);}
  .mm-sub a:hover, .mobile-menu nav > a:hover{color:var(--blue);}
  .mm-actions{display:flex; flex-direction:column; gap:12px; margin-top:22px;}
  .mm-actions .btn{text-align:center; justify-content:center;}
  body.menu-lock{overflow:hidden;}
}
@media (max-width: 560px){
  .nav-cta{display:none;}
  .logo-link img{height:28px;}
}

.typical-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:8px;}
.typical-card{background:#fff; border:1px solid var(--line); border-top:3px solid var(--blue); border-radius:var(--radius); padding:26px 24px;}
.typical-card h4{font-size:17px; margin-bottom:10px; line-height:1.3;}
.typical-card p{color:var(--ink-soft); font-size:14.5px; line-height:1.65;}
@media (max-width:980px){ .typical-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .typical-grid{grid-template-columns:1fr;} }

.foot-credit{flex-basis:100%; font-size:12.5px; color:rgba(255,255,255,0.4);}
.foot-credit a{color:rgba(255,255,255,0.55);}
.foot-credit a:hover{color:#fff;}
