/* Shared accessibility and browser-specific controls.
   Layout, branding and component presentation use Tailwind utilities. */
:focus-visible {
  outline: 2px solid #34d399 !important;
  outline-offset: 3px !important;
}
/* Keep anchored headings below the sticky header. */
main [id] { scroll-margin-top: 11rem; }
#menuToggle * { pointer-events: none; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
      /* Visible Slider Track Custom Styling */
      input[type="range"] {
        -webkit-appearance: none;
        appearance: none;
        width: 100%;
        background: transparent;
      }
      input[type="range"]::-webkit-slider-runnable-track {
        width: 100%;
        height: 8px;
        cursor: pointer;
        background: #334155;
        border-radius: 9999px;
        border: 1px solid #475569;
        box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.4);
      }
      input[type="range"]::-webkit-slider-thumb {
        height: 22px;
        width: 22px;
        border-radius: 50%;
        background: #10b981;
        cursor: pointer;
        -webkit-appearance: none;
        margin-top: -7px;
        box-shadow:
          0 0 10px rgba(16, 185, 129, 0.6),
          0 0 0 3px #0f172a;
        transition:
          transform 0.15s ease,
          background-color 0.15s ease;
      }
      input[type="range"]::-webkit-slider-thumb:hover {
        transform: scale(1.15);
        background: #34d399;
      }
      input[type="range"]::-moz-range-track {
        width: 100%;
        height: 8px;
        cursor: pointer;
        background: #334155;
        border-radius: 9999px;
        border: 1px solid #475569;
      }
      input[type="range"]::-moz-range-thumb {
        height: 22px;
        width: 22px;
        border-radius: 50%;
        background: #10b981;
        border: 3px solid #0f172a;
        cursor: pointer;
        box-shadow: 0 0 10px rgba(16, 185, 129, 0.6);
      }


summary::-webkit-details-marker { display: none; }


/* Stripe returns remain locked before payment verification JavaScript runs. */
#paymentReturnStatus { display: none; }
.payment-return #checkoutControls { display: none; }
.payment-return #paymentReturnStatus { display: block; }
.payment-return #onboardingIntroduction { visibility: hidden; }
.payment-return.payment-status-ready #onboardingIntroduction { visibility: visible; }

/* Shared CV controls align across browser-native file and URL inputs. */
.cv-source-input { box-sizing: border-box; height: 3.75rem; min-height: 3.75rem; }
.cv-source-input[type="file"] { padding-top: .75rem; padding-bottom: .75rem; }

.site-feedback { display:block; margin:1rem 0; padding:1rem; border:1px solid #64748b; border-radius:.75rem; background:#0f172a; color:#f1f5f9; font-size:1rem; line-height:1.5; overflow-wrap:anywhere; }
.site-feedback p { margin:0 0 .5rem; }
.site-feedback button { min-height:44px; padding:.5rem 1rem; margin:.5rem .5rem 0 0; border:1px solid #94a3b8; border-radius:.5rem; color:#f1f5f9; background:#1e293b; cursor:pointer; }
.site-feedback button:disabled { opacity:.45; cursor:not-allowed; }
.site-feedback label { display:block; }
.site-feedback input { display:block; width:100%; max-width:26rem; padding:.6rem; margin:.5rem 0; color:#f1f5f9; background:#020617; border:1px solid #94a3b8; border-radius:.4rem; }
.site-feedback :focus-visible, .site-feedback:focus { outline:2px solid #34d399; outline-offset:3px; }

/* Site spacing contract: 8px base; controls 8px, blocks 16px, panels 24px.
   Component rules supplement existing layout utilities without resetting page layouts. */
:root { --ht-space-1:.5rem; --ht-space-2:1rem; --ht-space-3:1.5rem; --ht-space-4:2rem; }
form :is(.ht-turnstile, .cf-turnstile, #captchaWrap, #turnstile-widget, #supportChallenge) { margin-block:var(--ht-space-3); max-width:100%; }
form :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]), textarea, select) { box-sizing:border-box; }
.ht-code-fieldset { border:0; padding:0; margin:var(--ht-space-3) 0 0; min-width:0; }
.ht-code-fieldset legend { margin-bottom:var(--ht-space-2); }
.ht-sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.ht-code-group { display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--ht-space-1);width:100%; }
.ht-code-group input { width:100%;min-width:0;min-height:44px;max-height:96px;aspect-ratio:1;padding:0;border:2px solid #475569;border-radius:.75rem;background:#0f172a;color:#fff;text-align:center;font:800 1.5rem/1 system-ui;font-variant-numeric:tabular-nums; }
.ht-code-group input:focus-visible { border-color:#34d399;box-shadow:0 0 0 4px #34d3994d; }
@media(min-width:640px) { .ht-code-group { gap:.75rem; } .ht-code-group input { border-radius:1rem;font-size:2.25rem; } }

/* Preserve native challenge geometry; never stretch or scale its iframe. */
.ht-turnstile { width:100%; max-width:100%; min-width:0; display:flex; justify-content:center; }
.ht-turnstile iframe { display:block; max-width:none; margin-inline:auto; }

/* Shared page chrome must not inherit page-specific form typography. */
/* The large logo straddles a compact bar; reserved space protects the page below. */
.ht-header{--ht-bar-height:64px;--ht-logo-size:96px;--ht-logo-overhang:40px;background:#0f172a;border-bottom:1px solid #334155;padding:0 16px;position:sticky;top:0;z-index:40;margin-bottom:var(--ht-logo-overhang);overflow:visible}
.ht-header>div{position:relative;z-index:2;max-width:1280px;height:calc(var(--ht-bar-height) - 1px);margin:0 auto;display:flex;align-items:center;justify-content:flex-end;gap:16px;padding-left:calc(var(--ht-logo-size) + 16px)}
.ht-header .ht-header-brand{position:absolute;top:8px;left:0;width:var(--ht-logo-size);height:var(--ht-logo-size);display:flex;align-items:center;justify-content:center;border-radius:50%;background-color:#0f172a;z-index:1}
.ht-header .ht-header-logo{display:block;width:100%;height:100%;object-fit:contain}
.ht-header-brand:focus-visible{outline:2px solid #34d399;outline-offset:4px}
.ht-header #mobileMenu{position:absolute;z-index:1;top:var(--ht-bar-height);left:16px;right:16px;max-height:calc(100dvh - var(--ht-bar-height) - 16px);overflow-y:auto;margin:0;padding:calc(var(--ht-logo-overhang) + 1px) 12px 12px;background:#0f172a;border:1px solid #334155;border-top:0;border-radius:0 0 12px 12px;box-shadow:0 16px 32px #02061766}
.ht-footer{background:#0f172a;border-top:1px solid #33415599;padding:28px 16px;text-align:center;color:#94a3b8;font:12px/24px ui-sans-serif,system-ui,sans-serif}
.ht-footer p{margin:0;color:inherit;font:inherit}
.ht-footer p.mt-3{margin-top:12px}
.ht-footer a{color:inherit;min-height:44px;display:inline-flex;align-items:center;text-decoration:underline}
.ht-footer a[href="/support/"]{color:#34d399;font-weight:600}
@media(min-width:640px){.ht-header{--ht-bar-height:72px;--ht-logo-size:128px;--ht-logo-overhang:64px}.ht-footer{font-size:14px}}
@media(min-width:1024px){.ht-header{padding-left:32px;padding-right:32px}}

/* Keep focused controls and table actions clear of the shared sticky header. */
html{scroll-padding-top:11rem}
main :is(button,input,select,a){scroll-margin-top:11rem;scroll-margin-bottom:24px}

/* Muted dusty red on slate. Inset paint preserves control geometry; no error border. */
:root { --ht-error:#e6a0a4; --ht-error-surface:#291f2a; }
.ht-field-error { box-shadow:inset 0 0 0 2px var(--ht-error) !important; background-color:var(--ht-error-surface) !important; }
.ht-field-message, .ht-error-summary { color:var(--ht-error) !important; font:400 .9375rem/1.6 system-ui,sans-serif; overflow-wrap:anywhere; }
.ht-field-message { margin:.5rem 0 0; }
.ht-error-summary { margin:1rem 0; padding:1rem; background:var(--ht-error-surface); border-radius:.75rem; }
.ht-error-summary p { color:inherit!important; margin:0 0 .5rem; font:inherit; font-weight:600; }
.ht-error-summary ul { margin:0; padding-left:1.25rem; }
.ht-field-message a, .ht-error-summary a { color:inherit!important; text-decoration:underline; text-underline-offset:3px; }
.ht-error-summary[hidden] { display:none!important; }
.ht-field-error:focus-visible { outline-color:var(--ht-error)!important; }
.auth-message[data-error=true], [data-form-service-error] { color:var(--ht-error)!important; background:var(--ht-error-surface)!important; }

.auth-message[data-error=true] { border-color:var(--ht-error)!important; }
[data-form-service-error] { padding:1rem; border-radius:.75rem; overflow-wrap:anywhere; }

/* Extend the hero backdrop into the reserved logo space without moving its content. */
.ht-concierge-hero{margin-top:-40px;padding-top:calc(6rem + 40px)!important}
@media(min-width:640px){.ht-concierge-hero{margin-top:-64px;padding-top:calc(6rem + 64px)!important}}

/* A stable shared type baseline: child pages must not resize rem-based UI. */
html:root { font-size:100%; }
body { font-size:1rem; line-height:1.5; }
.ht-header nav { font-size:.875rem; font-weight:500; }
.ht-header nav > a, .ht-header nav > details > summary { font-size:inherit; }
#mobileMenu { font-size:1rem; }
#mobileMenu a { font-size:1rem; }
