/* Providence North LLC — self-hosted brand fonts.
   Bodoni Moda (headlines) + Manrope (body), latin + latin-ext subsets.
   Sourced from Google Fonts under the SIL Open Font License 1.1.
   Self-hosted to remove the third-party CDN dependency and the FOUC risk. */
@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/fonts/bodoni-moda-latinext-400_700.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/fonts/bodoni-moda-latin-400_700.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/manrope-latinext-400.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/manrope-latin-400.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Manrope';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/manrope-latinext-400.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Manrope';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/manrope-latin-400.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Manrope';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/manrope-latinext-400.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Manrope';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/manrope-latin-400.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* Providence North LLC — main.css
   Palette and type tokens are taken from the Providence North brand mark
   (gold hour sky over an obsidian ridgeline) and the designer's
   "Providence Sovereign" DESIGN.md token set. Zero border radius throughout.
   ------------------------------------------------------------------------ */

:root{
  /* Obsidian core + stratified surfaces */
  --obsidian:#0D0C0A;
  --surface-0:#0F0E0C;
  --surface-1:#151412;
  --surface-2:#1F1D19;
  --surface-3:#2A2722;
  --surface-4:#363432;

  /* Metal ramp: sampled directly off the logo sky */
  --gold:#E5A93C;
  --champagne:#F4D389;
  --bronze:#C2841E;
  --gold-deep:#8A6416;

  /* Ink */
  --ivory:#FBF9F5;
  --bone:#E6E2DE;
  --muted:#A69F91;
  --dim:#877E70;

  /* Hairlines */
  --line:#231F1B;
  --line-2:#322D26;
  --line-gold:rgba(229,169,60,.30);
  --line-gold-strong:rgba(229,169,60,.55);

  --font-display:'Bodoni Moda',"Times New Roman",serif;
  --font-body:'Manrope',ui-sans-serif,system-ui,sans-serif;

  --track:.18em;
  --max:1320px;
  --gut:1.25rem;

  --glow:0 0 24px -4px rgba(229,169,60,.18);
}

*,*::before,*::after{box-sizing:border-box;border-radius:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--obsidian);color:var(--ivory);
  font-family:var(--font-body);font-size:1rem;line-height:1.65;font-weight:400;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:500;margin:0;letter-spacing:-.01em}
p{margin:0}
::selection{background:var(--gold);color:var(--obsidian)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* ---------- layout ---------- */
.wrap{width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.wrap-narrow{max-width:860px}
.sec{padding:5.5rem 0;border-top:1px solid var(--line)}
.sec:first-of-type{border-top:0}
@media(min-width:768px){ .sec{padding:7rem 0} :root{--gut:2.5rem} }
@media(min-width:1200px){ .sec{padding:8.5rem 0} :root{--gut:4.5rem} }

/* ---------- type ---------- */
.label{
  font-family:var(--font-body);font-size:.75rem;font-weight:700;
  letter-spacing:.15em;text-transform:uppercase;color:var(--dim);
}
.label-gold{color:var(--gold)}
.display{font-size:2.2rem;line-height:1.14;font-weight:500;text-wrap:balance}
@media(min-width:768px){ .display{font-size:3.4rem;line-height:1.1} }
@media(min-width:1200px){ .display{font-size:4rem;line-height:1.08} }
.h2{font-size:1.85rem;line-height:1.18;text-wrap:balance}
@media(min-width:768px){ .h2{font-size:2.45rem} }
@media(min-width:1200px){ .h2{font-size:3rem} }
.h3{font-size:1.28rem;line-height:1.28;font-weight:600}
.lead{font-size:1.0625rem;line-height:1.7;color:var(--bone)}
@media(min-width:768px){ .lead{font-size:1.125rem} }
.body{font-size:.9375rem;line-height:1.68;color:var(--muted)}
.small{font-size:.8125rem;line-height:1.6;color:var(--dim)}
.rule-gold{height:1px;border:0;margin:0;
  background:linear-gradient(90deg,transparent 0%,var(--gold) 35%,var(--gold) 65%,transparent 100%)}
.glowline{position:relative}
.glowline::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.6rem;
  font-family:var(--font-body);font-size:.6875rem;font-weight:700;
  letter-spacing:var(--track);text-transform:uppercase;
  padding:.95rem 1.9rem;border:1px solid transparent;cursor:pointer;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .25s ease;
}
.btn-primary{background:var(--gold);color:var(--obsidian)}
.btn-primary:hover{background:var(--champagne);box-shadow:var(--glow)}
.btn-ghost{background:rgba(229,169,60,.05);color:var(--ivory);border-color:rgba(229,169,60,.78)}
.btn-ghost:hover{background:var(--surface-2);border-color:var(--champagne)}
.tlink{
  display:inline-flex;align-items:center;gap:.7rem;
  font-size:.6875rem;font-weight:700;letter-spacing:var(--track);text-transform:uppercase;
  color:var(--gold);padding-bottom:.35rem;border-bottom:1px solid var(--line-gold);
  transition:border-color .2s ease,color .2s ease;
}
.tlink:hover{border-color:var(--gold);color:var(--champagne)}
.tlink .chev{transition:transform .2s ease}
.tlink:hover .chev{transform:translateX(4px)}

/* ---------- header ---------- */
.hdr{position:sticky;top:0;z-index:60;background:rgba(13,12,10,.92);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line-2)}
.hdr-in{display:flex;align-items:center;gap:1.25rem;height:76px}
.brand{display:flex;align-items:center;gap:.85rem;flex:0 0 auto;padding-right:.5rem}
.brand-mark{width:44px;height:44px;flex:0 0 auto}
.brand-txt{display:flex;flex-direction:column;line-height:1.15}
.brand-name{font-family:var(--font-body);font-size:.8125rem;font-weight:700;
  letter-spacing:var(--track);text-transform:uppercase;color:var(--ivory);white-space:nowrap}
.brand-sub{font-size:.625rem;font-weight:600;letter-spacing:.15em;
  text-transform:uppercase;color:var(--muted)}
@media(max-width:520px){ .brand-sub{display:none} .brand-name{font-size:.75rem;letter-spacing:.12em} .brand-mark{width:38px;height:38px} }
.nav{margin-left:auto;display:none;align-items:center;gap:2rem}
.nav a{font-size:.6875rem;font-weight:600;letter-spacing:var(--track);
  text-transform:uppercase;color:var(--muted);padding:.68rem 0;
  border-bottom:1px solid transparent;transition:color .18s ease,border-color .18s ease}
.nav a:hover{color:var(--ivory)}
.nav a[aria-current="page"]{color:var(--gold);border-bottom-color:var(--gold)}
.hdr-cta{display:none;margin-left:2.25rem}
@media(min-width:1024px){ .nav{display:flex} .hdr-cta{display:inline-flex} }
.burger{margin-left:auto;display:inline-flex;flex-direction:column;gap:5px;
  background:none;border:0;padding:.6rem;cursor:pointer}
.burger i{display:block;width:22px;height:1px;background:var(--ivory)}
@media(min-width:1024px){ .burger{display:none} }
.mnav{display:none;border-top:1px solid var(--line-2);background:var(--obsidian)}
.mnav.open{display:block}
.mnav a{display:block;padding:1rem 0;border-bottom:1px solid var(--line);
  font-size:.75rem;font-weight:600;letter-spacing:var(--track);text-transform:uppercase;color:var(--muted)}
.mnav a[aria-current="page"]{color:var(--gold)}

/* ---------- hero ---------- */
.hero{position:relative;isolation:isolate;overflow:hidden;
  border-bottom:1px solid var(--line-2)}
.hero-bg{position:absolute;inset:0;z-index:-2}
.hero-bg picture{position:absolute;inset:0;display:block}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 60%}
.hero-bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(13,12,10,.90) 0%,rgba(13,12,10,.62) 10%,rgba(13,12,10,.30) 26%,rgba(13,12,10,.22) 50%,rgba(13,12,10,.42) 72%,rgba(13,12,10,.88) 90%,var(--obsidian) 100%)}
.hero-scrim{position:absolute;inset:0;z-index:-1;
  background:radial-gradient(ellipse 82% 72% at 50% 42%,rgba(13,12,10,.38) 0%,rgba(13,12,10,.26) 45%,rgba(13,12,10,.08) 74%,rgba(13,12,10,0) 100%)}
.hero-in{position:relative;padding:2rem 1.25rem 2.5rem;text-align:center}
@media(min-width:768px){ .hero-in{padding:3.25rem 2rem 3.75rem} }
.hero-star{width:54px;height:54px;margin:0 auto 1.15rem;display:block;
  filter:drop-shadow(0 0 18px rgba(244,211,137,.42))}
.hero h1{margin:1.25rem auto 0;max-width:19ch;color:var(--ivory);
  text-shadow:0 2px 26px rgba(13,12,10,.62)}
@media(min-width:1024px){ .hero h1{max-width:17ch} }
.hero .lead{margin:1.75rem auto 0;max-width:52ch;color:var(--bone);
  text-shadow:0 1px 18px rgba(13,12,10,.55)}
.hero-pill{display:inline-flex;align-items:center;gap:.6rem;margin-top:1.2rem;
  padding:.6rem 1.15rem;border:1px solid rgba(229,169,60,.55);
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
  background:rgba(13,12,10,.55);
  font-size:.6875rem;font-weight:700;letter-spacing:var(--track);
  text-transform:uppercase;color:var(--champagne)}
.hero-pill .dot{width:6px;height:6px;background:var(--gold);flex:0 0 auto}
.hero-cta{display:flex;flex-wrap:wrap;gap:.9rem;justify-content:center;margin-top:1.3rem}
.hero-in .label{color:var(--champagne);text-shadow:0 1px 12px rgba(13,12,10,.7)}
.hairline{position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--line-gold-strong),transparent)}

/* Below 1280px the hero crop shows a brighter, narrower slice of the artwork and the
   text stack occupies most of the hero, so the overlay is deepened to hold WCAG AA.
   Measured worst case behind the glyph boxes: h1 8.2:1, lead 6.3:1, pill 13.6:1. */
@media(max-width:1279px){
  .hero-bg::after{background:linear-gradient(180deg,rgba(13,12,10,.90) 0%,rgba(13,12,10,.62) 12%,rgba(13,12,10,.52) 24%,rgba(13,12,10,.48) 50%,rgba(13,12,10,.54) 76%,rgba(13,12,10,.90) 92%,var(--obsidian) 100%)}
  .hero-scrim{background:radial-gradient(ellipse 82% 72% at 50% 42%,rgba(13,12,10,.62) 0%,rgba(13,12,10,.46) 45%,rgba(13,12,10,.14) 74%,rgba(13,12,10,0) 100%)}
}

/* ---------- pillars ---------- */
.pillars{display:grid;grid-template-columns:1fr;border-top:1px solid var(--line)}
@media(min-width:640px){ .pillars{grid-template-columns:1fr 1fr} }
@media(min-width:1024px){ .pillars{grid-template-columns:repeat(4,1fr)} }
.pillar{padding:1.9rem 1.5rem;border-bottom:1px solid var(--line);
  border-right:1px solid var(--line)}
.pillar .k{font-size:1.0625rem;font-weight:600;color:var(--ivory);
  font-family:var(--font-body);letter-spacing:.01em}
.pillar .v{font-size:.8125rem;color:var(--champagne);margin-top:.3rem}
.pillar .u{font-size:.8125rem;color:var(--dim);margin-top:.15rem}

/* ---------- cards ---------- */
.grid2{display:grid;grid-template-columns:1fr;gap:1.5rem}
@media(min-width:900px){ .grid2{grid-template-columns:1fr 1fr} }
.grid3{display:grid;grid-template-columns:1fr;gap:1.5rem}
@media(min-width:900px){ .grid3{grid-template-columns:repeat(3,1fr)} }
.card{background:var(--surface-1);border:1px solid var(--line-2);
  padding:2rem;position:relative}
.card::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold-deep),transparent)}
.ivory{background:var(--bone);color:var(--obsidian);border:1px solid var(--gold);padding:2.25rem}
.ivory::before{display:none}
.ivory .label{color:#6B6055}
.chip{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .7rem;
  border:1px solid var(--line-gold);background:rgba(229,169,60,.07);
  font-size:.6875rem;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;color:var(--champagne)}
.chip-mute{border-color:var(--line-2);background:var(--surface-1);color:var(--muted)}
.entity-head{display:flex;flex-direction:column;align-items:flex-start;gap:1rem;margin-bottom:1.4rem}
@media(min-width:640px){ .entity-head{flex-direction:row;align-items:center} }
.entity-head img{width:64px;height:64px;object-fit:contain;background:var(--surface-2);
  border:1px solid var(--line-2);padding:4px}
.feat{display:flex;gap:.9rem;align-items:flex-start;margin-top:1.15rem}
.feat svg{flex:0 0 auto;width:22px;height:22px;margin-top:.15rem}
.feat .ft{font-size:.9375rem;font-weight:600;color:var(--ivory)}
.feat .fb{font-size:.8125rem;color:var(--muted);margin-top:.25rem;line-height:1.6}
.triad-no{font-family:var(--font-display);font-size:2rem;color:var(--gold-deep);line-height:1}

/* ---------- contact form ---------- */
.field{margin-bottom:1.35rem}
.field label{display:block;margin-bottom:.55rem}
.field input,.field select,.field textarea{
  width:100%;background:var(--obsidian);border:1px solid var(--line-2);
  color:var(--ivory);font-family:var(--font-body);font-size:.9375rem;
  padding:.85rem 1rem;appearance:none}
.field textarea{min-height:140px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:var(--gold);outline:none}
.field select{background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),
  linear-gradient(135deg,var(--muted) 50%,transparent 50%);
  background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat}

/* ---------- footer ---------- */
.ftr{border-top:1px solid var(--line-2);background:var(--surface-0);padding:4rem 0 2rem}
.ftr-grid{display:grid;grid-template-columns:1fr;gap:2.5rem}
@media(min-width:700px){ .ftr-grid{grid-template-columns:1fr 1fr} }
@media(min-width:1024px){ .ftr-grid{grid-template-columns:1.5fr 1fr 1fr 1.2fr} }
.ftr h5{margin:0 0 1.1rem;font-family:var(--font-body);font-size:.6875rem;font-weight:700;
  letter-spacing:var(--track);text-transform:uppercase;color:var(--gold)}
.ftr ul{list-style:none;margin:0;padding:0}
.ftr li{margin-bottom:.55rem}
.ftr a,.ftr span.f{font-size:.875rem;color:var(--muted);transition:color .18s ease}
.ftr a:hover{color:var(--champagne)}
.ftr-brand{display:flex;align-items:center;gap:.85rem;margin-bottom:1.1rem}
.ftr-brand img{width:44px;height:44px;object-fit:contain}
.ftr-brand .n{font-size:.8125rem;font-weight:700;letter-spacing:var(--track);
  text-transform:uppercase;color:var(--ivory)}
.legal{margin-top:3rem;padding-top:1.75rem;border-top:1px solid var(--line)}
.copy{margin-top:1.25rem;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between}

/* ---------- misc ---------- */
.crumb{padding:2.5rem 0 0}
.page-head{padding:3.25rem 0 3.5rem;border-bottom:1px solid var(--line)}
@media(min-width:768px){ .page-head{padding:5rem 0 5rem} }
.stack>*+*{margin-top:1.15rem}
.mt-s{margin-top:1rem}.mt-m{margin-top:1.75rem}.mt-l{margin-top:2.75rem}.mt-xl{margin-top:4rem}
.center{text-align:center}
.split{display:grid;grid-template-columns:1fr;gap:2.5rem}
@media(min-width:960px){ .split{grid-template-columns:1.15fr .85fr} }
.eyebrow-row{display:flex;align-items:center;gap:1rem;margin-bottom:1.4rem}
.eyebrow-row::after{content:"";flex:1;height:1px;background:var(--line-2)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:1rem;top:1rem;z-index:99;background:var(--gold);color:var(--obsidian);
  padding:.6rem 1rem;font-size:.75rem;font-weight:700;letter-spacing:var(--track)}
