/* 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:96px}
@media(max-width:520px){ .hdr-in{height:80px} }
.brand{display:flex;align-items:center;gap:.85rem;flex:0 0 auto;padding-right:.5rem}
/* The mark is Kevin's supplied Providence North logo artwork, drawn larger than the
   old 40px placeholder so the star, ridge line and wordmark all stay readable. */
.brand-mark{width:72px;height:72px;flex:0 0 auto;border-radius:4px;
  box-shadow:0 0 0 1px rgba(229,169,60,.22)}
.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:56px;height:56px} }
.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} }
/* 16px of padding all round keeps the tap target at 44px+ on a phone. */
.burger{margin-left:auto;display:inline-flex;flex-direction:column;gap:5px;
  background:none;border:0;padding:1rem;min-width:44px;min-height:44px;
  align-items:center;justify-content:center;border-radius:4px;cursor:pointer}
.burger:hover{background:rgba(229,169,60,.10)}
.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);
  padding:0 var(--gut) calc(.5rem + env(safe-area-inset-bottom,0px))}
.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}
/* The banner is a multi-peak ridge with the top half left as open sky. The framing
   is biased upward so the range sits along the lower third of the hero and the
   headline, subhead and pill all fall on sky rather than on the silhouette. */
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 28%}
.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:56px;height:56px;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)}
.legal p+p{margin-top:.9rem}
.legal .small{max-width:104ch}
.legal a{color:var(--gold);border-bottom:1px solid var(--line-gold);transition:color .18s ease,border-color .18s ease}
.legal a:hover{color:var(--champagne);border-color:var(--gold)}
.legal strong{color:var(--bone);font-weight:700}
.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)}
