/*
 * Idiom Child Starter — brand override stylesheet.
 *
 * Loaded by functions.php on the parent's `idiom_after_stylesheets` hook, so it
 * loads AFTER the parent CSS and wins the cascade. Put ALL per-company style
 * overrides here (not in style.css).
 *
 * The base theme is driven by CSS custom properties; override brand tokens here
 * rather than re-declaring component rules where possible.
 */

/*
 * Done brand palette
 * ----------------------------------------------------------------------------
 *   CTA buttons & links ... #d83f40  (red)   -> --brand-accent
 *   Top nav / Primary blue . #213a59  (navy) -> --brand-primary-dark
 *   Support blue ........... #2e5382         -> --brand-primary
 *   Primary text ........... #333333         -> --brand-ink (white on primary blue)
 *
 * The base theme's token values (in styles.css :root) were swapped to this
 * palette directly; the two TEXT tokens below are overridden here because the
 * base still maps them to the deep-navy ink value used for dark surfaces.
 */
:root {
    --brand-ink:        #333333; /* primary body text */
    --brand-accent-ink: #ffffff; /* legible text on the red accent (CTAs) */
}

/* Links use the CTA red. Hover deepens to the red-dark shade. */
a            { color: var(--brand-accent); }
a:hover      { color: #b5302f; }

/* Primary CTA buttons in the brand red (base uses Support Blue for these). */
.btn-primary        { background: var(--brand-accent); color: #fff; }
.btn-primary:hover  { background: #b5302f; color: #fff; }

/*
 * Dark surfaces below reference --brand-ink for their BACKGROUND. Now that
 * --brand-ink is the #333 text color, re-pin them to deep navy so the footer
 * and Care Club section stay on-brand (white text keeps AAA contrast).
 */
.footer                  { background: #16273d; }
.care-club-section       { background: linear-gradient(135deg, #2e5382 0%, #213a59 100%); }
.care-club-section.has-bg { background-color: #213a59; }

/* Brand gradient — Support Blue -> Primary Blue (hero image overlay). */
.hero.has-bg .hero-overlay {
    background: linear-gradient(135deg, rgba(46, 83, 130, 0.86), rgba(33, 58, 89, 0.92));
}

/*
 * Logo size. Done's mark renders at 100px wide on desktop; height is auto so the
 * SVG keeps its natural proportions. (The mobile and footer logo rules are
 * height-driven and unaffected.)
 */
.nav-wrapper .logo-img {
    width: 120px;
    height: auto;
    max-width: 120px;
    max-height: none;
}

/* ---------------------------------------------------------------------------
 * Hero eyebrow / breadcrumb
 *
 * Two markup patterns exist in the base theme:
 *   1. Breadcrumb heroes:  <nav class="hero-eyebrow"> … <p class="hero-eyebrow-text">
 *   2. Simple heroes:      <p|span class="hero-eyebrow">  (the tagline itself)
 *
 * So: the breadcrumb container (nav.hero-eyebrow) becomes a plain white
 * breadcrumb trail, while the tagline — whether it's .hero-eyebrow-text or a
 * standalone p/span.hero-eyebrow — gets the red pill. Element-scoped so no base
 * markup has to change.
 * ------------------------------------------------------------------------- */

/* Breadcrumb trail (nav.hero-eyebrow). Block-level so it sits on its own line
 * above the tagline pill, with inline items so it follows the hero's
 * text-align — left-aligned heroes keep it left, centered heroes center it. */
.hero-eyebrow {
    display: block;
    margin: 0 0 14px;
    padding: 0;
    background: none;
    border: 0;
    border-radius: 0;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    line-height: 1.4;
    text-transform: none;
    color: #ffffff;
}
.hero-eyebrow a { color: rgba(255, 255, 255, 0.85); text-decoration: none; }
.hero-eyebrow a:hover,
.hero-eyebrow a:focus-visible { color: #ffffff; text-decoration: underline; }
.hero-eyebrow a[aria-current="page"] { color: #ffffff; font-weight: 700; }
.hero-eyebrow > i,
.hero-eyebrow a > i { display: inline-block; vertical-align: -1px; }
.hero-eyebrow .hero-eyebrow-sep {
    display: inline;
    margin: 0 7px;
    color: rgba(255, 255, 255, 0.5);
    opacity: 1;
    font-weight: 400;
}

/* Tagline pill — the breadcrumb-page tagline AND simple-page eyebrows. */
.hero-eyebrow-text,
p.hero-eyebrow,
span.hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #ffffff;
    margin: 0 0 16px;
    padding: 6px 14px;
    background: rgba(216, 63, 64, 0.12);
    border: 1px solid rgba(216, 63, 64, 0.35);
    border-radius: 999px;
}

/* PPC hero "deal pill" — drop the parent's brand-red text override so the label
   inherits the hero's white body color (.hero-offer-body { color:#fff }), matching
   the white eyebrow pills above. child.css loads after the parent sheet, so equal
   specificity wins the cascade — no !important needed. */
.hero-offer-eyebrow-pill {
    color: #fff;
}

/* ---------------------------------------------------------------------------
 * PPC / Featured-Offer hero — "Call us 24/7" phone button legibility.
 *
 * The base hero phone buttons (split, classic --solo, and card variants) sit
 * on the brand-red accent but hardcode a navy label — rgba(14,26,48,.72) — a
 * holdover from the base theme's YELLOW accent, where navy ink was legible.
 * On Done's red (#d83f40) that label is only ~3:1 and fails WCAG AA, which is
 * why "CALL US 24/7" reads muddy on the PPC hero. (The number already reads
 * white via the child's --brand-accent-ink override.)
 *
 * Fix: white label, and deepen the button red a touch so the white label AND
 * number clear AA (4.5:1) with margin (~5.3:1). The white icon badge + red
 * phone glyph already read well and are left untouched. child.css loads after
 * the parent sheet, so equal-specificity selectors win — no !important needed.
 * ------------------------------------------------------------------------- */
.hero-split-phone,
.hero-offer-cta-phone.hero-offer-cta-phone--solo,
.hero-card-phone {
    background: #c5302f;
    border-color: rgba(255, 255, 255, 0.28);
}
.hero-split-phone:hover,
.hero-split-phone:focus-visible,
.hero-offer-cta-phone.hero-offer-cta-phone--solo:hover,
.hero-offer-cta-phone.hero-offer-cta-phone--solo:focus-visible,
.hero-card-phone:hover,
.hero-card-phone:focus-visible {
    background: #b5302f;
}
.hero-split-phone-label,
.hero-offer-cta-phone--solo .hero-offer-cta-phone-label,
.hero-card-phone-label {
    color: #ffffff;
}

/* ---------------------------------------------------------------------------
 * Two-column content grid — restore the container gutter.
 *
 * Markup is <div class="container content-grid">. The base's
 * `.content-grid { padding: 56px 0 }` (styles.css) is a single-class selector
 * declared AFTER `.container { padding: 0 24px }`, so on the shared element it
 * wins and zeroes the horizontal gutter — making every content-grid section
 * (service intro/secondary, care-club, etc.) sit 24px wider on each side than
 * the rest of the page. Restore the 24px side padding on desktop; the base's
 * <=800px rule already sets its own 15px gutter, so scope this above it.
 * ------------------------------------------------------------------------- */
@media (min-width: 801px) {
    .content-grid {
        padding-left: 24px;
        padding-right: 24px;
    }
}

/* ---------------------------------------------------------------------------
 * Split-hero copy — align to the page container edge.
 *
 * The base .hero-split-panel is a full-bleed 50vw column that right-aligns its
 * fixed 600px copy block toward the center seam (align-items: flex-end). That
 * pushes the copy progressively further right as the viewport grows, so it
 * never lines up with the rest of the page (which sits in the max-1580
 * container). Left-align the copy and pad its left edge to the exact container
 * gutter — max(24px, (100vw - container-max)/2 + 24px) — so the hero heading,
 * lede and CTA start on the same vertical line as all other page content. The
 * photo stays full-bleed. Only applies to the two-column layout (>=881px);
 * below that the hero stacks and the base mobile rule governs.
 * ------------------------------------------------------------------------- */
@media (min-width: 881px) {
    .hero-split-panel {
        align-items: flex-start;
        padding-left: max(24px, calc((100vw - var(--container-max, 1580px)) / 2 + 24px));
        padding-right: clamp(24px, 4vw, 64px);
    }
}


/* ---------------------------------------------------------------------------
 * Top utility bar ("top nav") — light theme.
 *
 * Background #f0f0f0 with near-black links (was navy bar + white text). Parent
 * items carry brand-red FontAwesome icons (injected via the wp_nav_menu_objects
 * filter in functions.php and rendered by Idiom_Icon_Menu_Walker).
 * ------------------------------------------------------------------------- */
.top-menu {
    background-color: #f0f0f0;
    background-image: none;
    color: #1a1a1a;
    border-bottom: 1px solid #e2e2e2;
}
.nav-wrapper .top-menu {
    border-bottom-left-radius: 15px;
}
.top-menu-links a { color: #1a1a1a; opacity: 1; }
.top-menu-links a:hover { color: var(--brand-accent); }
/* Parent FA icons in brand red; keep the dropdown chevron near-black + muted. */
.top-menu-links a > i { color: var(--brand-accent); }
.top-menu-links a > .nav-chevron { color: #1a1a1a; opacity: 0.55; }
/* Google-reviews badge previously sat on navy with white text — darken it for
 * the light bar. */
.top-menu-badge { border-left-color: rgba(0, 0, 0, 0.15); }
.top-menu-badge .idm-google-places-reviews.idm-badge { --idm-badge-text: #1a1a1a; }
.top-menu-badge .idm-google-places-reviews.idm-badge .idm-read-all-reviews { color: #1a1a1a !important; }

/* Dropdown menu — match the light top-bar background (was navy + white text). */
.top-menu-links .sub-menu {
    background: #f0f0f0;
    border-color: rgba(0, 0, 0, 0.12);
}
.top-menu-links .sub-menu a { color: #1a1a1a; opacity: 1; }
.top-menu-links .sub-menu a:hover { background: rgba(0, 0, 0, 0.06); color: var(--brand-accent); }
.top-menu-links .sub-menu a i { color: var(--brand-accent); }

.cta-banner,
.cta-mini,
.coupons-section,
.process-section,
.cc-benefits-section,
.care-club-terms-page .cct-hero {
    background-image:
        linear-gradient(90deg, rgba(216, 63, 64, 0.03) 0%, transparent 25%, transparent 75%, rgba(216, 63, 64, 0.03) 100%),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='320' viewBox='0 0 480 320'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='1'%3E%3Ccircle cx='480' cy='0' r='90' stroke-opacity='0.05'/%3E%3Ccircle cx='480' cy='0' r='165' stroke-opacity='0.055'/%3E%3Ccircle cx='480' cy='0' r='245' stroke-opacity='0.05'/%3E%3Ccircle cx='480' cy='0' r='330' stroke-opacity='0.04'/%3E%3Ccircle cx='480' cy='0' r='420' stroke-opacity='0.03'/%3E%3C/g%3E%3C/svg%3E");
    background-repeat: no-repeat, no-repeat;
    background-position: center, top right;
    background-size: auto, 480px 320px;
}

/* Contact hero backdrop (large fallback overlay) — rings only, top-right. */
.contact-hero-bg {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='320' viewBox='0 0 480 320'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='1'%3E%3Ccircle cx='480' cy='0' r='90' stroke-opacity='0.05'/%3E%3Ccircle cx='480' cy='0' r='165' stroke-opacity='0.055'/%3E%3Ccircle cx='480' cy='0' r='245' stroke-opacity='0.05'/%3E%3Ccircle cx='480' cy='0' r='330' stroke-opacity='0.04'/%3E%3Ccircle cx='480' cy='0' r='420' stroke-opacity='0.03'/%3E%3C/g%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: top right;
    background-size: 620px 410px;
}

/* Light contact info card — subtle navy rings in the bottom-right corner. */
.contact-page .contact-info-card::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='200' viewBox='0 0 300 200'%3E%3Cg fill='none' stroke='%23213a59' stroke-width='1'%3E%3Ccircle cx='300' cy='200' r='55' stroke-opacity='0.07'/%3E%3Ccircle cx='300' cy='200' r='110' stroke-opacity='0.06'/%3E%3Ccircle cx='300' cy='200' r='170' stroke-opacity='0.05'/%3E%3Ccircle cx='300' cy='200' r='235' stroke-opacity='0.04'/%3E%3C/g%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: bottom right;
    background-size: 300px 200px;
}

/* Google Reviews badge — force the rating number dark (plugin var resolves to
   white in our context). Overrides idiom-google-review frontend CSS, which
   loads before child.css so equal specificity + !important wins. */
.idm-google-places-reviews.idm-google-places-reviews-wap.idm-badge .idm-fr-starsnumb span {
    color: #1a1a1a !important;
}

/* ==========================================================================
 * Financing page (child overrides — pairs with done-child/page-financing.php
 * and done-child/template-parts/section-financing.php)
 * ========================================================================== */

/* --- Intro: left-aligned copy + photo right --------------------------------- */
.financing-intro--split .financing-intro-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: 56px;
    align-items: center;
}
.financing-intro--split .section-header {
    text-align: left;
    margin: 0 0 18px;
    max-width: none;
}
.financing-intro--split .section-header h2 { margin: 0; }
.financing-intro--split .financing-intro-text {
    max-width: none;
    margin: 0;
    text-align: left;
}
.financing-intro-media {
    margin: 0;
    position: relative;
}
.financing-intro-media img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 16px;
    box-shadow: 0 18px 40px rgba(14, 26, 48, 0.16);
}
@media (max-width: 900px) {
    .financing-intro--split .financing-intro-layout {
        grid-template-columns: 1fr;
        gap: 32px;
    }
}

/* --- Plan cards v2: icon chip, accent top bar, tighter rhythm --------------- */
.financing-plans--v2 .plan-card {
    position: relative;
    /* No overflow:hidden — the "Most Popular" badge hangs above the card edge.
     * Accent bar is a real border-top so it hugs the rounded corners exactly,
     * on both the 1px normal border and the 2px featured border. */
    display: flex;
    flex-direction: column;
    padding: 28px 26px 26px;
    border-top: 4px solid var(--brand-primary);
}
.financing-plans--v2 .plan-card.is-featured { border-top: 4px solid var(--brand-accent); }
/* Header row: icon chip left, title + rate stacked to its right. */
.financing-plans--v2 .plan-card-head {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0;
}
.financing-plans--v2 .plan-icon {
    flex-shrink: 0;
    width: 52px;
    height: 52px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    background: rgba(46, 83, 130, 0.09);
    color: var(--brand-primary);
}
.financing-plans--v2 .plan-card.is-featured .plan-icon {
    background: rgba(216, 63, 64, 0.10);
    color: var(--brand-accent);
}
.financing-plans--v2 .plan-card h3 {
    margin: 0 0 2px;
    font-size: 1.25rem;
}
.financing-plans--v2 .plan-rate {
    margin: 0;
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--brand-primary);
}
.financing-plans--v2 .plan-desc {
    margin: 0 0 16px;
    font-size: 0.95rem;
}
.financing-plans--v2 .plan-features {
    margin: 0 0 16px;
    padding-top: 14px;
    border-top: 1px solid var(--brand-border);
}
.financing-plans--v2 .plan-features li {
    font-size: 0.92rem;
    padding: 4px 0;
}
.financing-plans--v2 .plan-disclaimer {
    margin: 0 0 16px;
    font-size: 0.78rem;
    color: var(--brand-muted);
}
/* Pin Apply Now to the bottom so all three cards align. */
.financing-plans--v2 .plan-card .btn { margin-top: auto; }

/* ---------------------------------------------------------------------------
   FAQ topic hubs (/faq/ and /faq/topic/<topic>/)
   Chips link the topic hubs from both the FAQ archive and each hub, so every
   topic is one click from any other. See inc/faq-topics.php.
--------------------------------------------------------------------------- */
.faq-topics-section {
    padding: 28px 0 4px;
}
.faq-topics-title {
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0 0 12px;
    color: var(--brand-ink, #0E1A30);
}
.faq-topics-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.faq-topic-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border: 1px solid var(--brand-border, #d8dde8);
    border-radius: 999px;
    background: #fff;
    color: var(--brand-ink, #0E1A30);
    text-decoration: none;
    font-size: 0.94rem;
    line-height: 1.2;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.faq-topic-chip:hover,
.faq-topic-chip:focus-visible {
    background: var(--brand-bg-soft, #f3f6fb);
    border-color: var(--brand-primary, #2e5382);
    color: var(--brand-primary, #2e5382);
}
.faq-topic-chip.is-current {
    background: var(--brand-primary, #2e5382);
    border-color: var(--brand-primary, #2e5382);
    color: #fff;
}
.faq-topic-count {
    font-size: 0.8rem;
    font-weight: 600;
    opacity: .75;
}
.faq-topic-chip.is-current .faq-topic-count {
    opacity: .9;
}
