/* ShadowCast · The Vault · section styles (scoped to .vault; uses the site's tokens with fallbacks) */
.vault{
  --v-gold:var(--gold,#e2b155); --v-gold-hi:var(--gold-hi,#f8dfa2); --v-gold-lo:var(--gold-lo,#8a5a1c);
  --v-bone:var(--bone,#efe6d2); --v-mute:var(--mute,#a59c8b); --v-dim:var(--dim,#6f6859);
  --v-display:var(--f-display,'Syne','Avenir Next','Segoe UI',sans-serif); --v-body:var(--f-body,'Manrope','Segoe UI',system-ui,sans-serif);
  --v-label:var(--f-label,'Cinzel','Trajan Pro',Georgia,serif); --v-gut:var(--gut,clamp(16px,5vw,72px));
  --v-nav:76px; --v-ease:cubic-bezier(.2,.7,.2,1);
  position:relative; background:#040303; color:var(--v-bone); overflow:clip; isolation:isolate;
}
.vault *{box-sizing:border-box}
.vault [hidden]{display:none!important}

/* ---------------------------------------------------------------- stage (sticky, holds the canvas) */
.vault-stage{position:sticky; top:0; height:100vh; height:100svh; min-height:540px; overflow:hidden}
.vault-canvas{position:absolute; inset:0; width:100%; height:100%; display:block; opacity:0; transition:opacity .9s ease}
.vault.has-3d .vault-canvas{opacity:1}
.vault-still{position:absolute; inset:0; background:#040303 center/cover no-repeat; opacity:0; transition:opacity .6s}
.vault.no-3d .vault-still{opacity:1; background-image:var(--v-still-intact)}
.vault.no-3d[data-state="breached"] .vault-still,.vault.no-3d.is-transit .vault-still{background-image:var(--v-still-breached)}
.vault.no-3d[data-state="pricing"] .vault-still{background-image:var(--v-still-inside)}
.vault-scrim{position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg,rgba(4,3,3,.78) 0%,rgba(4,3,3,.35) 22%,rgba(4,3,3,0) 38%,rgba(4,3,3,0) 78%,rgba(4,3,3,.55) 100%);
  transition:opacity .6s}
.vault[data-state="pricing"] .vault-scrim{opacity:0}

/* ---------------------------------------------------------------- opening interface */
.vault-open{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; text-align:center;
  padding:calc(var(--v-nav) + clamp(8px,2.2vh,28px)) var(--v-gut) clamp(18px,3.4vh,34px); pointer-events:none;
  transition:opacity .3s ease, visibility 0s linear 0s}
.vault-open > *{pointer-events:auto}
.vault.is-transit .vault-open,.vault[data-state="pricing"] .vault-open{opacity:0; visibility:hidden; transition:opacity .3s ease, visibility 0s linear .3s}
.vault-copy{position:relative; isolation:isolate; display:flex; flex-direction:column; align-items:center}
/* a soft dark halo behind the copy so the headline never competes with the lit wall behind it */
.vault-copy::before{content:''; position:absolute; z-index:-1; left:50%; top:50%; width:min(160%,1100px); height:190%; transform:translate(-50%,-50%); pointer-events:none;
  background:radial-gradient(closest-side,rgba(4,3,3,.74),rgba(4,3,3,.46) 52%,rgba(4,3,3,.12) 80%,rgba(4,3,3,0))}
.vault-eyebrow{margin:0 0 clamp(10px,1.6vh,18px); text-shadow:0 2px 14px rgba(0,0,0,.9)}
.vault-eyebrow::after{content:''; width:34px; height:1px; background:currentColor; opacity:.8; flex:none}
.vault-h{margin:0; max-width:22ch; font:800 clamp(30px,4.4vw,64px)/1 var(--v-display); letter-spacing:-.025em; color:var(--v-bone);
  text-wrap:balance; text-shadow:0 4px 30px rgba(0,0,0,.85)}
.vault-sub{margin:clamp(12px,1.8vh,20px) 0 0; max-width:40ch; font:500 clamp(15px,1.35vw,19px)/1.45 var(--v-body); color:var(--v-gold-hi); text-wrap:balance; text-shadow:0 2px 16px rgba(0,0,0,.95)}
.vault-cta{display:flex; flex-direction:column; align-items:center; gap:10px; margin-top:clamp(14px,2.2vh,24px)}
.vault-btn{display:inline-flex; align-items:center; gap:14px; padding:15px 26px; border:1px solid rgba(226,177,85,.85); border-radius:4px;
  background:rgba(10,8,6,.62); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); color:var(--v-bone);
  font:700 13px/1 var(--v-label); letter-spacing:.26em; text-transform:uppercase; text-decoration:none; cursor:pointer;
  box-shadow:0 0 0 1px rgba(0,0,0,.4), 0 0 26px rgba(226,177,85,.18), inset 0 0 18px rgba(226,177,85,.08);
  transition:background .25s, box-shadow .25s, border-color .25s, transform .25s var(--v-ease)}
.vault-btn:hover{background:rgba(26,18,8,.78); border-color:var(--v-gold-hi); box-shadow:0 0 0 1px rgba(0,0,0,.4), 0 0 42px rgba(226,177,85,.38), inset 0 0 22px rgba(226,177,85,.14)}
.vault-btn:hover .vp-arrow{transform:translateX(3px)}
.vault-btn:active{transform:translateY(1px)}
.vault .vp-arrow{width:18px; height:18px; flex:none; transition:transform .25s var(--v-ease)}
.vault-replay{background:none; border:0; padding:6px 8px; color:var(--v-mute); font:600 13px var(--v-body); text-decoration:underline; text-underline-offset:3px; cursor:pointer}
.vault-replay:hover{color:var(--v-gold-hi)}
.vault-view{margin-top:auto; display:inline-flex; flex-direction:column; align-items:center; gap:8px; padding:6px 10px; color:var(--v-gold);
  font:700 11px/1 var(--v-label); letter-spacing:.3em; text-transform:uppercase; text-decoration:none; text-shadow:0 2px 12px rgba(0,0,0,.9)}
.vault-view .vp-arrow{width:16px; height:16px}
.vault-view:hover{color:var(--v-gold-hi)}.vault-view:hover .vp-arrow{transform:translateY(3px)}
.vault-skip{position:absolute; right:clamp(14px,2.4vw,32px); bottom:clamp(14px,3vh,30px); z-index:3; display:inline-flex; align-items:center; gap:10px;
  padding:11px 16px; border-radius:4px; border:1px solid rgba(239,230,210,.28); background:rgba(8,6,5,.66); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  color:var(--v-bone); font:700 12px/1 var(--v-label); letter-spacing:.22em; text-transform:uppercase; cursor:pointer; animation:vault-in .4s .25s both}
.vault-skip span{font:600 10px/1 var(--v-body); letter-spacing:.06em; color:var(--v-mute); border:1px solid rgba(239,230,210,.25); border-radius:3px; padding:3px 5px}
.vault-skip:hover{border-color:var(--v-gold)}
.vault-sound{position:absolute; left:clamp(14px,2.4vw,32px); bottom:clamp(14px,3vh,30px); z-index:6; display:inline-flex; align-items:center; gap:9px; height:44px; padding:0 14px 0 12px;
  border-radius:4px; border:1px solid rgba(239,230,210,.22); background:rgba(8,6,5,.6); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  color:var(--v-mute); font:600 12px var(--v-body); letter-spacing:.06em; cursor:pointer; transition:color .2s, border-color .2s}
.vault-sound svg{width:20px; height:20px; flex:none}
.vault-sound:hover{color:var(--v-bone); border-color:var(--v-gold)}
.vault-sound[aria-pressed="true"]{color:var(--v-gold-hi)}
.vault-sound[aria-pressed="true"] .vs-off,.vault-sound[aria-pressed="false"] .vs-on{display:none}
@media (max-width:720px){.vault-sound span{display:none}.vault-sound{padding:0 12px}}
.vault-live{position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}
.vault :focus-visible{outline:2px solid var(--v-gold-hi); outline-offset:3px}
@keyframes vault-in{from{opacity:0; transform:translateY(6px)}to{opacity:1; transform:none}}

/* phones: headline at the top, controls at the bottom (thumb reach), vault between */
@media (max-width:720px){
  .vault{--v-nav:64px}
  .vault-eyebrow{letter-spacing:.22em; font-size:11px}
  .vault-eyebrow::before,.vault-eyebrow::after{width:18px}
  .vault-h{font-size:clamp(30px,8.6vw,44px); max-width:13ch}
  .vault-cta{margin-top:auto}
  .vault-view{margin-top:12px}
  .vault-btn{padding:15px 22px; font-size:12px; letter-spacing:.22em}
  .vault-skip{left:50%; right:auto; transform:translateX(-50%)}
  .vault-skip{animation:none}
}
@media (max-height:620px) and (min-width:721px){ .vault-h{font-size:clamp(28px,4.2vw,52px)} }

/* ---------------------------------------------------------------- pricing (inside the vault) */
.vault-pricing{position:relative; z-index:2; margin-top:-100vh; margin-top:-100svh; padding:0 0 clamp(70px,12vh,140px)}
.vault-bar{position:sticky; top:calc(100vh - 74px); top:calc(100svh - 74px); z-index:5; display:grid; grid-template-columns:1fr auto 1fr; align-items:start; padding:0 clamp(14px,2.4vw,32px); height:0; pointer-events:none}
.vault-bar > *{grid-row:1}            /* all three on one line (explicit columns would otherwise wrap to a new row) */
.vault-bar .vault-exit{grid-column:3; justify-self:end}
.vault-bar .vault-qjump{grid-column:2; justify-self:center}
.vault-qjump{pointer-events:auto; display:inline-flex; align-items:center; gap:10px; height:46px; padding:0 14px 0 16px; border-radius:999px; border:1px solid rgba(226,177,85,.6);
  background:rgba(8,6,5,.76); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); color:var(--v-gold-hi); font:600 14px var(--v-body); white-space:nowrap; cursor:pointer;
  box-shadow:0 8px 30px rgba(0,0,0,.5); opacity:0; transform:translateY(8px); transition:opacity .4s, transform .4s var(--v-ease), background .25s, border-color .25s, box-shadow .25s}
.vault-qjump:hover{background:rgba(26,18,8,.9); border-color:var(--v-gold-hi)}
.vault-qjump .vp-arrow{width:18px; height:18px}
.vault.vp-open .vault-qjump{opacity:1; transform:none; transition-delay:.25s}
.vault.vq-has .vault-qjump{border-color:var(--v-gold-hi); box-shadow:0 8px 30px rgba(0,0,0,.5), 0 0 24px rgba(226,177,85,.25)}
.vq-count{min-width:22px; height:22px; padding:0 6px; border-radius:999px; background:linear-gradient(180deg,var(--v-gold-hi),var(--v-gold)); color:#1a1206; font:800 12px/22px var(--v-body); text-align:center}
.vault.vp-at-end .vault-qjump{opacity:0; transform:translateY(8px); pointer-events:none}
.vault-bar .vault-sound{position:static; grid-column:1; justify-self:start; pointer-events:auto; opacity:0; transition:opacity .4s}
.vault.vp-open .vault-bar .vault-sound{opacity:1}
.vault[data-state="pricing"] .vault-stage .vault-sound{display:none}
.vault-exit{pointer-events:auto; display:inline-flex; align-items:center; gap:10px; height:46px; padding:0 18px; border-radius:4px;
  border:1px solid rgba(226,177,85,.8); background:rgba(8,6,5,.74); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  color:var(--v-bone); font:600 14px var(--v-body); cursor:pointer; box-shadow:0 8px 30px rgba(0,0,0,.5);
  opacity:0; transform:translateY(8px); transition:opacity .4s, transform .4s var(--v-ease), background .25s, border-color .25s}
.vault-exit:hover{background:rgba(26,18,8,.88); border-color:var(--v-gold-hi)}
@media (max-width:720px){.vx-long{display:none}.vault-exit{padding:0 14px}.vault-qjump{padding:0 12px 0 14px}}
@media (max-width:400px){.vault-qjump .vp-arrow{display:none}.vault-bar{padding:0 10px}.vault-exit{gap:6px; padding:0 12px}}
.vault.vp-at-end .vault-exit{opacity:0; transform:translateY(8px); pointer-events:none}
@media (max-width:720px){.vp-eyebrow{letter-spacing:.22em; font-size:11px}.vp-eyebrow::before,.vp-eyebrow::after{width:18px}}
.vault.vp-open .vault-exit{opacity:1; transform:none; transition-delay:.15s}
.vault-wrap{max-width:1200px; margin:0 auto; padding:calc(var(--v-nav) + clamp(46px,8vh,92px)) var(--v-gut) 0}
.vault-pricing [data-vp-in],.vault-pricing [data-vp-row]{opacity:0; transform:translateY(22px); transition:opacity .7s var(--v-ease), transform .8s var(--v-ease); transition-delay:calc(var(--d,0) * 90ms)}
.vault-pricing [data-vp-row]{transform:translateY(12px); transition-delay:0s}
.vault.vp-open .vault-pricing .is-in{opacity:1; transform:none}
.vault.vp-instant .vault-pricing [data-vp-in],.vault.vp-instant .vault-pricing [data-vp-row]{transition:none; opacity:1; transform:none}
.vault:not(.vp-open) .vault-pricing{pointer-events:none}
.vault:not(.vp-open) .vault-pricing [data-vp-in],.vault:not(.vp-open) .vault-pricing [data-vp-row]{opacity:0; transition:opacity .25s; transition-delay:0s}

.vp-head{position:relative; isolation:isolate; text-align:center; margin:0 auto clamp(30px,5vh,56px)}
.vp-head::before{content:''; position:absolute; z-index:-1; left:50%; top:50%; width:min(130%,1200px); height:170%; transform:translate(-50%,-50%); pointer-events:none;
  background:radial-gradient(closest-side,rgba(4,3,3,.7),rgba(4,3,3,.4) 55%,rgba(4,3,3,0))}
.vp-eyebrow{justify-content:center}
.vp-eyebrow::after{content:''; width:34px; height:1px; background:currentColor; opacity:.8; flex:none}
.vp-title{margin:14px 0 0; font:800 clamp(36px,6.2vw,88px)/.96 var(--v-display); letter-spacing:-.03em; color:var(--v-bone); text-wrap:balance; text-shadow:0 6px 40px rgba(0,0,0,.9)}
.vp-title:focus{outline:none}.vp-title:focus-visible{outline:2px solid var(--v-gold-hi); outline-offset:6px}
.vp-tag{margin:16px 0 0; font:500 clamp(15px,1.7vw,22px)/1.3 var(--v-body); letter-spacing:.26em; color:var(--v-bone); text-shadow:0 2px 16px rgba(0,0,0,.9)}

.vp-primary{display:grid; gap:clamp(16px,2vw,26px); grid-template-columns:1fr}
@media (min-width:900px){.vp-primary{grid-template-columns:1fr 1fr}}
.vp-card,.vp-services{position:relative; background:linear-gradient(180deg,rgba(14,11,8,.86),rgba(7,6,5,.9)); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  clip-path:polygon(18px 0,calc(100% - 18px) 0,100% 18px,100% calc(100% - 18px),calc(100% - 18px) 100%,18px 100%,0 calc(100% - 18px),0 18px)}
.vp-card::before,.vp-services::before{content:''; position:absolute; inset:0; pointer-events:none; padding:1px;
  background:linear-gradient(140deg,rgba(248,223,162,.85),rgba(226,177,85,.35) 30%,rgba(138,90,28,.5) 70%,rgba(248,223,162,.7));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);
  clip-path:inherit}
.vp-card{container-type:inline-size; padding:clamp(20px,2.4vw,30px)}
.vp-card-in{display:grid; grid-template-columns:1fr; gap:18px; align-items:start}
.vp-card-art{border:1px solid rgba(226,177,85,.22); border-radius:6px; background:radial-gradient(120% 90% at 30% 20%,rgba(226,177,85,.16),rgba(0,0,0,0) 60%),#070605; padding:10px; max-width:240px}
@container (min-width:520px){.vp-card-in{grid-template-columns:clamp(150px,30cqi,190px) 1fr; gap:clamp(18px,4cqi,28px)}.vp-card-art{max-width:none}}
.vp-art{display:block; width:100%; height:auto}
.vp-card-t{margin:0; font:700 clamp(24px,2.3vw,32px)/1.1 var(--v-display); letter-spacing:-.01em; color:var(--v-bone)}
.vp-card-t::after{content:''; display:block; width:42px; height:2px; margin:14px 0 12px; background:linear-gradient(90deg,var(--v-gold-hi),var(--v-gold-lo))}
.vp-price{margin:0; display:flex; align-items:baseline; flex-wrap:wrap; gap:8px; color:var(--v-bone)}
.vp-price .vp-amt{font:800 clamp(34px,3.6vw,48px)/1 var(--v-display); letter-spacing:-.02em;
  background:linear-gradient(100deg,var(--v-gold-lo),var(--v-gold-hi) 40%,#fff3d0 55%,var(--v-gold) 75%); -webkit-background-clip:text; background-clip:text; color:transparent}
.vp-price .vp-from{font:600 18px var(--v-body); color:var(--v-gold-hi)}
.vp-price .vp-per{font:500 17px var(--v-body); color:var(--v-mute)}
.vp-lead{margin:12px 0 0; font:500 16px/1.5 var(--v-body); color:var(--v-bone)}
.vp-break{display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:14px 0 0}
.vp-chip{display:inline-flex; align-items:baseline; gap:6px; padding:7px 12px; border:1px solid rgba(226,177,85,.45); border-radius:999px; font:500 14px var(--v-body); color:var(--v-mute)}
.vp-chip b{font:700 15px var(--v-body); color:var(--v-gold-hi)}
.vp-plus{color:var(--v-gold); font:600 16px var(--v-body)}
.vp-feats{list-style:none; margin:14px 0 0; padding:0; display:grid; grid-template-columns:1fr; gap:6px 14px}
@container (min-width:600px){.vp-feats{grid-template-columns:1fr 1fr}}
.vp-feats li{display:flex; gap:8px; align-items:flex-start; font:500 14.5px/1.4 var(--v-body); color:var(--v-bone)}
.vp-check{width:16px; height:16px; flex:none; margin-top:2px; color:var(--v-gold)}
.vp-factors-l{margin:14px 0 6px; font:700 11px/1.2 var(--v-label); letter-spacing:.24em; text-transform:uppercase; color:var(--v-gold)}
.vp-factors{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:6px}
.vp-factors li{padding:5px 10px; border-radius:4px; background:rgba(226,177,85,.08); border:1px solid rgba(226,177,85,.2); font:500 13px var(--v-body); color:var(--v-bone)}
.vp-scope{margin:12px 0 0; font:500 14.5px/1.55 var(--v-body); color:var(--v-bone)}
.vp-terms{margin:10px 0 0; font:400 13px/1.55 var(--v-body); color:var(--v-mute)}
.vp-quote{display:inline-flex; align-items:center; gap:8px; margin-top:16px; color:var(--v-gold-hi); font:700 14px var(--v-body); text-decoration:none; border-bottom:1px solid rgba(226,177,85,.4); padding-bottom:3px}
.vp-quote .vp-arrow{width:16px; height:16px}
.vp-quote:hover{color:#fff3d0; border-color:var(--v-gold-hi)}.vp-quote:hover .vp-arrow{transform:translateX(3px)}
.vp-quote-card{margin-top:0}
.vp-card-act{display:flex; flex-wrap:wrap; align-items:center; gap:14px 22px; margin-top:20px}
.vp-card.is-picked::before{padding:1.5px; background:linear-gradient(140deg,#fff3d0,var(--v-gold-hi) 30%,var(--v-gold) 70%,#fff3d0)}

/* "add to quote" checkboxes (real inputs, styled) */
.vp-pick{position:relative; display:inline-flex; align-items:center; gap:10px; cursor:pointer; -webkit-tap-highlight-color:transparent}
.vp-pick input{position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:pointer}
.vp-pick-box{width:24px; height:24px; flex:none; display:grid; place-items:center; border:1.5px solid rgba(226,177,85,.6); border-radius:5px; background:rgba(8,6,5,.55);
  transition:background .2s, border-color .2s, box-shadow .2s}
.vp-pick-box .vp-check{width:16px; height:16px; margin:0; color:#1a1206; opacity:0; transform:scale(.5); transition:opacity .18s, transform .25s var(--v-ease)}
.vp-pick:hover .vp-pick-box{border-color:var(--v-gold-hi)}
.vp-pick input:checked + .vp-pick-box{background:linear-gradient(180deg,var(--v-gold-hi),var(--v-gold)); border-color:var(--v-gold-hi); box-shadow:0 0 16px rgba(226,177,85,.45)}
.vp-pick input:checked + .vp-pick-box .vp-check{opacity:1; transform:none}
.vp-pick input:focus-visible + .vp-pick-box{outline:2px solid var(--v-gold-hi); outline-offset:3px}
.vp-pick-card{height:44px; padding:0 18px 0 12px; border:1px solid rgba(226,177,85,.55); border-radius:999px; background:rgba(226,177,85,.06); font:700 14px var(--v-body); color:var(--v-bone);
  transition:background .2s, border-color .2s, color .2s}
.vp-pick-card .vp-pick-box{width:22px; height:22px}
.vp-pick-card:hover{border-color:var(--v-gold-hi); background:rgba(226,177,85,.12)}
.vp-pick-on{display:none}
.vp-pick input:checked ~ .vp-pick-l .vp-pick-on{display:inline}
.vp-pick input:checked ~ .vp-pick-l .vp-pick-off{display:none}
.vp-card.is-picked .vp-pick-card{border-color:var(--v-gold-hi); background:rgba(226,177,85,.16); color:var(--v-gold-hi)}

.vp-services{margin-top:clamp(16px,2vw,26px); padding:clamp(16px,2.2vw,28px) clamp(14px,2.4vw,34px)}
.vp-services-t{margin:4px 0 8px; font:700 12px/1.2 var(--v-label); letter-spacing:.3em; text-transform:uppercase; color:var(--v-gold)}
.vp-cols{display:grid; grid-template-columns:1fr; column-gap:clamp(24px,3.4vw,48px)}
@media (min-width:900px){.vp-cols{grid-template-columns:1fr 1fr}.vp-cols .vp-list + .vp-list{border-left:1px solid rgba(226,177,85,.16); padding-left:clamp(24px,3.4vw,48px)}}
.vp-list{list-style:none; margin:0; padding:0}
.vp-row{border-bottom:1px solid rgba(226,177,85,.14)}
.vp-list .vp-row:last-child{border-bottom:0}
@media (max-width:899px){.vp-cols .vp-list:first-child .vp-row:last-child{border-bottom:1px solid rgba(226,177,85,.14)}}
.vp-row{transition:background .3s}
.vp-row.is-picked{background:linear-gradient(90deg,rgba(226,177,85,.09),rgba(226,177,85,0) 75%)}
.vp-row-main{display:grid; grid-template-columns:auto 1fr; align-items:center; gap:14px; padding-left:4px}
.vp-row-btn{all:unset; box-sizing:border-box; width:100%; display:grid; grid-template-columns:40px 1fr auto 18px; align-items:center; gap:14px; padding:14px 2px; cursor:pointer; border-radius:4px; color:inherit; text-align:left}
.vp-row-btn:focus-visible{outline:2px solid var(--v-gold-hi); outline-offset:2px}
.vp-row-btn:hover .vp-name{color:var(--v-gold-hi)}
.vp-ico{width:40px; height:40px; display:grid; place-items:center; border:1px solid rgba(226,177,85,.55); border-radius:6px; color:var(--v-gold); background:rgba(226,177,85,.05)}
.vp-ico .vp-i{width:22px; height:22px}
.vp-name{font:600 16px/1.3 var(--v-body); color:var(--v-bone); transition:color .2s}
.vp-rprice{display:flex; flex-direction:column; align-items:flex-end; gap:2px; text-align:right; white-space:nowrap}
.vp-rprice .vp-amt{font:800 19px/1 var(--v-display); color:var(--v-gold-hi)}
.vp-rprice .vp-from{font:500 13px var(--v-body); color:var(--v-mute)}
.vp-rprice .vp-per{font:500 13px var(--v-body); color:var(--v-mute)}
.vp-setup{font:500 12px var(--v-body); color:var(--v-dim)}
.vp-chev{width:10px; height:10px; border-right:1.5px solid var(--v-gold); border-bottom:1.5px solid var(--v-gold); transform:rotate(45deg) translateY(-3px); transition:transform .25s var(--v-ease); justify-self:end}
.vp-row.is-open .vp-chev{transform:rotate(225deg) translateY(-3px)}
.vp-detail{padding:0 2px 16px 96px}
.vault:not(.vault-js) .vp-detail{display:block!important}   /* no JavaScript: details stay open */
.vp-detail .vp-scope{margin-top:0}
.vp-detail .vp-quote{margin-top:10px}
@media (max-width:480px){.vp-row-main{gap:10px; padding-left:0}.vp-row-btn{grid-template-columns:34px 1fr auto 14px; gap:10px}.vp-ico{width:34px; height:34px}.vp-detail{padding-left:34px}.vp-name{font-size:15px}}
@media (max-width:420px){.vp-row-btn{grid-template-columns:1fr auto 14px}.vp-row-btn .vp-ico{display:none}}

.vp-foot{display:flex; flex-direction:column; align-items:center; text-align:center; margin-top:clamp(30px,5vh,52px)}
.vp-build{font-size:14px; padding:18px 30px}
.vp-note{margin:14px 0 0; font:500 14px var(--v-body); color:var(--v-bone); letter-spacing:.04em}
.vp-fine{margin:10px auto 0; max-width:62ch; font:400 12.5px/1.6 var(--v-body); color:var(--v-mute)}
.vp-out{display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin-top:28px}
.vault-ghost{display:inline-flex; align-items:center; gap:10px; height:44px; padding:0 18px; border-radius:4px; border:1px solid rgba(239,230,210,.25); background:rgba(8,6,5,.6);
  color:var(--v-bone); font:600 14px var(--v-body); cursor:pointer; transition:border-color .2s, background .2s}
.vault-ghost:hover{border-color:var(--v-gold); background:rgba(26,18,8,.8)}

/* ---------------------------------------------------------------- build my quote */
.vp-qb{position:relative; margin-top:clamp(16px,2vw,26px); scroll-margin:120px;
  background:radial-gradient(90% 120% at 0% 0%,rgba(226,177,85,.12),rgba(0,0,0,0) 55%),linear-gradient(180deg,rgba(20,15,9,.92),rgba(8,6,5,.94));
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  clip-path:polygon(18px 0,calc(100% - 18px) 0,100% 18px,100% calc(100% - 18px),calc(100% - 18px) 100%,18px 100%,0 calc(100% - 18px),0 18px)}
.vp-qb::before{content:''; position:absolute; inset:0; pointer-events:none; padding:1px; clip-path:inherit;
  background:linear-gradient(140deg,#fff3d0,rgba(226,177,85,.45) 30%,rgba(138,90,28,.6) 70%,var(--v-gold-hi));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
.vp-qb-in{display:grid; grid-template-columns:1fr; gap:clamp(18px,3vw,44px); padding:clamp(22px,3.2vw,44px)}
@media (min-width:900px){.vp-qb-in{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); align-items:start}}
.vp-qb-k{margin:0 0 14px; width:46px; height:46px; display:grid; place-items:center; border:1px solid rgba(226,177,85,.6); border-radius:8px; color:var(--v-gold); background:rgba(226,177,85,.07)}
.vp-qb-k .vp-i{width:24px; height:24px}
.vp-qb-t{margin:0; font:800 clamp(28px,3.2vw,46px)/1.02 var(--v-display); letter-spacing:-.02em; color:var(--v-bone)}
.vp-qb-t:focus{outline:none}.vp-qb-t:focus-visible{outline:2px solid var(--v-gold-hi); outline-offset:6px}
.vp-qb-intro{margin:12px 0 0; max-width:42ch; font:500 15.5px/1.55 var(--v-body); color:var(--v-mute)}
.vp-qb-list{list-style:none; margin:0; padding:0}
.vp-qb-list:not(:empty){border-top:1px solid rgba(226,177,85,.2)}
.vp-qb-row{display:grid; grid-template-columns:1fr auto 32px; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid rgba(226,177,85,.12); animation:vault-in .35s var(--v-ease) both}
.vp-qb-n{font:600 15px/1.35 var(--v-body); color:var(--v-bone)}
.vp-qb-p{font:600 14px/1.35 var(--v-body); color:var(--v-gold-hi); text-align:right}
.vp-qb-row.is-incl .vp-qb-p{color:var(--v-mute); font-weight:500; font-style:italic}
.vp-qb-x{width:32px; height:32px; display:grid; place-items:center; padding:0; border-radius:50%; border:1px solid rgba(239,230,210,.2); background:none; color:var(--v-mute); font:400 19px/1 var(--v-body); cursor:pointer; transition:color .2s, border-color .2s}
.vp-qb-x:hover{color:var(--v-bone); border-color:var(--v-gold)}
.vp-qb-empty{margin:0; padding:20px 18px; border:1px dashed rgba(226,177,85,.4); border-radius:6px; font:500 14.5px/1.5 var(--v-body); color:var(--v-mute); text-align:center}
.vp-qb-sum{display:flex; flex-wrap:wrap; gap:12px 34px; margin:18px 0 0}
.vp-qb-sum div{display:flex; flex-direction:column; gap:6px}
.vp-qb-sum dt{font:700 11px/1.2 var(--v-label); letter-spacing:.24em; text-transform:uppercase; color:var(--v-gold)}
.vp-qb-sum dd{margin:0; font:800 clamp(26px,2.6vw,34px)/1 var(--v-display); letter-spacing:-.02em; color:var(--v-gold-hi)}
.vp-qb-sum small{font:500 14px var(--v-body); letter-spacing:0; color:var(--v-mute)}
.vp-qb-act{display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:22px}
.vault.vq-has .vp-qb .vp-build{background:linear-gradient(180deg,var(--v-gold-hi),var(--v-gold)); border-color:var(--v-gold-hi); color:#1a1206}
.vault.vq-has .vp-qb .vp-build:hover{background:linear-gradient(180deg,#fff3d0,var(--v-gold-hi))}
.vp-qb-copy .vp-arrow{width:17px; height:17px}
.vp-qb-clear{background:none; border:0; padding:8px; color:var(--v-mute); font:600 13px var(--v-body); text-decoration:underline; text-underline-offset:3px; cursor:pointer}
.vp-qb-clear:hover{color:var(--v-gold-hi)}
.vp-qb-note{margin:16px 0 0; font:400 12.5px/1.6 var(--v-body); color:var(--v-mute)}
.vp-qb-to{color:var(--v-gold-hi); white-space:nowrap}
.vp-qb-status{margin:6px 0 0; min-height:1.4em; font:500 13.5px/1.4 var(--v-body); color:var(--v-gold-hi)}
@media (max-width:480px){.vp-qb-act .vault-btn,.vp-qb-act .vault-ghost{width:100%; justify-content:center}.vp-qb-row{grid-template-columns:1fr 32px}.vp-qb-p{grid-column:1; grid-row:2; text-align:left; margin-top:-4px}.vp-qb-x{grid-column:2; grid-row:1 / span 2}}

@media (prefers-reduced-motion:reduce){
  .vault *,.vault *::before,.vault *::after{transition-duration:0s!important; animation:none!important}
}
