/* VX system: Variant C "Ruled Index", navy heroes. Tokens checked for WCAG AA on --hx-bg */
html:root{--gutter:clamp(24px,4.25vw,80px);--s1:16px;--s2:24px;--s3:32px;--s4:48px;--s5:64px;--s6:96px;--navy:#161b2e;
--hx-bg:#161b2e;--hx-ink:#ffffff;--hx-body:#d5d9e6;--hx-muted:#aab1c7;--hx-accent:#ff6b63;--hx-rule:#8a93ad;--hx-sub:#a9b8ff}
@media(max-width:700px){html:root{--gutter:24px;--s5:48px;--s6:64px}}
html{overflow-x:clip}
/* navy hero surface, full bleed */
.vx-navy{position:relative;isolation:isolate;color:var(--hx-ink)}
.vx-navy::before{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:50%;width:100vw;transform:translateX(-50%);background:var(--hx-bg) url(/assets/hero-contours.svg) right -160px top -120px/1200px auto no-repeat}
.vx-navy .breadcrumbs,.vx-navy .breadcrumbs a{color:var(--hx-muted);font-size:12px}
.vx-navy h1{color:var(--hx-ink)}
.vx-navy h1 span{color:var(--hx-accent)}
.vx-navy h1 small{color:var(--hx-sub)}
.vx-navy p,.vx-navy .bx-lede,.vx-navy .split-heading>p,.vx-navy .contact-lede{color:var(--hx-body)}
.vx-navy .bx-kicker{color:var(--hx-accent)}.vx-navy .bx-kicker i{background:var(--hx-accent)}
.vx-navy .hero-period{color:var(--hx-accent)}
.vx-navy .eyebrow{color:var(--hx-muted)}
/* buttons */
.vx-actions{display:flex;flex-wrap:wrap;gap:var(--s1)}
.vx-btn{display:inline-flex;align-items:center;justify-content:space-between;gap:var(--s1);min-height:52px;padding:10px 10px 10px 20px;font-size:14px;font-weight:700;line-height:1;text-decoration:none;flex:1 1 0;min-width:min(max-content,100%);transition:background .2s,color .2s,border-color .2s;box-sizing:border-box}
.vx-btn>span{display:block}
.vx-btn>i{flex:none;display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:6px;box-sizing:border-box}
.vx-btn svg{display:block;width:20px;height:20px}
.vx-primary{background:var(--red);color:#fff;border:1px solid var(--red)}
.vx-primary:hover{background:#b01e19}
.vx-primary>i{background:rgba(255,255,255,.18)}
.vx-secondary{background:transparent;color:var(--ink);border:1px solid var(--ink)}
.vx-secondary:hover{background:var(--ink);color:#fff}
.vx-secondary>i{background:rgba(22,27,46,.08)}
.vx-navy .vx-primary{background:var(--hx-accent);border-color:var(--hx-accent);color:var(--hx-bg)}
.vx-navy .vx-primary:hover{background:#ff8a84}
.vx-navy .vx-primary>i{background:var(--hx-bg);color:#fff}
.vx-navy .vx-secondary{color:var(--hx-ink);border-color:var(--hx-rule)}
.vx-navy .vx-secondary>i{background:rgba(255,255,255,.12)}
.vx-navy .vx-secondary:hover{background:#fff;color:var(--hx-bg)}
.vx-btn:focus-visible,.vx-row:focus-visible,.text-link:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.vx-navy .vx-btn:focus-visible{outline-color:#fff}
/* legacy .button gets padded icon chip */
.button{padding:10px 10px 10px 20px;gap:var(--s1);box-sizing:border-box;line-height:1}
.button>span{flex:none;width:32px;height:32px;padding:6px;box-sizing:border-box;background:rgba(255,255,255,.18)}
.button svg{display:block;width:20px;height:20px}
/* text links: label + padded bordered chip */
.text-link{display:inline-flex;align-items:center;gap:var(--s1);font-size:14px;font-weight:700;line-height:1.3;margin-top:0;margin-bottom:var(--s1)}
.text-link svg{flex:none;display:block;width:36px;height:36px;padding:8px;box-sizing:border-box;border:1px solid currentColor}
.text-link:hover svg{transform:none;background:var(--ink);color:#fff;border-color:var(--ink)}
.final-cta .text-link{font-size:14px;margin-top:var(--s1)}
.final-cta .text-link:hover svg{background:var(--ink)}
.vx-navy .text-link{color:var(--hx-ink)}
/* numbered rows */
.vx-eyebrow{font-size:12px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted);margin:0 0 var(--s1)}
.vx-links ul,.vx-rows{list-style:none;margin:0 0 var(--s1);padding:0;border-top:2px solid var(--ink)}
.vx-row{display:grid;grid-template-columns:48px 1fr auto;column-gap:var(--s2);row-gap:8px;align-items:center;padding:var(--s2) 0;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}
.vx-row .vx-num{grid-row:1/3;font-size:12px;font-weight:700;color:#b01e19;letter-spacing:1px}
.vx-row .vx-t{font-family:var(--display);font-weight:800;text-transform:uppercase;line-height:1;font-size:clamp(26px,2.4vw,38px)}
.vx-row .vx-d{grid-column:2;font-size:14px;line-height:1.5;color:var(--muted)}
.vx-row>i{grid-column:3;grid-row:1/3;flex:none;display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:10px;box-sizing:border-box;border:1px solid currentColor}
.vx-row svg{display:block;width:20px;height:20px}
.vx-row:hover .vx-t{color:#b01e19}.vx-row:hover>i{background:var(--ink);color:#fff;border-color:var(--ink)}
.vx-all .vx-t{color:#b01e19}.vx-all>i{background:var(--red);border-color:var(--red);color:#fff}
.vx-rows.cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--s2)}
.vx-rows.cols .vx-row{grid-template-columns:40px 1fr auto}
/* ---------- homepage hero ---------- */
.hero .hero-top{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--s2);row-gap:var(--s3);padding:var(--s5) 0 var(--s4);margin-bottom:var(--s4)}
.hero .hero-top>div:first-child{grid-column:1/-1}
.hero h1{font-size:clamp(56px,10.2vw,172px);margin-top:0;white-space:nowrap}
.hero .hero-intro{grid-column:1/-1;max-width:none;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--s2);align-items:end;border-top:2px solid var(--hx-rule);padding:var(--s2) 0 0}
.hero .hero-intro p{grid-column:1/6;margin:0 0 var(--s1);font-size:16px;line-height:1.6}
.hero .vx-actions{grid-column:7/13;margin:0 0 var(--s1)}
/* services block */
.services-home .section-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--s2);align-items:stretch;margin-bottom:var(--s4)}
.services-home .section-head>div:first-child{grid-column:1/6;display:flex;flex-direction:column}
.services-home .section-head>div:first-child h2{width:auto;margin:0 0 var(--s2);font-size:clamp(40px,4.4vw,72px)}
.services-home .section-head .vx-photo{flex:1 1 auto;min-height:240px;width:100%;object-fit:cover;margin:0 0 var(--s1);display:block}
.services-home .section-head>div:last-child{grid-column:7/13}
.services-home .section-head p{font-size:16px;line-height:1.6;color:var(--muted);margin:0 0 var(--s2)}
/* ---------- interior bx hero ---------- */
.bx-hero{padding-block:var(--s4) var(--s5)}
.bx-hero .breadcrumbs{margin-bottom:var(--s3)}
.bx-hero .bx-hero-grid{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--s2);row-gap:0;align-items:start}
.bx-hero .bx-hero-grid>div:first-child{display:contents}
.bx-hero .bx-kicker{grid-column:1/-1;margin-bottom:var(--s1)}
.bx-hero h1{grid-column:1/-1;font-size:clamp(52px,7vw,120px);padding-bottom:var(--s3);margin-bottom:var(--s3);border-bottom:2px solid var(--hx-rule)}
.bx-hero .bx-lede{grid-column:1/6;grid-row:3;margin:0 0 var(--s2);font-size:17px}
.bx-hero .bx-actions{grid-column:1/6;grid-row:4;align-self:end;margin:0 0 var(--s1);gap:var(--s1)}
.bx-hero .bx-actions .vx-btn{flex:1 1 0}
.bx-hero .bx-media{grid-column:7/13;grid-row:3/5;margin:0 0 var(--s1)}
.bx-hero .bx-ticket,.bx-hero .bx-route{margin:var(--s2) 0 0;width:100%;box-shadow:none;border-color:#fff}
.bx-hero .bx-ticket .punch{display:none}
/* page-intro / contact hero */
.page-intro{padding-top:var(--s4);padding-bottom:var(--s5);margin-bottom:var(--s4)}
.page-intro .split-heading{align-items:end;gap:var(--s4)}
.page-intro .split-heading>p{font-size:16px;line-height:1.6;margin:0 0 var(--s1)}
.page-intro .split-heading h1 span{color:var(--hx-accent)}
/* related links */
.related .section-head{align-items:end}
@media(max-width:1000px){.hero h1{white-space:normal}.hero .hero-intro p,.hero .vx-actions{grid-column:1/-1}.hero .hero-intro p{margin-bottom:var(--s2)}.services-home .section-head>div{grid-column:1/-1!important}.services-home .section-head .vx-photo{min-height:0;aspect-ratio:16/9;flex:none;margin-bottom:var(--s2)}.vx-rows.cols{grid-template-columns:1fr}
.bx-hero .bx-lede,.bx-hero .bx-actions{grid-column:1/-1!important;grid-row:auto!important}.bx-hero .bx-media{grid-column:1/-1;grid-row:auto;margin-top:var(--s3)}}
@media(max-width:700px){.hero .hero-top,.hero .hero-intro,.services-home .section-head,.bx-hero .bx-hero-grid{grid-template-columns:1fr}.hero .hero-top{padding-top:var(--s4)}.hero h1{font-size:clamp(44px,13vw,64px)}.bx-hero .bx-hero-grid>*{grid-column:1/-1!important;grid-row:auto!important}.vx-row{grid-template-columns:32px 1fr auto;column-gap:var(--s1)}.bx-hero h1{font-size:clamp(40px,11vw,60px)}.vx-btn,.bx-hero .bx-actions .vx-btn{flex:1 1 100%}.page-intro .split-heading{grid-template-columns:1fr}}
/* lint fixes */
main#main{margin-top:8px}
.bx-faq,.faqs,.bx-faq details,.faqs details{min-width:0;max-width:100%}
.bx-faq summary,.faqs summary{min-width:0;overflow-wrap:anywhere}
.bx-faq summary span,.faqs summary span{flex:none;display:block;width:24px;text-align:center}
select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23161b2e' stroke-width='1.8'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:18px 18px;padding-right:48px!important}
.form-footnote{margin-top:var(--s1)}
@media(max-width:700px){.hero-quote{padding-inline:24px}}
.bx-faq summary,.faqs summary{padding-right:16px}
html body select,html body .field select{appearance:none!important;-webkit-appearance:none!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23161b2e' stroke-width='1.8'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:18px 18px;padding-right:48px!important}
/* round8 homepage hero band */
.hero .vx-band{padding:clamp(24px,4vh,48px) 0 clamp(24px,4vh,48px);margin-bottom:var(--s3)}
.hero .vx-band .hero-top{padding:0;margin:0 0 clamp(16px,2.6vh,32px);row-gap:clamp(16px,2.6vh,32px)}
.hero .vx-band h1{font-size:clamp(44px,min(8.6vw,11.5vh),172px);line-height:.9}
.hero .vx-band .hero-intro{padding-top:clamp(16px,2vh,24px)}
.vx-hero-main{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--s2);align-items:stretch}
.vx-hero-main .hero-scene{grid-column:1/8;height:auto;min-height:0;margin:0}
.vx-hero-main .hero-photo{position:absolute;inset:0;height:100%;object-fit:cover}
.vx-cards{grid-column:8/13;display:flex;flex-direction:column}
.vx-cards ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:clamp(8px,1.2vh,16px);flex:1 1 auto}
.vx-cards li{flex:1 1 auto;display:flex}
.vx-card{flex:1;display:grid;grid-template-columns:32px 1fr auto;column-gap:var(--s1);row-gap:4px;align-items:center;padding:clamp(12px,1.6vh,20px) var(--s2) clamp(12px,1.6vh,20px) var(--s2);border:1px solid var(--hx-rule);color:var(--hx-ink);text-decoration:none;transition:background .2s,border-color .2s}
.vx-card .vx-num{grid-row:1/3;font-size:12px;font-weight:700;color:var(--hx-accent);letter-spacing:1px}
.vx-card .vx-t{font-family:var(--display);font-weight:800;text-transform:uppercase;line-height:1;font-size:clamp(22px,min(1.9vw,3.4vh),34px)}
.vx-card .vx-d{grid-column:2;font-size:14px;line-height:1.4;color:var(--hx-body)}
.vx-card .vx-go{grid-column:3;grid-row:1/3;display:flex;align-items:center;gap:12px;font-size:13px;font-weight:700}
.vx-card .vx-go i{flex:none;display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:8px;box-sizing:border-box;border:1px solid var(--hx-ink)}
.vx-card .vx-go svg{display:block;width:18px;height:18px}
.vx-card:hover{background:rgba(255,255,255,.06);border-color:#fff}
.vx-card:hover .vx-go i{background:var(--hx-accent);border-color:var(--hx-accent);color:var(--hx-bg)}
.vx-card:focus-visible{outline:3px solid #fff;outline-offset:3px}
.vx-explore{margin:clamp(12px,1.6vh,16px) 0 0;align-self:flex-start;color:var(--hx-ink)}
.vx-explore:hover svg{background:#fff;color:var(--hx-bg);border-color:#fff}
.hero .trust-strip{margin-top:0}
.services-home .section-head{align-items:end}
.services-home .section-head>div:first-child h2{margin-bottom:var(--s1)}
@media(min-width:1001px) and (max-width:1200px){.vx-card .vx-go>span{display:none}}
@media(max-width:1000px){.vx-hero-main{grid-template-columns:1fr;row-gap:var(--s2)}.vx-hero-main .hero-scene,.vx-cards{grid-column:1/-1}.vx-hero-main .hero-scene{height:clamp(240px,50vw,420px)}.vx-explore{margin-bottom:0}}
@media(max-width:700px){.vx-card .vx-go>span{display:none}.vx-card{padding:16px}}
main .hero.wrap{padding-top:0!important;margin-top:0!important}
.vx-hero-main .hero-scene{margin-inline:0!important;width:auto!important}
@media(max-width:1000px){.vx-cards{order:-1}}
