/* =====================================================================================================================
   Plavidian public design system (redesign 2026-11; Cody approved D1-D7 of the proposal on 2026-11-03).
   Loaded LAST on signed-out pages only (base.html), after plavidian-theme.css, so the portal and admin never see it.
   Brief: docs/Website_Redesign_Brief_2026-11-03.md. Proposal: https://claude.ai/artifact/NiTFBmX72VJrGdUjKM5vGZ
   Sections: 1 tokens  2 base type (one H1 scale, D5)  3 shared parts  4 header + mega menus (D4, D6)  5 phone drawer
             6 footer  7 phone action bar  8 components (frame, showcase, workflow, figures, cases, choices)  9 home (D3)
   Rules: orange (--pv-btn) only on actions; route blue only where data moves; mono for figures, codes and labels;
   no em dashes in copy; everything works without JavaScript.
   ===================================================================================================================== */

/* 1. tokens ------------------------------------------------------------------------------------------------------- */
:root{
  --pv-mono:'Fira Mono',ui-monospace,'Cascadia Mono',Consolas,monospace;
  --pv-route:#2F6FDB; --pv-route-soft:#7AA8FF; --pv-ok:#1E7F55; --pv-ok-tint:#E6F3EC;
  --pv-canvas:#F4F6F9; --pv-hair:#DCE3EB; --pv-hair-2:#B9C4D1; --pv-slate:#5A6572;
  --pv-h1:clamp(32px,3.4vw,46px); --pv-h2:clamp(28px,3vw,42px); --pv-display:clamp(48px,6vw,92px);
  --pv-sec:clamp(40px,4.5vw,56px);   /* the v32.767 56 px section rhythm */ --pv-wrap:1360px; --pv-gut:clamp(16px,3vw,40px);
  --pv-ease:cubic-bezier(.2,.7,.2,1); --pv-fast:160ms; --pv-med:240ms;
  --pv-shadow-float:0 1px 2px rgba(11,35,63,.06),0 22px 48px -22px rgba(11,35,63,.38);
}

/* 2. base type: one H1 size on every inner page (D5: today 27 to 68 px across 6 sizes) ----------------------------- */
body.public main h1{font-size:var(--pv-h1);line-height:1.08;letter-spacing:-.005em;text-wrap:balance}
body.public main h2{text-wrap:balance}
body.public :focus-visible{outline:2px solid var(--pv-route);outline-offset:2px}
body.public :is(.rd-kicker,.hm-label,.pv-label){font-family:var(--pv-mono);font-weight:500;font-size:12.5px;line-height:1.35;letter-spacing:.08em;text-transform:uppercase;color:var(--pv-btn,#B9531F)}
.pv-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media (prefers-reduced-motion:reduce){body.public *{transition-duration:0s!important;animation-duration:0s!important;scroll-behavior:auto!important}}

/* 3. shared parts -------------------------------------------------------------------------------------------------- */
.pv-mono{font-family:var(--pv-mono)}
.pv-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 20px;border-radius:4px;font:600 15px/1.2 var(--pv-sans);text-decoration:none!important;white-space:nowrap;cursor:pointer;transition:background var(--pv-fast),color var(--pv-fast),border-color var(--pv-fast);border:1.5px solid transparent;margin:0}
.pv-btn-primary{background:var(--pv-btn,#B9531F);color:#fff!important}
.pv-btn-primary:hover{background:var(--pv-btn-deep,#9E4418)}
.pv-btn-ghost{border-color:var(--pv-navy,#0B233F);color:var(--pv-navy,#0B233F)!important;background:transparent}
.pv-btn-ghost:hover{background:var(--pv-navy,#0B233F);color:#fff!important}
.pv-btn-light{border-color:rgba(255,255,255,.8);color:#fff!important;background:transparent}
.pv-btn-light:hover{background:#fff;color:var(--pv-navy,#0B233F)!important}
.pv-btn-lg{min-height:56px;padding:0 28px;font-size:17px}
.pv-link{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--pv-navy,#0B233F);text-decoration:none;border-bottom:1.5px solid var(--pv-hair);padding-bottom:2px;line-height:1.3}
.pv-link::after{content:"";width:14px;height:14px;flex:0 0 14px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform var(--pv-fast)}
.pv-link:hover{color:var(--pv-btn,#B9531F);border-bottom-color:currentColor}
.pv-link:hover::after{transform:translateX(3px)}
.pv-tag{display:inline-block;font:500 10.5px/1 var(--pv-mono);font-style:normal;letter-spacing:.05em;text-transform:uppercase;padding:4px 6px 3px;border-radius:3px;vertical-align:2px;white-space:nowrap;margin-left:4px}
.pv-tag-add{background:var(--pv-orange-tint,#FBF0E8);color:var(--pv-btn,#B9531F)}
.pv-tag-inc{background:var(--pv-ok-tint);color:var(--pv-ok)}
.pv-tag-free{border:1px solid var(--pv-hair-2);color:var(--pv-navy,#0B233F)}
/* crop marks around real screens and plant photos (the motif; never on text) */
.pv-cm{--cm:#0B233F;position:relative;padding:10px;background:
  linear-gradient(var(--cm),var(--cm)) 0 10px/7px 1px no-repeat,linear-gradient(var(--cm),var(--cm)) 10px 0/1px 7px no-repeat,
  linear-gradient(var(--cm),var(--cm)) 100% 10px/7px 1px no-repeat,linear-gradient(var(--cm),var(--cm)) calc(100% - 10px) 0/1px 7px no-repeat,
  linear-gradient(var(--cm),var(--cm)) 0 calc(100% - 10px)/7px 1px no-repeat,linear-gradient(var(--cm),var(--cm)) 10px 100%/1px 7px no-repeat,
  linear-gradient(var(--cm),var(--cm)) 100% calc(100% - 10px)/7px 1px no-repeat,linear-gradient(var(--cm),var(--cm)) calc(100% - 10px) 100%/1px 7px no-repeat}
.pv-imb{display:block;height:18px;width:auto;fill:var(--pv-navy,#0B233F)}

/* 4. header + mega menus ------------------------------------------------------------------------------------------- */
/* D4: the announcement bar scrolls away; only the header sticks. The old .rd-sticky-top pair is no longer used. */
.pva{background:var(--pv-navy-deep,#071A2F)}
.pva .rd-announce-inner{max-width:var(--pv-wrap);margin:0 auto;padding:9px var(--pv-gut);text-align:center}
.pva .rd-announce-link{color:#E9EEF5;text-decoration:none;font-size:14px;line-height:1.35}
.pva .rd-announce-link b{font-weight:600;color:#fff}
.pva .rd-announce-link:hover{text-decoration:underline;text-underline-offset:3px}
.pva .rd-announce-short{display:none}
@media (max-width:680px){.pva .rd-announce-more{display:none}.pva .rd-announce-short{display:inline}.pva .rd-announce-link{font-size:13px}}
header.pvh{position:sticky;top:0;z-index:60;display:block;padding:0;margin:0;background:#fff;color:var(--pv-navy,#0B233F);border-bottom:1px solid var(--pv-hair);gap:0;flex-direction:row}
.pvh a{margin-left:0;font-weight:inherit}
/* style.css still styles every `header nav a` (pill padding, 13px, hover tint) for the portal; none of it applies here */
.pvh-nav a,.pvh-nav a:hover{padding:0;margin:0;border-radius:0;font-size:inherit;background:none;font-weight:inherit;transition:color var(--pv-fast)}
.pvh-nav .pv-btn{padding:0 20px;font-size:15px;font-weight:600;border-radius:4px}
.pvh-nav .pv-btn-ghost:hover{background:var(--pv-navy,#0B233F)}
.pvh-in{display:flex;align-items:center;gap:clamp(16px,2.4vw,40px);max-width:var(--pv-wrap);height:76px;margin:0 auto;padding:0 var(--pv-gut)}
.pvh-brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex:0 0 auto}
.pvh-brand img{height:44px;width:auto;border:1px solid var(--pv-hair);border-radius:6px;background:#fff}
.pvh-brand span{font:400 25px/1 var(--pv-serif,'DM Serif Display',Georgia,serif);color:var(--pv-navy,#0B233F)}
.pvh-nav{flex:1 1 auto;min-width:0;display:block;padding:0;margin:0}
.pvh-menus{display:flex;align-items:center;gap:clamp(4px,1vw,14px);list-style:none;margin:0;padding:0}
.pvh-m{position:static;margin:0}
.pvh .pvh-top{appearance:none;-webkit-appearance:none;display:inline-flex;align-items:center;gap:6px;height:44px;padding:0 10px;margin:0;border:0;border-radius:4px;background:transparent;color:var(--pv-navy,#0B233F);font:500 15.5px/1 var(--pv-sans);cursor:pointer;box-shadow:none;min-width:0;width:auto}
.pvh .pvh-top svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--pv-fast)}
.pvh .pvh-top:hover{background:var(--pv-canvas);color:var(--pv-navy,#0B233F)}
.pvh-m.is-open .pvh-top,.pvh:not(.js) .pvh-m:is(:hover,:focus-within) .pvh-top{color:var(--pv-btn,#B9531F);box-shadow:inset 0 -2px 0 var(--pv-btn,#B9531F);border-radius:0}
.pvh-m.is-open .pvh-top svg{transform:rotate(180deg)}
.pvh-panel{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--pv-hair);box-shadow:0 30px 60px -28px rgba(7,26,47,.45);z-index:61}
.pvh:not(.js) .pvh-m:is(:hover,:focus-within) > .pvh-panel,.pvh.js .pvh-m.is-open > .pvh-panel{display:block}
.pvh-panel-in{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.15fr);max-width:var(--pv-wrap);margin:0 auto;padding:0 var(--pv-gut)}
.pvh-panel-in.pvh-cols-2{grid-template-columns:repeat(2,minmax(0,1fr)) minmax(0,1.15fr)}
.pvh-col{padding:28px 28px 22px 0}
.pvh-col + .pvh-col{padding-left:28px;border-left:1px solid var(--pv-hair)}
.pvh-col .pv-label{margin:0 0 10px}
.pvh-col ul{list-style:none;margin:0;padding:0}
.pvh-col li{margin:0}
.pvh-col a{display:block;padding:7px 0;text-decoration:none;color:var(--pv-navy,#0B233F);min-height:44px}
.pvh-col a b{display:block;font-size:15.5px;font-weight:600;line-height:1.3}
.pvh-col a span{display:block;font-size:13.5px;line-height:1.35;color:var(--pv-slate);margin-top:2px}
.pvh-col a:hover b{color:var(--pv-btn,#B9531F);text-decoration:underline;text-underline-offset:3px}
.pvh-col a.pvh-more b{font-weight:500}
.pvh-feat{background:var(--pv-canvas);padding:28px;margin:0 calc(-1 * var(--pv-gut)) 0 0;border-left:1px solid var(--pv-hair);display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.pvh-feat p{margin:0;font-size:14.5px;line-height:1.55;color:var(--pv-slate)}
.pvh-feat .pvh-feat-h{font:400 25px/1.15 var(--pv-serif,'DM Serif Display',Georgia,serif);color:var(--pv-navy,#0B233F)}
.pvh-feat-tel,.pvh-feat-mail{color:var(--pv-navy,#0B233F);font-weight:500;text-decoration:none}
.pvh-panel-foot{border-top:1px solid var(--pv-hair)}
.pvh-panel-foot a{display:flex;gap:14px;align-items:baseline;max-width:var(--pv-wrap);margin:0 auto;padding:14px var(--pv-gut);font-size:14px;color:var(--pv-slate);text-decoration:none}
.pvh-panel-foot b{color:var(--pv-navy,#0B233F);font-weight:600}
.pvh-panel-foot a:hover b{color:var(--pv-btn,#B9531F)}
.pvh-act{display:flex;align-items:center;gap:clamp(10px,1.4vw,20px);margin-left:auto;flex:0 0 auto}
.pvh-phone{font:500 14.5px var(--pv-mono);color:var(--pv-navy,#0B233F);text-decoration:none;white-space:nowrap}
.pvh-signin{font-size:15px;font-weight:500;color:var(--pv-navy,#0B233F);text-decoration:none;white-space:nowrap;padding:12px 2px}
.pvh-signin:hover,.pvh-phone:hover{color:var(--pv-btn,#B9531F)}
.pvh-cart{font-size:15px;font-weight:600;color:var(--pv-navy,#0B233F);text-decoration:none;white-space:nowrap}
.pvh-cart.hidden{display:none}
.pvh-burger{display:none;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--pv-hair);border-radius:6px;color:var(--pv-navy,#0B233F);background:#fff}
.pvh-burger svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}
@media (max-width:1380px){.pvh-phone{display:none}}
@media (max-width:1180px){.pvh .pvh-top{padding:0 7px;font-size:15px}.pvh-brand span{display:none}}
@media (max-width:1060px){
  .pvh-nav,.pvh-signin,.pvh-act .pv-btn-ghost{display:none}
  .pvh-burger{display:inline-flex}
  .pvh-in{height:68px}
  .pvh-brand span{display:inline}
}
@media (max-width:680px){
  .pvh-act .pv-btn-primary{display:none}
  .pvh-phone{display:inline;font-size:14px}
  .pvh-in{height:62px;gap:12px}
  .pvh-brand img{height:36px}
  .pvh-brand span{display:none}
}

/* 5. phone drawer: opens from #pvd without JavaScript, as a dialog with it -------------------------------------- */
.pvd{display:none;position:fixed;inset:0;z-index:1000;background:#fff;flex-direction:column;padding-top:env(safe-area-inset-top,0px)}
.pvd:target,.pvd.is-open{display:flex}
html.pvd-lock,html.pvd-lock body{overflow:hidden}
.pvd-top{display:flex;align-items:center;gap:12px;height:62px;padding:0 16px;border-bottom:1px solid var(--pv-hair);flex:0 0 auto}
.pvd-top .pvh-brand img{height:36px}
.pvd-tel{margin-left:auto;color:var(--pv-navy,#0B233F);text-decoration:none;font-size:14px;font-weight:500}
.pvd-close{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--pv-hair);border-radius:6px;color:var(--pv-navy,#0B233F)}
.pvd-close svg{width:18px;height:18px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round}
.pvd-find{display:flex;align-items:center;gap:10px;margin:12px 16px 4px;padding:0 12px;height:48px;border:1px solid var(--pv-hair-2);border-radius:4px;flex:0 0 auto}
.pvd-find svg{width:18px;height:18px;stroke:var(--pv-slate);fill:none;stroke-width:2;flex:0 0 auto}
.pvd-find input{flex:1;min-width:0;border:0!important;outline:0;font:16px var(--pv-sans);background:transparent;padding:0;box-shadow:none!important;height:44px}
.pvd-body{flex:1 1 auto;overflow-y:auto;padding:0 16px 16px;overscroll-behavior:contain}
.pvd-acc{border-bottom:1px solid var(--pv-hair)}
.pvd-acc summary{display:flex;justify-content:space-between;align-items:center;min-height:54px;font-size:17px;font-weight:600;color:var(--pv-navy,#0B233F);cursor:pointer;list-style:none}
.pvd-acc summary::-webkit-details-marker{display:none}
.pvd-acc summary svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2.2;transition:transform var(--pv-fast)}
.pvd-acc[open] summary svg{transform:rotate(180deg)}
.pvd-grp{padding:0 0 12px}
.pvd-grp .pv-label{margin:12px 0 2px}
.pvd-grp a{display:flex;align-items:center;min-height:44px;font-size:16px;color:var(--pv-ink,#1B2430);text-decoration:none;border-radius:4px}
.pvd-grp a.pvd-over{font-weight:600;color:var(--pv-navy,#0B233F)}
.pvd-grp a[hidden]{display:none}
.pvd-none{padding:16px 0;color:var(--pv-slate)}
.pvd-pin{flex:0 0 auto;display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px 16px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--pv-hair);background:#fff}
.pvd-pin .pv-btn{min-height:50px}
.pvd-signin{grid-column:1/-1;text-align:center;padding:8px;font-weight:600;color:var(--pv-navy,#0B233F);text-decoration:none}
@media (min-width:1061px){.pvd{display:none!important}}

/* 6. public footer -------------------------------------------------------------------------------------------------- */
body.public .site-footer{margin-top:0;padding:0 var(--pv-gut) 32px;background:#fff;border-top:1px solid var(--pv-hair);color:var(--pv-slate)}
body.public .site-footer,body.public .site-footer *{text-align:left}
body.public .site-footer .footer-org-meta a{font-weight:600;color:var(--pv-navy,#0B233F)}
.pvf-imb{display:flex;align-items:center;gap:16px;max-width:var(--pv-wrap);margin:0 auto;padding:26px 0}
.pvf-imb span{font:400 11.5px/1.3 var(--pv-mono);color:var(--pv-slate)}
.pvf-grid{display:grid;grid-template-columns:minmax(0,1.7fr) repeat(6,minmax(0,1fr));gap:28px;max-width:var(--pv-wrap);margin:0 auto;padding:28px 0 8px;border-top:1px solid var(--pv-hair)}
body.public .site-footer .footer-org-name{font:400 24px/1.1 var(--pv-serif,'DM Serif Display',Georgia,serif);color:var(--pv-navy,#0B233F);margin:0 0 10px}
body.public .site-footer .footer-org-meta{font-size:13.5px;line-height:1.55;margin:0 0 10px;color:var(--pv-slate)}
body.public .site-footer .footer-org-contact{display:flex;flex-direction:column;gap:2px;margin:0 0 12px;font-size:14px}
body.public .site-footer .footer-org-contact a{color:var(--pv-navy,#0B233F);font-weight:600;min-height:32px;display:inline-flex;align-items:center}
body.public .site-footer .footer-col-head{font:500 11.5px/1.3 var(--pv-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--pv-slate);margin:0 0 8px}
body.public .site-footer .footer-list{list-style:none;margin:0;padding:0;display:block}
body.public .site-footer .footer-list li{margin:0;padding:0;display:block}
body.public .site-footer .footer-list a{display:inline-flex;align-items:center;min-height:32px;font-size:13.5px;font-weight:400;line-height:1.3;color:var(--pv-navy,#0B233F);text-decoration:none;margin:0}
.pvh-col a:not(:has(span)){min-height:36px}
body.public .site-footer .footer-list a:hover,body.public .site-footer .footer-org-meta a:hover{color:var(--pv-btn,#B9531F);text-decoration:underline;text-underline-offset:3px}
body.public .site-footer .footer-legal-links{display:flex;flex-wrap:wrap;gap:4px 18px;max-width:var(--pv-wrap);margin:24px auto 0;padding-top:16px;border-top:1px solid var(--pv-hair);font-size:12.5px}
body.public .site-footer .footer-legal-links a{color:var(--pv-slate);min-height:32px;display:inline-flex;align-items:center}
body.public .site-footer .footer-copy{margin-right:auto;display:inline-flex;align-items:center}
@media (max-width:1180px){.pvf-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.pvf-grid > :first-child{grid-column:1/-1}}
@media (max-width:680px){
  .pvf-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 16px}.pvf-imb{padding:20px 0}
  body.public .site-footer .footer-list a{min-height:28px;font-size:13.5px}
  body.public .site-footer .footer-org-meta:last-child{display:none}
}

/* 7. phone action bar (v32.828, kept): a call button joins Order and Quote ----------------------------------------- */
.pv-mcta .pv-mcta-call{display:inline-flex;align-items:center;justify-content:center;flex:0 0 52px;border:1.5px solid var(--pv-hair);border-radius:4px;color:var(--pv-navy,#0B233F)}
.pv-mcta .pv-mcta-call svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8}

/* 8. components ------------------------------------------------------------------------------------------------------ */
.pv-frame{background:#fff;border:1px solid var(--pv-hair);border-radius:6px;overflow:hidden;box-shadow:var(--pv-shadow-float);margin:0}
.pv-frame > figcaption,.pv-frame > .pv-frame-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:30px;padding:6px 12px;border-bottom:1px solid var(--pv-hair);background:#F7F9FB;font:500 11px/1.2 var(--pv-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--pv-slate)}
.pv-frame > figcaption i,.pv-frame-bar i{font-style:normal;color:var(--pv-ok)}
.pv-frame > figcaption i.a,.pv-frame-bar i.a{color:var(--pv-btn,#B9531F)}
.pv-frame img{display:block;width:100%;height:auto}
/* workflow: an ordered list everywhere; tabs on wide screens once pv-public.js adds .js */
.pv-flow{list-style:none;margin:0;padding:0;display:grid;gap:0;position:relative}
.pv-flow-step{position:relative;padding:0 0 28px 42px}
.pv-flow-step::before{content:"";position:absolute;left:10px;top:24px;bottom:0;width:2px;background:rgba(255,255,255,.16)}
.pv-flow-step:last-child::before{display:none}
.pv-flow-h{margin:0;font:inherit}
.pv-flow-btn{appearance:none;-webkit-appearance:none;display:block;width:100%;position:relative;text-align:left;padding:2px 0 10px;margin:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer;border-radius:4px;box-shadow:none;min-height:0}
.pv-flow-btn::before{content:"";position:absolute;left:-42px;top:2px;width:22px;height:22px;border-radius:50%;border:2px solid var(--pv-route-soft);background:var(--pv-navy,#0B233F);box-sizing:border-box}
.pv-flow-step.on .pv-flow-btn::before{background:var(--pv-orange,#D4652A);border-color:var(--pv-orange,#D4652A);box-shadow:0 0 0 5px rgba(212,101,42,.22)}
.pv-flow-btn:focus-visible{outline:2px solid var(--pv-route-soft)!important;outline-offset:4px}
.pv-flow-n{display:block;font:500 12px/1.3 var(--pv-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--pv-orange-soft,#F0A87C)}
.pv-flow-t{display:block;font:600 17px/1.3 var(--pv-sans);color:#fff;margin-top:3px}
.pv-flow-s{display:block;font-size:14px;color:#A9B7C8;margin-top:2px}
.pv-flow-body{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;padding-top:6px}
.pv-flow-body h3{font:400 clamp(26px,2.6vw,36px)/1.12 var(--pv-serif,'DM Serif Display',Georgia,serif);color:#fff;margin:0}
.pv-flow-body p{color:#C9D3DF;font-size:16.5px;line-height:1.6;margin:12px 0 0;max-width:none}
.pv-sys{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.pv-sys li{font:500 12.5px/1.2 var(--pv-mono);color:#E9EEF5;border:1px solid rgba(255,255,255,.22);border-radius:3px;padding:7px 9px;margin:0}
.pv-sys li em{font-style:normal;color:#9FD7B9;margin-left:6px}
.pv-sys li em.add{color:var(--pv-orange-soft,#F0A87C)}
.pv-flow .pv-link{color:var(--pv-orange-soft,#F0A87C);border-bottom-color:rgba(240,168,124,.4);margin-top:20px}
.pv-flow .pv-link:hover{color:#fff;border-bottom-color:#fff}
.pv-flow .pv-frame{box-shadow:none;border-color:rgba(255,255,255,.2)}
.pv-flow .pv-frame img{height:220px;object-fit:cover;object-position:top left}
/* with JavaScript one stage is open at a time at every width (an accordion on phones, tabs on wide screens);
   without it every stage stays open */
.pv-flow.js .pv-flow-step:not(.on) .pv-flow-body{display:none}
.pv-flow.js .pv-flow-step:not(.on){padding-bottom:16px}
@media (min-width:960px){
  .pv-flow.js{grid-template-columns:repeat(5,minmax(0,1fr));column-gap:16px}
  .pv-flow.js .pv-flow-step{display:contents}
  .pv-flow.js .pv-flow-step::before{display:none}
  .pv-flow.js .pv-flow-h{grid-row:1;position:relative;padding-top:36px;border-top:2px solid rgba(255,255,255,.16)}
  .pv-flow.js .pv-flow-step.on .pv-flow-h{border-top-color:var(--pv-route-soft)}
  .pv-flow.js .pv-flow-btn{padding:4px 0 12px}
  .pv-flow.js .pv-flow-btn::before{left:0;top:-48px}
  .pv-flow.js .pv-flow-body{grid-row:2;grid-column:1/-1;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;padding-top:32px;align-items:start}
  .pv-flow.js .pv-flow-step:not(.on) .pv-flow-body{display:none}
  .pv-flow.js .pv-frame img{height:380px}
}

/* 9. home (D3) ----------------------------------------------------------------------------------------------------- */
.pv-home{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:100vw;max-width:100vw;overflow-x:clip;background:#fff;color:var(--pv-ink,#1B2430)}
body.public main .pv-home{margin-top:-26px;margin-bottom:-30px}
@media (max-width:950px){body.public main .pv-home{margin-top:-20px;margin-bottom:-22px}}
body.public:has(.pv-home) .site-footer{margin-top:0}
.pv-home .hm-wrap{max-width:var(--pv-wrap);margin:0 auto;padding:0 var(--pv-gut)}
.pv-home .hm-sec{padding:var(--pv-sec) 0}
.pv-home .hm-tint{background:var(--pv-canvas)}
.pv-home .hm-h2{font:400 var(--pv-h2)/1.1 var(--pv-serif,'DM Serif Display',Georgia,serif);color:var(--pv-navy,#0B233F);margin:10px 0 0;letter-spacing:-.005em;text-wrap:balance}
.pv-home .hm-h2-lg{font-size:clamp(30px,3.6vw,50px)}
.pv-home .hm-h3{font:400 clamp(24px,2.4vw,32px)/1.12 var(--pv-serif,'DM Serif Display',Georgia,serif);color:var(--pv-navy,#0B233F);margin:8px 0 0}
.pv-home .hm-lede{font-size:18.5px;line-height:1.6;color:var(--pv-slate);margin:0}
.pv-home .hm-intro{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,5vw,72px);align-items:end;margin-bottom:clamp(32px,4vw,56px)}
.pv-home .hm-head-row{display:flex;justify-content:space-between;align-items:flex-end;gap:16px 24px;flex-wrap:wrap}
.pv-home p,.pv-home li{max-width:none}
/* 9.1 hero */
.pv-home .hm-hero{position:relative;background:#fff;padding:clamp(36px,5.5vw,76px) 0 0;overflow:hidden}
.pv-home .hm-hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(11,35,63,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(11,35,63,.06) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:radial-gradient(ellipse 50% 70% at 78% 40%,#000 0%,transparent 72%);mask-image:radial-gradient(ellipse 50% 70% at 78% 40%,#000 0%,transparent 72%);pointer-events:none}
.pv-home .hm-hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center}
.pv-home .hm-hero h1{font:400 var(--pv-display)/.97 var(--pv-serif,'DM Serif Display',Georgia,serif);color:var(--pv-navy,#0B233F);margin:20px 0 26px;letter-spacing:-.012em;text-wrap:balance}
.pv-home .hm-hero-lede{font-size:clamp(18px,1.5vw,21px);line-height:1.55;color:var(--pv-ink,#1B2430);margin:0 0 34px}
.pv-home .hm-hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 16px}
.pv-home .hm-hero-call{font-size:16px;color:var(--pv-slate);white-space:nowrap}
.pv-home .hm-hero-call a{color:var(--pv-navy,#0B233F);font-weight:500;text-decoration:underline;text-decoration-color:var(--pv-hair-2);text-underline-offset:4px}
.pv-home .hm-hero-creds{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;list-style:none;margin:40px 0 0;padding:22px 0 0;border-top:1px solid var(--pv-hair);font-size:14.5px;font-weight:600;color:var(--pv-navy,#0B233F)}
.pv-home .hm-hero-creds li{display:flex;align-items:center;gap:12px;margin:0}
.pv-home .hm-hero-creds li + li{padding-left:28px;border-left:1px solid var(--pv-hair)}
.pv-home .hm-hero-creds a{color:inherit;text-decoration:underline;text-decoration-color:var(--pv-hair-2);text-underline-offset:4px}
.pv-home .hm-hero-creds a.hm-hero-usps{display:inline-flex;text-decoration:none}
.pv-home .hm-hero-usps img{display:block;height:24px;width:auto}
.pv-home .hm-comp{position:relative;aspect-ratio:652/590;width:100%;max-width:700px;justify-self:end}
.pv-home .hm-comp > *{position:absolute;margin:0}
.pv-home .hm-crop{overflow:hidden}
.pv-home .hm-c-map{right:0;top:0;width:83%;z-index:1}
.pv-home .hm-c-map .hm-crop{aspect-ratio:1180/940}
.pv-home .hm-c-map img{width:135.6%;max-width:none;height:auto}
.pv-home .hm-c-post{left:0;top:8.8%;width:51%;z-index:3}
.pv-home .hm-c-post .hm-crop{aspect-ratio:1118/335}
.pv-home .hm-c-photo{left:1.5%;bottom:0;width:43%;z-index:2}
.pv-home .hm-c-photo img{display:block;width:100%;aspect-ratio:282/212;height:auto;object-fit:cover}
.pv-home .hm-c-photo span{position:absolute;left:10px;bottom:-22px;font:500 11px/1 var(--pv-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--pv-slate);white-space:nowrap}
.pv-home .hm-c-ins{right:0;bottom:5.1%;width:57%;z-index:4}
.pv-home .hm-route{inset:0;width:100%;height:100%;z-index:5;pointer-events:none;overflow:visible}
/* 9.2 entry points (the v32.828 path card as a strip) */
.pv-home .hm-paths{position:relative;margin-top:clamp(40px,5vw,72px);border-top:1px solid var(--pv-hair);border-bottom:1px solid var(--pv-hair);background:#fff}
.pv-home .hm-paths-grid{display:grid;grid-template-columns:236px minmax(0,1fr)}
.pv-home .hm-paths-head{padding:26px 24px 26px 0}
.pv-home .hm-paths-h{margin:0;font:400 25px/1.15 var(--pv-serif,'DM Serif Display',Georgia,serif);color:var(--pv-navy,#0B233F)}
.pv-home .hm-paths-foot{margin:12px 0 0;font-size:14px;color:var(--pv-slate)}
.pv-home .hm-paths-foot a{color:var(--pv-navy,#0B233F);font-weight:600;text-underline-offset:3px}
.pv-home .hm-paths ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;margin:0;padding:0}
.pv-home .hm-paths li{border-left:1px solid var(--pv-hair);margin:0}
.pv-home .hm-paths li a{display:grid;grid-template-columns:30px minmax(0,1fr) 18px;gap:4px 12px;align-items:start;height:100%;padding:26px 22px;color:var(--pv-navy,#0B233F);text-decoration:none;transition:background var(--pv-fast)}
.pv-home .hm-paths li a:hover{background:var(--pv-canvas)}
.pv-home .hm-paths-ic{color:var(--pv-orange,#D4652A)}
.pv-home .hm-paths-ic svg{width:22px;height:22px;display:block;margin-top:1px}
.pv-home .hm-paths-t b{display:block;font-size:16.5px;font-weight:600;line-height:1.35}
.pv-home .hm-paths-t span{display:block;margin-top:4px;font-size:14.5px;line-height:1.5;color:var(--pv-slate)}
.pv-home .hm-paths-go{color:var(--pv-slate);transition:transform var(--pv-fast),color var(--pv-fast)}
.pv-home .hm-paths-go svg{width:16px;height:16px;display:block;margin-top:4px}
.pv-home .hm-paths li a:hover .hm-paths-go{color:var(--pv-btn,#B9531F);transform:translateX(3px)}
.pv-home .hm-paths li a:hover b{text-decoration:underline;text-underline-offset:3px}
/* 9.3 the operation */
.pv-home .hm-proof{padding:56px 0 var(--pv-sec)}
.pv-home .hm-proof-row{display:flex;gap:22px;align-items:baseline;padding-bottom:26px;border-bottom:1px solid var(--pv-hair)}
.pv-home .hm-proof-row .pv-label{flex:0 0 auto;margin:0}
.pv-home .hm-proof-names{display:flex;flex-wrap:wrap;row-gap:8px;list-style:none;margin:0;padding:0}
.pv-home .hm-proof-names li{font-size:16px;font-weight:500;color:var(--pv-navy,#0B233F);padding:0 18px;border-left:1px solid var(--pv-hair);line-height:1.3;margin:0}
.pv-home .hm-proof-names li:first-child{border-left:0;padding-left:0}
.pv-home .hm-op{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,72px);margin-top:clamp(40px,5vw,64px);align-items:start}
.pv-home .hm-op .hm-lede{margin-top:18px}
.pv-home .hm-figures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px;margin:0}
.pv-home .hm-figures > div{padding:20px 0 22px;border-top:1px solid var(--pv-hair);position:relative}
.pv-home .hm-figures > div::before{content:"";position:absolute;left:0;top:-1px;width:28px;height:2px;background:var(--pv-orange,#D4652A)}
.pv-home .hm-figures dt{font:400 clamp(34px,3.8vw,52px)/1 var(--pv-serif,'DM Serif Display',Georgia,serif);color:var(--pv-navy,#0B233F)}
.pv-home .hm-figures dd{margin:10px 0 0;font-size:15px;line-height:1.5;color:var(--pv-slate)}
.pv-home .hm-figures-award{display:grid;grid-template-columns:72px minmax(0,1fr);gap:0 14px;align-items:center}
.pv-home .hm-figures-award dt img{display:block;width:72px;height:auto}
.pv-home .hm-figures-award dd{margin:0}
.pv-home .hm-figures-award dd a{color:var(--pv-navy,#0B233F)}
.pv-home .hm-photos{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:20px;margin-top:clamp(40px,5vw,64px)}
.pv-home .hm-photos figure{margin:0;min-width:0}
.pv-home .hm-photos img{display:block;width:100%;height:240px;object-fit:cover}
.pv-home .hm-photos figcaption{font:500 11.5px/1.4 var(--pv-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--pv-slate);margin-top:6px;padding-left:10px}
.pv-home .hm-proof-members{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;margin:32px 0 0;font-size:14px;color:var(--pv-slate)}
.pv-home .hm-proof-members span{font:500 11.5px var(--pv-mono);letter-spacing:.08em;text-transform:uppercase}
.pv-home .hm-proof-members img{height:40px;width:auto}
/* 9.4 what we do + shelf */
.pv-home .hm-lanes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,44px);list-style:none;margin:0;padding:0}
.pv-home .hm-lanes > li{margin:0;min-width:0}
.pv-home .hm-lane-img{display:block;aspect-ratio:16/11;overflow:hidden;background:#fff}
.pv-home .hm-lane-img img{display:block;width:100%;height:100%;object-fit:cover}
.pv-home .hm-lanes > li:first-child .hm-lane-img img{object-fit:contain;padding:16px}
.pv-home .hm-lane-franked img{object-position:center 30%}
.pv-home .hm-lanes h3{font:400 30px/1.1 var(--pv-serif,'DM Serif Display',Georgia,serif);color:var(--pv-navy,#0B233F);margin:22px 0 10px}
.pv-home .hm-lanes p{font-size:16px;line-height:1.6;color:var(--pv-slate);margin:0}
.pv-home .hm-lanes ul{list-style:none;margin:18px 0 0;padding:0}
.pv-home .hm-lanes ul li{border-top:1px solid var(--pv-hair);margin:0}
.pv-home .hm-lanes ul a{display:flex;justify-content:space-between;align-items:center;min-height:44px;font-weight:600;font-size:15px;color:var(--pv-navy,#0B233F);text-decoration:none}
.pv-home .hm-lanes ul a::after{content:"";width:14px;height:14px;background:currentColor;opacity:.55;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat}
.pv-home .hm-lanes ul a:hover{color:var(--pv-btn,#B9531F)}
.pv-home .hm-shelf-wrap{margin-top:clamp(48px,6vw,76px);padding-top:28px;border-top:1px solid var(--pv-hair)}
.pv-home .hm-shelf-lede{color:var(--pv-slate);margin:12px 0 0;font-size:16.5px}
.pv-home .hm-shelf{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:18px;list-style:none;margin:24px 0 0;padding:0}
.pv-home .hm-shelf li{margin:0;min-width:0}
.pv-home .hm-shelf a{display:block;text-decoration:none;color:var(--pv-navy,#0B233F)}
.pv-home .hm-shelf img{display:block;width:100%;aspect-ratio:1/1;object-fit:contain;background:#fff;padding:10px}
/* v32.768 (per Cody): a light card for each group of items. The theme already cards the goals and the shelf; the
   production steps sit on the navy band here, so their cards are drawn in light rules, and each tool task is a card. */
body.public .pv-home .hm-dark .hm-steps{gap:12px}
body.public .pv-home .hm-dark .hm-steps li{border:1px solid rgba(255,255,255,.18);border-radius:8px;background:rgba(255,255,255,.04);padding:14px 16px;margin:0}
.pv-home .hm-task-grid > div{background:#fff;border:1px solid var(--pv-rule,#DCE3EB);border-radius:8px;padding:16px 18px 12px}
.pv-home .hm-shelf span{display:block;margin-top:10px;font-weight:600;font-size:15px;line-height:1.3}
.pv-home .hm-shelf a:hover span{color:var(--pv-btn,#B9531F)}
/* 9.5 the workflow band */
.pv-home .hm-dark{position:relative;background:var(--pv-navy,#0B233F);color:#E9EEF5;overflow:hidden}
.pv-home .hm-dark::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:48px 48px;pointer-events:none}
.pv-home .hm-dark .hm-wrap{position:relative}
.pv-home .hm-dark .pv-label{color:var(--pv-orange-soft,#F0A87C)}
.pv-home .hm-dark .hm-h2{color:#fff}
.pv-home .hm-dark .hm-lede{color:#B9C6D6}
.pv-home .hm-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;counter-reset:st}
.pv-home .hm-steps li{padding:14px 0;border-top:1px solid rgba(255,255,255,.16);counter-increment:st;margin:0}
.pv-home .hm-steps h4{font:600 16px/1.3 var(--pv-sans);color:#fff;margin:0}
.pv-home .hm-steps h4::before{content:counter(st,decimal-leading-zero);font:500 12px var(--pv-mono);color:var(--pv-orange-soft,#F0A87C);margin-right:10px;letter-spacing:.06em}
.pv-home .hm-steps p{color:#C9D3DF;font-size:15px;line-height:1.55;margin:6px 0 0}
.pv-home .hm-steps-more{grid-column:1/-1;margin:4px 0 0}
@media (min-width:960px){.pv-home .pv-flow.js .hm-steps-more{grid-column:2}}
/* 9.6 Mailing Intelligence showcases */
.pv-home .hm-show{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,76px);align-items:center;padding:36px 0;border-top:1px solid var(--pv-hair)}
.pv-home .hm-show-rev{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.pv-home .hm-show-rev .hm-show-img{order:2}
.pv-home .hm-show-img{min-width:0}
.pv-home .hm-show-img picture img{height:330px;object-fit:cover;object-position:top left}
.pv-home .hm-prod{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;font:500 13px/1.3 var(--pv-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--pv-navy,#0B233F);margin:0}
.pv-home .hm-prod .pv-tag{margin-left:0}
.pv-home .hm-show-text h3{font:400 clamp(28px,2.8vw,40px)/1.08 var(--pv-serif,'DM Serif Display',Georgia,serif);color:var(--pv-navy,#0B233F);margin:16px 0 14px;text-wrap:balance}
.pv-home .hm-show-text > p{font-size:17.5px;line-height:1.6;color:var(--pv-slate);margin:0}
.pv-home .hm-show-text ul{list-style:none;margin:22px 0 26px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px}
.pv-home .hm-show-text li{display:flex;gap:12px;align-items:baseline;padding:11px 0;border-top:1px solid var(--pv-hair);font-size:15.5px;margin:0}
.pv-home .hm-show-text li::before{content:"";flex:0 0 7px;height:7px;border-radius:50%;border:1.5px solid var(--pv-route);transform:translateY(-1px)}
.pv-home .hm-show-text .pv-link{color:var(--pv-btn,#B9531F)}
.pv-home .hm-more{margin:24px 0 0}
/* 9.7 why */
.pv-home .hm-cols2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,48px);margin-top:32px}
.pv-home .hm-cols2 p{font-size:17px;line-height:1.65;color:var(--pv-ink,#1B2430);margin:0}
.pv-home .hm-actions{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;margin-top:32px}
/* 9.8 planning + tools by task */
.pv-home .hm-plan{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,72px);align-items:start}
.pv-home .hm-plan .hm-lede{margin:18px 0 22px}
.pv-home .hm-goals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px;list-style:none;margin:0;padding:0}
.pv-home .hm-goals li{border-top:1px solid var(--pv-hair);margin:0}
.pv-home .hm-goals a{display:block;padding:15px 0;text-decoration:none}
.pv-home .hm-goals b{display:block;font-size:16.5px;color:var(--pv-navy,#0B233F);font-weight:600}
.pv-home .hm-goals span{font-size:14.5px;color:var(--pv-slate)}
.pv-home .hm-goals a:hover b{color:var(--pv-btn,#B9531F)}
.pv-home .hm-tasks{margin-top:clamp(48px,6vw,72px);padding-top:28px;border-top:1px solid var(--pv-hair)}
.pv-home .hm-task-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:24px;margin-top:24px}
.pv-home .hm-task-h{font:500 12px/1.3 var(--pv-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--pv-slate);margin:0 0 8px}
.pv-home .hm-task-grid ul{list-style:none;margin:0;padding:0}
.pv-home .hm-task-grid li{margin:0}
.pv-home .hm-task-grid a{display:block;padding:7px 0;font-size:15px;font-weight:600;line-height:1.35;color:var(--pv-navy,#0B233F);text-decoration:none}
.pv-home .hm-task-grid a .pv-tag{display:block;width:max-content;margin:5px 0 0}
.pv-home .hm-task-grid a:hover{color:var(--pv-btn,#B9531F)}
/* 9.9 case studies */
.pv-home .hm-cases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;margin:40px 0 0;padding:0;border-top:2px solid var(--pv-navy,#0B233F)}
.pv-home .hm-cases > li{display:flex;flex-direction:column;align-items:flex-start;padding:30px 36px 6px;border-left:1px solid var(--pv-hair);margin:0;min-width:0}
.pv-home .hm-cases > li:first-child{border-left:0;padding-left:0}
.pv-home .hm-case-n{display:block;font:400 clamp(48px,5vw,68px)/1 var(--pv-serif,'DM Serif Display',Georgia,serif);color:var(--pv-navy,#0B233F)}
.pv-home .hm-case-u{display:block;font-size:15px;line-height:1.45;color:var(--pv-slate);margin:8px 0 18px}
.pv-home .hm-case-t{display:block;font:400 23px/1.2 var(--pv-serif,'DM Serif Display',Georgia,serif);color:var(--pv-navy,#0B233F);margin:8px 0 16px}
.pv-home .hm-cases dl{margin:0 0 18px;width:100%}
.pv-home .hm-cases dl div{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;padding:9px 0;border-top:1px solid var(--pv-hair);font-size:14.5px;line-height:1.5}
.pv-home .hm-cases dt{font:500 11px/1.6 var(--pv-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--pv-slate)}
.pv-home .hm-cases dd{margin:0}
.pv-home .hm-cases .pv-link{margin-top:auto}
/* 9.10 questions */
.pv-home .hm-faq-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,72px)}
.pv-home .hm-faq-head p:last-child{color:var(--pv-slate);margin-top:14px}
/* 9.11 three ways to start */
.pv-home .hm-close{background:var(--pv-navy-deep,#071A2F);color:#E9EEF5;padding:clamp(64px,8vw,96px) 0}
.pv-home .hm-close .pv-label{color:var(--pv-orange-soft,#F0A87C)}
.pv-home .hm-close .hm-h2{color:#fff}
.pv-home .hm-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;margin:44px 0 0;padding:0;border-top:1px solid rgba(255,255,255,.18)}
.pv-home .hm-choices li{display:flex;flex-direction:column;align-items:flex-start;padding:30px 36px 8px;border-left:1px solid rgba(255,255,255,.18);margin:0}
.pv-home .hm-choices li:first-child{border-left:0;padding-left:0}
.pv-home .hm-choice-k{font:500 12px/1.3 var(--pv-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--pv-orange-soft,#F0A87C);margin:0}
.pv-home .hm-choices h3{font:400 32px/1.1 var(--pv-serif,'DM Serif Display',Georgia,serif);color:#fff;margin:10px 0 12px}
.pv-home .hm-choices p:not(.hm-choice-k){font-size:16px;line-height:1.55;color:#B9C6D6;margin:0 0 24px;flex:1}
.pv-home .hm-close-call{margin:36px 0 0;color:#B9C6D6;font-size:16px}
.pv-home .hm-close-call a{color:#fff;font-weight:500}
/* 9.12 tablets and phones */
@media (max-width:1180px){
  .pv-home .hm-task-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pv-home .hm-shelf{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pv-home .hm-paths-grid{grid-template-columns:minmax(0,1fr)}
  .pv-home .hm-paths-head{padding:22px 0 0;display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px 24px}
  .pv-home .hm-paths-foot{margin:0}
  .pv-home .hm-paths ul{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:12px}
  .pv-home .hm-paths li:nth-child(odd){border-left:0}
  .pv-home .hm-paths li{border-top:1px solid var(--pv-hair)}
  .pv-home .hm-paths li a{padding:20px 18px 20px 0}
  .pv-home .hm-paths li:nth-child(even) a{padding-left:18px}
}
@media (max-width:1060px){
  .pv-home .hm-hero-grid,.pv-home .hm-intro,.pv-home .hm-op,.pv-home .hm-plan,.pv-home .hm-faq-grid,.pv-home .hm-show,.pv-home .hm-show-rev{grid-template-columns:minmax(0,1fr)}
  .pv-home .hm-show-rev .hm-show-img{order:0}
  .pv-home .hm-comp{justify-self:center;max-width:620px}
  .pv-home .hm-photos{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pv-home .hm-cases,.pv-home .hm-choices{grid-template-columns:minmax(0,1fr)}
  .pv-home .hm-cases > li,.pv-home .hm-choices li{border-left:0;padding-left:0;padding-right:0;border-top:1px solid var(--pv-hair)}
  .pv-home .hm-choices li{border-top-color:rgba(255,255,255,.18)}
  .pv-home .hm-cases > li:first-child,.pv-home .hm-choices li:first-child{border-top:0}
  .pv-home .hm-show-img picture img{height:340px}
}
@media (max-width:760px){
  .pv-home .hm-lanes,.pv-home .hm-cols2,.pv-home .hm-goals,.pv-home .hm-steps{grid-template-columns:minmax(0,1fr)}
  .pv-home .hm-proof-row{flex-direction:column;gap:10px}
  .pv-home .hm-proof-names li{font-size:15px;padding:0 12px}
  .pv-home .hm-figures{gap:0 20px}
  .pv-home .hm-figures dt{font-size:28px;overflow-wrap:normal;hyphens:none}
  .pv-home .hm-figures-award{grid-template-columns:52px minmax(0,1fr)}
  .pv-home .hm-figures-award dt img{width:52px}
  .pv-home .hm-photos img{height:180px}
}
@media (max-width:680px){
  .pv-home .hm-hero-actions .pv-btn{width:100%}
  .pv-home .hm-hero-creds li + li{padding-left:0;border-left:0}
  .pv-home .hm-comp{aspect-ratio:358/300}
  .pv-home .hm-c-photo,.pv-home .hm-c-ins,.pv-home .hm-route{display:none}
  .pv-home .hm-c-map{width:86%}
  .pv-home .hm-c-post{top:auto;bottom:4%;width:66%}
  .pv-home .hm-paths ul{grid-template-columns:minmax(0,1fr)}
  .pv-home .hm-paths li,.pv-home .hm-paths li:nth-child(even){border-left:0}
  .pv-home .hm-paths li a,.pv-home .hm-paths li:nth-child(even) a{padding:16px 0}
  .pv-home .hm-task-grid,.pv-home .hm-shelf{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pv-home .hm-show-img picture img{height:260px}
  .pv-home .hm-lanes h3{font-size:26px}
  .pv-home .hm-show-text ul{display:none}
  .pv-home .hm-show-text > p{margin-bottom:18px}
  .pv-home .hm-lane-img{aspect-ratio:16/9}
}

/* 10. phase 4 (D5): the family hero and the shared body parts on the high-value families --------------------------
   Pages carry body classes pv-p4 + pv-p4-svc|pol|tech|prod|form (templates/<page>.html, patch_p4_heroes.py) and their
   first hero carries pv-hero + pv-hero-<family>. The navy box (and the brick political hero) becomes a light hero on the
   precision grid with one H1 size; a real screen or plant photo sits beside the text (services, political) or full
   width under it (technology). The hero's aside keeps its content: under the text when there is a picture, beside it
   when there is not. Nothing here reaches a page without pv-p4. */
html body.public main .pv-hero{position:relative;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:0 clamp(24px,4vw,56px);align-items:center;background:none;color:var(--pv-ink,#1B2430);border:0;border-bottom:1px solid var(--pv-hair);border-radius:0;box-shadow:none;margin:0 0 clamp(8px,2vw,16px);padding:clamp(12px,2.2vw,28px) 0 clamp(28px,4vw,48px);min-height:0;overflow:visible}
html body.public main .pv-hero::before{content:"";position:absolute;inset:0 0 0 35%;background-image:linear-gradient(rgba(11,35,63,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(11,35,63,.055) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:radial-gradient(ellipse 60% 80% at 70% 45%,#000 0%,transparent 72%);mask-image:radial-gradient(ellipse 60% 80% at 70% 45%,#000 0%,transparent 72%);pointer-events:none;z-index:0}
html body.public main .pv-hero > *{position:relative;z-index:1;min-width:0}
html body.public main .pv-hero > :not(.pv-hero-fig){grid-column:1}
html body.public main .pv-hero > .pv-hero-fig{grid-column:2;grid-row:1 / span 8}
html body.public main .pv-hero:not(:has(> .pv-hero-fig)){grid-template-columns:minmax(0,1fr)}
html body.public main .pv-hero :is(.rd-page-hero-split,.rd-hero-grid){display:block;background:none;padding:0;margin:0}
html body.public main .pv-hero:not(:has(> .pv-hero-fig)) :is(.rd-page-hero-split,.rd-hero-grid),
html body.public main .pv-hero-tech :is(.rd-page-hero-split,.rd-hero-grid){display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:clamp(24px,4vw,48px);align-items:start}
html body.public main .pv-hero-tech:has(> .pv-hero-fig){grid-template-columns:minmax(0,1fr);gap:28px}
html body.public main .pv-hero-tech > .pv-hero-fig{grid-column:1;grid-row:auto}
html body.public main .pv-hero :is(h1,.rd-h1){color:var(--pv-navy,#0B233F);font:400 var(--pv-h1)/1.08 var(--pv-serif,'DM Serif Display',Georgia,serif);letter-spacing:-.005em;margin:12px 0 16px;text-wrap:balance;max-width:none}
html body.public main .pv-hero .rd-kicker{color:var(--pv-btn,#B9531F);margin:0}
html body.public main .pv-hero .rd-kicker + .rd-kicker{margin:-4px 0 14px;font-size:13px;color:var(--pv-slate)}
html body.public main .pv-hero :is(p,li,dd,dt,span){color:inherit}
html body.public main .pv-hero :is(.rd-lede,.rd-page-lede){font-size:clamp(17px,1.35vw,19px);line-height:1.62;color:var(--pv-ink,#1B2430);max-width:none;margin:0 0 4px}
html body.public main .pv-hero .rd-page-intro{font-size:16.5px;color:var(--pv-slate);margin-top:12px}
html body.public main .pv-hero a:not([class*="rd-btn"]):not(.pv-btn){color:var(--pv-navy,#0B233F);text-decoration:underline;text-decoration-color:var(--pv-hair-2);text-underline-offset:3px}
html body.public main .pv-hero .rd-actions{display:flex;flex-wrap:wrap;gap:12px 14px;margin:24px 0 0}
html body.public main .pv-hero :is(.rd-btn,.rd-btn-white){display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border-radius:4px;border:1.5px solid var(--pv-btn,#B9531F);background:var(--pv-btn,#B9531F);color:#fff;font:600 15.5px/1.2 var(--pv-sans);text-decoration:none;box-shadow:none}
html body.public main .pv-hero :is(.rd-btn,.rd-btn-white):hover{background:var(--pv-btn-deep,#9E4418);border-color:var(--pv-btn-deep,#9E4418);color:#fff}
html body.public main .pv-hero :is(.rd-btn-ghost,.rd-btn-outline){display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border-radius:4px;border:1.5px solid var(--pv-navy,#0B233F);background:transparent;color:var(--pv-navy,#0B233F);font:600 15.5px/1.2 var(--pv-sans);text-decoration:none;box-shadow:none}
html body.public main .pv-hero :is(.rd-btn-ghost,.rd-btn-outline):hover{background:var(--pv-navy,#0B233F);color:#fff}
html body.public main .pv-hero :is(.rd-page-hero-aside,aside){background:var(--pv-canvas);border:1px solid var(--pv-hair);border-radius:8px;padding:18px 22px;margin:24px 0 0;color:var(--pv-ink,#1B2430);box-shadow:none}
html body.public main .pv-hero:not(:has(> .pv-hero-fig)) :is(.rd-page-hero-aside,aside),
html body.public main .pv-hero-tech :is(.rd-page-hero-aside,aside){margin-top:8px}
html body.public main .pv-hero :is(.rd-page-hero-aside,aside) :is(h2,h3){font:400 20px/1.2 var(--pv-serif,'DM Serif Display',Georgia,serif);color:var(--pv-navy,#0B233F);margin:0 0 10px}
html body.public main .pv-hero :is(.rd-page-hero-aside,aside) p{font-size:15px;color:var(--pv-ink,#1B2430)}
html body.public main .pv-hero .rd-check{color:var(--pv-ink,#1B2430);gap:8px}
html body.public main .pv-hero .rd-check li::before{color:var(--pv-ok)}
html body.public main .pv-hero:has(> .pv-hero-fig):not(.pv-hero-tech) .rd-check{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px}
html body.public main .pv-hero :is(.rd-trust,.rd-hero-trust){font:500 12.5px/1.5 var(--pv-mono);letter-spacing:.03em;color:var(--pv-slate);margin-top:18px;background:none;border:0;padding:0}
html body.public main .pv-hero-fig{margin:0;align-self:center}
html body.public main .pv-hero-fig img{display:block;width:100%;height:auto;max-height:440px;object-fit:cover;object-position:top left;background:#fff}
html body.public main .pv-hero-fig img[src*="/product_"]{object-fit:contain;object-position:center;max-height:380px}
html body.public main .pv-hero-tech .pv-hero-fig img{max-height:420px;border:1px solid var(--pv-hair)}
html body.public main .pv-hero-fig figcaption{font:500 11.5px/1.4 var(--pv-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--pv-slate);margin-top:6px}
html body.public main .pv-hero-prod{padding-bottom:20px}
@media (max-width:960px){
  html body.public main .pv-hero,html body.public main .pv-hero:not(:has(> .pv-hero-fig)) :is(.rd-page-hero-split,.rd-hero-grid),html body.public main .pv-hero-tech :is(.rd-page-hero-split,.rd-hero-grid){grid-template-columns:minmax(0,1fr)}
  html body.public main .pv-hero > .pv-hero-fig{grid-column:1;grid-row:auto}
  html body.public main .pv-hero-fig img{max-height:300px}
  html body.public main .pv-hero::before{inset:0}
  html body.public main .pv-hero:has(> .pv-hero-fig):not(.pv-hero-tech) .rd-check{grid-template-columns:minmax(0,1fr)}
}
/* 10.2 body parts on phase 4 pages: the credibility strip as a ruled proof row, the closing band in the deep navy of
   the home page's last chapter, one H2 scale, crop marks on in-body photos and screens */
html body.public:is(.pv-p4,.pv-p5,.pv-p6) main .rd-strip{background:none;border:0;border-bottom:1px solid var(--pv-hair);border-radius:0;box-shadow:none;padding:6px 0 18px;margin:0 0 8px}
html body.public:is(.pv-p4,.pv-p5,.pv-p6) main .rd-strip-list{gap:0;list-style:none;padding:0;margin:0}
html body.public:is(.pv-p4,.pv-p5,.pv-p6) main .rd-strip-list li{background:none;border:0;border-left:1px solid var(--pv-hair);border-radius:0;padding:4px 16px;box-shadow:none;margin:0}
html body.public:is(.pv-p4,.pv-p5,.pv-p6) main .rd-strip-list li:first-child{border-left:0;padding-left:0}
html body.public:is(.pv-p4,.pv-p5,.pv-p6) main .rd-strip-list b{display:block;font:600 15px/1.3 var(--pv-sans);color:var(--pv-navy,#0B233F)}
html body.public:is(.pv-p4,.pv-p5,.pv-p6) main .rd-strip-list span{display:block;font-size:13px;line-height:1.4;color:var(--pv-slate)}
html body.public:is(.pv-p4,.pv-p5,.pv-p6) main .rd-h2{font-size:var(--pv-h2);line-height:1.12}
html body.public:is(.pv-p4,.pv-p5,.pv-p6) main .rd-cta-band{background:var(--pv-navy-deep,#071A2F);color:#E9EEF5;border-radius:6px;box-shadow:none;border:0}
html body.public:is(.pv-p4,.pv-p5,.pv-p6) main .rd-cta-band h2{color:#fff}
html body.public:is(.pv-p4,.pv-p5,.pv-p6) main .rd-cta-band :is(p,.rd-intro){color:#B9C6D6}
html body.public:is(.pv-p4,.pv-p5,.pv-p6) main .rd-cta-band .rd-btn{background:var(--pv-btn,#B9531F);border-color:var(--pv-btn,#B9531F);color:#fff}
html body.public:is(.pv-p4,.pv-p5,.pv-p6) main .rd-cta-band .rd-btn-ghost{background:transparent;border:1.5px solid rgba(255,255,255,.8);color:#fff}
html body.public:is(.pv-p4,.pv-p5,.pv-p6) main .rd-cta-band .rd-btn-ghost:hover{background:#fff;color:var(--pv-navy,#0B233F)}
html body.public:is(.pv-p4,.pv-p5,.pv-p6) main :is(.pv-figure,.rd-figure) > :is(img,picture){outline:1px solid var(--pv-hair);outline-offset:-1px}
html body.public:is(.pv-p4,.pv-p5,.pv-p6) main :is(.pv-figure,.rd-figure) figcaption{font:500 11.5px/1.45 var(--pv-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--pv-slate)}
@media (max-width:760px){html body.public:is(.pv-p4,.pv-p5,.pv-p6) main .rd-strip-list li{border-left:0;padding:6px 0;border-top:1px solid var(--pv-hair)}html body.public:is(.pv-p4,.pv-p5,.pv-p6) main .rd-strip-list li:first-child{border-top:0}}
/* 10.3 forms (quote, consultation, mail specialist): a light card per form, 16 px fields, 48 px orange submit */
html body.public.pv-p4-form main :is(.qt-card,.cs-card){background:#fff;border:1px solid var(--pv-rule,#DCE3EB);border-radius:8px;box-shadow:none}
html body.public.pv-p4-form main :is(.qt-card,.cs-card) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea){font-size:16px;min-height:44px}
html body.public.pv-p4-form main :is(.qt-card,.cs-card) button[type=submit]{min-height:48px;padding:0 24px;background:var(--pv-btn,#B9531F);border:1.5px solid var(--pv-btn,#B9531F);color:#fff;font:600 16px/1 var(--pv-sans);border-radius:4px}
html body.public.pv-p4-form main :is(.qt-card,.cs-card) button[type=submit]:hover{background:var(--pv-btn-deep,#9E4418)}
html body.public.pv-p4-form main :is(.qt-card,.cs-card) legend{font:500 12.5px/1.3 var(--pv-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--pv-btn,#B9531F)}
html body.public.pv-p4-form main .qt-aside > section{background:var(--pv-canvas);border:1px solid var(--pv-hair);border-radius:8px;padding:16px 18px;margin:0 0 12px}
html body.public.pv-p4-form main .qt-aside h2{font:400 19px/1.2 var(--pv-serif,'DM Serif Display',Georgia,serif);color:var(--pv-navy,#0B233F);margin:0 0 6px}
html body.public.pv-p4-form main :is(.qt-head,.cs-head) h1{font:400 var(--pv-h1)/1.08 var(--pv-serif,'DM Serif Display',Georgia,serif);color:var(--pv-navy,#0B233F)}

/* 10.4 fixes after the first render: redesign.css gives hero buttons !important white or brick text (for the old navy
   box), so the light hero states its button colours the same way; the picture starts at the top of a tall hero; an h1
   styled as .rd-h2 still gets the H1 size; the v32.713 product hero keeps its actions hidden beside the price panel. */
html body.public main .pv-hero :is(.rd-btn,.rd-btn-white){color:#fff!important}
html body.public main .pv-hero :is(.rd-btn-ghost,.rd-btn-outline){color:var(--pv-navy,#0B233F)!important;border-color:var(--pv-navy,#0B233F)!important}
html body.public main .pv-hero :is(.rd-btn-ghost,.rd-btn-outline):hover{color:#fff!important}
html body.public:is(.pv-p4,.pv-p5,.pv-p6) main .pv-hero :is(h1,.rd-h1){font-size:var(--pv-h1);line-height:1.08}
html body.public main .pv-hero > .pv-hero-fig{align-self:start;margin-top:clamp(0px,2.5vw,36px)}
html body.public:is(.pv-p4,.pv-p5,.pv-p6) main .pv-hero :is(.rd-intro,.ms-call){color:var(--pv-slate)!important}
html body.public:is(.pv-p4,.pv-p5,.pv-p6) main .pv-hero :is(.rd-intro,.ms-call) a{color:var(--pv-navy,#0B233F)!important}
@media (min-width:951px){html body.public main .pv-hero.pv-hero-compact .rd-actions.pv-hero-actions{display:none}}
html body.public main .pv-hero a.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;margin:0 10px 10px 0;border-radius:4px;border:1.5px solid var(--pv-btn,#B9531F);background:var(--pv-btn,#B9531F);color:#fff!important;font:600 15.5px/1.2 var(--pv-sans);text-decoration:none;box-shadow:none}
html body.public main .pv-hero a.button.secondary{background:transparent;border-color:var(--pv-navy,#0B233F);color:var(--pv-navy,#0B233F)!important}
html body.public main .pv-hero a.button.secondary:hover{background:var(--pv-navy,#0B233F);color:#fff!important}
html body.public:is(.pv-p4,.pv-p5,.pv-p6) main .pv-art-links{margin:14px 0 0;padding:12px 14px;background:var(--pv-canvas);border:1px solid var(--pv-hair);border-radius:8px;font-size:15px;line-height:1.55}

/* 11. phase 5 (D7): industry and regional pages ---------------------------------------------------------------------
   Region maps (tools/build_region_maps.py): an inline SVG drawn at 960 units wide and shown at about half that, so
   labels and dots are sized in map units; the one orange pin (or arrow) is the Vista plant. The "On this page" bar is
   filled by pv-public.js from the section headings and sticks under the header on wide screens. Long rule lists and
   ZIP / route tables show their first rows and a "Show all" button; every row stays in the HTML. */
html body.public main .pv-hero-map{margin:0}
.pv-map{margin:0;background:var(--pv-canvas)}
.pv-map svg{display:block;width:100%;height:auto;max-height:540px}
.pv-map .pv-map-cities circle{r:7px;fill:#fff;stroke:var(--pv-navy,#0B233F);stroke-width:3}
.pv-map .pv-map-cities text{font:500 22px var(--pv-mono);fill:var(--pv-navy,#0B233F);paint-order:stroke;stroke:#F4F6F9;stroke-width:6px;stroke-linejoin:round}
.pv-map .pv-map-vista circle{r:11px;fill:var(--pv-orange,#D4652A)}
.pv-map .pv-map-vista circle.ring{r:24px;fill:none;stroke:var(--pv-orange,#D4652A);stroke-width:4;opacity:.45}
.pv-map .pv-map-vista text{font:600 23px var(--pv-sans);fill:var(--pv-btn,#B9531F);paint-order:stroke;stroke:#F4F6F9;stroke-width:6px;stroke-linejoin:round}
.pv-map .pv-map-vista path.arrow{stroke:var(--pv-orange,#D4652A);stroke-width:5;stroke-dasharray:10 8;fill:none}
html body.public main .pv-map figcaption{font:400 13px/1.5 var(--pv-sans);letter-spacing:0;text-transform:none;color:var(--pv-slate);margin-top:8px}
.pv-toc:empty{display:none}
.pv-toc{display:flex;align-items:center;gap:16px;margin:0 0 4px;border-bottom:1px solid var(--pv-hair);background:#fff;min-width:0}
.pv-toc .pv-label{flex:0 0 auto;margin:0}
.pv-toc ol{display:flex;gap:2px 20px;overflow-x:auto;list-style:none;margin:0;padding:0;scrollbar-width:none;min-width:0}
.pv-toc ol::-webkit-scrollbar{display:none}
.pv-toc li{margin:0;flex:0 0 auto}
.pv-toc a{display:inline-flex;align-items:center;min-height:44px;max-width:30ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;color:var(--pv-slate);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px}
.pv-toc a:hover{color:var(--pv-navy,#0B233F)}
.pv-toc a.on{color:var(--pv-navy,#0B233F);border-bottom-color:var(--pv-orange,#D4652A);font-weight:600}
@media (min-width:1100px){.pv-toc{position:sticky;top:77px;z-index:40}}
@media (max-width:760px){.pv-toc .pv-label{display:none}}
.pv-clip-btn{display:inline-flex;align-items:center;min-height:44px;margin:12px 0 0;padding:0 16px;border:1px solid var(--pv-hair-2);border-radius:4px;background:#fff;color:var(--pv-navy,#0B233F);font:600 14.5px/1 var(--pv-sans);cursor:pointer;box-shadow:none}
.pv-clip-btn:hover{border-color:var(--pv-navy,#0B233F)}
html body.public main .rd-deflist dt:has(.gx-piece-img){display:flex;align-items:center;gap:12px}
.gx-piece-img{flex:0 0 64px;width:64px;height:48px;object-fit:contain;background:#fff;border:1px solid var(--pv-hair);border-radius:4px;padding:2px}
html body.public main .gx-fig{margin:22px 0 0}
html body.public main .gx-fig img{display:block;width:100%;height:300px;object-fit:cover;object-position:top left}
html body.public main .pv-hero-ind > figure.pv-hero-fig{width:fit-content;max-width:100%;justify-self:center}
html body.public main .pv-hero-ind > figure.pv-hero-fig img{width:auto;max-width:100%;max-height:340px;object-fit:contain}

/* 12. phase 6: tools, editorial, company, legal ------------------------------------------------------------------
   Editorial pages (articles, mailing guides, encyclopedia terms, case studies) keep their own layout (contents list,
   author box, sources); they get the H1 scale, a badge that says what kind of page it is (a dated USPS update, a how-to
   guide, a guide, a definition), ruled tables and the v32.768 light cards. Tool pages get a compact hero; the Workbench
   lists its tools in one card per task. Legal pages keep every word: a compact hero, the "On this page" bar and a print
   stylesheet. */
html body.public.pv-p6 main :is(.rd-guide-wrap > h1,.pet-h1){font:400 var(--pv-h1)/1.08 var(--pv-serif,'DM Serif Display',Georgia,serif);color:var(--pv-navy,#0B233F);letter-spacing:-.005em;text-wrap:balance;margin:10px 0 14px}
html body.public.pv-p6 main .rd-article-dates{font:400 13.5px/1.6 var(--pv-sans);color:var(--pv-slate)}
/* phase 7: the byline was Fira Mono; the long guide byline fit one line in the fallback mono and wrapped to two when
   Fira Mono arrived, pushing the whole guide down (CLS 0.43 on 19 guides). Sans keeps it stable; mono stays for figures. */
html body.public.pv-p6 main .pv-kind-row{margin:0 0 4px}
.pv-tag-kind{border:1px solid var(--pv-hair-2);color:var(--pv-navy,#0B233F);background:#fff;margin-left:8px}
.pv-kind-row .pv-tag-kind{margin-left:0}
.pv-tag-kind.is-update{background:#FFF4DC;border-color:#EBCF8F;color:#6B4600}
html body.public.pv-p6 main .rd-guide-toc-title{font:500 12px/1.3 var(--pv-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--pv-btn,#B9531F)}
html body.public.pv-p6 main .rd-guide-toc a{color:var(--pv-slate);font-size:14.5px}
html body.public.pv-p6 main .rd-guide-toc a:hover{color:var(--pv-navy,#0B233F)}
html body.public.pv-p6 main .rd-guide-body :is(p,li){font-size:17.5px;line-height:1.72}
html body.public.pv-p6 main .rd-guide-body table{border-collapse:collapse;width:100%;font-size:15px;line-height:1.5;margin:18px 0}
html body.public.pv-p6 main .rd-guide-body th{font:500 11.5px/1.3 var(--pv-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--pv-slate);text-align:left;padding:10px 14px 8px 0;border-bottom:1px solid var(--pv-hair-2);background:none}
html body.public.pv-p6 main .rd-guide-body td{padding:10px 14px 10px 0;border-bottom:1px solid var(--pv-hair);vertical-align:top;background:none}
html body.public.pv-p6 main :is(.rd-author-box,.rd-guide-cta){background:#fff;border:1px solid var(--pv-rule,#DCE3EB);border-radius:8px;box-shadow:none}
html body.public.pv-p6 main .rd-guide-cta .rd-btn{background:var(--pv-btn,#B9531F);border-color:var(--pv-btn,#B9531F);color:#fff!important}
/* case studies: the verified result first */
html body.public.pv-p6-cs main .csi-n{margin:0 0 14px}
html body.public.pv-p6-cs main .csi-n b{display:block;font:400 clamp(42px,4vw,56px)/1 var(--pv-serif,'DM Serif Display',Georgia,serif);color:var(--pv-navy,#0B233F)}
html body.public.pv-p6-cs main .csi-n span{display:block;font-size:14.5px;line-height:1.45;color:var(--pv-slate);margin-top:8px}
/* tools: a compact hero; the Workbench in one card per task */
html body.public main .pv-hero-tool{padding-bottom:20px}
html body.public main .fmt-tasks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:8px}
html body.public main .fmt-task{background:#fff;border:1px solid var(--pv-rule,#DCE3EB);border-radius:8px;padding:16px 18px 10px;min-width:0}
html body.public main .fmt-task-h{font:500 12px/1.3 var(--pv-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--pv-btn,#B9531F);margin:0 0 6px}
html body.public main .fmt-task .pv-index{display:block;gap:0;margin:0}
html body.public main .fmt-task .pv-index > li{border:0;border-top:1px solid var(--pv-hair);border-radius:0;background:none;margin:0}
html body.public main .fmt-task .pv-index > li:first-child{border-top:0}
html body.public main .fmt-task .pv-index a{display:block;padding:10px 0}
html body.public main .fmt-task .pv-index a b{display:block;color:var(--pv-navy,#0B233F)}
html body.public main .fmt-task .pv-index a span{display:block;font-size:14px;color:var(--pv-slate)}
@media (max-width:1060px){html body.public main .fmt-tasks{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:680px){html body.public main .fmt-tasks{grid-template-columns:minmax(0,1fr)}}
/* legal */
html body.public main .pv-hero-legal{padding-bottom:20px}
/* print: the page, not the site around it (legal and editorial pages are the ones people print) */
@media print{
  header.pvh,.pva,.pvd,.pv-mcta,.pv-toc,.rd-guide-toc,.rd-crumbs,body.public .site-footer,.rd-cta-band,.rd-guide-cta,.pv-clip-btn,[id*=cookie],[class*=cookie-banner]{display:none!important}
  body.public{background:#fff!important;color:#000!important}
  html body.public main .pv-hero{border:0;padding:0 0 12px;display:block}
  html body.public main .pv-hero::before,html body.public main .pv-hero > .pv-hero-fig{display:none}
  body.public main [hidden]{display:revert!important}
  body.public main a[href^="http"]::after{content:" (" attr(href) ")";font-size:9pt;color:#444;word-break:break-all}
  body.public main section{break-inside:auto}
  body.public main :is(h2,h3){break-after:avoid}
}
@media (max-width:960px){html body.public main .pv-hero > .pv-hero-fig{margin-top:24px}}
/* an h1 styled as .rd-h2 (index pages) and the Getting Started hero still get the one H1 size (D5) */
html body.public:is(.pv-p4,.pv-p5,.pv-p6) main h1.rd-h2,html body.public.pv-p6 main .help-hero-copy h1{font-size:var(--pv-h1);line-height:1.08;font-family:var(--pv-serif,'DM Serif Display',Georgia,serif);font-weight:400;color:var(--pv-navy,#0B233F)}

/* 13. phase 7 accessibility fixes (WCAG 2.2 AA, found by rd/a11y.py) -------------------------------------------------
   Labels: the button orange #B9531F on the canvas band is 4.49:1 and the theme's peach hero kicker (#F2A47E, meant for
   the old navy box) is 2.0:1 on the light hero; labels now use a deeper ink (6.1:1 on white, 5.6:1 on canvas). Tags:
   darker text on their tints (6:1). Targets: standalone text links and FAQ toggles get at least a 24 px hit area (2.5.8). */
:root{--pv-label-ink:#A3461A}
body.public :is(.rd-kicker,.hm-label,.pv-label){color:var(--pv-label-ink)}
html body.public main .pv-hero :is(p,div,span).rd-kicker{color:var(--pv-label-ink)}
.pv-tag-add{color:#9A3F14}
.pv-tag-inc{color:#176645}
.pvh-phone{display:inline-flex;align-items:center;min-height:44px}
.pva .rd-announce-link{display:inline-block;padding:4px 0}
body.public .rd-crumbs a{display:inline-block;padding:4px 0}
.pv-link{min-height:24px;padding-top:2px}
body.public main details > summary{padding-block:10px}
.pv-home .hm-hero-call a,.pv-home .hm-close-call a{display:inline-block;padding:8px 0}
/* 13.2 hero content written for the old navy hero (white and pale-blue text, some of it in inline styles) now sits on
   the light family hero: Election HQ countdown, Plavidian Standard figures, Print Products trust row, the hero notes
   on the tool pages, and the leadership profile link. Signed-in pages keep the old navy hero, so the templates keep
   their colors and only body.public is remapped here (!important beats the inline styles). */
html body.public main .pv-hero .eh-count > div{background:#fff!important;border-color:var(--pv-hair)!important}
html body.public main .pv-hero .eh-count > div + div{background:#FDF1EA!important;border-color:#F0C9B2!important}
html body.public main .pv-hero .eh-count b{color:#0B233F!important}
html body.public main .pv-hero .eh-count span{color:var(--pv-slate)!important}
html body.public main .pv-hero .eh-count > div + div span{color:var(--pv-label-ink)!important}
html body.public main .pv-hero :is(p,div).note,html body.public main .pv-hero .rd-page-hero-aside .rd-intro{color:var(--pv-slate)!important}
html body.public main .pv-hero .std-spec{background:#fff;border-color:var(--pv-hair)}
html body.public main .pv-hero .std-spec b{color:#0B233F}
html body.public main .pv-hero .std-spec span{color:var(--pv-slate)}
html body.public main .pv-hero .pp-trust li{color:var(--pv-slate);border-left-color:var(--pv-hair)}
html body.public main .pv-hero .pp-trust b{color:#0B233F}
html body.public main .pv-hero .rd-page-lede a[style]{color:#B9531F!important}
