@import url('../fonts/fonts.css');

:root{
  --sky:#1B3A5C; --ember:#B4441C; --ember-light:#F0A06A; --night:#111820;
  --ink:#1F2429; --caption:#5B6670; --wash:#F1F3F5; --line:#DCE1E6; --on-dark:#E6ECF2;
  --disp:"Archivo",sans-serif; --body:"Public Sans",sans-serif; --mono:"IBM Plex Mono",monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:#fff;font-family:var(--body);color:var(--ink)}
img{display:block;max-width:100%}
.btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--disp);font-weight:600;border-radius:2px;text-decoration:none;white-space:nowrap;font-stretch:expanded}
.btn-p{background:var(--ember);color:#fff;padding:11px 18px;font-size:15px;letter-spacing:.2px}
.btn-lg{background:var(--ember);color:#fff;padding:17px 30px;font-size:19px;letter-spacing:.2px}
.btn-o{border:1.5px solid rgba(230,236,242,.6);color:#fff;padding:15.5px 30px;font-size:19px;background:none}
.btn-o-d{border:1.5px solid var(--sky);color:var(--sky);padding:15.5px 30px;font-size:19px;background:none}

/* masthead over the night fold */
.mast{display:flex;align-items:center;justify-content:space-between;padding:18px 52px;position:relative;z-index:3}
.wm{font-family:var(--disp);font-weight:700;font-size:23px;letter-spacing:.4px;color:#fff;font-stretch:expanded}
.wmsub{font-family:var(--mono);font-size:9.5px;letter-spacing:1.6px;color:#9DB0C2;margin-top:3px}
.nav{display:flex;align-items:center;gap:28px}
.nav a{font-size:15px;font-weight:500;color:#D7E0E9;text-decoration:none}

/* FOLD: the elevation */
.fold{position:relative;background:var(--night);overflow:hidden}
.foldimg{position:absolute;inset:0}
.foldimg img{width:100%;height:100%;object-fit:cover;opacity:.5}
.foldscrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(17,24,32,.86) 0%,rgba(17,24,32,.6) 42%,rgba(17,24,32,.94) 100%)}
.foldinner{position:relative;z-index:2;padding:56px 52px 0}
.kick{font-family:var(--mono);font-size:11px;letter-spacing:1.8px;color:var(--ember-light);margin-bottom:22px}
h1{font-family:var(--disp);font-size:74px;line-height:1.03;letter-spacing:-1.2px;font-weight:700;color:#fff;max-width:960px;font-stretch:expanded}
.sub{font-size:19px;line-height:1.55;color:#C3D0DC;max-width:600px;margin:22px 0 28px}
.cta{display:flex;gap:14px;align-items:center;flex-wrap:wrap}

/* altitude rule: stepped datum */
.alt{position:relative;z-index:2;display:flex;align-items:flex-start;margin:44px 0 0;padding:0 52px}
.alt>div{flex:1;border-top:2px solid rgba(230,236,242,.28);padding:14px 0 22px;position:relative}
.alt>div:nth-child(1){margin-top:56px}
.alt>div:nth-child(2){margin-top:28px}
.alt>div:nth-child(3){margin-top:0}
.alt>div::before{content:"";position:absolute;left:0;top:-2px;width:2px;height:13px;background:var(--ember-light)}
.altn{font-family:var(--disp);font-weight:700;font-size:38px;color:#fff;line-height:1;font-stretch:expanded}
.altl{font-family:var(--mono);font-size:10px;letter-spacing:1.5px;color:#9DB0C2;margin-top:8px}

/* sections */
.sec{padding:64px 52px}
h2{font-family:var(--disp);font-size:42px;line-height:1.08;font-weight:700;letter-spacing:-.6px;font-stretch:expanded}
.lede{font-size:17.5px;line-height:1.6;color:var(--caption);max-width:640px;margin-top:14px}

/* who we are */
.who{display:grid;grid-template-columns:1.15fr 1fr;gap:64px;align-items:center}
.whofig img{width:100%;height:340px;object-fit:cover}

/* services: cool half / warm half */
.svc{background:var(--wash);padding:64px 52px}
.svcgrid{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:30px}
.svccol{background:#fff;border-top:4px solid var(--sky);padding:28px 30px 24px}
.svccol.warm{border-top-color:var(--ember)}
.svch{font-family:var(--disp);font-weight:700;font-size:25px;letter-spacing:-.2px;font-stretch:expanded}
.svcsub{font-size:15.5px;line-height:1.55;color:var(--caption);margin-top:8px}
.svcitem{border-top:1px solid var(--line);padding:16px 0 0;margin-top:18px}
.svcit{font-family:var(--disp);font-weight:600;font-size:17.5px}
.svcid{font-size:14.5px;line-height:1.5;color:var(--caption);margin-top:5px}

/* band */
.band{background:var(--sky);color:#fff;padding:52px;display:flex;justify-content:space-between;gap:44px;flex-wrap:wrap;align-items:center}
.bandi{display:flex;flex-direction:column;gap:5px}
.bandn{font-family:var(--disp);font-weight:700;font-size:26px;font-stretch:expanded}
.bandl{font-family:var(--mono);font-size:10px;letter-spacing:1.4px;color:#B6C8D9}

/* ask */
.ask{padding:64px 52px;display:grid;grid-template-columns:1fr 440px;gap:72px;align-items:start}
.phoneline{font-family:var(--disp);font-size:48px;font-weight:700;color:var(--ember);line-height:1;margin:18px 0 8px;font-stretch:expanded}
.form{border:1px solid var(--line);padding:28px;background:var(--wash)}
label{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:1.2px;color:var(--caption);margin-bottom:7px}
.fld{width:100%;border:1px solid var(--line);padding:13px 14px;font-family:var(--body);font-size:16px;margin-bottom:18px;background:#fff;color:var(--ink)}

footer{background:var(--night);color:var(--on-dark);padding:46px 52px 30px;border-top:3px solid var(--ember)}
.frow{display:flex;justify-content:space-between;gap:44px;flex-wrap:wrap}
.fs{font-size:15px;line-height:1.75;color:#9DB0C2}
.fbar{border-top:1px solid rgba(230,236,242,.16);margin-top:30px;padding-top:18px;font-family:var(--mono);font-size:10.5px;color:#9DB0C2;letter-spacing:.8px}

.mnav{display:none}
.mnav summary{list-style:none;cursor:pointer;display:flex;align-items:center;font-family:var(--disp);font-weight:600;font-size:17px;min-height:44px;color:#fff}
.mnav summary::-webkit-details-marker{display:none}
.mnav .sheet{display:flex;flex-direction:column;border-top:1px solid rgba(230,236,242,.25);margin-top:6px}
.mnav .sheet a{display:flex;align-items:center;min-height:48px;font-size:17px;font-weight:500;color:#D7E0E9;text-decoration:none;border-bottom:1px solid rgba(230,236,242,.15)}
.callbar{display:none}

@media (max-width:1080px){
  .who,.ask{grid-template-columns:1fr;gap:32px}
  .svcgrid{grid-template-columns:1fr}
}
@media (max-width:760px){
  .mast,.foldinner,.sec,.svc,.band,.ask,footer,.alt{padding-left:20px;padding-right:20px}
  .mast{flex-direction:column;align-items:stretch;gap:8px}
  .nav{display:none} .mnav{display:block}
  h1{font-size:38px;letter-spacing:-.4px} h2{font-size:30px}
  .sub{font-size:17px}
  .cta{flex-direction:column;align-items:stretch;gap:10px}
  .btn-lg,.btn-o,.btn-o-d{width:100%;min-height:52px;font-size:18px}
  .alt{flex-direction:column;gap:0;padding-bottom:8px}
  .alt>div{margin-top:0!important;padding:14px 0 16px}
  .altn{font-size:30px}
  .whofig img{height:220px}
  .phoneline{font-size:36px}
  body{padding-bottom:76px}
  .callbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--ember);min-height:64px;align-items:center;justify-content:center;text-decoration:none;box-shadow:0 -2px 14px rgba(180,68,28,.32)}
  .callbar span{font-family:var(--disp);font-weight:700;font-size:20px;color:#fff;font-stretch:expanded}
}
@media (prefers-color-scheme:dark){
  :root{--wash:#171C22;--line:#2C343D;--ink:#E7ECF1;--caption:#A3AFBB;--sky:#2A5580}
  body{background:#0D1218;color:var(--ink)}
  .svccol{background:#131A21;border-top-color:#2A5580}
  .svccol.warm{border-top-color:var(--ember)}
  .form{background:#131A21}
  .fld{background:#0D1218;border-color:var(--line);color:var(--ink)}
  .btn-o-d{border-color:#7FA8CE;color:#7FA8CE}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* preview ribbon */
.preview-ribbon{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;
  background:var(--night);border-bottom:1px solid rgba(230,236,242,.2);padding:10px 46px 10px 20px;position:relative}
.preview-text{font-family:var(--mono);font-size:11px;letter-spacing:.6px;color:#9DB0C2}
.preview-actions{display:flex;gap:8px}
.preview-actions a{font-family:var(--disp);font-weight:600;font-size:13px;letter-spacing:.3px;text-decoration:none;
  color:#fff;border:1px solid rgba(230,236,242,.35);background:transparent;padding:7px 14px;border-radius:2px;
  display:inline-flex;align-items:center;min-height:32px}
.preview-ribbon button{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;
  font-size:20px;line-height:1;color:#9DB0C2;cursor:pointer;min-width:44px;min-height:44px}
@media (max-width:760px){.preview-ribbon{padding:10px 46px 10px 16px}.preview-text{font-size:10px}.preview-actions a{min-height:44px;padding:9px 14px}}

/* --- QA FIX: menu button belongs IN the header row, right-aligned - not
   floating on its own line under the brand. The mobile override stacked
   .mast into a column, dropping "Menu" below the wordmark. --- */
@media (max-width:760px){
  .mast{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
  .mnav{margin-left:auto}
  .mnav summary{justify-content:flex-end;padding:8px 14px;border:1px solid currentColor;border-radius:8px}
  .mnav[open]{flex-basis:100%;width:100%}
  .mnav[open] summary{justify-content:flex-end}
}
