/* PHW site design system. One stylesheet for every phwltd.com page. */
:root {
  --ground:#f4f7fa;
  --paper:#ffffff;
  --ink:#0d1b2a;
  --muted:#5a6b7d;
  --line:#dfe6ee;
  --blue:#1170b8;
  --blue-dark:#0b568f;
  --ribbon-light:#8ec8f0;
  --ribbon-deep:#3b4fa3;
  --navy:#0d1b2a;
  --ease:cubic-bezier(.23,1,.32,1);
}
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:96px; }
body { margin:0; min-width:320px; background:var(--ground); color:var(--ink); font:400 16px/1.65 system-ui,-apple-system,"Segoe UI",Arial,sans-serif; -webkit-font-smoothing:antialiased; }
img { display:block; max-width:100%; }
.wrap { width:min(100% - 64px,1200px); margin-inline:auto; }
a { color:var(--blue-dark); text-decoration-thickness:1px; text-underline-offset:3px; }
a:hover { color:var(--blue); }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible { outline:3px solid var(--blue); outline-offset:4px; }
::selection { background:var(--ribbon-light); color:var(--ink); }

/* The supplied logo remains untouched and sits directly on the white header. */
header { position:sticky; top:0; z-index:80; background:var(--paper); border-bottom:1px solid var(--line); box-shadow:0 6px 24px rgba(13,27,42,.055); }
header .wrap { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:84px; }
header .wrap > a { flex:none; display:flex; align-items:center; min-height:52px; }
header img { width:auto; height:50px; }
header nav { display:flex; align-items:center; gap:clamp(10px,1.5vw,22px); }
header nav a:not(.btn) { display:inline-flex; align-items:center; min-height:44px; padding:7px 1px; color:var(--ink); white-space:nowrap; font-size:13px; font-weight:680; text-decoration:none; position:relative; }
header nav a:not(.btn)::after { content:""; position:absolute; bottom:4px; left:0; right:100%; height:2px; background:var(--blue); }
header nav a:not(.btn):hover::after,header nav a[aria-current]:not(.btn)::after { right:0; }
header nav a[aria-current]:not(.btn) { color:var(--blue-dark); font-weight:780; }
header nav a.btn { white-space:nowrap; padding-inline:17px; font-size:13px; }
header nav a.btn[aria-current] { outline:2px solid var(--blue-dark); outline-offset:3px; }
.menu-btn { display:none; flex:none; width:48px; height:48px; border:1px solid var(--line); border-radius:8px; background:var(--paper); cursor:pointer; align-items:center; justify-content:center; flex-direction:column; gap:5px; }
.menu-btn span { display:block; width:20px; height:2px; border-radius:1px; background:var(--ink); }
.menu-btn[aria-expanded="true"] { border-color:var(--blue); background:var(--ground); }
.menu-btn[aria-expanded="true"] span:nth-child(2) { width:13px; }

/* Dark headings echo the certificate's blue while the rest of the site stays light. */
.hero { position:relative; isolation:isolate; overflow:hidden; padding:clamp(58px,7vw,100px) 0 clamp(62px,7vw,106px); background:var(--navy); color:var(--paper); border-bottom:5px solid var(--blue); }
.hero::before { content:""; position:absolute; top:0; left:max(32px,calc((100% - 1200px)/2)); width:105px; height:4px; background:linear-gradient(90deg,var(--ribbon-light),var(--ribbon-deep)); }
.hero::after { content:""; position:absolute; right:-125px; top:55px; width:310px; height:310px; border:1px solid rgba(142,200,240,.14); transform:rotate(45deg); z-index:-1; pointer-events:none; }
.hero > .wrap { position:relative; }
.hero h1 { color:var(--paper); }
.eyebrow { display:inline-block; color:var(--ribbon-light); font-size:12px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; margin-bottom:21px; }
h1,h2,h3 { font-family:Arial,"Helvetica Neue",system-ui,sans-serif; }
h1 { max-width:21ch; margin:0 0 22px; font-size:clamp(40px,4.9vw,70px); line-height:1.04; font-weight:750; letter-spacing:-.053em; text-wrap:balance; }
h1 em { color:var(--ribbon-light); font-style:normal; }
.lede { max-width:74ch; font-size:clamp(17px,1.6vw,20px); line-height:1.65; color:#ffffff; }
.lede strong { color:#ffffff; font-weight:750; }
.hero .lede a { color:var(--ribbon-light); font-weight:700; }
.hero .sub,.hero .sub a { color:#ffffff; }
.hero-cta { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.hero.has-photo { padding-bottom:50px; }
.hero.has-photo h1 { max-width:19ch; }
.hero.has-photo > .wrap + .wrap { margin-top:46px !important; }
.hero .photo { width:100%; height:clamp(320px,39vw,525px); aspect-ratio:auto; border-radius:6px; border:1px solid rgba(255,255,255,.2); }
.hero .photo::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(13,27,42,.24),transparent 35%); pointer-events:none; }
.photo { position:relative; aspect-ratio:3/2; min-height:240px; overflow:hidden; background:var(--blue-dark); border:1px solid var(--line); border-radius:6px; }
.photo picture,.photo img { display:block; width:100%; height:100%; }
.photo img { object-fit:cover; object-position:center; }
.photo[data-slot="home-hero"] img { object-position:center 56%; }
.photo[data-slot="licensed-hero"] img { object-position:center 54%; }
@media (min-width:1101px) {
  .page-home .hero.has-photo { display:grid; grid-template-columns:minmax(32px,1fr) minmax(0,590px) minmax(0,610px) minmax(32px,1fr); align-items:stretch; gap:0; padding:64px 0; }
  .page-home .hero.has-photo > .wrap:first-child { grid-column:2; width:100%; margin:0; padding:22px 44px 22px 0; align-self:center; }
  .page-home .hero.has-photo > .wrap + .wrap { grid-column:3; width:100%; min-height:620px; margin:0 !important; }
  .page-home .hero .photo { height:100%; min-height:620px; }
  .page-home .hero.has-photo h1 { font-size:clamp(50px,4.5vw,65px); }
  .page-home .hero .lede { font-size:18px; }
}

/* A measured editorial rhythm rather than repetitive boxed panels. */
section:not(.hero) { padding:clamp(66px,7vw,108px) 0; border-bottom:1px solid var(--line); }
section:not(.hero):nth-of-type(odd) { background:var(--paper); }
section:not(.hero) > .wrap > h2 { max-width:800px; }
section:not(.hero) > .wrap > p:not(.sub) { max-width:76ch; }
h2 { margin:0 0 16px; color:var(--ink); font-size:clamp(29px,3.2vw,42px); line-height:1.15; letter-spacing:-.044em; font-weight:750; text-wrap:balance; }
h3 { margin:0 0 12px; color:var(--ink); font-size:clamp(18px,1.65vw,21px); line-height:1.28; letter-spacing:-.025em; font-weight:750; }
.sub { margin:0 0 34px; max-width:74ch; color:var(--muted); font-size:16px; line-height:1.65; }
p { margin:0 0 17px; color:var(--muted); }
p:last-child { margin-bottom:0; }
p > a:only-child:not(.btn) { display:inline-flex; align-items:center; min-height:44px; }
p strong,li strong { color:var(--ink); font-weight:750; }
ul { list-style:none; margin:0 0 20px; padding:0; }
li { position:relative; padding-left:23px; margin-bottom:9px; color:var(--muted); }
ul > li::before { content:""; position:absolute; left:1px; top:.72em; width:7px; height:7px; border:2px solid var(--blue); transform:rotate(45deg); }

.btn { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:11px 20px; border:1px solid var(--blue); border-radius:6px; background:var(--blue); color:#ffffff; font-size:14px; font-weight:760; line-height:1.25; text-align:center; text-decoration:none; cursor:pointer; box-shadow:0 3px 0 var(--blue-dark); }
.btn:hover { background:var(--blue-dark); border-color:var(--blue-dark); color:#ffffff; text-decoration:none; }
.btn:active { transform:translateY(2px); box-shadow:0 1px 0 var(--blue-dark); }
.btn.ghost,.btn.alt { background:transparent; color:var(--blue-dark); border-color:var(--blue-dark); box-shadow:none; }
.btn.ghost:hover,.btn.alt:hover { background:var(--ground); color:var(--blue-dark); border-color:var(--blue-dark); }
.hero .btn.ghost,.hero .btn.alt,section[id="quote"] .btn.ghost,section[id="report"] .btn.ghost { color:#ffffff; border-color:rgba(255,255,255,.75); }
.hero .btn.ghost:hover,.hero .btn.alt:hover,section[id="quote"] .btn.ghost:hover,section[id="report"] .btn.ghost:hover { background:rgba(255,255,255,.13); border-color:#ffffff; color:#ffffff; }
.btn.block { width:100%; }

.grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.card,.prod { position:relative; display:flex; flex-direction:column; min-width:0; padding:26px; border:1px solid var(--line); border-top:3px solid var(--blue); border-radius:6px; background:var(--paper); box-shadow:0 9px 28px rgba(13,27,42,.035); }
.card::before,.prod::before { content:""; display:block; width:28px; height:3px; margin-bottom:22px; background:var(--blue); }
.card .tag,.prod .code { display:inline-flex; align-self:flex-start; color:var(--blue-dark); font-size:11px; font-weight:850; letter-spacing:.105em; text-transform:uppercase; margin-bottom:13px; }
.card p,.prod .why { font-size:15px; line-height:1.63; margin-bottom:20px; }
.card a.go,.prod a.mb { display:inline-flex; align-items:center; align-self:flex-start; min-height:44px; margin-top:auto; color:var(--blue-dark); font-size:14px; font-weight:780; text-underline-offset:5px; overflow-wrap:anywhere; }
.card a.go:hover,.prod a.mb:hover { color:var(--blue); }
.strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; }
.strip .item { min-width:0; border:1px solid var(--line); background:var(--paper); border-radius:6px; padding:22px; }
.strip .item h3 { font-size:17px; }
.strip .item p { font-size:14px; }
.chips { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 28px; }
.chip { min-height:44px; padding:9px 17px; background:var(--paper); color:var(--ink); border:1px solid var(--line); border-radius:5px; cursor:pointer; font:700 14px/1.2 inherit; }
.chip.active { color:var(--blue-dark); border:2px solid var(--blue); font-weight:800; text-decoration:underline; text-underline-offset:4px; }

.contents { padding:12px 30px; border:1px solid var(--line); border-left:4px solid var(--blue); border-radius:6px; background:var(--paper); }
.contents ol { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:40px; list-style:none; counter-reset:step; padding:0; margin:0; }
.contents li { min-width:0; margin:0; border-bottom:1px solid var(--line); padding:18px 8px 18px 44px; color:var(--ink); line-height:1.56; font-size:15px; }
.contents li::before { counter-increment:step; content:counter(step,decimal-leading-zero); position:absolute; top:19px; left:0; width:30px; color:var(--blue-dark); font:800 12px/1.6 Arial,sans-serif; letter-spacing:.03em; }
.contents li:nth-last-child(-n+2) { border-bottom:0; }
.doclist { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:22px; }
.doclist div { min-width:0; padding:18px 18px 18px 20px; border:1px solid var(--line); border-left:3px solid var(--blue); border-radius:5px; background:var(--paper); color:var(--muted); font-size:14px; line-height:1.55; overflow-wrap:anywhere; }
.doclist b { display:block; margin-bottom:5px; color:var(--ink); font-size:15px; line-height:1.4; }
.hazcard .reg { color:var(--muted); font-size:13px; font-weight:650; margin:0 0 16px; }
.crumb { max-width:1200px; margin:0 auto; padding-top:20px; color:var(--muted); font-size:13px; }
.crumb a { color:var(--blue-dark); font-weight:700; }
.hero .crumb { padding:0; margin:0 0 20px; color:#ffffff; }
.hero .crumb a,.hero .crumb span { color:var(--ribbon-light); }
body > .wrap.crumb { margin-bottom:-1px; }

.call { max-width:900px; margin:27px 0; padding:23px 27px; background:var(--paper); border:1px solid var(--line); border-left:4px solid var(--blue); border-radius:5px; }
.call.warn { border-left-width:6px; background:var(--ground); box-shadow:inset 0 0 0 1px var(--line); }
.call .lbl,.sample .lbl { display:block; margin-bottom:10px; color:var(--blue-dark); font-size:11px; font-weight:850; letter-spacing:.13em; text-transform:uppercase; }
.call.warn .lbl { color:var(--ink); font-weight:900; }
.call p:last-child { margin-bottom:0; }
.verify-box { max-width:900px; padding:30px; border:1px solid var(--line); border-top:4px solid var(--blue); border-radius:5px; background:var(--paper); }
.verify-box .row { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.verify-box .row > div { padding:12px 15px; min-height:44px; border:1px solid var(--line); border-left:3px solid var(--blue); background:var(--ground); color:var(--ink); font-size:14px; }
.verify-box code { padding:3px 7px; border:1px solid var(--line); background:var(--ground); color:var(--blue-dark); border-radius:3px; }
.sample { max-width:900px; padding:30px; border:1px solid var(--line); border-left:5px solid var(--blue); border-radius:5px; background:var(--paper); }
.law { max-width:900px; padding:25px 28px; margin:0 0 16px; border:1px solid var(--line); border-left:4px solid var(--blue); border-radius:5px; background:var(--paper); }
.law .code { color:var(--blue-dark); font-size:12px; font-weight:850; letter-spacing:.08em; text-transform:uppercase; margin-bottom:12px; }
.tw { max-width:100%; overflow-x:auto; margin:24px 0; -webkit-overflow-scrolling:touch; }
table { width:100%; min-width:560px; border-collapse:collapse; background:var(--paper); font-size:15px; }
th { padding:15px; text-align:left; background:var(--navy); color:#ffffff; border-bottom:2px solid var(--blue); font-size:12px; font-weight:750; }
td { padding:14px 15px; border-bottom:1px solid var(--line); color:var(--muted); vertical-align:top; }
tr:last-child td { border-bottom:0; }
td.hl { color:var(--ink); font-weight:750; }
td.tl { color:var(--blue-dark); font-weight:750; }
.faq details { max-width:900px; border:1px solid var(--line); background:var(--paper); border-radius:5px; margin-bottom:9px; }
.faq summary { position:relative; display:flex; align-items:center; min-height:58px; padding:15px 54px 15px 20px; color:var(--ink); font-size:15px; font-weight:740; cursor:pointer; list-style:none; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary::after { content:"+"; position:absolute; right:20px; top:50%; transform:translateY(-50%); color:var(--blue-dark); font:700 24px/1 Arial,sans-serif; }
.faq details[open] { border-left:4px solid var(--blue); }
.faq details[open] summary::after { content:"\2212"; }
.faq details p { padding:0 20px 20px; margin:0; }

/* The form retains every original input, name, option and destination. */
form { max-width:930px; padding:clamp(24px,4vw,45px); border:1px solid var(--line); border-top:4px solid var(--blue); background:var(--paper); border-radius:6px; box-shadow:0 18px 42px rgba(13,27,42,.055); }
.fgrid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 22px; }
.fgrid .full { grid-column:1/-1; }
.field { min-width:0; margin:0; }
label { display:block; margin:0 0 7px; color:var(--ink); font-size:13px; font-weight:750; }
input,select,textarea { width:100%; min-height:48px; padding:11px 14px; border:1px solid var(--line); border-radius:5px; background:var(--paper); color:var(--ink); font:inherit; font-size:15px; }
input:hover,select:hover,textarea:hover { border-color:var(--blue); }
input:focus,select:focus,textarea:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(17,112,184,.14); }
textarea { min-height:140px; resize:vertical; }
.honey { position:absolute; width:1px; height:1px; left:-9999px; opacity:0; }
form button { border-width:1px; }
.sent-banner { display:none; padding:17px 20px; margin-bottom:24px; border:2px solid var(--blue); border-left-width:6px; border-radius:4px; background:var(--ground); color:var(--ink); font-weight:750; }
.sent-banner.show { display:block; }

/* Group-level details are determined solely by the page path, not rewritten copy. */
.page-machine #scope { padding:30px 0; background:var(--paper); }
.page-machine #scope .wrap { display:flex; align-items:baseline; flex-wrap:wrap; gap:12px 36px; }
.page-machine #scope h2 { margin:0; font-size:13px; letter-spacing:.13em; text-transform:uppercase; color:var(--blue-dark); }
.page-machine #scope .sub { margin:0; font-size:17px; color:var(--ink); font-weight:650; }
.page-sector #risks > .wrap { display:grid; grid-template-columns:minmax(210px,.35fr) minmax(0,.65fr); gap:0 42px; }
.page-sector #risks h2,.page-sector #risks .sub { grid-column:1/-1; }
.page-sector #risks h3,.page-sector #risks p:not(.sub) { padding:24px 0; margin:0; border-top:1px solid var(--line); }
.page-sector #risks h3 { font-size:19px; }
.page-sector #risks p:not(.sub) { max-width:70ch; }
section[id="quote"],section[id="report"] { background:var(--navy) !important; border-bottom:0 !important; }
section[id="quote"] h2,section[id="report"] h2,section[id="quote"] p,section[id="report"] p { color:#ffffff; }
section[id="quote"] .sub,section[id="report"] .sub { color:#ffffff; }
section[id="quote"] .hero-cta { margin-top:20px; }

footer { padding:56px 0 70px; background:var(--navy); border-top:4px solid var(--blue); color:#ffffff; font-size:13px; }
footer .wrap { display:grid; grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr); gap:30px 70px; }
footer .tagline { margin:0 0 16px; font-size:15px; font-weight:780; font-style:normal; color:#ffffff; }
footer .wrap > div > div { color:#ffffff; }
footer nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-content:start; gap:3px 16px; }
footer a { display:inline-flex; align-items:center; min-height:44px; color:#ffffff; font-weight:650; text-decoration:none; overflow-wrap:anywhere; }
footer a:hover { color:var(--ribbon-light); text-decoration:underline; }

@media (prefers-reduced-motion:no-preference) {
  .btn,.card,.prod,.menu-btn,header nav a::after { transition:transform .22s var(--ease),box-shadow .22s var(--ease),border-color .22s var(--ease),background-color .22s var(--ease),color .22s var(--ease),right .22s var(--ease); }
  .card:hover,.prod:hover { transform:translateY(-3px); border-color:var(--blue); box-shadow:0 18px 32px rgba(13,27,42,.09); }
  .hero.has-photo .photo { animation:photo-enter .55s var(--ease) both; }
  @keyframes photo-enter { from { opacity:.6; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
}
@media (max-width:1100px) { .grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .doclist { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:960px) {
  header .wrap { min-height:72px; }
  header img { height:46px; }
  .menu-btn { display:flex; }
  header nav { display:none; position:absolute; top:100%; left:0; right:0; max-height:calc(100dvh - 72px); overflow-y:auto; padding:12px max(24px,calc((100% - 1200px)/2)) 23px; background:var(--paper); border-bottom:1px solid var(--line); box-shadow:0 14px 24px rgba(13,27,42,.12); }
  header nav.open { display:flex; flex-direction:column; align-items:stretch; gap:0; }
  header nav a:not(.btn) { width:100%; min-height:50px; padding:12px 8px; border-bottom:1px solid var(--line); font-size:16px; }
  header nav a:not(.btn)::after { left:8px; right:auto; bottom:7px; width:0; }
  header nav a[aria-current]:not(.btn)::after { width:34px; }
  header nav a.btn { margin-top:14px; min-height:48px; font-size:15px; }
  .strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:700px) {
  .wrap { width:calc(100% - 40px); }
  body { font-size:15.5px; }
  header img { height:40px; }
  .hero { padding:54px 0 64px; }
  .hero::after { width:190px; height:190px; right:-110px; top:48px; }
  h1 { font-size:clamp(37px,10vw,53px); }
  .hero-cta { gap:11px; }
  .hero .photo { height:300px; }
  .hero.has-photo > .wrap + .wrap { margin-top:30px !important; }
  section:not(.hero) { padding:65px 0; }
  .grid,.strip,.doclist,.contents ol { grid-template-columns:1fr; }
  .contents { padding:4px 22px; }
  .contents li:nth-last-child(2) { border-bottom:1px solid var(--line); }
  .card,.prod { padding:23px; }
  .page-sector #risks > .wrap { grid-template-columns:1fr; }
  .page-sector #risks h3 { padding:19px 0 0; }
  .page-sector #risks p:not(.sub) { padding:8px 0 21px; border:0; }
  .fgrid { grid-template-columns:1fr; gap:16px; }
  footer .wrap { grid-template-columns:1fr; gap:34px; }
  footer nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:390px) {
  .wrap { width:calc(100% - 36px); }
  .hero .btn,.hero-cta .btn { width:100%; }
  .hero .photo { height:275px; }
  .verify-box,.sample,.call,.law { padding:22px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms !important; transition-duration:.01ms !important; }
}

/* Image-led presentation layer across all templates. */
h1,h2,h3 { font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif; }
.hero.has-photo { display:flex; flex-direction:column; justify-content:center; min-height:clamp(630px,85vh,880px); padding:110px 0 125px; background:var(--navy); border-bottom:0; }
.hero.has-photo::before { z-index:3; }
.hero.has-photo::after { display:none; }
.hero.has-photo > .wrap { position:relative; z-index:2; width:min(100% - 64px,1200px); margin:0 auto; }
.hero.has-photo h1 { max-width:19ch; font-size:clamp(48px,6.3vw,92px); line-height:1.03; letter-spacing:-.057em; text-shadow:0 2px 18px rgba(13,27,42,.18); }
.hero.has-photo .lede { max-width:66ch; color:#ffffff; font-size:clamp(18px,1.6vw,21px); line-height:1.6; }
.hero.has-photo .eyebrow { margin-bottom:25px; }
.hero.has-photo .hero-cta { margin-top:37px; }
.hero.has-photo .hero-photo { position:absolute; inset:0; z-index:0; width:100%; height:100%; min-height:0; border:0; border-radius:0; aspect-ratio:auto; overflow:hidden; background:var(--blue-dark); }
.hero.has-photo .hero-photo picture,.hero.has-photo .hero-photo img { display:block; width:100%; height:100%; }
.hero.has-photo .hero-photo img { object-fit:cover; object-position:center; transform:translate3d(0,var(--photo-shift,0px),0) scale(1.065); }
.hero.has-photo .hero-photo::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(13,27,42,.94) 0%,rgba(13,27,42,.83) 37%,rgba(13,27,42,.47) 72%,rgba(13,27,42,.34) 100%); }
.page-home .hero.has-photo { min-height:clamp(700px,calc(100vh - 84px),1000px); }
.page-home .hero.has-photo > .wrap:first-child { width:min(100% - 64px,1200px); max-width:1200px; padding:0; margin:0 auto; }
.page-home .hero.has-photo h1 { max-width:970px; font-size:clamp(58px,5.55vw,80px); }
.page-home .hero.has-photo .lede { max-width:69ch; }
.page-home .hero.has-photo .hero-photo { min-height:0; }
.page-home .hero.has-photo > .wrap + .wrap { display:none; }
.page-sector .hero.has-photo h1,.page-pack-sector .hero.has-photo h1 { max-width:20ch; font-size:clamp(48px,5.7vw,83px); }
.page-licensed-index .hero.has-photo h1,.page-verify .hero.has-photo h1 { font-size:clamp(48px,5.7vw,82px); }
.hero.has-photo .crumb { color:#ffffff; }
body > .wrap.crumb { position:relative; z-index:1; }

.image-card { padding-top:26px; overflow:hidden; }
.image-card::before { display:none; }
.image-card picture { display:block; height:clamp(185px,20vw,280px); margin:-26px -26px 22px; background:var(--blue-dark); overflow:hidden; }
.image-card picture img { width:100%; height:100%; object-fit:cover; transform:scale(1.01); }
.page-home #routes .grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.page-home #sector-grid .grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.page-home #sector-grid .image-card picture { height:310px; }

.section-rail { display:none; position:fixed; z-index:40; top:calc(50% + 12px); left:max(12px,calc((100% - 1430px)/2)); width:105px; transform:translateY(-50%); padding:10px 0; border-left:1px solid var(--line); background:rgba(255,255,255,.94); box-shadow:0 8px 26px rgba(13,27,42,.06); backdrop-filter:blur(12px); }
.section-rail button { display:block; width:100%; min-height:44px; border:0; border-left:3px solid transparent; background:transparent; color:var(--ink); text-align:left; padding:8px 7px; font:600 10px/1.28 system-ui,-apple-system,"Segoe UI",Arial,sans-serif; cursor:pointer; }
.section-rail button[aria-current] { border-left-color:var(--blue); color:var(--blue-dark); font-weight:850; text-decoration:underline; text-underline-offset:3px; }
.section-rail button:hover { background:var(--ground); }
body.has-section-rail .section-rail { display:block; }
@media (max-width:1399px) { .section-rail { display:none !important; } }

header.is-scrolled { box-shadow:0 12px 30px rgba(13,27,42,.12); }
@media (prefers-reduced-motion:no-preference) {
  .hero.has-photo .hero-photo { animation:none; }
  header { transition:box-shadow .2s var(--ease); }
  .reveal-candidate { opacity:.92; transform:translateY(12px); transition:opacity .65s var(--ease),transform .65s var(--ease); }
  .reveal-candidate.is-visible { opacity:1; transform:translateY(0); }
  .image-card img { transition:transform .7s var(--ease); }
  .image-card:hover img { transform:scale(1.055); }
}
@media (max-width:1100px) {
  .page-home #routes .grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:700px) {
  .hero.has-photo { min-height:680px; padding:85px 0 95px; }
  .hero.has-photo > .wrap,.page-home .hero.has-photo > .wrap:first-child { width:calc(100% - 40px); }
  .hero.has-photo h1,.page-home .hero.has-photo h1,.page-sector .hero.has-photo h1,.page-pack-sector .hero.has-photo h1,.page-licensed-index .hero.has-photo h1,.page-verify .hero.has-photo h1 { max-width:100%; font-size:clamp(43px,10vw,58px); }
  .hero.has-photo .lede { font-size:17px; line-height:1.58; }
  .hero.has-photo .hero-photo::after { background:linear-gradient(180deg,rgba(13,27,42,.80),rgba(13,27,42,.66) 65%,rgba(13,27,42,.42)); }
  .page-home .hero.has-photo { min-height:calc(100svh - 72px); }
  .page-home #routes .grid,.page-home #sector-grid .grid { grid-template-columns:1fr; }
  .image-card picture,.page-home #sector-grid .image-card picture { height:250px; }
}
@media (max-width:390px) {
  .hero.has-photo > .wrap,.page-home .hero.has-photo > .wrap:first-child { width:calc(100% - 36px); }
  .hero.has-photo { padding:80px 0; }
  .hero.has-photo .hero-cta { margin-top:27px; }
}

.page-home #sample { background:var(--ground); overflow:hidden; }
.page-home #sample > .wrap { display:grid; grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr); column-gap:60px; align-items:center; }
.page-home #sample h2,.page-home #sample .sub,.page-home #sample .sample { grid-column:1; }
.page-home #sample .sample { align-self:start; }
.evidence-stage { position:relative; grid-column:2; grid-row:1 / span 3; min-height:610px; display:flex; align-items:center; justify-content:center; }
.evidence-stage::before { content:""; position:absolute; width:450px; height:450px; border:1px solid var(--line); border-radius:50%; }
.certificate-preview { position:absolute; left:8%; top:6%; width:57%; max-width:335px; border:1px solid var(--line); background:var(--paper); box-shadow:0 25px 60px rgba(13,27,42,.17); transform:rotate(-7deg); }
.certificate-preview img { width:100%; height:auto; }
.phone-preview { position:absolute; right:5%; top:20%; width:38%; max-width:235px; padding:10px 8px 18px; border:5px solid var(--ink); border-radius:31px; background:var(--paper); box-shadow:0 28px 60px rgba(13,27,42,.25); transform:rotate(5deg); }
.phone-preview img { display:block; width:100%; height:auto; border-radius:19px 19px 10px 10px; }
@media (max-width:900px) {
  .page-home #sample > .wrap { grid-template-columns:1fr; }
  .page-home #sample h2,.page-home #sample .sub,.page-home #sample .sample,.evidence-stage { grid-column:1; grid-row:auto; }
  .evidence-stage { min-height:570px; margin-top:24px; }
}
@media (max-width:700px) {
  .evidence-stage { min-height:475px; }
  .evidence-stage::before { width:300px; height:300px; }
  .certificate-preview { left:0; width:63%; }
  .phone-preview { right:0; top:27%; width:41%; padding:7px 5px 12px; border-width:4px; border-radius:21px; }
}

/* Document entries read as a checklist, with a visible document glyph. */
.doclist { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:44px; row-gap:0; border-top:1px solid var(--line); }
.doclist div { position:relative; min-height:80px; margin:0; padding:20px 12px 20px 48px; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; }
.doclist div::before { content:""; position:absolute; left:10px; top:22px; width:21px; height:25px; border:2px solid var(--blue-dark); border-radius:2px; background:linear-gradient(var(--blue-dark),var(--blue-dark)) 4px 11px / 11px 2px no-repeat,linear-gradient(var(--blue-dark),var(--blue-dark)) 4px 16px / 8px 2px no-repeat; }
@media (max-width:700px) { .doclist { grid-template-columns:1fr; } }

footer .footer-logo { display:block; width:auto; height:48px; max-width:100%; background:#ffffff; padding:12px 16px; border-radius:12px; box-sizing:content-box; margin:0 0 18px; }
@media (max-width:560px){ footer .footer-logo { height:40px; } }
