/* 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");
}
/* ------------------------------------------------------------------
   Ron's family of companies — shared red, white & blue system
   Same formula as Legacy Power Advisors (blue). Each company owns one
   flag color as its field:
     .rpps  Ron's Premium Property Solutions  → red field
     .rrss  Ron's Renewable Site Services     → white field
   Brand bands (hero, dark bands, footer) stay fixed in both color
   schemes; content surfaces follow the visitor's light/dark setting.
   ------------------------------------------------------------------ */
:root{
  --navy-950:#030B20; --navy-900:#07193C; --navy-800:#0A3161; --navy-700:#1B4A8A;
  --red:#B22234; --red-dk:#8E1A29; --red-hi:#E5484D;
  --silver:#C9D1DD; --silver-hi:#F5F7FA; --silver-lo:#8A95A8;
  --radius-sm:2px; --radius-lg:3px;
  --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%);
  --stars-white: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");
  --stars-navy: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='%230A3161'%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;
}

/* ---------- Theme: RPPS, red field ---------- */
.rpps{
  --page-bg:#2B050C;
  --band-a:#2B050C; --band-b:#5A0B19; --band-line:rgba(255,255,255,.14); --band-card:rgba(255,255,255,.06);
  --on-band:#FFFFFF; --on-band-muted:#F0D5D9; --on-band-mark:#FFFFFF;
  --hero-bg:
    radial-gradient(55% 75% at 0% 0%, rgba(10,49,97,.85), rgba(10,49,97,0) 72%),
    radial-gradient(110% 90% at 80% 35%, #A3192D 0%, #6E0F1F 50%, #3A0710 100%);
  --hero-text:#FFFFFF; --hero-muted:#F3DADE; --hero-sep:#FFFFFF;
  --hero-stars:var(--stars-white); --hero-stars-op:.16;
  --stripe-a:#FFFFFF; --stripe-a-op:.07; --stripe-b:#D23A50; --stripe-b-op:.22;
  --hero-ghost:rgba(255,255,255,.55); --hero-ghost-text:#FFFFFF;
  --strip-bg:rgba(20,2,6,.45); --strip-line:rgba(255,255,255,.12); --strip-text:#FFFFFF; --strip-star:#FFFFFF;
  --header-bg:rgba(58,7,16,.96); --header-text:#F3DADE; --header-strong:#FFFFFF; --header-line:#FFFFFF; --header-hover:#FFFFFF;
  --mark-bg:#FFFFFF; --mark-star:#B22234;
  --switch-accent:#E5484D;
  --btn-bg:#B22234; --btn-hover:#C42A3D; --btn-text:#FFFFFF;
  --btn-band-bg:#FFFFFF; --btn-band-hover:#F3E3E6; --btn-band-text:#8E1A29;
  --panel-bg:#FFFFFF; --panel-text:#1F0A0E; --panel-muted:#5E4A4E; --panel-line:#EADFE1; --panel-bullet:#0A3161;
  --tile-bg:#7A1222; --tile-top:#0A3161;
  --plate-bg:radial-gradient(90% 80% at 50% 15%, #A3192D, #5A0B19 60%, #2B050C); --plate-ring:#0A3161;
  --ribbon-top:#0A3161;
  --surface:#F7F5F5; --surface-2:#FFFFFF; --text:#1F0A0E; --muted:#5E4A4E; --line:#E6DCDE;
  --accent-text:#B22234; --rule-star:#0A3161; --rule-line:#B22234; --icon:#B22234; --bullet:#0A3161; --card-top:#B22234;
  --focus:#0A3161;
}
/* ---------- Theme: RRSS, white field ---------- */
.rrss{
  --page-bg:#030B20;
  --band-a:#030B20; --band-b:#07193C; --band-line:#1A3160; --band-card:rgba(10,49,97,.35);
  --on-band:#FFFFFF; --on-band-muted:#C9D1DD; --on-band-mark:#E5484D;
  --hero-bg:
    radial-gradient(55% 75% at 0% 0%, rgba(10,49,97,.09), rgba(10,49,97,0) 72%),
    linear-gradient(180deg, #FFFFFF 0%, #F1F4F9 100%);
  --hero-text:#0A1A3A; --hero-muted:#3D4A66; --hero-sep:#B22234;
  --hero-stars:var(--stars-navy); --hero-stars-op:.13;
  --stripe-a:#B22234; --stripe-a-op:.11; --stripe-b:#0A3161; --stripe-b-op:0;
  --hero-ghost:rgba(10,49,97,.45); --hero-ghost-text:#0A3161;
  --strip-bg:#EEF1F6; --strip-line:#DCE2EB; --strip-text:#0A1A3A; --strip-star:#B22234;
  --header-bg:rgba(255,255,255,.96); --header-text:#3D4A66; --header-strong:#0A1A3A; --header-line:#B22234; --header-hover:#0A1A3A;
  --mark-bg:#0A3161; --mark-star:#FFFFFF;
  --switch-accent:#FFFFFF;
  --btn-bg:#B22234; --btn-hover:#C42A3D; --btn-text:#FFFFFF;
  --btn-band-bg:#B22234; --btn-band-hover:#C42A3D; --btn-band-text:#FFFFFF;
  --panel-bg:#0A3161; --panel-text:#FFFFFF; --panel-muted:#C9D6EA; --panel-line:rgba(255,255,255,.16); --panel-bullet:#FFFFFF;
  --tile-bg:#0A3161; --tile-top:#B22234;
  --plate-bg:radial-gradient(90% 80% at 50% 15%, #134784, #07193C 60%, #030B20); --plate-ring:#B22234;
  --ribbon-top:#0A3161;
  --surface:#FFFFFF; --surface-2:#FFFFFF; --text:#0A1A3A; --muted:#475470; --line:#DCE2EB;
  --surface-alt:#F4F6FA;
  --accent-text:#B22234; --rule-star:#B22234; --rule-line:#B22234; --icon:#0A3161; --bullet:#B22234; --card-top:#B22234;
  --focus:#B22234;
}
/* Dark color scheme: content surfaces only */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .rpps{
    --surface:#1A080C; --surface-2:#2A1016; --text:#F6EDEF; --muted:#CDB3B8; --line:#43202A;
    --accent-text:#FF8A93; --rule-star:#9DB8E8; --rule-line:#FF8A93; --icon:#FF8A93; --bullet:#9DB8E8; --focus:#9DB8E8;
  }
  :root:not([data-theme="light"]) .rrss{
    --surface:#061431; --surface-2:#0B2150; --surface-alt:#081A40; --text:#EEF1F6; --muted:#A9B4C8; --line:#1D3868;
    --accent-text:#EF6A70; --icon:#8FB0E0; --bullet:#EF6A70; --focus:#EF6A70;
  }
}
:root[data-theme="dark"] .rpps{
  --surface:#1A080C; --surface-2:#2A1016; --text:#F6EDEF; --muted:#CDB3B8; --line:#43202A;
  --accent-text:#FF8A93; --rule-star:#9DB8E8; --rule-line:#FF8A93; --icon:#FF8A93; --bullet:#9DB8E8; --focus:#9DB8E8;
}
:root[data-theme="dark"] .rrss{
  --surface:#061431; --surface-2:#0B2150; --surface-alt:#081A40; --text:#EEF1F6; --muted:#A9B4C8; --line:#1D3868;
  --accent-text:#EF6A70; --icon:#8FB0E0; --bullet:#EF6A70; --focus:#EF6A70;
}

*,*::before,*::after{box-sizing:inherit}
html{scroll-behavior:smooth; scroll-padding-top:calc(env(safe-area-inset-top,0px) + 84px); background:var(--navy-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(--focus); 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));
}
.stars{position:absolute; inset:0; background-image:var(--stars-white); background-size:56px 48px; opacity:.08; pointer-events:none}
/* Multi-line headings: a flatter metal so no line lands in the dark band */
h2.metal{background:linear-gradient(180deg,#FFFFFF 0%,#E6E9EE 60%,#C9CFD8 100%); -webkit-background-clip:text; background-clip:text}
.ribbon{height:25px; border-top:4px solid var(--ribbon-top); background:repeating-linear-gradient(180deg,var(--red) 0 3px,#FFFFFF 3px 6px); box-shadow:inset 0 -1px 0 rgba(0,0,0,.15)}
.rule{display:flex; align-items:center; gap:.7rem; color:var(--on-band); 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(--on-band-mark); clip-path:var(--star)}
.rule::after{content:""; height:1px; flex:1; max-width:90px; background:linear-gradient(270deg,transparent,var(--on-band-mark))}
.center .rule{justify-content:center}
.center .rule::after{width:11px; height:11px; flex:none; max-width:none; background:var(--on-band-mark); clip-path:var(--star)}
.light-rule{color:var(--accent-text)}
.light-rule::before,.center .light-rule::after{background:var(--rule-star)}
.light-rule::after{background:linear-gradient(270deg,transparent,var(--rule-line))}

/* 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(--btn-bg); color:var(--btn-text); box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}
.btn-primary:hover{background:var(--btn-hover)}
.btn-band{background:var(--btn-band-bg); color:var(--btn-band-text)}
.btn-band:hover{background:var(--btn-band-hover)}
.btn-ghost{border-color:rgba(255,255,255,.5); color:#FFFFFF}
.btn-ghost:hover{border-color:#FFFFFF; background:rgba(255,255,255,.07)}
.btn-hero-ghost{border-color:var(--hero-ghost); color:var(--hero-ghost-text)}
.btn-hero-ghost:hover{border-color:var(--hero-ghost-text)}
.btn-dark{background:var(--navy-800); color:#FFFFFF; border-color:#2A5596}
.btn-dark:hover{background:var(--navy-700)}
.btn svg{width:18px; height:18px; flex:none}

/* Company switcher (shared across both pages) */
.switcher{background:var(--navy-950); color:var(--silver); font-size:.84rem; border-bottom:1px solid #13264d}
.switcher .wrap{display:flex; justify-content:space-between; align-items:stretch; gap:1rem}
.switcher nav{display:flex; gap:0}
.switcher nav a{display:flex; align-items:center; padding:.6rem 1rem; text-decoration:none; font-weight:600; font-stretch:110%; color:var(--silver); border-bottom:2px solid transparent}
.switcher nav a:first-child{padding-left:0}
.switcher nav a:hover{color:#FFFFFF}
.switcher nav a[aria-current="page"]{color:#FFFFFF; border-bottom-color:var(--switch-accent)}
.switcher .meta{display:flex; align-items:center; gap:1.2rem}
.switcher .meta span{display:inline-flex; align-items:center; gap:.45rem}
.switcher .meta svg{width:14px; height:14px; color:var(--red-hi)}
.switcher .short{display:none}

/* Header */
header.site{position:sticky; top:env(safe-area-inset-top,0px); z-index:50; background:var(--header-bg); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); border-bottom:2px solid var(--header-line)}
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-mark{width:46px; height:46px; border-radius:50%; background:var(--mark-bg); display:grid; place-items:center; flex:none; box-shadow:0 0 0 3px rgba(255,255,255,.12)}
.brand-mark::before{content:""; width:24px; height:24px; background:var(--mark-star); clip-path:var(--star)}
.brand-name{display:flex; flex-direction:column; line-height:1.05}
.brand-name b{font-size:1.3rem; font-weight:900; font-stretch:125%; letter-spacing:.02em; color:var(--header-strong)}
.brand-name small{font-size:.62rem; font-weight:600; font-stretch:125%; letter-spacing:.15em; color:var(--header-text); text-transform:uppercase}
nav.primary ul{display:flex; gap:1.9rem; list-style:none; margin:0; padding:0}
nav.primary a{color:var(--header-text); text-decoration:none; font-weight:600; font-size:.95rem; padding:.4rem 0; border-bottom:2px solid transparent}
nav.primary a:hover{color:var(--header-hover); border-bottom-color:var(--header-line)}
.header-cta{display:flex; align-items:center; gap:.8rem}
.menu-toggle{display:none; background:none; border:1px solid var(--header-text); color:var(--header-strong); 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, ghosted stripes waving on the right */
.hero{position:relative; overflow:hidden; background:var(--hero-bg); color:var(--hero-text)}
.hero .stars{background-image:var(--hero-stars); opacity:var(--hero-stars-op); -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-white{stroke:var(--stripe-a); opacity:var(--stripe-a-op)}
.hero-flag .s-red{stroke:var(--stripe-b); opacity:var(--stripe-b-op)}
.rrss .hero-flag .s-red{stroke:var(--stripe-a); opacity:var(--stripe-a-op)}
.rrss .hero-flag .s-white{opacity:0}
.hero .wrap{position:relative; display:grid; grid-template-columns:1.15fr .85fr; gap:3.5rem; align-items:center; padding:5rem 0 5.5rem}
.hero .kicker{color:var(--hero-muted); font-weight:600; font-stretch:112%; margin:0 0 1.1rem; font-size:1rem; letter-spacing:.01em}
.hero .kicker .sep{color:var(--hero-sep); margin:0 .55em}
.hero h1{margin:0; font-weight:900; font-stretch:112%; line-height:1; letter-spacing:0; text-transform:uppercase}
.hero h1 > span{display:block}
.hero h1 .h1-sm{font-size:clamp(1.25rem, 2.3vw, 1.9rem); font-stretch:112%; letter-spacing:.02em; margin-bottom:.45rem}
.hero h1 .h1-lg{font-size:clamp(2.3rem, 5.2vw, 4.4rem)}
.hero h1 .h1-md{font-size:clamp(1.7rem, 3.6vw, 3rem); margin-top:.35rem; letter-spacing:.02em}
.rpps .hero h1 .h1-sm{color:#FFFFFF}
.rrss .hero h1 .h1-lg{color:var(--navy-800); font-size:clamp(2.1rem, 4.2vw, 3.6rem); font-stretch:100%}
.rrss .hero h1 .h1-md{font-stretch:100%}
.rrss .hero h1 .h1-md{color:var(--red); font-size:clamp(1.6rem, 3.1vw, 2.7rem)}
.hero p.lede{max-width:34em; color:var(--hero-muted); font-size:1.15rem; margin:1.6rem 0 2.2rem}
.hero .actions{display:flex; gap:1rem; flex-wrap:wrap}

/* Hero estimate panel */
.panel{position:relative; overflow:hidden; background:var(--panel-bg); color:var(--panel-text); border-radius:var(--radius-sm) var(--radius-sm) var(--radius-lg) var(--radius-lg); border-top:4px solid var(--tile-top); padding:2rem; box-shadow:0 30px 60px rgba(0,0,0,.28)}
.rrss .panel{box-shadow:0 30px 60px rgba(10,49,97,.22)}
.panel .stars{opacity:.06; background-image:var(--stars-navy); -webkit-mask-image:linear-gradient(200deg,#000,transparent 55%); mask-image:linear-gradient(200deg,#000,transparent 55%)}
.rrss .panel .stars{background-image:var(--stars-white); opacity:.09}
.panel > *:not(.stars){position:relative}
.panel h2{margin:0 0 .35rem; font-size:1.55rem; font-stretch:118%; line-height:1.15}
.panel p{margin:0 0 1.2rem; color:var(--panel-muted); font-size:.98rem}
.panel .btn{width:100%; justify-content:center; font-size:1.05rem}
.panel ul{list-style:none; margin:1.4rem 0 0; padding:1.2rem 0 0; border-top:1px solid var(--panel-line); display:grid; grid-template-columns:1fr 1fr; gap:.55rem 1rem; font-size:.95rem; font-weight:600}
.panel li{position:relative; padding-left:1.2rem; line-height:1.35}
.panel li::before{content:""; position:absolute; left:0; top:.2em; width:10px; height:10px; background:var(--panel-bullet); clip-path:var(--star)}
.panel .hours{margin:1.2rem 0 0; font-size:.88rem; color:var(--panel-muted)}

.badge-strip{position:relative; border-top:1px solid var(--strip-line); background:var(--strip-bg)}
.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 var(--strip-line); border-radius:var(--radius-sm); font-stretch:125%; font-weight:700; letter-spacing:.08em; text-transform:uppercase; font-size:.88rem; color:var(--strip-text); text-align:center}
.rpps .badge{border-color:rgba(255,255,255,.35)}
.rrss .badge{border-color:rgba(10,49,97,.3)}
.badge svg{width:14px; height:14px; color:var(--strip-star); flex:none}

/* Sections */
section{padding:6rem 0}
section.alt{background:var(--surface-alt, var(--surface))}
.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(--tile-bg); color:#FFFFFF; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; flex-wrap:wrap; border-top:3px solid var(--tile-top)}
.feature.estimate > *:not(.stars){position:relative}
.feature.estimate .stars{opacity:.05}
.feature.estimate h3{margin:0; font-size:1.35rem; font-stretch:118%}
.feature.estimate p{color:rgba(255,255,255,.82)}

/* Dark bands */
.band{background:linear-gradient(180deg,var(--band-b),var(--band-a)); color:var(--on-band)}
.band-grid{display:grid; grid-template-columns:1.2fr 1fr; gap:4rem; align-items:center}
.band p{color:var(--on-band-muted); max-width:38em}
.stats{display:grid; grid-template-columns:1fr 1fr; gap:1.25rem}
.stat{border:1px solid var(--band-line); border-top:3px solid var(--on-band-mark); border-radius:var(--radius-sm) var(--radius-sm) var(--radius-lg) var(--radius-lg); padding:1.8rem 1.5rem; background:var(--band-card)}
.rpps .stat{border-top-color:var(--navy-800)}
.stat .num{font-size:clamp(2.6rem,4.6vw,3.6rem); font-weight:900; font-stretch:125%; line-height:1}
.stat .label{margin-top:.6rem; color:var(--on-band-muted); 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:var(--plate-bg); border-radius:var(--radius-lg); padding:3rem 2rem; text-align:center; color:#FFFFFF; box-shadow:inset 0 0 0 6px var(--band-a), inset 0 0 0 8px var(--plate-ring)}
.plate .stars{opacity:.08; -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(3.6rem,8vw,6rem); font-weight:900; font-stretch:125%; line-height:.95}
.plate .big.word{font-size:clamp(2.5rem,5.4vw,4.2rem); white-space:nowrap}
.plate .under{font-stretch:125%; font-weight:700; letter-spacing:.1em; text-transform:uppercase; margin:.9rem 0 1.6rem; color:rgba(255,255,255,.85)}
.plate blockquote{margin:0 auto; max-width:24em; color:rgba(255,255,255,.85); font-size:1.02rem; border-top:1px solid rgba(255,255,255,.18); padding-top:1.4rem}

/* Services */
.services-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1.4rem}
.services-grid.three{grid-template-columns:repeat(3,1fr)}
.service{background:var(--surface-2); border:1px solid var(--line); border-top:3px solid var(--card-top); 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 (sites we serve) */
.markets{background:var(--band-a); color:var(--on-band)}
.markets .section-head p{color:var(--on-band-muted)}
.market-row{display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--band-line); border-bottom:1px solid var(--band-line)}
.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(--on-band-muted); 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}
.rrss form{background:var(--surface-alt)}
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(--focus); 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(--tile-bg); color:#FFFFFF; border-radius:var(--radius-sm) var(--radius-sm) var(--radius-lg) var(--radius-lg); border-top:3px solid var(--tile-top); 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:#FFFFFF; opacity:.85; flex:none; margin-top:.2rem}
.info-item b{display:block; font-size:.82rem; color:rgba(255,255,255,.7); font-weight:600; font-stretch:110%}
.info-item a,.info-item span{color:#FFFFFF; text-decoration:none; overflow-wrap:anywhere}
.info-item a:hover{text-decoration:underline; text-underline-offset:3px}

/* Footer */
footer{background:var(--band-a); color:var(--on-band-muted); padding:4rem 0 2rem}
.foot-grid{display:grid; grid-template-columns:1.2fr 1fr 1.4fr; gap:3rem}
footer h4{color:#FFFFFF; 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:#FFFFFF}
.svc-cols{display:grid; grid-template-columns:1fr 1fr; gap:.55rem 1.5rem}
.foot-brand .brand{margin-bottom:1rem}
.foot-brand .brand-name b{color:#FFFFFF}
.foot-brand .brand-name small{color:var(--on-band-muted)}
.foot-brand p{margin:0; font-size:.95rem; max-width:22em}
.family{margin-top:3rem; padding-top:1.5rem; border-top:1px solid var(--band-line); display:flex; flex-wrap:wrap; align-items:center; gap:.6rem 1.6rem; font-size:.9rem}
.family b{color:#FFFFFF; font-stretch:112%; font-weight:700}
.family a{display:inline-flex; align-items:center; gap:.5rem}
.family a::before{content:""; width:9px; height:9px; background:var(--on-band-mark); clip-path:var(--star)}
.family a[aria-current="page"]{color:#FFFFFF}
.copy{margin-top:1.5rem; font-size:.85rem; display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; color:var(--on-band-muted); opacity:.8}

/* 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}

/* Responsive */
@media (max-width:1100px){
  nav.primary{position:fixed; inset:calc(env(safe-area-inset-top,0px) + 80px) 0 auto 0; background:var(--header-bg); border-bottom:2px solid var(--header-line); 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 var(--strip-line)}
  .menu-toggle{display:flex}
  .header-cta .btn{display:none}
}
@media (max-width:980px){
  .switcher .meta{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-flag{-webkit-mask-image:linear-gradient(180deg, #000 0%, transparent 55%); mask-image:linear-gradient(180deg, #000 0%, transparent 55%)}
  .services-grid.three{grid-template-columns:1fr 1fr}
  .market-row{grid-template-columns:repeat(2,1fr)}
  .market{border-right:0; border-bottom:1px solid var(--band-line)}
  .market:nth-child(odd){border-right:1px solid rgba(229,72,77,.45)}
  .market:nth-last-child(-n+2){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}
  .switcher .long{display:none}
  .switcher .short{display:inline}
  .switcher nav a{padding:.6rem .7rem; font-size:.8rem}
  .brand-mark{width:40px; height:40px}
  .brand-name b{font-size:1.1rem}
  .brand-name small{font-size:.56rem; letter-spacing:.12em}
  .features,.stats,.services-grid,.services-grid.three,form,.foot-grid,.svc-cols,.panel ul{grid-template-columns:1fr}
  .badge{font-size:.74rem; padding:.55rem .9rem}
  .hero .kicker{font-size:.88rem}
  .ribbon{height:19px; background:repeating-linear-gradient(180deg,var(--red) 0 3px,#FFFFFF 3px 6px)}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
}

/* Footer mark sits on a dark band in both themes */
.rrss footer .brand-mark{background:#FFFFFF}
.rrss footer .brand-mark::before{background:var(--red)}


/* ==================================================================
   Field-crew layer: these are hands-on, heavy-equipment companies, so
   the type turns condensed and signage-like, edges go square, and real
   job-site photos and video carry the page. Flag motifs stay.
   ================================================================== */
h2{font-size:clamp(2.2rem, 4.6vw, 3.5rem); font-weight:900; font-stretch:75%; text-transform:uppercase; line-height:.98; letter-spacing:.005em}
h3{font-weight:800; font-stretch:87.5%; text-transform:uppercase; letter-spacing:.02em; font-size:1.25rem}
.btn{font-stretch:87.5%; text-transform:uppercase; letter-spacing:.06em; font-weight:800; font-size:.95rem; padding:1rem 1.6rem}
.brand-name b{font-stretch:75%; font-size:1.6rem; letter-spacing:.03em}
.rule{font-stretch:100%}

/* Photo hero (RPPS) */
.hero.photo{background:#2B050C; color:#FFFFFF}
.hero-bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:70% 55%}
.hero-shade{position:absolute; inset:0; background:
  linear-gradient(90deg, rgba(43,5,12,.95) 0%, rgba(74,9,21,.86) 38%, rgba(90,11,25,.35) 68%, rgba(90,11,25,.08) 100%),
  linear-gradient(0deg, rgba(43,5,12,.6) 0%, rgba(43,5,12,0) 35%)}
.hero.photo .stars{opacity:.12}
.hero.photo .wrap{grid-template-columns:1fr; padding:7rem 0 7.5rem; min-height:min(78vh, 720px); align-content:center}
.hero.photo .hero-copy{max-width:40rem}
.hero h1{font-stretch:75%; line-height:.92}
.hero h1 .h1-sm{font-stretch:87.5%; font-size:clamp(1.3rem, 2.4vw, 2rem); letter-spacing:.03em}
.hero h1 .h1-lg{font-size:clamp(3.4rem, 9vw, 7.2rem); font-stretch:75%; letter-spacing:.005em}
.hero.photo p.lede{color:#F3DADE; font-size:1.2rem}

/* Split hero (RRSS): white field + drone footage */
.hero.split{background:#FFFFFF}
.hero.split .wrap{grid-template-columns:1fr 1fr; gap:0; padding:0; min-height:min(76vh, 680px); align-items:stretch}
.hero.split .hero-copy{padding:5.5rem 3.5rem 5.5rem 0; align-self:center}
.hero.split .hero-media{position:relative; margin-right:calc((100vw - min(1180px, 100vw - 2.5rem)) / -2); overflow:hidden; background:var(--navy-950)}
.hero.split .hero-media video,.hero.split .hero-media img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.hero.split .hero-media::before{content:""; position:absolute; z-index:2; left:0; top:0; bottom:0; width:18px; background:repeating-linear-gradient(90deg,var(--red) 0 3px,#FFFFFF 3px 6px)}
.hero.split .hero-media::after{content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(3,11,32,.35), rgba(3,11,32,0) 40%)}
.rrss .hero h1 .h1-lg{color:var(--navy-800); font-size:clamp(3rem, 6.2vw, 5.6rem); font-stretch:75%}
.rrss .hero h1 .h1-md{color:var(--red); font-size:clamp(1.9rem, 3.9vw, 3.5rem); font-stretch:75%; margin-top:.25rem}
.hero.split p.lede{color:var(--hero-muted)}

/* Call bar under the hero */
.callbar{background:var(--callbar-bg, #8E1A29); color:#FFFFFF; position:relative}
.rrss{--callbar-bg:#0A3161}
.callbar .wrap{display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:.6rem 1.6rem; padding:1rem 0; font-stretch:87.5%; font-weight:800; text-transform:uppercase; letter-spacing:.06em; font-size:.95rem}
.callbar a{color:#FFFFFF; text-decoration:none; font-size:1.25rem; letter-spacing:.04em}
.callbar a:hover{text-decoration:underline; text-underline-offset:4px}
.callbar .dot{width:10px; height:10px; background:#FFFFFF; clip-path:var(--star); opacity:.85}

/* Media frames (video and photos with captions) */
.media-frame{position:relative; margin:0; background:#111; border-top:5px solid var(--red); box-shadow:0 24px 50px rgba(0,0,0,.25)}
.rpps .media-frame{border-top-color:var(--navy-800)}
.media-frame video,.media-frame img{display:block; width:100%; height:100%; object-fit:cover}
.media-frame.portrait{aspect-ratio:9/16; max-width:340px; margin-inline:auto}
.media-frame.landscape{aspect-ratio:4/3}
.media-frame figcaption{position:absolute; left:0; bottom:0; right:0; padding:2.2rem 1.1rem .9rem; color:#FFFFFF; font-stretch:87.5%; font-weight:800; text-transform:uppercase; letter-spacing:.05em; font-size:.85rem; background:linear-gradient(0deg, rgba(0,0,0,.75), rgba(0,0,0,0))}
.video-toggle{position:absolute; z-index:3; top:.8rem; right:.8rem; width:40px; height:40px; border-radius:50%; border:1px solid rgba(255,255,255,.6); background:rgba(0,0,0,.45); color:#FFFFFF; cursor:pointer; display:grid; place-items:center}
.video-toggle svg{width:16px; height:16px}
.video-toggle .i-play{display:none}
.video-toggle.paused .i-play{display:block}
.video-toggle.paused .i-pause{display:none}

/* About: copy + media */
.about-grid.media{grid-template-columns:1.2fr .8fr; align-items:center}
.checks{list-style:none; margin:2rem 0 0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:1.3rem 2rem}
.checks li{display:grid; grid-template-columns:34px 1fr; gap:.2rem .9rem; align-items:start}
.checks svg{width:30px; height:30px; color:var(--icon); grid-row:span 2}
.checks b{font-stretch:87.5%; text-transform:uppercase; letter-spacing:.03em; font-size:1.05rem}
.checks span{color:var(--muted); font-size:.95rem; line-height:1.45}

/* Bands with a photo behind them */
.band.photo{position:relative; overflow:hidden; background:var(--band-a)}
.band.photo > img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.band.photo::before{content:""; position:absolute; inset:0; z-index:1; background:var(--band-shade)}
.rpps{--band-shade:linear-gradient(90deg, rgba(43,5,12,.96) 0%, rgba(74,9,21,.9) 50%, rgba(74,9,21,.78) 100%)}
.rrss{--band-shade:linear-gradient(180deg, rgba(3,11,32,.88), rgba(3,11,32,.94))}
.band.photo > .wrap{position:relative; z-index:2}
.band.photo .band-grid{grid-template-columns:1fr 1fr}
.band.photo .stat{padding:1.5rem 1.2rem; background:rgba(0,0,0,.22)}
.band.photo .stat .num{font-size:clamp(2.4rem,3.8vw,3.4rem)}
.stats.row{grid-template-columns:repeat(3,1fr)}
.stat .num{font-stretch:75%; font-size:clamp(3rem,5.4vw,4.4rem)}
.markets.photo{position:relative; overflow:hidden}
.markets.photo > img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.markets.photo::before{content:""; position:absolute; inset:0; z-index:1; background:var(--band-shade)}
.markets.photo > .wrap{position:relative; z-index:2}

/* Gallery */
.gallery{display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:240px; gap:10px}
.gallery figure{position:relative; margin:0; overflow:hidden; background:#111}
.gallery img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease}
.gallery figure:hover img{transform:scale(1.03)}
.gallery .wide{grid-column:span 2}
.gallery .tall{grid-row:span 2}
.gallery figcaption{position:absolute; left:0; right:0; bottom:0; padding:2rem .9rem .75rem; color:#FFFFFF; font-stretch:87.5%; font-weight:800; text-transform:uppercase; letter-spacing:.05em; font-size:.8rem; background:linear-gradient(0deg, rgba(0,0,0,.72), rgba(0,0,0,0))}

/* Plate goes plain and bold */
.plate .big{font-stretch:75%; font-size:clamp(5rem,11vw,8.5rem)}
.plate .big.word{font-stretch:75%; font-size:clamp(3.4rem,7vw,5.6rem)}

@media (max-width:980px){
  .about-grid.media{grid-template-columns:1fr}
  .hero.photo .wrap{padding:5rem 0 5.5rem; min-height:0}
  .hero-shade{background:linear-gradient(90deg, rgba(43,5,12,.94), rgba(74,9,21,.8)), linear-gradient(0deg, rgba(43,5,12,.6), rgba(43,5,12,0) 35%)}
  .hero.split .wrap{grid-template-columns:1fr; min-height:0}
  .hero.split .hero-media{order:-1; aspect-ratio:16/9; margin:0 -1.25rem}
  .hero.split .hero-media::before{left:0; right:0; top:auto; bottom:0; width:auto; height:15px; background:repeating-linear-gradient(180deg,var(--red) 0 3px,#FFFFFF 3px 6px)}
  .hero.split .hero-copy{padding:2.5rem 0 3.5rem}
  .stats.row{grid-template-columns:1fr 1fr 1fr}
  .gallery{grid-template-columns:1fr 1fr; grid-auto-rows:200px}
}
@media (max-width:620px){
  .checks{grid-template-columns:1fr}
  .stats.row{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr 1fr; grid-auto-rows:160px}
  .gallery .wide{grid-column:span 2}
  .callbar .wrap{font-size:.82rem; gap:.4rem 1rem}
  .callbar a{font-size:1.1rem}
  .media-frame.portrait{max-width:280px}
}
@media (prefers-reduced-motion: reduce){
  .gallery img{transition:none}
}
.market h3{font-stretch:87.5%; font-size:1.1rem}
.hero.split .hero-media .video-toggle{top:auto; right:auto; bottom:1rem; left:2rem}
@media (max-width:980px){
  .band.photo .band-grid{grid-template-columns:1fr}
  .hero-shade{background:linear-gradient(90deg, rgba(43,5,12,.9), rgba(74,9,21,.66)), linear-gradient(0deg, rgba(43,5,12,.6), rgba(43,5,12,0) 35%)}
}
@media (max-width:620px){
  .band.photo .stats.row{grid-template-columns:1fr 1fr 1fr; gap:.6rem}
  .band.photo .stat{padding:1rem .8rem}
  .band.photo .stat .label{font-size:.85rem}
}

/* Real logo (RPPS) */
.brand-logo{height:52px; width:auto; display:block; border-radius:2px; box-shadow:0 0 0 1px rgba(255,255,255,.4), 0 4px 12px rgba(0,0,0,.35)}
.foot-logo{display:inline-block; margin-bottom:1.1rem}
.foot-logo img{width:240px; height:auto; border-radius:2px; box-shadow:0 0 0 1px rgba(255,255,255,.25)}
@media (max-width:620px){ .brand-logo{height:42px} }

/* Job list at the top of each hero (matches the business cards) */
.kicker.jobs{list-style:none; padding:0; display:flex; flex-wrap:wrap; gap:.35rem .9rem; max-width:44rem}
.kicker.jobs li{display:inline-flex; align-items:center; gap:.5rem; font-stretch:87.5%; text-transform:uppercase; letter-spacing:.06em; font-weight:800; font-size:.92rem}
.kicker.jobs li::before{content:""; width:9px; height:9px; background:var(--hero-sep); clip-path:var(--star); flex:none}

/* Business card strip */
.card-strip{padding:5rem 0; background:var(--surface-2); border-top:1px solid var(--line)}
.rrss .card-strip{background:var(--surface)}
.card-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:4rem; align-items:center}
.biz-card{margin:0}
.biz-card img{width:100%; height:auto; border-radius:8px; box-shadow:0 26px 50px rgba(0,0,0,.28), 0 3px 8px rgba(0,0,0,.18)}
.btn-outline{border-color:var(--text); color:var(--text)}
.btn-outline:hover{background:var(--text); color:var(--surface-2)}
.card-strip .actions{display:flex; gap:1rem; flex-wrap:wrap}
@media (max-width:980px){ .card-grid{grid-template-columns:1fr; gap:2.5rem} }
@media (max-width:620px){ .card-strip{padding:3.5rem 0} .kicker.jobs li{font-size:.8rem} .kicker.jobs{gap:.3rem .9rem} }
.info-item a[href^="mailto:"]{font-size:.9rem}
.hero.photo .hero-copy{max-width:47rem}
.hero.photo .kicker.jobs{max-width:none}

/* Hero copy starts near the top instead of floating mid-photo */
.hero.photo .wrap{padding:3.25rem 0 5rem; min-height:min(68vh, 620px); align-content:start}
.hero.photo .hero-copy{max-width:56rem}
.hero.photo .hero-copy > :not(.kicker){max-width:47rem}
@media (max-width:980px){ .hero.photo .wrap{padding:2.25rem 0 3.5rem; min-height:0} }
.hero.photo .hero-copy{max-width:66rem}
.hero.photo .hero-copy > p.lede{max-width:36rem}


/* ==================================================================
   Consistent layout at every width: lines break in planned places,
   lists sit on an even grid, stacked buttons share one width.
   ================================================================== */
nav.primary a,.header-cta .btn,.brand-name small,.callbar span,.callbar a,.kicker.jobs li{white-space:nowrap}

/* Headlines: planned line breaks, sized to the viewport */
.hero h1 .w{display:inline-block}
.rrss .hero h1 .h1-lg .w{display:block}
.rpps .hero h1 .h1-lg{font-size:clamp(3.2rem, 8.6vw, 7.2rem)}
.rrss .hero h1 .h1-lg{font-size:clamp(3rem, 6.4vw, 5.6rem)}
.rrss .hero h1 .h1-md{font-size:clamp(1.55rem, 3.15vw, 3.2rem)}

/* Job lists: even grid instead of ragged wrapping */
.rrss .kicker.jobs{display:grid; grid-template-columns:repeat(2, max-content); gap:.45rem 1.6rem}
@media (max-width:1100px){
  .rpps .kicker.jobs{display:grid; grid-template-columns:repeat(4, max-content); gap:.45rem 1.4rem}
}


@media (max-width:620px){
  .rpps .hero h1 .h1-sm{font-size:min(5.4vw, 1.6rem)}
  .rpps .hero h1 .h1-lg{font-size:min(14.6vw, 5rem)}
  .rpps .hero h1 .h1-lg .w{display:block}
  .rrss .hero h1 .h1-lg{font-size:min(15.5vw, 5rem)}
  .rrss .hero h1 .h1-md{font-size:min(8.4vw, 2.6rem)}
  .kicker.jobs,.rpps .kicker.jobs,.rrss .kicker.jobs{display:grid; grid-template-columns:1fr 1fr; gap:.45rem .9rem}
  .kicker.jobs li{font-size:min(3.4vw, .82rem); letter-spacing:.04em}
  .actions{flex-direction:column; align-items:stretch}
  .actions .btn{justify-content:center; width:100%}
  .about-grid .btn,.why-grid .btn,.band .btn{width:100%; justify-content:center}
}
@media (max-width:620px){ .rpps .hero h1 .h1-sm{font-size:min(5vw, 1.6rem)} }
@media (max-width:360px){
  header.site .wrap{gap:.6rem}
  .brand{gap:.55rem}
  .brand-logo{height:34px}
  .brand-mark{width:34px; height:34px}
  .brand-mark::before{width:18px; height:18px}
  .brand-name b{font-size:1.15rem}
  .brand-name small{font-size:.5rem; letter-spacing:.08em}
  .menu-toggle{width:40px; height:40px}
}
.stats > *{min-width:0}
@media (max-width:620px){
  .band.photo .stat .num{font-size:min(9.5vw, 2.6rem)}
  .band.photo .stat .label{font-size:min(3.3vw,.85rem); overflow-wrap:anywhere}
}
.foot-grid > *,.contact-grid > *,.about-grid > *,.band-grid > *,.why-grid > *,.card-grid > *{min-width:0}
footer a[href^="mailto:"]{overflow-wrap:anywhere}

/* Call bar: phone first, then the facts. One row on wide screens,
   phone above a single facts line on tablets, a short stack on phones. */
.callbar .wrap{display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:.4rem 1.4rem}
.callbar .call{font-size:1.35rem}
.callbar .facts{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:.3rem 1.4rem}
.callbar .facts li{display:inline-flex; align-items:center; gap:1.4rem; white-space:nowrap}
.callbar .facts li::before{content:""; width:9px; height:9px; background:#FFFFFF; opacity:.85; clip-path:var(--star)}
@media (max-width:980px){
  .callbar .wrap{flex-direction:column; gap:.35rem; padding:1.1rem 0 1.2rem}
  .callbar .facts li:first-child::before{display:none}
}
@media (max-width:760px){
  .callbar .facts{flex-direction:column; gap:.2rem}
  .callbar .facts li::before{display:none}
  .callbar .facts li{font-size:.82rem}
  .callbar .call{font-size:1.3rem}
}
.rrss{--band-shade:linear-gradient(180deg, rgba(3,11,32,.74), rgba(3,11,32,.9))}
.markets.photo > img{object-position:center 75%}

/* Band stats on phones: each stat becomes a tidy row (number, then label)
   so words never break mid-word in narrow cards. */
.stat .label{overflow-wrap:normal; word-break:normal; hyphens:manual}
@media (max-width:620px){
  .band.photo .stats.row{grid-template-columns:1fr; gap:.7rem}
  .band.photo .stat{display:flex; align-items:center; gap:1.1rem; padding:1rem 1.2rem}
  .band.photo .stat .num{font-size:min(10vw, 2.6rem); min-width:4.6ch; flex:none}
  .band.photo .stat .label{margin-top:0; font-size:.95rem}
}

/* Footer company list: one line when it fits, then label above a single
   row of links, then a clean stacked list on small screens. */
@media (max-width:1100px){
  .family{display:grid; grid-template-columns:repeat(3, max-content); gap:.7rem 1.8rem}
  .family b{grid-column:1 / -1}
}
@media (max-width:860px){
  .family{grid-template-columns:1fr; gap:.65rem}
}
@media (max-width:1100px){ .band.photo .band-grid{grid-template-columns:1fr; gap:2.5rem} }

/* RRSS hero: video sits in a framed box inside its column instead of
   bleeding off the edge, so it never gets pushed to the side or
   over-cropped on in-between screen sizes. */
.hero.split .wrap{grid-template-columns:1.05fr .95fr; gap:3.5rem; padding:4rem 0 4.5rem; min-height:0; align-items:center}
.hero.split .hero-copy{padding:0}
.hero.split .hero-media{margin:0; aspect-ratio:16 / 10; align-self:center; border-top:5px solid var(--red); box-shadow:0 24px 50px rgba(10,49,97,.22)}
.hero.split .hero-media::before{display:none}
.hero.split .hero-media .video-toggle{top:.8rem; right:.8rem; bottom:auto; left:auto}
@media (max-width:980px){
  .hero.split .wrap{grid-template-columns:1fr; gap:2rem; padding:2rem 0 3.5rem}
  .hero.split .hero-media{order:-1; aspect-ratio:16 / 9}
}
/* The flag logo on a white header needs a hairline to hold its edge */
.rrss header.site .brand-logo{box-shadow:0 0 0 1px rgba(10,49,97,.25), 0 4px 12px rgba(10,49,97,.18)}
