/* Placerivo.com — custom.css (foundation layer)
 * Prefix: prv-  ·  Fonts self-hosted from fontsource: Fredoka (display) · Albert Sans (body) · Spectral (serif)
 * Loads AFTER assets/vendor/site-bundle/bundle.css (which carries FontAwesome + preflight + reserved-class behaviour).
 * Drawer + sticky-header scroll-state are driven by bundle.js via [data-streampane*] / [data-floatbar]; custom.js never double-toggles.
 */

/* ============================ FONTS (self-hosted woff2) ============================ */

/* ============================ TOKENS ============================ */
@font-face{font-family:"Fredoka";font-style:normal;font-weight:400;font-display:swap;src:url("../fontset/fredoka-400-normal.woff2") format("woff2")}
@font-face{font-family:"Fredoka";font-style:normal;font-weight:500;font-display:swap;src:url("../fontset/fredoka-500-normal.woff2") format("woff2")}
@font-face{font-family:"Fredoka";font-style:normal;font-weight:600;font-display:swap;src:url("../fontset/fredoka-600-normal.woff2") format("woff2")}
@font-face{font-family:"Fredoka";font-style:normal;font-weight:700;font-display:swap;src:url("../fontset/fredoka-700-normal.woff2") format("woff2")}
@font-face{font-family:"PT Serif";font-style:normal;font-weight:400;font-display:swap;src:url("../fontset/pt-serif-400-normal.woff2") format("woff2")}
@font-face{font-family:"PT Serif";font-style:normal;font-weight:700;font-display:swap;src:url("../fontset/pt-serif-700-normal.woff2") format("woff2")}
@font-face{font-family:"PT Serif";font-style:italic;font-weight:400;font-display:swap;src:url("../fontset/pt-serif-400-italic.woff2") format("woff2")}
@font-face{font-family:"Albert Sans";font-style:normal;font-weight:400;font-display:swap;src:url("../fontset/albert-sans-400-normal.woff2") format("woff2")}
@font-face{font-family:"Albert Sans";font-style:normal;font-weight:500;font-display:swap;src:url("../fontset/albert-sans-500-normal.woff2") format("woff2")}
@font-face{font-family:"Albert Sans";font-style:normal;font-weight:600;font-display:swap;src:url("../fontset/albert-sans-600-normal.woff2") format("woff2")}
@font-face{font-family:"Albert Sans";font-style:normal;font-weight:700;font-display:swap;src:url("../fontset/albert-sans-700-normal.woff2") format("woff2")}
:root{
  --prv-ink:#1d1b32; --prv-ink-soft:#353154; --prv-muted:#686394;
  --prv-paper:#f8f8fa; --prv-surface:#ffffff; --prv-band:#eaeaf1; --prv-band-2:#f4f4f7;
  --prv-line:#dddce4; --prv-line-strong:#c7c6d2;
  --prv-accent:#6253ea; --prv-accent-strong:#5341ef; --prv-accent-soft:#e0ddf5;
  --prv-gold:#d9a441; --prv-gold-deep:#7e5510;
  --prv-leaf:#2f8f5b; --prv-leaf-soft:#dff3e7;
  --prv-ink-band:#171528; --prv-ink-band-2:#211d3b;
  --prv-on-dark:#f0eff5; --prv-on-dark-muted:#a9a6bf; --prv-on-accent:#ffffff;
  --prv-tag-sig:#7a5310; --prv-tag-sig-bg:#fbeede; --prv-tag-veg:#3d6440; --prv-tag-veg-bg:#e6f1e7;

  --prv-font-display:"Fredoka",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --prv-font-body:"Albert Sans",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --prv-font-serif:"PT Serif",Georgia,"Times New Roman",serif;

  --prv-fs-eyebrow:.78rem;
  --prv-fs-body:clamp(1rem,.97rem + .18vw,1.09rem);
  --prv-fs-lead:clamp(1.12rem,1.05rem + .5vw,1.35rem);
  --prv-fs-h3:clamp(1.18rem,1.1rem + .5vw,1.4rem);
  --prv-fs-h2:clamp(1.7rem,1.4rem + 1.5vw,2.5rem);
  --prv-fs-h1:clamp(2.1rem,1.6rem + 2.6vw,3.4rem);
  --prv-fs-display:clamp(2.5rem,1.8rem + 3.6vw,4.3rem);

  --prv-shell:1160px; --prv-shell-narrow:760px;
  --prv-shell-pad:20px; --prv-shell-pad-lg:36px;
  --prv-gap-sm:17px; --prv-gap-md:28px; --prv-gap-lg:42px;
  --prv-section-pad:clamp(48px,6vw,84px); --prv-section-pad-lg:clamp(64px,8vw,120px);
  --prv-card-pad:16px;

  --prv-radius-xl:28px; --prv-radius-lg:20px; --prv-radius-md:13px; --prv-radius-sm:8px;
  --prv-tile-radius:12px; --prv-btn-radius:999px; --prv-badge-radius:6px;

  --prv-shadow-sm:0 2px 5px rgba(29,27,50,.07);
  --prv-shadow-md:0 12px 26px -12px rgba(29,27,50,.22);
  --prv-shadow-lg:0 26px 52px -20px rgba(29,27,50,.28);

  --prv-dur-fast:.18s; --prv-dur:.3s; --prv-reveal-dur:.55s;
  --prv-ease:cubic-bezier(.55,.08,.42,1); --prv-ease-soft:cubic-bezier(.4,0,.2,1);
  --prv-header-h:64px;

  --prv-z-header:100; --prv-z-overlay:190; --prv-z-drawer:200;
}

/* ============================ BASE ============================ */
*{box-sizing:border-box}
body{
  margin:0; background:var(--prv-paper); color:var(--prv-ink);
  font-family:var(--prv-font-body); font-size:var(--prv-fs-body); line-height:1.62;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img{max-width:100%; display:block}
a{color:var(--prv-accent-strong); text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{font-family:var(--prv-font-display); font-weight:600; line-height:1.12; margin:0; color:var(--prv-ink); letter-spacing:-.01em}
h1{font-size:var(--prv-fs-h1)} h2{font-size:var(--prv-fs-h2)} h3{font-size:var(--prv-fs-h3)}
p{margin:0 0 1em}
:focus-visible{outline:3px solid var(--prv-accent-soft); outline-offset:2px; border-radius:4px}
body.no-scroll{overflow:hidden}
.prv-vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ============================ SHELL / CONTAINER ============================ */
.prv-shell{width:100%; max-width:var(--prv-shell); margin-inline:auto; padding-inline:var(--prv-shell-pad)}
.prv-shell--narrow{max-width:var(--prv-shell-narrow)}
@media (min-width:900px){.prv-shell{padding-inline:var(--prv-shell-pad-lg)}}

/* ============================ SECTION WRAPPER ============================ */
.prv-section{padding-block:var(--prv-section-pad); position:relative}
.prv-section--lg{padding-block:var(--prv-section-pad-lg)}
.prv-section--paper{background:var(--prv-paper)}
.prv-section--paper-alt{background:var(--prv-band-2)}
.prv-section--surface{background:var(--prv-surface)}
.prv-section--dark{background:var(--prv-ink-band); color:var(--prv-on-dark)}
.prv-section--dark h1,.prv-section--dark h2,.prv-section--dark h3{color:#fff}
.prv-section--dark p{color:var(--prv-on-dark)}
.prv-section + .prv-section{border-top:1px solid var(--prv-line)}
.prv-section--dark + .prv-section,.prv-section + .prv-section--dark{border-top:0}

/* ============================ SECTION HEAD ============================ */
.prv-shead{max-width:64ch; margin-bottom:var(--prv-gap-md)}
.prv-shead--center{margin-inline:auto; text-align:center}
.prv-eyebrow{font-family:var(--prv-font-serif); font-style:italic; font-size:var(--prv-fs-eyebrow); letter-spacing:.16em; text-transform:uppercase; color:var(--prv-accent-strong); margin:0 0 .55em; font-weight:600}
.prv-section--dark .prv-eyebrow{color:#c9c2ff}
.prv-lead{font-size:var(--prv-fs-lead); color:var(--prv-ink-soft); margin:.7em 0 0; line-height:1.55}
.prv-section--dark .prv-lead{color:var(--prv-on-dark)}
.prv-prose-lead{font-size:var(--prv-fs-lead); color:var(--prv-ink-soft)}

/* ============================ BUTTONS ============================ */
.prv-btn{
  --_bg:var(--prv-accent); --_fg:#fff; --_bd:transparent;
  display:inline-flex; align-items:center; gap:.5em; justify-content:center;
  font-family:var(--prv-font-body); font-weight:600; font-size:.98rem; line-height:1;
  padding:.82em 1.4em; border-radius:var(--prv-btn-radius); cursor:pointer;
  background:var(--_bg); color:var(--_fg); border:1.5px solid var(--_bd);
  transition:transform var(--prv-dur-fast) var(--prv-ease), background var(--prv-dur-fast), box-shadow var(--prv-dur-fast);
  text-decoration:none; white-space:nowrap;
}
.prv-btn:hover{transform:translateY(-2px); text-decoration:none; box-shadow:var(--prv-shadow-md)}
.prv-btn--primary{--_bg:var(--prv-accent); --_fg:#fff}
.prv-btn--primary:hover{--_bg:var(--prv-accent-strong)}
.prv-btn--ghost{--_bg:transparent; --_fg:var(--prv-accent-strong); --_bd:var(--prv-line-strong)}
.prv-btn--ghost:hover{--_bg:var(--prv-accent-soft); --_bd:var(--prv-accent)}
.prv-btn--soft{--_bg:var(--prv-accent-soft); --_fg:var(--prv-accent-strong); --_bd:transparent}
.prv-btn--soft:hover{--_bg:#d3ceef}
.prv-btn--sm{padding:.6em 1.05em; font-size:.9rem}
.prv-btn--lg{padding:1em 1.7em; font-size:1.05rem}
.prv-btn--block{display:flex; width:100%}
/* on-dark: keep every button legible on the dark river band */
.prv-section--dark .prv-btn--primary,.prv-riverband .prv-btn--primary{--_bg:#fff; --_fg:var(--prv-accent-strong)}
.prv-section--dark .prv-btn--primary:hover,.prv-riverband .prv-btn--primary:hover{--_bg:#efecff}
.prv-section--dark .prv-btn--ghost,.prv-riverband .prv-btn--ghost{--_bg:rgba(255,255,255,.06); --_fg:#fff; --_bd:rgba(255,255,255,.55)}
.prv-section--dark .prv-btn--ghost:hover,.prv-riverband .prv-btn--ghost:hover{--_bg:rgba(255,255,255,.16); --_bd:#fff}

/* ============================ CHIPS / RATING ============================ */
.prv-chips{display:flex; flex-wrap:wrap; gap:.4em; margin:0}
.prv-chip{display:inline-flex; align-items:center; gap:.4em; font-size:.76rem; font-weight:600; padding:.32em .7em; border-radius:var(--prv-badge-radius); background:var(--prv-band); color:var(--prv-ink-soft); letter-spacing:.01em}
.prv-chip--type{background:var(--prv-accent-soft); color:var(--prv-accent-strong)}
.prv-chip--sig{background:var(--prv-tag-sig-bg); color:var(--prv-tag-sig)}
.prv-chip--veg{background:var(--prv-tag-veg-bg); color:var(--prv-tag-veg)}
.prv-rating{display:inline-flex; align-items:center; gap:.35em; font-weight:700; color:var(--prv-ink); font-size:.92rem}
.prv-rating i{color:var(--prv-gold)}
.prv-rating__count{color:var(--prv-muted); font-weight:500; font-size:.85rem}

/* ============================ MEDIA / IMAGE ============================ */
.prv-media{position:relative; overflow:hidden; border-radius:var(--prv-radius-lg); background:var(--prv-band); aspect-ratio:16/10}
.prv-media img{width:100%; height:100%; object-fit:cover; transition:transform .5s var(--prv-ease-soft)}
.prv-media--21x9{aspect-ratio:21/9} .prv-media--16x9{aspect-ratio:16/9} .prv-media--16x10{aspect-ratio:16/10}
.prv-media--16x11{aspect-ratio:16/11} .prv-media--4x3{aspect-ratio:4/3} .prv-media--5x4{aspect-ratio:5/4}
.prv-media--square{aspect-ratio:1/1}
.prv-media--scrim::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(23,21,40,.05) 0%,rgba(23,21,40,.32) 55%,rgba(23,21,40,.78) 100%)}
a:hover>.prv-media img,.prv-card:hover .prv-media img{transform:scale(1.05)}

/* ============================ CARD ============================ */
.prv-card{display:flex; flex-direction:column; background:var(--prv-surface); border-radius:var(--prv-radius-lg); box-shadow:var(--prv-shadow-sm); overflow:hidden; transition:transform var(--prv-dur) var(--prv-ease), box-shadow var(--prv-dur)}
.prv-card:hover{transform:translateY(-6px); box-shadow:var(--prv-shadow-lg)}
.prv-card>a{display:block}
.prv-card .prv-media{border-radius:0}
.prv-card__body{padding:var(--prv-card-pad); display:flex; flex-direction:column; gap:.55em; flex:1}
.prv-card__title{font-size:var(--prv-fs-h3); margin:.1em 0 0}
.prv-card__title a{color:var(--prv-ink)}
.prv-card__title a:hover{color:var(--prv-accent-strong); text-decoration:none}
.prv-card__desc{color:var(--prv-ink-soft); font-size:.95rem; margin:0; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden}
.prv-card__meta{display:flex; flex-wrap:wrap; align-items:center; gap:.4em .9em; margin-top:auto; padding-top:.4em}
.prv-card__addr{display:inline-flex; align-items:center; gap:.4em; color:var(--prv-muted); font-size:.85rem; min-width:0}
.prv-card__addr i{color:var(--prv-accent)}
.prv-card__cta{margin-top:.5em; align-self:flex-start}

/* current/mood doorway card */
.prv-card--current .prv-card__body{gap:.35em}
.prv-card--current .prv-card__title{font-size:1.12rem}

/* note/value tile (no image) */
.prv-tile{background:var(--prv-surface); border:1px solid var(--prv-line); border-radius:var(--prv-radius-md); padding:22px; display:flex; flex-direction:column; gap:.5em; height:100%}
.prv-tile__ico{width:44px; height:44px; border-radius:12px; display:grid; place-items:center; background:var(--prv-accent-soft); color:var(--prv-accent-strong); font-size:1.1rem}
.prv-tile h3{font-size:1.1rem}
.prv-tile p{margin:0; color:var(--prv-ink-soft); font-size:.94rem}
.prv-section--dark .prv-tile{background:var(--prv-ink-band-2); border-color:rgba(255,255,255,.1)}
.prv-section--dark .prv-tile p{color:var(--prv-on-dark)}
.prv-section--dark .prv-tile__ico{background:rgba(255,255,255,.1); color:#fff}

/* ============================ GRIDS / STREAM ============================ */
.prv-grid{display:grid; gap:var(--prv-gap-md); grid-template-columns:1fr}
@media (min-width:600px){.prv-grid--2,.prv-grid--3,.prv-grid--4{grid-template-columns:repeat(2,1fr)}}
@media (min-width:980px){.prv-grid--3{grid-template-columns:repeat(3,1fr)} .prv-grid--4{grid-template-columns:repeat(4,1fr)}}
/* the stacked venue "stream" — a flowing vertical run of place cards */
.prv-stream{display:grid; gap:var(--prv-gap-md); grid-template-columns:1fr}
@media (min-width:720px){
  .prv-stream .prv-card{flex-direction:row; align-items:stretch}
  .prv-stream .prv-card>a{flex:0 0 42%; max-width:300px}
  .prv-stream .prv-card .prv-media{height:100%; min-height:100%; aspect-ratio:auto}
  .prv-stream .prv-card__body{flex:1}
}

/* ============================ FORMS ============================ */
.prv-form{display:grid; gap:var(--prv-gap-sm)}
.prv-field{display:flex; flex-direction:column; gap:.4em; min-width:0}
.prv-label{font-weight:600; font-size:.9rem; color:var(--prv-ink-soft)}
.prv-input,.prv-textarea{font-family:inherit; font-size:1rem; color:var(--prv-ink); background:var(--prv-surface); border:1.5px solid var(--prv-line-strong); border-radius:var(--prv-radius-sm); padding:.72em .9em; width:100%; min-width:0}
.prv-textarea{resize:vertical; min-height:130px}
.prv-input:focus,.prv-textarea:focus{outline:none; border-color:var(--prv-accent); box-shadow:0 0 0 3px var(--prv-accent-soft)}
.prv-form--inline{display:flex; flex-wrap:wrap; gap:.6em; align-items:center}
.prv-searchbox{display:flex; flex-wrap:wrap; gap:.5em; align-items:center; background:var(--prv-surface); border:1.5px solid var(--prv-line-strong); border-radius:var(--prv-btn-radius); padding:.4em .4em .4em 1em; box-shadow:var(--prv-shadow-sm)}
.prv-searchbox i{color:var(--prv-muted)}
.prv-searchbox input{flex:1; min-width:0; border:0; outline:none; font-size:1rem; font-family:inherit; background:transparent; color:var(--prv-ink); padding:.4em 0}
.prv-note{margin-top:.4em; font-size:.9rem; color:var(--prv-leaf); background:var(--prv-leaf-soft); border-radius:var(--prv-radius-sm); padding:.6em .9em}
.prv-note[hidden]{display:none}

/* ============================ HEADER / MASTHEAD ============================ */
.prv-masthead{position:sticky; top:0; z-index:var(--prv-z-header); background:var(--prv-surface); border-bottom:1px solid var(--prv-line); transition:box-shadow var(--prv-dur)}
.prv-masthead.is-scrolled{box-shadow:var(--prv-shadow-md)}
.prv-masthead__bar{display:flex; align-items:center; gap:1.2rem; min-height:var(--prv-header-h)}
.prv-brand{display:inline-flex; align-items:center; gap:.55em; font-family:var(--prv-font-display); font-weight:600; font-size:1.28rem; color:var(--prv-ink); letter-spacing:-.01em}
.prv-brand:hover{text-decoration:none; color:var(--prv-ink)}
.prv-brand__mark{width:34px; height:34px; border-radius:10px; display:grid; place-items:center; background:var(--prv-accent); color:#fff; font-size:.95rem}
.prv-nav{display:none; align-items:center; gap:.35rem; margin-left:.5rem}
.prv-nav a{display:inline-flex; align-items:center; padding:.5em .7em; font-weight:600; font-size:.95rem; color:var(--prv-ink-soft); border-radius:8px}
.prv-nav a:hover{color:var(--prv-accent-strong); background:var(--prv-band-2); text-decoration:none}
.prv-nav a[aria-current="page"]{color:var(--prv-accent-strong)}
.prv-masthead__actions{display:flex; align-items:center; gap:.5rem; margin-left:auto}
.prv-masthead__cta{display:none}
.prv-iconbtn{width:42px; height:42px; border-radius:10px; display:grid; place-items:center; background:var(--prv-band-2); color:var(--prv-ink); border:1px solid var(--prv-line); cursor:pointer; font-size:1.05rem}
.prv-iconbtn:hover{background:var(--prv-band)}
@media (min-width:1100px){
  .prv-nav{display:flex}
  .prv-masthead__cta{display:inline-flex}
  .prv-hamburger{display:none}
}

/* ============================ DRAWER (bundle-driven; fade-in avoids off-canvas overflow) ============================ */
.prv-overlay{position:fixed; inset:0; background:rgba(23,21,40,.5); opacity:0; visibility:hidden; transition:opacity var(--prv-dur), visibility var(--prv-dur); z-index:var(--prv-z-overlay)}
.prv-overlay.is-open{opacity:1; visibility:visible}
.prv-drawer{position:fixed; top:0; right:0; bottom:0; width:min(87vw,340px); background:var(--prv-surface); z-index:var(--prv-z-drawer); padding:20px; display:flex; flex-direction:column; gap:1rem; opacity:0; visibility:hidden; transform:translateY(-8px); transition:opacity var(--prv-dur) var(--prv-ease-soft), transform var(--prv-dur) var(--prv-ease-soft), visibility var(--prv-dur); box-shadow:var(--prv-shadow-lg); overflow-y:auto}
.prv-drawer.is-open{opacity:1; visibility:visible; transform:none}
.prv-drawer__top{display:flex; align-items:center; justify-content:space-between}
.prv-drawer__nav{display:flex; flex-direction:column; gap:.15rem}
.prv-drawer__nav a{padding:.7em .6em; font-weight:600; color:var(--prv-ink-soft); border-radius:8px; border-bottom:1px solid var(--prv-line)}
.prv-drawer__nav a:hover{color:var(--prv-accent-strong); background:var(--prv-band-2); text-decoration:none}
.prv-drawer__nav a[aria-current="page"]{color:var(--prv-accent-strong)}
@media (min-width:1100px){.prv-drawer,.prv-overlay{display:none}}

/* ============================ HERO ============================ */
.prv-hero{position:relative; min-height:clamp(420px,62vh,600px); display:flex; align-items:flex-end; overflow:hidden; isolation:isolate}
.prv-hero__bg{position:absolute; inset:0; z-index:-1}
.prv-hero__bg img{width:100%; height:100%; object-fit:cover}
.prv-hero__bg::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(23,21,40,.28) 0%,rgba(23,21,40,.45) 45%,rgba(23,21,40,.82) 100%)}
.prv-hero__inner{padding-block:clamp(36px,7vw,72px); max-width:44rem}
.prv-hero h1{color:#fff; font-size:var(--prv-fs-display); text-shadow:0 2px 24px rgba(0,0,0,.35)}
.prv-hero__eyebrow{color:#e5e1ff;text-shadow:0 1px 12px rgba(0,0,0,.4)}
.prv-hero__sub{color:#f0eff5; font-size:var(--prv-fs-lead); margin:.9em 0 0; text-shadow:0 1px 12px rgba(0,0,0,.35)}
.prv-hero__actions{display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.4rem}

/* compact page banner (interior page heads) */
.prv-pagehead{background:linear-gradient(160deg,var(--prv-accent-soft),var(--prv-band-2)); padding-block:clamp(40px,6vw,76px)}
.prv-pagehead h1{font-size:var(--prv-fs-h1)}
.prv-pagehead .prv-lead{max-width:60ch}

/* ============================ RIVER BAND (dark CTA) ============================ */
.prv-riverband{background:radial-gradient(1200px 400px at 20% -10%,#2a2350 0%,transparent 60%),var(--prv-ink-band); color:var(--prv-on-dark); text-align:center}
.prv-riverband h2{color:#fff}
.prv-riverband p{color:var(--prv-on-dark); max-width:52ch; margin-inline:auto}
.prv-riverband .prv-hero__actions,.prv-riverband .prv-cta-actions{justify-content:center; display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.4rem}

/* ============================ FAQ (native details/summary) ============================ */
.prv-faq{display:grid; gap:.7rem}
.prv-faq details{background:var(--prv-surface); border:1px solid var(--prv-line); border-radius:var(--prv-radius-md); overflow:hidden}
.prv-faq summary{list-style:none; cursor:pointer; padding:1em 1.1em; font-family:var(--prv-font-display); font-weight:600; font-size:1.05rem; color:var(--prv-ink); display:flex; justify-content:space-between; align-items:center; gap:1em}
.prv-faq summary::-webkit-details-marker{display:none}
.prv-faq summary::after{content:"\f067"; font-family:"Font Awesome 6 Free"; font-weight:900; color:var(--prv-accent); font-size:.85rem; transition:transform var(--prv-dur)}
.prv-faq details[open] summary::after{transform:rotate(45deg)}
.prv-faq__panel{padding:0 1.1em 1.1em; color:var(--prv-ink-soft)}
.prv-faq__panel p{margin:0 0 .7em}

/* ============================ CALLOUT / STEPS / TICKS / PROSE ============================ */
.prv-callout{background:var(--prv-accent-soft); border-radius:var(--prv-radius-lg); padding:clamp(22px,4vw,40px); text-align:center}
.prv-callout__email{display:inline-flex; align-items:center; gap:.5em; font-family:var(--prv-font-display); font-weight:600; font-size:clamp(1.2rem,1rem + 1.4vw,1.7rem); color:var(--prv-accent-strong); margin-top:.4em}
.prv-steps{list-style:none; counter-reset:s; padding:0; margin:0; display:grid; gap:1rem}
.prv-steps li{counter-increment:s; position:relative; padding-left:3.4rem; min-height:2.2rem}
.prv-steps li::before{content:counter(s); position:absolute; left:0; top:-.1em; width:2.4rem; height:2.4rem; border-radius:50%; background:var(--prv-accent); color:#fff; font-family:var(--prv-font-display); font-weight:600; display:grid; place-items:center}
.prv-steps h3{font-size:1.08rem; margin:0 0 .2em}
.prv-steps p{margin:0; color:var(--prv-ink-soft)}
.prv-ticks{list-style:none; padding:0; margin:0; display:grid; gap:.6em}
.prv-ticks li{position:relative; padding-left:1.8em; color:var(--prv-ink-soft)}
.prv-ticks li::before{content:"\f058"; font-family:"Font Awesome 6 Free"; font-weight:900; color:var(--prv-leaf); position:absolute; left:0; top:.15em}
.prv-prose{max-width:72ch}
.prv-prose h2{margin:1.6em 0 .5em; font-size:var(--prv-fs-h3)}
.prv-prose h2:first-child{margin-top:0}
.prv-prose p{margin:0 0 1em; color:var(--prv-ink-soft)}
.prv-prose ul,.prv-prose ol{margin:0 0 1em; padding-left:1.3em; color:var(--prv-ink-soft)}
.prv-prose li{margin:.3em 0}
.prv-legal-meta{color:var(--prv-muted); font-size:.9rem; margin-bottom:1.6em}

/* generic content column helpers */
.prv-flow>*+*{margin-top:1rem}
.prv-measure{max-width:64ch}
.prv-split{display:grid; gap:var(--prv-gap-lg); align-items:center}
@media (min-width:860px){.prv-split{grid-template-columns:1fr 1fr}}
.prv-split--media-first .prv-split__media{order:-1}

/* ============================ FOOTER ============================ */
.prv-footer{background:var(--prv-ink-band); color:var(--prv-on-dark); padding-block:clamp(44px,6vw,72px) 28px}
.prv-footer__grid{display:grid; gap:var(--prv-gap-lg); grid-template-columns:1fr}
@media (min-width:640px){.prv-footer__grid{grid-template-columns:1.4fr 1fr 1fr 1fr}}
.prv-footer__brand .prv-brand{color:#fff}
.prv-footer__brand .prv-brand__mark{background:var(--prv-accent)}
.prv-footer__tag{color:var(--prv-on-dark-muted); margin-top:.8em; max-width:34ch; font-size:.95rem}
.prv-footer h3{font-family:var(--prv-font-display); font-size:.82rem; letter-spacing:.12em; text-transform:uppercase; color:var(--prv-on-dark-muted); margin:0 0 .9em}
.prv-footer ul{list-style:none; margin:0; padding:0; display:grid; gap:.5em}
.prv-footer a{color:var(--prv-on-dark)}
.prv-footer a:hover{color:#fff}
.prv-footer__bar{display:flex; flex-wrap:wrap; gap:.6em 1.2em; justify-content:space-between; align-items:center; margin-top:2.4rem; padding-top:1.4rem; border-top:1px solid rgba(255,255,255,.12); color:var(--prv-on-dark-muted); font-size:.88rem}
.prv-footer__legal{display:flex; gap:1.2em}

/* ============================ SMALL UTILITIES ============================ */
.prv-mt{margin-top:1.4rem}
.prv-center{text-align:center; margin-inline:auto}
.prv-center-block{margin-inline:auto}
.prv-cta-actions{display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.4rem}
.prv-cta-actions--center{justify-content:center}

/* ============================ REVEAL (custom.js adds .is-in; no-JS + reduced-motion stay visible) ============================ */
[data-driftin]{opacity:0; transform:translateY(20px); transition:opacity var(--prv-reveal-dur) var(--prv-ease-soft), transform var(--prv-reveal-dur) var(--prv-ease-soft)}
[data-driftin].is-in{opacity:1; transform:none}
.no-js [data-driftin]{opacity:1; transform:none; transition:none}
@media (prefers-reduced-motion:reduce){
  [data-driftin]{opacity:1!important; transform:none!important; transition:none!important}
  .prv-media img,.prv-btn,.prv-card{transition:none!important}
}

/* ---------------------------------------------------------------- logo -- */
.prv-logo { height: 36px; width: auto; max-width: 200px; display: block; object-fit: contain; object-position: left center; }
.prv-logo--footer { height: 44px; max-width: 240px; }
@media (min-width: 768px) { .prv-logo { height: 40px; } .prv-logo--footer { height: 48px; } }
