/* Quote request form (homepage #contact-form): navy aurora stage, white form card,
   colour-coded event tiles, 3-step stepper. High contrast: navy #1f2550 on white (12:1),
   white on navy / pink-purple gradient (>=5:1). Built with _tools/quote/build.ps1. */

/* ---------- stage */
.contact-form-inner:has(.qf){background:radial-gradient(900px 500px at 8% 0%,rgba(145,55,145,.45),transparent 60%),radial-gradient(800px 480px at 100% 100%,rgba(79,185,194,.38),transparent 60%),linear-gradient(135deg,#0f1330 0%,#1f2550 100%);padding:22px;gap:6px;align-items:stretch}
.contact-form-inner:has(.qf) .contact-blob-1{background:radial-gradient(circle,rgba(227,48,105,.7),transparent 70%);opacity:.5;top:-60px;right:30%}
.contact-form-inner:has(.qf) .contact-blob-2{background:radial-gradient(circle,rgba(255,173,39,.55),transparent 70%);opacity:.45}

/* ---------- the card */
.contact-form-panel.qf-panel{background:#fff;border-radius:26px;padding:44px 42px 38px;box-shadow:0 30px 70px rgba(0,0,0,.35);color:#1f2550;position:relative;overflow:hidden}
.qf-panel::before{content:"";position:absolute;inset:0 0 auto 0;height:6px;background:linear-gradient(90deg,#85BB33,#913791,#E33069,#4FB9C2,#FFAD27)}
.qf-badge{display:grid;place-items:center;width:62px;height:62px;margin:0 auto 14px;border-radius:20px;color:#fff;font-size:26px;
    background:linear-gradient(135deg,#913791,#E33069);box-shadow:0 14px 30px rgba(227,48,105,.4),inset 0 0 0 2px rgba(255,255,255,.25);transform:rotate(-6deg)}
.contact-form-panel.qf-panel h2,.contact-form-panel.qf-panel h2.heading-emphasis{color:#1f2550!important;-webkit-text-fill-color:#1f2550!important;background:none!important;text-align:center;margin-bottom:10px;font-size:clamp(26px,3vw,34px)}
.qf-panel h2::after{display:none!important}
.qf-lead{color:#4a5072;font-size:15px;line-height:1.75;text-align:center;margin:0 auto 26px;max-width:460px}

/* ---------- stepper */
.qf-progress{display:flex;gap:8px;list-style:none;margin:0 0 28px;padding:0}
.qf-progress li{flex:1;display:flex;align-items:center;justify-content:center;gap:9px;padding:10px 6px;border-radius:14px;background:#f1f3fa;color:#5d6485;font-size:13.5px;font-weight:700;transition:background .3s,color .3s,box-shadow .3s}
.qf-progress b{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#dfe3f2;color:#1f2550;font-size:13px;flex-shrink:0;transition:background .3s,color .3s}
.qf-progress li.is-on{background:#1f2550;color:#fff;box-shadow:0 10px 22px rgba(31,37,80,.3)}
.qf-progress li.is-on b{background:linear-gradient(135deg,#913791,#E33069);color:#fff}
.qf-progress li.is-done{background:#e3f4f5;color:#14565c}
.qf-progress li.is-done b{background:#4FB9C2;color:#12172f}
.qf-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.qf-step{border:0;margin:0;padding:0;min-width:0;animation:qf-in .4s cubic-bezier(.2,.8,.2,1) both}
.qf-step[hidden]{display:none}
@keyframes qf-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.qf fieldset{border:0;margin:0 0 24px;padding:0;min-width:0}
.qf legend,.qf-q{display:block;color:#1f2550;font-size:18px;font-weight:800;margin:0 0 14px;padding:0}

/* ---------- option chips (guests, city) */
.qf-chips{display:flex;flex-wrap:wrap;gap:10px}
.qf-chip{position:relative;display:inline-flex;align-items:center;gap:9px;cursor:pointer;color:#1f2550;font-size:14.5px;font-weight:700;line-height:1.35;
    background:#f4f6fc;border:2px solid #e1e5f3;border-radius:999px;padding:10px 18px;transition:transform .18s,background .2s,border-color .2s,box-shadow .2s,color .2s}
.qf-chip input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.qf-chip > i{color:#E33069;font-size:14px;transition:color .2s}
.qf-chip:hover{transform:translateY(-2px);border-color:#913791;background:#fff;box-shadow:0 8px 18px rgba(31,37,80,.12)}
.qf-chip:has(input:checked){background:linear-gradient(135deg,#913791,#E33069);border-color:transparent;color:#fff;box-shadow:0 10px 22px rgba(227,48,105,.38)}
.qf-chip:has(input:checked) > i{color:#fff}
.qf-chip:has(input:focus-visible){outline:3px solid #FFAD27;outline-offset:3px}
.qf-chip:active{transform:scale(.97)}

/* ---------- event-type tiles (colour-coded) */
.qf-types{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.qf-tile{display:flex;align-items:center;gap:14px;min-height:78px;padding:12px 16px;border-radius:20px;background:#f4f6fc;border:2px solid #e1e5f3;overflow:hidden}
.qf-tile .qf-ico{flex:0 0 auto;display:grid;place-items:center;width:48px;height:48px;border-radius:16px;font-size:21px;color:var(--ic,#12172f);background:var(--c,#4FB9C2);
    box-shadow:0 8px 16px color-mix(in srgb,var(--c,#4FB9C2) 45%,transparent);transition:transform .25s cubic-bezier(.3,1.6,.5,1)}
.qf-tile span{flex:1;text-align:start}
.qf-tile .qf-tick{position:absolute;inset-block-start:10px;inset-inline-end:10px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;font-size:11px;
    background:#fff;color:#1f2550;opacity:0;transform:scale(.4);transition:opacity .2s,transform .25s cubic-bezier(.3,1.6,.5,1)}
.qf-tile:hover{border-color:var(--c);box-shadow:0 14px 28px color-mix(in srgb,var(--c) 35%,transparent)}
.qf-tile:hover .qf-ico{transform:rotate(-8deg) scale(1.1)}
.qf-tile:has(input:checked){background:linear-gradient(135deg,#1f2550,#2f3980);border-color:var(--c);color:#fff;
    box-shadow:0 0 0 4px color-mix(in srgb,var(--c) 40%,transparent),0 16px 34px rgba(31,37,80,.4)}
.qf-tile:has(input:checked) .qf-tick{opacity:1;transform:none}
.qf-tile:has(input:checked) .qf-ico{transform:scale(1.08)}
.qf-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);pointer-events:none}
.qf-tile:hover::after{transform:translateX(120%);transition:transform .8s ease}

.qf-other{margin-top:18px}

/* ---------- text fields on the white card */
.qf-panel .form-field input,.qf-panel .form-field textarea{color:#1f2550;border-bottom:2px solid #c9cfe6;font-size:16px}
.qf-panel .form-field label{color:#5d6485;font-weight:600}
.qf-panel .form-field input:focus{border-color:#E33069}
.qf-panel .form-field input:focus ~ label,.qf-panel .form-field input:not(:placeholder-shown) ~ label,
.qf-panel .form-field.message-field textarea:focus ~ label,.qf-panel .form-field.message-field textarea:not(:placeholder-shown) ~ label{color:#913791}
.qf-panel .form-field.message-field textarea{background:#f4f6fc;color:#1f2550;border:2px solid #e1e5f3;box-shadow:none}
.qf-panel .form-field.message-field textarea:focus{border-color:#E33069;box-shadow:0 0 0 4px rgba(227,48,105,.15)}
.qf-panel .form-field.message-field label{color:#5d6485}

/* ---------- buttons */
.qf-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}
.qf-nav .qf-next{margin-inline-start:auto}
.qf-next,.qf-back,.qf-panel .form-submit-btn{display:inline-flex;align-items:center;gap:9px;font:inherit;font-weight:800;font-size:15px;border-radius:999px;cursor:pointer;padding:14px 30px;transition:transform .2s,box-shadow .2s,background .2s}
.qf-next,.qf-panel .form-submit-btn{color:#fff;border:0;background:linear-gradient(135deg,#913791,#E33069);box-shadow:0 14px 28px rgba(227,48,105,.4)}
.qf-next:hover,.qf-panel .form-submit-btn:hover{transform:translateY(-3px);box-shadow:0 18px 34px rgba(227,48,105,.5)}
.qf-panel .form-submit-btn.success{background:linear-gradient(135deg,#2c8f9b,#4FB9C2);color:#12172f}
.qf-back{background:#fff;color:#1f2550;border:2px solid #c9cfe6;padding:12px 24px}
.qf-back:hover{background:#f4f6fc;border-color:#1f2550}
.qf-next:focus-visible,.qf-back:focus-visible,.qf-panel .form-submit-btn:focus-visible{outline:3px solid #FFAD27;outline-offset:3px}
html[dir="rtl"] .qf-next i,html[dir="rtl"] .qf-back i{transform:scaleX(-1)}
.qf-panel .form-status{color:#5d6485;font-weight:600}
.qf-panel .form-status.error{color:#b3123f}
.qf-panel .form-status.success{color:#12703f}

/* hCaptcha renders while hidden steps are collapsed (never display:none, so it can draw itself) */
.qf:not([data-at="3"]) .h-captcha,.qf:not([data-at="3"]) .qf-final{height:0;overflow:hidden;margin:0!important;visibility:hidden}
.qf .h-captcha{margin:6px 0 18px}
.qf-final{flex-wrap:wrap}

/* ---------- info side (navy) */
.contact-form-inner:has(.qf) .contact-info-panel{background:transparent;border:0;padding:50px 46px}
.contact-form-inner:has(.qf) .contact-info-panel h3{font-size:clamp(22px,2.6vw,30px)}
.contact-form-inner:has(.qf) .contact-info-panel p{color:rgba(255,255,255,.86)}
.contact-form-inner:has(.qf) .contact-quick-links a i{background:linear-gradient(135deg,#913791,#E33069);width:40px;height:40px;font-size:15px}

/* ---------- dark theme */
html[data-theme="dark"] .contact-form-panel.qf-panel{background:#161b3d;color:#eef0fa}
html[data-theme="dark"] .contact-form-panel.qf-panel h2,html[data-theme="dark"] .contact-form-panel.qf-panel h2.heading-emphasis{color:#fff!important;-webkit-text-fill-color:#fff!important}
html[data-theme="dark"] .qf-lead,html[data-theme="dark"] .qf-panel .form-field label{color:#b9bfdc}
html[data-theme="dark"] .qf legend,html[data-theme="dark"] .qf-q{color:#fff}
html[data-theme="dark"] .qf-progress li{background:#232a57;color:#b9bfdc}
html[data-theme="dark"] .qf-progress b{background:#363e75;color:#fff}
html[data-theme="dark"] .qf-progress li.is-on{background:#fff;color:#1f2550}
html[data-theme="dark"] .qf-progress li.is-done{background:#16494f;color:#d6f3f5}
html[data-theme="dark"] .qf-chip,html[data-theme="dark"] .qf-tile{background:#232a57;border-color:#363e75;color:#fff}
html[data-theme="dark"] .qf-chip:hover{background:#2b3270}
html[data-theme="dark"] .qf-tile:has(input:checked){background:linear-gradient(135deg,#913791,#E33069);border-color:#fff}
html[data-theme="dark"] .qf-panel .form-field input,html[data-theme="dark"] .qf-panel .form-field textarea{color:#fff;border-color:#4a5290}
html[data-theme="dark"] .qf-panel .form-field.message-field textarea{background:#232a57;border-color:#363e75;color:#fff}
html[data-theme="dark"] .qf-back{background:transparent;color:#fff;border-color:#4a5290}
html[data-theme="dark"] .qf-panel .form-status.error{color:#ff9db8}
html[data-theme="dark"] .qf-panel .form-status.success{color:#7be0c8}

/* ---------- small screens */
@media(max-width:900px){.contact-form-inner:has(.qf){padding:14px}}
@media(max-width:560px){
    .contact-form-panel.qf-panel{padding:34px 18px 28px;border-radius:22px}
    .qf-types{grid-template-columns:1fr}
    .qf-tile{min-height:68px}
    .qf-progress span{display:none}
    .qf-progress li{padding:9px 4px}
    .qf-nav{flex-wrap:wrap}
    .qf-next,.qf-back,.qf-panel .form-submit-btn{flex:1 1 auto;justify-content:center}
    .contact-form-inner:has(.qf) .contact-info-panel{padding:34px 20px}
}
@media (prefers-reduced-motion:reduce){.qf-step,.qf-tile::after,.qf-chip,.qf-tile .qf-ico{animation:none;transition:none}}

/* selected tile text: force white (site-wide label/span colours would otherwise win) */
.qf-panel .qf-tile:has(input:checked) span{color:#fff!important}
html[data-theme="dark"] .qf-panel .qf-chip span,html[data-theme="dark"] .qf-panel .qf-tile span{color:#fff!important}
html[data-theme="dark"] .qf-panel .qf-chip:has(input:checked){background:linear-gradient(135deg,#913791,#E33069);border-color:#fff;color:#fff;box-shadow:0 10px 22px rgba(227,48,105,.45)}
html[data-theme="dark"] .qf-panel .qf-chip:has(input:checked) > i{color:#fff}

/* ---------- bigger header icon with orbit + pulse */
.qf-badge{position:relative;width:96px;height:96px;font-size:42px;border-radius:30px;margin:0 auto 20px;animation:qf-float 4.5s ease-in-out infinite;isolation:isolate}
.qf-badge i{position:relative;z-index:2;filter:drop-shadow(0 4px 8px rgba(0,0,0,.25))}
.qf-badge::before{content:"";position:absolute;inset:-9px;border-radius:38px;z-index:-1;
    background:conic-gradient(from 0deg,#85BB33,#913791,#E33069,#4FB9C2,#FFAD27,#85BB33);filter:blur(7px);opacity:.75;animation:qf-spin 6s linear infinite}
.qf-badge::after{content:"";position:absolute;inset:-4px;border-radius:34px;border:2px solid rgba(227,48,105,.55);animation:qf-ring 2.4s ease-out infinite;z-index:-1}
.qf-badge.qf-pop i{animation:qf-pop .6s cubic-bezier(.3,1.6,.5,1)}
@keyframes qf-float{0%,100%{transform:rotate(-6deg) translateY(0)}50%{transform:rotate(-2deg) translateY(-7px)}}
@keyframes qf-spin{to{transform:rotate(360deg)}}
@keyframes qf-ring{0%{transform:scale(1);opacity:.8}100%{transform:scale(1.5);opacity:0}}
@keyframes qf-pop{0%{transform:scale(.3) rotate(-40deg);opacity:0}100%{transform:none;opacity:1}}
.qf-tile .qf-ico{width:56px;height:56px;font-size:25px;border-radius:18px}
@media(max-width:560px){.qf-badge{width:80px;height:80px;font-size:34px}}
@media (prefers-reduced-motion:reduce){.qf-badge,.qf-badge::before,.qf-badge::after,.qf-badge.qf-pop i{animation:none}}

/* dark side of the quote card: dot grid with a soft light sweep (same dot language as the National Events hero) */
.contact-form-inner:has(.qf){position:relative;isolation:isolate}
.contact-form-inner:has(.qf)::before,.contact-form-inner:has(.qf)::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:0}
.contact-form-inner:has(.qf)::before{background-image:radial-gradient(rgba(255,255,255,.75) 1.1px,transparent 1.7px);background-size:26px 26px;opacity:.5;
    -webkit-mask-image:radial-gradient(130% 100% at 80% 45%,#000 25%,transparent 88%);mask-image:radial-gradient(130% 100% at 80% 45%,#000 25%,transparent 88%)}
.contact-form-inner:has(.qf)::after{background-image:radial-gradient(#ffffff 1.2px,transparent 1.9px);background-size:26px 26px;opacity:.9;
    -webkit-mask-image:linear-gradient(115deg,transparent 40%,#000 50%,transparent 60%);mask-image:linear-gradient(115deg,transparent 40%,#000 50%,transparent 60%);
    -webkit-mask-size:260% 100%;mask-size:260% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;animation:qf-dot-sweep 7s ease-in-out infinite}
.contact-form-inner:has(.qf) .contact-blob{z-index:0}
.contact-form-inner:has(.qf) .qf-panel,.contact-form-inner:has(.qf) .contact-info-panel{position:relative;z-index:1}
@keyframes qf-dot-sweep{0%{-webkit-mask-position:120% 0;mask-position:120% 0}60%,100%{-webkit-mask-position:-20% 0;mask-position:-20% 0}}
@media (prefers-reduced-motion:reduce){.contact-form-inner:has(.qf)::after{animation:none;opacity:0}}