/* Shared readability and typography corrections for the reviewed design. */
:root {
  --font: Instrument, "Segoe UI", Arial, sans-serif;
  --a11y-body-size: max(16px, 1rem);
  --a11y-helper-size: max(14px, .875rem);
  --a11y-kicker-size: max(12px, .75rem);
  --a11y-muted: #52627a;
  --a11y-control-border: #7b8a9d;
  --muted: #52627a;
}
/* The supplied 500 face exists in both candidate host asset directories. */
@font-face {
  font-family: Instrument;
  src: url("/assets/redesign-20261008/InstrumentSans-500.woff") format("woff");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
/* Beat retained planner inline !important system-font rules and cart display fonts.
   Preserve Google-owned controls and the deliberately monospaced raw WHOIS output. */
html body,
html body :is(h1,h2,h3,h4,h5,h6,p,a,button,input,select,textarea,label,legend,summary,li,dt,dd,th,td,div,span,strong,b,small,em):not(:where(#googleSignInButton,#googleSignInButton *)),
html body.planner-page,
html body.planner-page :is(h1,h2,h3,h4,h5,h6,p,a,button,input,select,textarea,label,legend,summary,li,dt,dd,th,td,div,span,strong,b,small,em),
body.planner-page .lp-shell,
body.redesign-checkout #main { font-family: var(--font) !important; }
body .whois-raw pre,
body .whois-raw pre * { font-family: ui-monospace, SFMono-Regular, Consolas, monospace !important; }
body,
body.planner-page .lp-shell,
body.redesign-checkout #main { font-size: var(--a11y-body-size); }

/* Reading copy. Keep heading scales and decorative diagrams separate. */
body :is(.hero-lead,.page-hero .lead,.domain-title p:not(.eyebrow),.price-hero p:not(.eyebrow),
  .start-grid p:not(.eyebrow),.offer p,.reason p,.plan-name p,.plan-inclusions li,
  .section-heading > div > p:not(.eyebrow),.why-intro > p:not(.eyebrow),
  .planner-copy p:not(.eyebrow),.faq-intro > p:not(.eyebrow),.faq-answer,.faq-answer p,
  .review blockquote p,.content-card p,.content-card li,.body-columns li,
  .section-title p:not(.eyebrow),.section-top > p,.compact-cta p,
  .vps-offer p:not(.eyebrow),.vps-offer li,.final-grid p,.hero-fact-strip li,
  .u-page p:not(.eyebrow),.u-policy-copy li,.u-affiliate-terms li,.u-legal-links li) {
  font-size: var(--a11y-body-size) !important;
  line-height: 1.65 !important;
}
/* Helpers, navigation and labels. This intentionally excludes aria-hidden art. */
body :is(.utility,.utility-inner,.utility-proof,.utility-contacts a,.utility-stars,
  .currency-field > label,.currency-picker-trigger,.currency-option-copy strong,.currency-option-copy > span,
  .nav-links,.header .login,.menu-service-copy > span,.menu-aside-copy,.menu-compare,.menu-planner-action,
  .menu-footer > span,.menu-footer > a,.nav-trigger-description,.mobile-nav-support > span > strong,
  .mobile-nav-support > span > span,.mobile-nav-support > a,.mobile-nav-back,
  .text-link,.text-white,.domain-entry > label,.domain-search button,.tld-line,.domain-help,
  .trust-line > .wrap > span,.billing-switch > span,.billing-switch button,.billing-switch button span,
  .plan-toolbar p,.plan-toolbar p span,.plan-price > span,.plan-price small,.plan-qualifier,
  .plans-foot p,.plans-foot p span,.plan-action,.help-contact strong,.technology-row > span,
  .aggregate small,.review figcaption strong,.review figcaption small,.review-rating small,
  .review-grid figcaption,.content-card a,.vps-price span,.planner-badges,
  .footer-brand p,.facebook,.footer-group h2,.footer-group li,.cookie-control,.footer-bottom small,
  .site-page .small,.comparison-note,.evidence-caption,
  .comparison-table,.comparison-plan-price,.comparison-table tfoot a,.comparison-scroll-help,
  .form-label,.preview-message,.domain-search-note,.domain-price-notes,.domain-tool,
  .tld-price small,.tld-tile > p,.tld-tile > small,.tld-was,.domain-table th,.domain-table td,.domain-table .link,
  .domain-table td:first-child span + span,.domain-table tbody th span + span,
  .domain-mobile-list summary span,.dm-details p,.filter-bar .small,
  .u-hint,.u-form-kicker,.u-form-status,.u-tool-nav a,.u-channel-action,.u-inline-link,.u-channel-badge,
  .u-contact-location,.u-phone-label,.u-contact-bottom,.u-planner-tags,
  .u-policy-meta,.u-affiliate-meta,.u-policy-tabs a,.u-contents strong,.u-contents nav a,
  .u-contents-mobile summary,.u-contents-mobile nav a,.u-section-nav a,.u-register-row dt,
  .u-company-statement > span:last-child,.u-company-contact h3,.u-commission-top) {
  font-size: var(--a11y-helper-size) !important;
  line-height: 1.5 !important;
}
body :is(.button,.btn,.lp-btn) { font-size: var(--a11y-helper-size) !important; line-height: 1.5 !important; }
body :is(.hero-actions .button,.plan-action,.planner-actions > .button,.final-grid .button) {
  font-size: var(--a11y-body-size) !important;
}
body :is(.eyebrow,.menu-eyebrow,.feature-kicker,.feature-panel-kicker,.lp-eyebrow,.di-eyebrow,.checkout-kicker) {
  font-size: var(--a11y-kicker-size) !important;
  line-height: 1.5 !important;
}
body :is(.feature-grid h3,.feature-panel .feature-panel-tile h3,.feature-panel-footer strong) {
  font-size: var(--a11y-body-size) !important;
}
body :is(.feature-grid p,.feature-panel .feature-panel-tile p,.feature-stack,.feature-target,
  .feature-panel-description,.feature-panel-footer) {
  font-size: var(--a11y-helper-size) !important;
  line-height: 1.55 !important;
}
body :is(.domain-help,.billing-switch > span,.plan-toolbar p span,.plan-price > span,.plan-price small,
  .plan-qualifier,.plans-foot p span,.technology-row > span,.aggregate small,.aggregate > strong > span,.review figcaption small,
  .feature-grid p,.feature-panel .feature-panel-tile p,.tld-was,.u-channel-number) {
  color: var(--a11y-muted) !important;
}
/* Muted blue-on-blue captions fail 4.5:1; #eff5ff/#2563eb is 4.72:1. */
body :is(.feature-kicker,.feature-stack,.feature-target,.feature-panel-kicker,
  .feature-panel-description,.feature-panel-footer,.menu-planner .menu-eyebrow,.menu-aside-copy,
  .u-company-statement .eyebrow,.u-company-statement p,.u-company-statement > span:last-child,
  .u-commission-top,.u-commission-stage p,.final-grid p,.u-phone-label) { color: #eff5ff !important; }
body .stars { color: #996600; }
/* Native a:hover otherwise overrides the white text on filled theme buttons. */
body a.button:is(:hover,:focus-visible) { color: #fff; }
body a.button-white:is(:hover,:focus-visible),
body .u-page a.button.secondary:is(:hover,:focus-visible) { color: #2563eb; }
body .u-planner-actions a.button.secondary:is(:hover,:focus-visible) { color: #fff; }
body .th-chat-fallback,
body .th-chat-status { font-family: var(--font) !important; font-size: var(--a11y-body-size) !important; line-height: 1.5 !important; }
body .th-chat-status {
  position: fixed; right: 20px; bottom: 84px; z-index: 2147482499;
  width: max-content; max-width: min(320px, calc(100% - 32px));
  padding: 14px 16px; border: 1px solid #7b8a9d; border-radius: 8px;
  background: #fff; color: #0a1b2e; box-shadow: 0 6px 24px #0a1b2e24;
  overflow-wrap: anywhere;
}
@media (max-width: 760px) {
  body .th-chat-status { right: 16px; bottom: 144px; }
}

/* Form boundaries are functional, unlike decorative card separator borders. */
body :is(.domain-search input,.large-domain-form input,.u-input-action input,.filter-bar input,
  #nav-domain-search > input,.lp-input,.lp-select,.lp-textarea,
  .cart-field input,.cart-field select,.two-factor-row input) {
  font-size: var(--a11y-body-size) !important;
  border-color: var(--a11y-control-border) !important;
}
body :is(.domain-search,.large-domain-form,.currency-field) { border-color: var(--a11y-control-border); }
body.redesign-checkout #main :is(.cart-field input,.cart-field select,.two-factor-row input) {
  font-size: var(--a11y-body-size) !important;
  border-color: var(--a11y-control-border) !important;
}
body :is(.domain-search input,.large-domain-form input,.u-input-action input,.filter-bar input,
  #nav-domain-search > input,.lp-input,.lp-textarea,.cart-field input)::placeholder {
  color: var(--a11y-muted) !important;
  opacity: 1 !important;
}
body :is(input,select,textarea):focus-visible {
  outline: 3px solid #2563eb !important;
  outline-offset: 3px !important;
  border-color: #2563eb !important;
}
/* Preserve error borders after the neutral boundary correction. */
body.redesign-checkout #main .thx-field-error :is(input,select),
body :is(input,select,textarea)[aria-invalid=true] { border-color: #b42318 !important; }

/* Fixed utility heights/tracks cannot contain the larger text. */
body .utility .utility-inner {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  height: auto; min-height: 44px; padding-block: 9px; gap: 8px 24px;
}
body .utility .utility-proof { flex-wrap: wrap; white-space: normal; min-width: 0; }
body .utility .utility-contacts { display: flex; flex-wrap: wrap; width: auto; max-width: 100%; gap: 8px 18px; }
body .utility .utility-contacts a { min-width: 0; }
@media (max-width: 1100px) {
  body .utility .utility-inner { justify-content: center; }
  body .utility .utility-proof, body .utility .utility-contacts { justify-content: center; }
}
@media (min-width: 361px) and (max-width: 420px) {
  body .header .nav { column-gap: 9px; }
  body .header .logo, body .header .logo img { width: 112px; max-width: 100%; }
}
@media (max-width: 760px) {
  body .utility .utility-inner { gap: 10px; padding-block: 12px; }
  body .menu-footer { flex-wrap: wrap; }
  body .feature-target, body .feature-panel-footer { flex-wrap: wrap; }
  body .billing-switch button { white-space: normal; }
  body .mobile-nav-support { grid-template-columns: 24px minmax(0,1fr); }
  body .mobile-nav-support > a { grid-column: 2; justify-self: start; white-space: normal; }
  body:has(> #main > .hero) :is(.planner-actions,.final-grid > div + div) {
    flex-wrap: wrap;
    min-width: 0;
    row-gap: 16px;
  }
}

/* Live domain results, add-on choices and generated WHOIS records. */
body[data-redesign-domains] :is(.domain-result-message,.di-section-heading > span,.di-section-heading p,
  .domain-pill,.di-price-currency,.domain-price small,.di-row-help,.di-result-footnote p,
  .di-optional,.domain-hosting-head > div > p:last-child,.domain-hosting-option > span:last-child,
  .domain-hosting-actions strong,.domain-hosting-actions p,.di-compare-links a,.di-notice a:not(.btn),
  .di-loading > p,.di-whois-message,.di-record-box dl > div,.di-record-box ul,
  .whois-raw summary,.whois-raw pre) {
  font-size: var(--a11y-helper-size) !important; line-height: 1.6 !important;
}
body[data-redesign-domains] :is(.domain-result-message,.di-section-heading > span,.di-section-heading p,
  .di-price-currency,.domain-price small,.di-result-footnote p,.di-optional,
  .domain-hosting-head > div > p:last-child,.domain-hosting-option > span:last-child,
  .domain-hosting-actions p,.di-loading > p,.di-whois-message,.di-record-box dt,.di-not-returned) {
  color: var(--a11y-muted) !important;
}
body[data-redesign-domains] .di-root .di-notice p { font-size: var(--a11y-body-size) !important; }
body[data-redesign-domains] .di-radio { border-color: var(--a11y-control-border); }

/* Planner follows the supplied task hierarchy rather than the public body scale. */
body.planner-page :is(.lp-panel-head > p:last-child,.lp-goal-desc,.lp-rec-blurb,
  .lp-workflow > p,.lp-work-item span span,.lp-done p,.lp-features li,
  .lp-label,.lp-help,.lp-choice span span,.lp-domain-result .lp-meta,
  .lp-selected-note,.lp-tag,.lp-notice,.lp-seg button,.lp-billing-label,.lp-save,
  .lp-addon b,.lp-addon span span,.lp-rec-tag,.lp-price .cur,.lp-price .per,.lp-price-note,
  .lp-checkout-note,.lp-consent b,.lp-consent span span,.lp-summary-title,
  .lp-srow,.lp-srow .k,.lp-srow .v,.lp-summary-foot,.lp-mobile-summary summary,.lp-mobile-badge) {
  font-size: var(--a11y-helper-size) !important; line-height: 1.55 !important;
}
body.planner-page .lp-panel-head > p:last-child { line-height: 1.65 !important; }
body.planner-page :is(.lp-help,.lp-choice span span,.lp-domain-result .lp-meta,.lp-billing-label,
  .lp-addon span span,.lp-rec-blurb,.lp-price .per,.lp-checkout-note,.lp-workflow > p,
  .lp-work-item span span,.lp-consent span span,.lp-goal-desc) { color: var(--a11y-muted) !important; }
body.planner-page :is(.lp-btn,.lp-label,.lp-goal-title,.lp-choice b,.lp-domain-result .lp-name,
  .lp-tag,.lp-rec-tag,.lp-price .cur,.lp-addon b,.lp-work-item b,.lp-consent b,.lp-step-label,
  .lp-summary-title) { font-weight: 600 !important; }
body.planner-page :is(.lp-help,.lp-goal-desc,.lp-choice span span,.lp-domain-result .lp-meta,
  .lp-addon span span,.lp-rec-blurb,.lp-workflow > p,.lp-work-item span span,
  .lp-consent span span,.lp-srow,.lp-srow .k,.lp-srow .v) { font-weight: 400 !important; }
body.planner-page :is(.lp-radio,.lp-checkbox) { border-color: var(--a11y-control-border); }
body.planner-page .lp-choice.selected .lp-radio { border-color: #2563eb; }
body.planner-page .lp-slider { background: #7b8a9d; }
body.planner-page .lp-switch input:checked + .lp-slider { background: #2563eb; }
body.planner-page .lp-summary .lp-srow .v.good { color: #fff !important; }
@media (max-width: 760px) {
  /* Source is one compact row. Allocate the longest full label more room;
     10px labels retain legibility above the source's 8px export. */
  body.planner-page .lp-steps { grid-template-columns: .7fr .95fr 1.65fr .85fr .95fr; gap: 4px; }
  body.planner-page .lp-step { grid-column: auto; }
  body.planner-page .lp-step-label { font-size: 10px !important; line-height: 1.4 !important; }
  body.planner-page .lp-step-num { font-size: 11px !important; line-height: 1.4 !important; }
  body.planner-page .lp-step-label .txt { display: block; overflow-wrap: normal; word-break: normal; white-space: nowrap; }
  body.planner-page .lp-nav { flex-wrap: wrap; }
}

/* Cart typography and generated service/account states. Cart agent owns v2 layout. */
body.redesign-checkout #main { --cart-muted: #52627a; }
body.redesign-checkout #main :is(.checkout-clean-copy .lead,.checkout-panel-head-v4 p,
  .cart-start-prompt p,.payment-review-items li,.cart-check-line) {
  font-size: var(--a11y-body-size) !important; line-height: 1.65 !important;
}
body.redesign-checkout #main :is(.block-title-row p,.soft-badge,.multi-cart-item-kind,
  .multi-cart-item-main small,.multi-item-action,.service-domain-row span,.service-domain-row small,
  .additional-order-options > summary,.multi-editor-status,.cart-field > span,.cart-field small,
  .secret-toggle,.domain-addon-option small,.nameserver-choice label,.cart-toggle-line small,
  .cart-info-note,.cart-fineprint,.progress-v4-steps li,.progress-v4-steps li > span,
  .auth-account-choice-meta,.google-account-choice-meta,.cart-status,.login-status,.google-signin-status,
  .summary-lines > div span,.summary-lines > div b,.summary-total > span,#summaryNote,#summaryTag,
  #orderNextStepHelp,#clearCart,.multi-cart-empty,.selection-price-note,.order-path-notice,
  .incoming-order-choice,.checkout-journey-status,.payment-review-items li span,
  .account-mode-tabs small,.payment-method-grid small,.domain-option-list small,
  .checkout-optional-details summary small,.order-domain-settings summary small,
  .nameserver-panel summary small,.domain-addons-panel summary small,.per-domain-settings-card summary small) {
  font-size: var(--a11y-helper-size) !important; line-height: 1.55 !important;
}
body.redesign-checkout #main :is(.multi-cart-item-kind,.multi-cart-item-main small,
  .service-domain-row span,.service-domain-row small,.cart-field small:not(.bad):not(.good),
  .account-mode-tabs small,.payment-method-grid small,.domain-option-list small,
  .cart-info-note,.cart-fineprint,#summaryNote,#summaryTag,#orderNextStepHelp,
  .auth-account-choice-meta,.google-account-choice-meta,.multi-cart-empty) { color: var(--a11y-muted) !important; }

/* Keep bright teal as decoration or with navy text; retain native selected states. */
body .cart-nudge span { color: #0a1b2e; font-size: var(--a11y-helper-size); }
body .header .login,
body.planner-page .lp-btn-primary,
body.redesign-checkout #main .btn-primary:not(:disabled):not([aria-disabled=true]) {
  color: #fff !important; background: #2563eb !important; border-color: #2563eb !important;
}
body .header .login:hover,
body.planner-page .lp-btn-primary:hover:not(:disabled),
body.redesign-checkout #main .btn-primary:hover:not(:disabled):not([aria-disabled=true]) {
  background: #1d4ed8 !important; border-color: #1d4ed8 !important;
}
body.planner-page .lp-btn-teal { color: #1c4ed8 !important; background: #fff !important; }

/* Small blue step labels need the darker brand blue on pale surfaces. */
body :is(.planner-symbol > span,.u-step-marker,.u-record-index,.u-next-number,.u-path-num,.u-affiliate-step) {
  color: #1d4ed8 !important;
}
body[data-redesign-domain-pricing] .dp-finder-note { color: #52627a; }
body.cart-redesign-v2 #main :is(.rd-item-price small,.rd-item-foot > p) { color: #52627a; }

/* One restrained content measure across public pages, header, footer and checkout. */
body .wrap,
body.cart-redesign-v2 #main .container { max-width: 1240px; }

/* Introductions sit above 16px reading copy without scaling up on wide screens. */
@media (min-width: 761px) {
  body :is(.hero-lead,.page-hero .lead,.domain-title p:not(.eyebrow),.price-hero p:not(.eyebrow),
    .u-domain-hero .u-hero-copy > p:not(.eyebrow),.u-affiliate-hero .u-lead,
    .u-contact-intro .u-lead,.u-intro .u-hero-copy > p:not(.eyebrow)) {
    font-size: 18px !important;
    line-height: 1.6 !important;
  }
}
@media (min-width: 1101px) {
  body #main > .hero h1 { font-size: 59px; line-height: 1.065; letter-spacing: -2.25px; }
  body .page-hero,
  body .u-affiliate-hero { padding-top: 56px; padding-bottom: 56px; }
}

/* Only the homepage fills the first desktop screen. Keep original component sizes;
   44px utility + 92px navigation + 1px border is the measured desktop header.
   Minimum height lets short screens grow, and the cap avoids excessive tall-screen space. */
@media (min-width: 1200px) {
  body #main > .hero {
    display: flex;
    align-items: center;
    min-height: min(1160px,calc(100vh - var(--th-header-height,137px)));
    min-height: min(1160px,calc(100svh - var(--th-header-height,137px)));
  }
}

/* The native consent controls and copy stay in place; only their presentation changes. */
body #cookieBar.cookie{max-width:900px;gap:28px;padding:24px 26px;border-top:3px solid #0fb9b1;border-radius:9px;flex-wrap:nowrap}
body #cookieBar .th-consent-icon{display:flex;align-items:center;justify-content:center;flex:0 0 36px;height:36px;border-radius:8px;background:#eef4fe;color:#2563eb}
body #cookieBar .th-consent-icon svg{width:22px;height:22px}
body #cookieBar .th-consent-copy{flex:1;min-width:0}
body #cookieBar .th-consent-copy h2{font-size:17px;line-height:1.3;letter-spacing:0;margin:0 0 6px;color:#0a1b2e}
body #cookieBar .th-consent-copy p{font-size:14px;line-height:1.6;margin:0}
/* Native consent actions use the approved desktop row and mobile two-column layout. */
body .cookie .cookie-actions{display:flex;align-items:center;gap:9px;flex-shrink:0;margin-left:auto}
body .cookie .cookie-actions .btn{min-height:44px;padding:12px 22px;font-size:14px}
body .cart-nudge{gap:13px;padding:14px 18px!important;min-height:49px}
body .cart-nudge>.th-nudge-icon{width:19px;height:19px;flex-shrink:0;color:#9bdfdc}
body .cart-nudge>.th-public-count{height:auto;min-width:25px;padding:3px 6px;background:#fff;color:#0a1b2e;border-radius:5px;font-size:14px}
body .cart-nudge.is-preparing{background:#173750!important;cursor:progress!important}
body .cart-nudge>.th-public-spinner{display:block;width:18px;height:18px;min-width:18px;padding:0;background:none;border:2px solid #839bac;border-right-color:#fff;border-radius:50%;animation:th-public-spin .8s linear infinite}
@keyframes th-public-spin{to{transform:rotate(360deg)}}
@media(max-width:760px){
  body #cookieBar.cookie{display:block!important;left:12px!important;right:12px!important;bottom:calc(12px + env(safe-area-inset-bottom))!important;transform:none;width:auto;max-width:none;margin:0;padding:20px!important;border-radius:9px!important}
  body #cookieBar .th-consent-icon{display:none}
  body #cookieBar .th-consent-copy h2{font-size:18px}
  body #cookieBar .th-consent-copy p{font-size:14px!important;line-height:1.6!important;margin:0!important}
  body .cookie .cookie-actions{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:9px!important;width:100%!important;margin-left:0!important}
  body #cookieBar .cookie-actions{margin-top:18px}
  body .cookie .cookie-actions .btn{width:100%!important;min-height:44px!important;padding:12px 18px!important;text-align:center}
  body .cart-nudge{gap:9px;padding:12px!important;min-height:47px}
  body .cart-nudge>.th-nudge-icon{width:17px;height:17px}
}
/* main.js owns cookie-open and the Tawk widget; keep lower-priority utilities clear. */
@media(max-width:720px){
  body.cookie-open .cart-nudge,
  body.cookie-open .th-chat-fallback,
  body.cookie-open #tealhostChatStatus{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
}
@media(max-width:360px){body .cart-nudge>.th-nudge-icon{display:none}}
@media(prefers-reduced-motion:reduce){body .cart-nudge>.th-public-spinner{animation:none}}
/* Consent visibility belongs to the native controller at every viewport width. */
body #cookieBar.cookie[hidden]{display:none!important}
