/* Archivo variable font (SIL Open Font License), self-hosted */
@font-face{
  font-family:"Archivo"; font-style:normal; font-display:swap;
  font-weight:100 900; font-stretch:62% 125%;
  src:url("../fonts/archivo-variable.woff2") format("woff2-variations"), url("../fonts/archivo-variable.woff2") format("woff2");
}
/* ------------------------------------------------------------------
   Legacy Power Advisors — red, white & blue system
   Old Glory Blue carries the page; red is reserved for action and
   the flag motifs (ghosted stripes, star marks, the stripe ribbon).
   ------------------------------------------------------------------ */
:root{
  --blue-950:#030B20; --blue-900:#07193C; --blue-800:#0A3161; --blue-700:#1B4A8A;
  --red:#B22234; --red-dk:#8E1A29; --red-hi:#E5484D;
  --white:#FFFFFF; --silver:#C9D1DD; --silver-hi:#F5F7FA; --silver-lo:#8A95A8;
  --surface:#F5F6F8; --surface-2:#FFFFFF; --text:#0A1A3A; --muted:#475470; --line:#D8DDE6;
  --accent-text:#B22234; --icon:#0A3161; --bullet:#0A3161;
  --radius-sm:4px; --radius-lg:10px;
  --wide:"Archivo", "Arial Black", "Helvetica Neue", Arial, sans-serif;
  --star:polygon(50% 0%,61.2% 34.5%,97.6% 34.5%,68.2% 55.9%,79.4% 90.5%,50% 69.1%,20.6% 90.5%,31.8% 55.9%,2.4% 34.5%,38.8% 34.5%);
  --starfield:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='48' viewBox='0 0 56 48'%3E%3Cg fill='%23fff'%3E%3Cpolygon points='14,6 15.8,11.5 21.6,11.5 16.9,14.9 18.7,20.4 14,17 9.3,20.4 11.1,14.9 6.4,11.5 12.2,11.5'/%3E%3Cpolygon points='42,30 43.8,35.5 49.6,35.5 44.9,38.9 46.7,44.4 42,41 37.3,44.4 39.1,38.9 34.4,35.5 40.2,35.5'/%3E%3C/g%3E%3C/svg%3E");
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
  color-scheme:light dark;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --surface:#061431; --surface-2:#0B2150; --text:#EEF1F6; --muted:#A9B4C8; --line:#1D3868;
    --accent-text:#EF6A70; --icon:#8FB0E0; --bullet:#8FB0E0;
  }
}
:root[data-theme="dark"]{
  --surface:#061431; --surface-2:#0B2150; --text:#EEF1F6; --muted:#A9B4C8; --line:#1D3868;
  --accent-text:#EF6A70; --icon:#8FB0E0; --bullet:#8FB0E0;
}
*,*::before,*::after{box-sizing:inherit}
html{scroll-behavior:smooth; scroll-padding-top:calc(env(safe-area-inset-top,0px) + 84px); background:var(--blue-950)}
body{margin:0; background:var(--surface); color:var(--text); font-family:var(--wide); font-stretch:100%; font-size:1.0625rem; line-height:1.6; -webkit-font-smoothing:antialiased}
img{max-width:100%; display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--red-hi); outline-offset:3px; border-radius:2px}
.wrap{width:min(1180px, 100% - 2.5rem); margin-inline:auto}

/* Flag motifs */
.metal{
  background:linear-gradient(180deg,#FFFFFF 0%,#E2E6EC 40%,#9AA3B2 53%,#EEF1F5 66%,#C2C8D2 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  filter:drop-shadow(0 2px 0 rgba(0,0,0,.35));
}
.redtext{color:var(--red-hi)}
.stars{position:absolute; inset:0; background-image:var(--starfield); background-size:56px 48px; opacity:.08; pointer-events:none}
.ribbon{height:21px; background:repeating-linear-gradient(180deg,var(--red) 0 3px,#FFFFFF 3px 6px); box-shadow:inset 0 1px 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15)}
.rule{display:flex; align-items:center; gap:.7rem; color:var(--silver-hi); font-stretch:125%; font-weight:600; letter-spacing:.14em; font-size:.8rem; text-transform:uppercase}
.rule::before{content:""; width:11px; height:11px; flex:none; background:var(--red-hi); clip-path:var(--star)}
.rule::after{content:""; height:1px; flex:1; max-width:90px; background:linear-gradient(270deg,transparent,var(--red-hi))}
.center .rule{justify-content:center}
.center .rule::after{width:11px; height:11px; flex:none; max-width:none; background:var(--red-hi); clip-path:var(--star)}
.light-rule{color:var(--accent-text)}
.light-rule::before,.center .light-rule::after{background:var(--red)}
.light-rule::after{background:linear-gradient(270deg,transparent,var(--red))}

/* Buttons */
.btn{display:inline-flex; align-items:center; gap:.6rem; padding:.95rem 1.6rem; border-radius:var(--radius-sm); font-weight:700; font-stretch:112%; font-size:.95rem; text-decoration:none; border:1px solid transparent; cursor:pointer; transition:background-color .2s, color .2s, border-color .2s}
.btn-primary{background:var(--red); color:#fff; box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}
.btn-primary:hover{background:#C42A3D}
.btn-ghost{border-color:rgba(255,255,255,.45); color:var(--silver-hi)}
.btn-ghost:hover{border-color:#fff; background:rgba(255,255,255,.06)}
.btn-navy{background:var(--blue-800); color:#fff; border-color:#2A5596}
.btn-navy:hover{background:var(--blue-700)}
.btn svg{width:18px; height:18px; flex:none}

/* Header */
.topbar{background:var(--blue-950); color:var(--silver); font-size:.85rem; border-bottom:1px solid #13264d}
.topbar .wrap{display:flex; justify-content:space-between; gap:1rem; padding:.5rem 0; flex-wrap:wrap}
.topbar span{display:inline-flex; align-items:center; gap:.45rem}
.topbar svg{width:14px; height:14px; color:var(--red-hi)}
header.site{position:sticky; top:env(safe-area-inset-top,0px); z-index:50; background:rgba(5,19,48,.95); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); border-bottom:2px solid var(--red)}
header.site .wrap{display:flex; align-items:center; justify-content:space-between; gap:1.25rem; height:78px}
.brand{display:flex; align-items:center; gap:.8rem; text-decoration:none}
.brand img{height:58px; width:auto}
.brand-name{display:flex; flex-direction:column; line-height:1.05}
.brand-name b{font-size:1.25rem; font-weight:900; font-stretch:125%; letter-spacing:.02em}
.brand-name small{font-size:.66rem; font-weight:600; font-stretch:125%; letter-spacing:.16em; color:var(--silver); text-transform:uppercase}
nav.primary ul{display:flex; gap:1.9rem; list-style:none; margin:0; padding:0}
nav.primary a{color:var(--silver); text-decoration:none; font-weight:600; font-size:.95rem; padding:.4rem 0; border-bottom:2px solid transparent}
nav.primary a:hover{color:#fff; border-bottom-color:var(--red-hi)}
.header-cta{display:flex; align-items:center; gap:.8rem}
.menu-toggle{display:none; background:none; border:1px solid var(--silver-lo); color:var(--silver-hi); border-radius:var(--radius-sm); width:44px; height:44px; cursor:pointer}
.menu-toggle svg{width:22px; height:22px; margin:auto}

/* Hero: star canton top-left, a ghosted flag waving behind the crest */
.hero{position:relative; overflow:hidden; background:radial-gradient(110% 90% at 80% 35%, #0E3A74 0%, var(--blue-900) 48%, var(--blue-950) 100%); color:var(--silver-hi)}
.hero .stars{opacity:.1; -webkit-mask-image:radial-gradient(60% 75% at 0% 0%, #000 30%, transparent 100%); mask-image:radial-gradient(60% 75% at 0% 0%, #000 30%, transparent 100%)}
.hero-flag{position:absolute; inset:0; width:100%; height:100%; pointer-events:none; -webkit-mask-image:linear-gradient(90deg, transparent 32%, #000 70%); mask-image:linear-gradient(90deg, transparent 32%, #000 70%)}
.hero-flag path{fill:none; stroke-width:35; stroke-linecap:butt}
.hero-flag .s-red{stroke:var(--red); opacity:.28}
.hero-flag .s-white{stroke:#fff; opacity:.05}
.hero .wrap{position:relative; display:grid; grid-template-columns:1.1fr .9fr; gap:3rem; align-items:center; padding:5.5rem 0 6rem}
.hero .kicker{color:var(--silver); font-weight:600; font-stretch:112%; margin:0 0 1.1rem; font-size:1rem; letter-spacing:.01em}
.hero .kicker .sep{color:var(--red-hi); margin:0 .55em}
.hero h1{margin:0; font-size:clamp(2.1rem, 4.7vw, 4.1rem); line-height:1; font-weight:900; font-stretch:112%; letter-spacing:0; text-transform:uppercase}
.hero h1 > span{display:block}
.hero h1 .line2{margin-top:.3rem; font-size:.7em; font-stretch:112%; letter-spacing:.03em}
.hero p.lede{max-width:34em; color:var(--silver); font-size:1.15rem; margin:1.6rem 0 2.2rem}
.hero .actions{display:flex; gap:1rem; flex-wrap:wrap}
.hero-crest{justify-self:center; width:min(440px, 100%); filter:drop-shadow(0 30px 50px rgba(0,0,0,.6))}
.badge-strip{position:relative; border-top:1px solid rgba(255,255,255,.08); background:rgba(3,11,32,.7)}
.badge-strip .wrap{display:flex; justify-content:center; padding:1.1rem 0}
.badge{display:inline-flex; align-items:center; gap:.8rem; padding:.55rem 1.4rem; border:1px solid rgba(255,255,255,.35); border-radius:var(--radius-sm); font-stretch:125%; font-weight:700; letter-spacing:.08em; text-transform:uppercase; font-size:.88rem; color:#fff; text-align:center}
.badge svg{width:14px; height:14px; color:var(--red-hi); flex:none}

/* Sections */
section{padding:6rem 0}
.section-head{max-width:44rem; margin-bottom:3rem}
.section-head.center{margin-inline:auto; text-align:center}
h2{font-size:clamp(1.9rem, 3.6vw, 2.8rem); line-height:1.08; font-weight:850; font-stretch:118%; margin:.7rem 0 1rem; letter-spacing:-.005em}
h3{font-size:1.2rem; font-weight:750; font-stretch:110%; margin:0 0 .45rem; line-height:1.25}
.muted{color:var(--muted)}

/* About */
.about-grid{display:grid; grid-template-columns:1fr 1.1fr; gap:4rem; align-items:start}
.about-grid p{max-width:36em}
.features{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden}
.feature{background:var(--surface-2); padding:1.6rem 1.5rem}
.feature svg{width:34px; height:34px; color:var(--icon); margin-bottom:.9rem}
.feature p{margin:0; color:var(--muted); font-size:.97rem; line-height:1.55}
.feature.estimate{position:relative; overflow:hidden; grid-column:1 / -1; background:var(--blue-800); color:#fff; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; flex-wrap:wrap; border-top:3px solid var(--red)}
.feature.estimate > *:not(.stars){position:relative}
.feature.estimate h3{margin:0; font-size:1.35rem; font-stretch:118%}
.feature.estimate p{color:var(--silver)}

/* Mission band */
.band{background:linear-gradient(180deg,var(--blue-900),var(--blue-950)); color:var(--silver-hi)}
.band-grid{display:grid; grid-template-columns:1.2fr 1fr; gap:4rem; align-items:center}
.band p{color:var(--silver); max-width:38em}
.stats{display:grid; grid-template-columns:1fr 1fr; gap:1.25rem}
.stat{border:1px solid #20396a; border-top:3px solid var(--red); border-radius:var(--radius-sm) var(--radius-sm) var(--radius-lg) var(--radius-lg); padding:1.8rem 1.5rem; background:rgba(10,49,97,.35)}
.stat .num{font-size:clamp(2.8rem,5vw,3.8rem); font-weight:900; font-stretch:125%; line-height:1}
.stat .label{margin-top:.6rem; color:var(--silver); font-weight:600; font-stretch:110%}

/* Why choose us */
.why-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:4.5rem; align-items:center}
.bars{margin:2rem 0 2.4rem; display:grid; gap:1.4rem; max-width:32rem}
.bar-label{display:flex; justify-content:space-between; font-weight:700; font-stretch:112%; font-size:.95rem; margin-bottom:.5rem}
.bar{height:8px; background:var(--line); border-radius:99px; overflow:hidden}
.bar i{display:block; height:100%; width:100%; background:linear-gradient(90deg,var(--red-dk),var(--red)); border-radius:99px}
.plate{position:relative; overflow:hidden; background:radial-gradient(90% 80% at 50% 15%, #134784, var(--blue-900) 60%, var(--blue-950)); border-radius:var(--radius-lg); padding:3rem 2rem; text-align:center; color:#fff; box-shadow:inset 0 0 0 6px var(--blue-950), inset 0 0 0 8px var(--red)}
.plate .stars{opacity:.07; -webkit-mask-image:linear-gradient(180deg,#000,transparent 75%); mask-image:linear-gradient(180deg,#000,transparent 75%)}
.plate > *:not(.stars){position:relative}
.plate .big{font-size:clamp(5rem,11vw,8rem); font-weight:900; font-stretch:125%; line-height:.9}
.plate .under{font-stretch:125%; font-weight:700; letter-spacing:.1em; text-transform:uppercase; margin:.8rem 0 1.6rem; color:var(--silver)}
.plate blockquote{margin:0 auto; max-width:24em; color:var(--silver); font-size:1.02rem; border-top:1px solid rgba(255,255,255,.15); padding-top:1.4rem}

/* Services */
.services-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1.4rem}
.service{background:var(--surface-2); border:1px solid var(--line); border-top:3px solid var(--red); border-radius:var(--radius-sm) var(--radius-sm) var(--radius-lg) var(--radius-lg); padding:2rem 2rem 1.8rem; display:flex; flex-direction:column}
.service p{color:var(--muted); margin:0 0 1.2rem}
.service ul{list-style:none; margin:0 0 1.7rem; padding:1.2rem 0 0; border-top:1px solid var(--line); display:grid; gap:.6rem; align-content:start; flex:1}
.service li{position:relative; padding-left:1.35rem; line-height:1.45}
.service li::before{content:""; position:absolute; left:0; top:.3em; width:10px; height:10px; background:var(--bullet); clip-path:var(--star)}
.service a{align-self:flex-start; font-weight:700; font-stretch:112%; font-size:.92rem; color:var(--text); text-decoration:none; border-bottom:2px solid var(--red); padding-bottom:2px}
.service a:hover{color:var(--accent-text)}

/* Markets */
.markets{background:var(--blue-950); color:var(--silver-hi)}
.markets .section-head p{color:var(--silver)}
.market-row{display:grid; grid-template-columns:repeat(5,1fr); border-top:1px solid #1a3160; border-bottom:1px solid #1a3160}
.market{padding:2.2rem 1.3rem 2rem; text-align:center; border-right:1px solid rgba(229,72,77,.45)}
.market:last-child{border-right:0}
.market img{height:74px; width:auto; margin:0 auto 1.2rem}
.market h3{font-stretch:125%; text-transform:uppercase; letter-spacing:.06em; font-size:1rem; margin-bottom:.6rem}
.market p{margin:0; font-size:.92rem; color:var(--silver); line-height:1.5}

/* Contact */
.contact-grid{display:grid; grid-template-columns:1.25fr .75fr; gap:3rem; align-items:start}
form{display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; background:var(--surface-2); border:1px solid var(--line); border-radius:var(--radius-lg); padding:2rem}
form .full{grid-column:1 / -1}
label{display:block; font-weight:700; font-stretch:110%; font-size:.9rem; margin-bottom:.4rem}
input,select,textarea{width:100%; font:inherit; font-size:1rem; color:var(--text); background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-sm); padding:.8rem .9rem}
input:focus,select:focus,textarea:focus{outline:2px solid var(--blue-700); outline-offset:0; border-color:transparent}
textarea{min-height:140px; resize:vertical}
.form-note{grid-column:1 / -1; margin:0; font-size:.92rem; color:var(--muted); min-height:1.4em}
.info-card{background:var(--blue-800); color:#fff; border-radius:var(--radius-sm) var(--radius-sm) var(--radius-lg) var(--radius-lg); border-top:3px solid var(--red); padding:2rem; display:grid; gap:1.4rem}
.info-card h3{font-stretch:118%}
.info-item{display:flex; gap:.9rem; align-items:flex-start}
.info-item svg{width:20px; height:20px; color:#fff; opacity:.85; flex:none; margin-top:.2rem}
.info-item b{display:block; font-size:.82rem; color:#B8C6DE; font-weight:600; font-stretch:110%}
.info-item a,.info-item span{color:#fff; text-decoration:none; overflow-wrap:anywhere}
.info-item a:hover{text-decoration:underline; text-decoration-color:var(--red-hi); text-underline-offset:3px}

/* Footer */
footer{background:var(--blue-950); color:var(--silver); padding:4rem 0 2rem}
.foot-grid{display:grid; grid-template-columns:1.2fr 1fr 1.4fr; gap:3rem}
footer h4{color:#fff; font-stretch:118%; font-size:1rem; margin:0 0 1rem}
footer ul{list-style:none; margin:0; padding:0; display:grid; gap:.55rem; font-size:.95rem}
footer a{text-decoration:none} footer a:hover{color:#fff}
.svc-cols{display:grid; grid-template-columns:1fr 1fr; gap:.55rem 1.5rem}
.foot-brand img{width:150px; margin-bottom:1rem}
.foot-brand p{margin:0; font-size:.95rem; max-width:22em}
.copy{margin-top:3rem; padding-top:1.5rem; border-top:1px solid #13264d; font-size:.85rem; display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; color:var(--silver-lo)}

/* Responsive */
@media (max-width:980px){
  nav.primary{position:fixed; inset:calc(env(safe-area-inset-top,0px) + 80px) 0 auto 0; background:var(--blue-950); border-bottom:2px solid var(--red); display:none}
  nav.primary.open{display:block}
  nav.primary ul{flex-direction:column; gap:0; padding:.5rem 1.25rem 1.25rem}
  nav.primary a{display:block; padding:.9rem 0; border-bottom:1px solid #13264d}
  .menu-toggle{display:flex}
  .header-cta .btn{display:none}
  .hero .wrap,.about-grid,.band-grid,.why-grid,.contact-grid{grid-template-columns:1fr; gap:2.5rem}
  .hero .wrap{padding:3.5rem 0 4rem}
  .hero-crest{order:-1; width:min(300px,80%)}
  .hero-flag{-webkit-mask-image:linear-gradient(180deg, #000 0%, transparent 55%); mask-image:linear-gradient(180deg, #000 0%, transparent 55%)}
  .market-row{grid-template-columns:repeat(2,1fr)}
  .market{border-right:0; border-bottom:1px solid #1a3160}
  .market:nth-child(odd){border-right:1px solid rgba(229,72,77,.45)}
  .market:last-child{grid-column:1 / -1; border-right:0; border-bottom:0}
  .foot-grid{grid-template-columns:1fr 1fr}
  .foot-brand{grid-column:1 / -1}
}
@media (max-width:620px){
  section{padding:4.2rem 0}
  .topbar .hide-sm{display:none}
  .brand img{height:48px}
  .brand-name b{font-size:1.05rem}
  .features,.stats,.services-grid,form,.foot-grid,.svc-cols{grid-template-columns:1fr}
  .badge{font-size:.74rem; padding:.55rem .9rem}
  .hero h1{font-size:2.3rem}
  .hero .kicker{font-size:.88rem}
  .hero .kicker .s2{display:none}
  .hero .kicker .k3{display:block}
  .ribbon{height:15px; background:repeating-linear-gradient(180deg,var(--red) 0 3px,#FFFFFF 3px 6px)}
}
/* Utilities */
.plain-link{text-decoration:none}
.mt-2{margin-top:2rem}
.mt-xs{margin-top:.3rem}
.span-all{grid-column:1 / -1}
section.pt-sm{padding-top:2rem}
.hp{position:absolute !important; left:-10000px; width:1px; height:1px; overflow:hidden}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
}
