/**
 * HCR Sections — front-end styles.
 *
 * Self-contained: the widgets do not depend on the child theme stylesheet.
 * Breakpoints: 1024px (tablet), 768px (small tablet), 480px (phone).
 */

.hcr-section {
    --hcr-orange: #fe8742;
    --hcr-orange-dark: #e46216;
    --hcr-dark: #101518;
    --hcr-darker: #071018;
    --hcr-panel: #1b2127;
    --hcr-ink: #0b0f12;
    --hcr-body: #4a5259;
    --hcr-muted: #8a94a0;
    --hcr-peach: #fdf1eb;
    --hcr-grey: #f5f5f5;
    --hcr-font-head: "Oswald", sans-serif;
    --hcr-font-body: "Rubik", sans-serif;
    --hcr-radius: 14px;
    box-sizing: border-box;
    display: block;
    /* padding: 72px 0; */
    font-family: var(--hcr-font-body);
    color: var(--hcr-body);
    line-height: 1.6;
}

.hcr-section *,
.hcr-section *::before,
.hcr-section *::after {
    box-sizing: border-box;
}

.hcr-wrap {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}


/* ---------------------------------------------------------------------
 * Shared pieces
 * ------------------------------------------------------------------ */

.hcr-h2 {
    margin: 0 0 14px;
    font-family: var(--hcr-font-head);
    font-size: 32px;
    font-weight: 600;
    line-height: 1.25;
    text-transform: uppercase;
    color: var(--hcr-ink);
}

.hcr-head {
    margin-bottom: 40px;
}

.hcr-head--center {
    text-align: center;
    max-width: 820px;
    margin-left: auto;
    margin-right: auto;
}

.hcr-eyebrow {
    display: inline-block;
    margin-bottom: 10px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--hcr-orange-dark);
}

.hcr-intro p {
    margin: 0 0 12px;
}

.hcr-rich p {
    margin: 0 0 14px;
}

.hcr-rich strong {
    color: var(--hcr-ink);
}

.hcr-note {
    padding: 14px 16px;
    border: 1px dashed #c9d1d9;
    border-radius: 8px;
    color: var(--hcr-muted);
    font-size: 14px;
}

.hcr-pill {
    display: inline-block;
    padding: 8px 22px;
    margin-bottom: 18px;
    border-radius: 30px;
    background: var(--hcr-orange-dark);
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.hcr-tick {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    margin-top: 2px;
    border-radius: 50%;
    background: var(--hcr-orange);
    position: relative;
}

.hcr-tick::after {
    content: "";
    position: absolute;
    left: 7px;
    top: 4px;
    width: 5px;
    height: 9px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}


/* Buttons -------------------------------------------------------------- */

.hcr-cta-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
    margin-top: 26px;
}

.hcr-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 28px;
    border-radius: 8px;
    font-family: var(--hcr-font-body);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.hcr-btn:hover {
    transform: translateY(-1px);
}

.hcr-btn--orange {
    background: var(--hcr-orange-dark);
    color: #fff;
}

.hcr-btn--orange:hover {
    background: #c9530f;
    color: #fff;
}

.hcr-btn--dark {
    background: var(--hcr-dark);
    color: #fff;
}

.hcr-btn--dark:hover {
    background: #000;
    color: #fff;
}

.hcr-btn--white {
    background: #fff;
    color: var(--hcr-ink);
}

.hcr-btn--white:hover {
    background: #f1f1f1;
    color: var(--hcr-ink);
}

.hcr-btn--ghost {
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    padding: 10px 26px;
    border: 2px solid currentColor;
    background: transparent;
    color: inherit;
}

.hcr-btn__label {
    font-size: 13px;
    font-weight: 500;
    opacity: 0.85;
}

.hcr-btn__phone {
    font-family: var(--hcr-font-head);
    font-size: 20px;
    font-weight: 600;
}


/* ---------------------------------------------------------------------
 * Hero
 * ------------------------------------------------------------------ */

.hcr-hero {
    background: var(--hcr-dark);
    color: #e8edf2;
    padding: 90px 0;
}

.hcr-hero__grid {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    gap: 50px;
    align-items: center;
}

.hcr-hero__title {
    margin: 0 0 16px;
    font-family: var(--hcr-font-head);
    font-size: 58px;
    font-weight: 600;
    line-height: 1.05;
    color: #fff;
}

.hcr-hero__accent {
    display: block;
    color: var(--hcr-orange);
}

.hcr-hero__sub {
    margin: 0 0 22px;
    font-size: 17px;
    color: #c7cfd6;
}

.hcr-hero__features {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 12px;
}

.hcr-hero__features li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 0.02em;
    color: #e8edf2;
}

.hcr-hero__media {
    position: relative;
}

.hcr-hero__img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 18px;
}

.hcr-rating {
    position: absolute;
    left: 18px;
    bottom: 18px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 14px 20px;
    border-radius: 12px;
    background: rgba(7, 16, 24, 0.88);
    backdrop-filter: blur(4px);
}

.hcr-rating__score {
    font-family: var(--hcr-font-head);
    font-size: 32px;
    font-weight: 600;
    line-height: 1;
    color: #fff;
}

.hcr-rating__stars {
    color: #ffc107;
    letter-spacing: 2px;
    font-size: 14px;
}

.hcr-rating__note {
    font-size: 13px;
    color: #d5dce2;
}


/* ---------------------------------------------------------------------
 * Quote form
 * ------------------------------------------------------------------ */

.hcr-quote {
    background: var(--hcr-dark);
}

.hcr-quote__inner {
    display: grid;
    grid-template-columns: 1.4fr 0.6fr;
    gap: 30px;
    align-items: stretch;
}

.hcr-quote__panel {
    padding: 32px;
    border-radius: var(--hcr-radius);
    background: #fff;
}

.hcr-quote__title {
    margin: 0 0 20px;
    font-family: var(--hcr-font-head);
    font-size: 28px;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--hcr-ink);
}

.hcr-quote__form input[type="text"],
.hcr-quote__form input[type="email"],
.hcr-quote__form input[type="tel"],
.hcr-quote__form select,
.hcr-quote__form textarea,
.hcr-contact__form input[type="text"],
.hcr-contact__form input[type="email"],
.hcr-contact__form input[type="tel"],
.hcr-contact__form select,
.hcr-contact__form textarea {
    width: 100%;
    padding: 12px 14px;
    margin-bottom: 14px;
    border: 1px solid #d7dee4;
    border-radius: 8px;
    font-family: var(--hcr-font-body);
    font-size: 15px;
    color: var(--hcr-ink);
    background: #fff;
}

.hcr-quote__form input:focus,
.hcr-quote__form select:focus,
.hcr-quote__form textarea:focus,
.hcr-contact__form input:focus,
.hcr-contact__form select:focus,
.hcr-contact__form textarea:focus {
    outline: 2px solid var(--hcr-orange);
    outline-offset: 1px;
    border-color: var(--hcr-orange);
}

.hcr-quote__form input[type="submit"],
.hcr-contact__form input[type="submit"] {
    width: auto;
    padding: 14px 34px;
    border: 0;
    border-radius: 8px;
    background: var(--hcr-orange-dark);
    color: #fff;
    font-family: var(--hcr-font-body);
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

.hcr-quote__form input[type="submit"]:hover,
.hcr-contact__form input[type="submit"]:hover {
    background: #c9530f;
}

.hcr-voucher {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 10px;
    padding: 28px;
    border-radius: var(--hcr-radius);
    background: linear-gradient(180deg, #fe8742 0%, #e46216 100%);
    color: #fff;
    text-align: center;
}

.hcr-voucher__label {
    font-family: var(--hcr-font-head);
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.hcr-voucher__text {
    margin: 0;
    font-family: var(--hcr-font-head);
    font-size: 24px;
    font-weight: 600;
    line-height: 1.25;
    text-transform: uppercase;
}


/* ---------------------------------------------------------------------
 * CTA strip
 * ------------------------------------------------------------------ */

.hcr-strip {
    padding: 44px 0;
}

.hcr-strip--orange {
    background: linear-gradient(180deg, #fe8742 0%, #e46216 100%);
    color: #fff;
}

.hcr-strip--dark {
    background: var(--hcr-dark);
    color: #fff;
}

.hcr-strip__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.hcr-strip__title {
    margin: 0 0 6px;
    font-family: var(--hcr-font-head);
    font-size: 28px;
    font-weight: 600;
    line-height: 1.15;
    text-transform: uppercase;
    color: #fff;
}

.hcr-strip__sub {
    margin: 0;
    font-size: 17px;
    color: rgba(255, 255, 255, 0.92);
}

.hcr-strip .hcr-cta-row {
    margin-top: 0;
}


/* ---------------------------------------------------------------------
 * Trust badges
 * ------------------------------------------------------------------ */

.hcr-badges {
    padding: 48px 0;
}

.hcr-badges__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 26px;
}

.hcr-badge {
    display: flex;
    align-items: flex-start;
    gap: 14px;
}

.hcr-badge__icon {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: var(--hcr-orange-dark);
    color: #fff;
    font-size: 20px;
}

.hcr-badge__icon svg {
    width: 20px;
    height: 20px;
    fill: currentColor;
}

.hcr-badge__title {
    margin: 0 0 2px;
    font-family: var(--hcr-font-head);
    font-size: 20px;
    font-weight: 600;
    color: var(--hcr-ink);
}

.hcr-badge__text {
    margin: 0;
    font-size: 14px;
    color: var(--hcr-body);
}


/* ---------------------------------------------------------------------
 * Text + image
 * ------------------------------------------------------------------ */

.hcr-ti__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 50px;
    align-items: center;
}

.hcr-ti--left .hcr-ti__text {
    order: 2;
}

.hcr-ti--left .hcr-ti__media {
    order: 1;
}

.hcr-ti__media img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 18px;
}

.hcr-bullets {
    list-style: none;
    margin: 0 0 18px;
    padding: 0;
    display: grid;
    gap: 10px;
}

.hcr-bullets li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-size: 15px;
}


/* ---------------------------------------------------------------------
 * Services
 * ------------------------------------------------------------------ */

.hcr-services {
    color: #e8edf2;
}

.hcr-services .hcr-h2,
.hcr-steps .hcr-h2,
.hcr-locations .hcr-h2 {
    color: #fff;
}

.hcr-services .hcr-eyebrow,
.hcr-steps .hcr-eyebrow,
.hcr-locations .hcr-eyebrow {
    color: var(--hcr-orange);
}

.hcr-services__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.hcr-services__grid[data-cols="2"] {
    grid-template-columns: repeat(2, 1fr);
}

.hcr-services__grid[data-cols="4"] {
    grid-template-columns: repeat(4, 1fr);
}

.hcr-service {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 20px 22px;
    border-radius: 12px;
    background: var(--hcr-panel);
    color: #fff;
    text-decoration: none;
    transition: background-color 0.2s ease, transform 0.2s ease;
}

a.hcr-service:hover {
    background: var(--hcr-orange-dark);
    transform: translateY(-2px);
}

.hcr-service__num {
    font-family: var(--hcr-font-head);
    font-size: 22px;
    font-weight: 600;
    color: var(--hcr-orange);
}

a.hcr-service:hover .hcr-service__num {
    color: #fff;
}

.hcr-service__title {
    flex: 1 1 auto;
    font-size: 16px;
    font-weight: 500;
}

.hcr-service__arrow {
    font-size: 18px;
    opacity: 0.8;
}


/* ---------------------------------------------------------------------
 * Recent purchases
 * ------------------------------------------------------------------ */

.hcr-purchases__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 26px;
}

.hcr-purchase {
    border-radius: var(--hcr-radius);
    overflow: hidden;
    background: #fff;
    box-shadow: 0 6px 24px rgba(16, 21, 24, 0.08);
}

.hcr-purchase__media img {
    display: block;
    width: 100%;
    height: 220px;
    object-fit: cover;
}

.hcr-purchase__body {
    padding: 20px 22px 24px;
}

.hcr-purchase__offer {
    margin: 0 0 6px;
    font-size: 14px;
    color: var(--hcr-muted);
}

.hcr-purchase__offer strong {
    font-family: var(--hcr-font-head);
    font-size: 20px;
    color: var(--hcr-orange-dark);
}

.hcr-purchase__title {
    margin: 0 0 8px;
    font-family: var(--hcr-font-head);
    font-size: 20px;
    font-weight: 600;
    color: var(--hcr-ink);
}

.hcr-purchase__text {
    margin: 0;
    font-size: 14px;
}


/* ---------------------------------------------------------------------
 * Reviews
 * ------------------------------------------------------------------ */

.hcr-reviews__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.hcr-review {
    padding: 24px;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 4px 18px rgba(16, 21, 24, 0.06);
}

.hcr-review__head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}

.hcr-review__avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--hcr-orange-dark);
    color: #fff;
    font-family: var(--hcr-font-head);
    font-size: 20px;
    font-weight: 600;
}

.hcr-review__name {
    margin: 0;
    font-family: var(--hcr-font-head);
    font-size: 17px;
    font-weight: 600;
    color: var(--hcr-ink);
}

.hcr-review__when {
    font-size: 13px;
    color: var(--hcr-muted);
}

.hcr-review__stars {
    margin: 0 0 10px;
    color: #ffc107;
    letter-spacing: 3px;
    font-size: 15px;
}

.hcr-review__text {
    margin: 0;
    font-size: 15px;
}


/* ---------------------------------------------------------------------
 * Steps
 * ------------------------------------------------------------------ */

.hcr-steps__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 26px;
}

.hcr-step {
    position: relative;
    padding: 30px 26px;
    border-radius: var(--hcr-radius);
    background: var(--hcr-panel);
    color: #d7dee4;
}

.hcr-step__num {
    display: block;
    margin-bottom: 12px;
    font-family: var(--hcr-font-head);
    font-size: 34px;
    font-weight: 600;
    line-height: 1;
    color: var(--hcr-orange);
}

.hcr-step__icon {
    display: inline-flex;
    margin-bottom: 10px;
    font-size: 24px;
    color: var(--hcr-orange);
}

.hcr-step__icon svg {
    width: 24px;
    height: 24px;
    fill: currentColor;
}

.hcr-step__title {
    margin: 0 0 8px;
    font-family: var(--hcr-font-head);
    font-size: 19px;
    font-weight: 600;
    text-transform: uppercase;
    color: #fff;
}

.hcr-step__text {
    margin: 0;
    font-size: 15px;
}


/* ---------------------------------------------------------------------
 * Brands
 * ------------------------------------------------------------------ */

.hcr-brands {
    padding: 0 !important;
}

.hcr-brands__grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 20px;
    align-items: center;
}

.hcr-brand {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    border: 1px solid #e8edf2;
    border-radius: 10px;
    background: #fff;
}

.hcr-brand img {
    max-width: 100%;
    height: auto;
}


/* Scroll marquee ---------------------------------------------------- */

.hcr-brands--marquee .hcr-wrap {
    max-width: 1200px;
}

.hcr-brands__marquee {
    /* Rows are far wider than the page; clip them at the section edges. */
    overflow: hidden;
    width: 100%;
}

.hcr-brands__lane {
    display: flex;
    /* max-content rows overflow evenly on both sides from here. */
    justify-content: center;
}

.hcr-brands__row {
    display: flex;
    align-items: center;
    gap: 20px;
    width: max-content;
    padding: 10px 0;
    will-change: transform;
}


/* The second row starts offset so the two rows never line up. */

.hcr-brands__lane+.hcr-brands__lane .hcr-brands__row {
    margin-left: 110px;
}

.hcr-brands--marquee .hcr-brand {
    flex: 0 0 auto;
    width: 200px;
    height: 115px;
    padding: 10px;
    border-radius: 20px;
    transition: border-color 0.4s;
}

.hcr-brands--marquee .hcr-brand:hover {
    border-color: var(--hcr-orange);
}

.hcr-brands--marquee .hcr-brand img {
    max-height: 100%;
    object-fit: contain;
    transition: transform 0.4s;
}

.hcr-brands--marquee .hcr-brand:hover img {
    transform: scale(0.92);
}


/* ---------------------------------------------------------------------
 * Locations
 * ------------------------------------------------------------------ */

.hcr-locations__grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 12px;
}

.hcr-location {
    display: block;
    padding: 12px 14px;
    border-radius: 8px;
    background: var(--hcr-panel);
    color: #e8edf2;
    font-size: 15px;
    text-align: center;
    text-decoration: none;
    transition: background-color 0.2s ease;
}

a.hcr-location:hover {
    background: var(--hcr-orange-dark);
    color: #fff;
}


/* ---------------------------------------------------------------------
 * Chips
 * ------------------------------------------------------------------ */

.hcr-chips__row {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
}


/* .hcr-chip {
	display: inline-block;
	padding: 10px 20px;
	border: 1px solid var(--hcr-orange);
	border-radius: 30px;
	background: #fff;
	color: var(--hcr-ink);
	font-size: 15px;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
} */

a.hcr-chip:hover {
    background: var(--hcr-orange-dark);
    border-color: var(--hcr-orange-dark);
    color: #fff;
}


/* ---------------------------------------------------------------------
 * FAQ
 * ------------------------------------------------------------------ */

.hcr-faq__list {
    max-width: 900px;
    margin: 0 auto;
    display: grid;
    gap: 12px;
}

.hcr-faq__item {
    border: 1px solid #e4eaef;
    border-radius: 10px;
    background: #fff;
    overflow: hidden;
}

.hcr-faq__item.is-open {
    border-color: var(--hcr-orange);
}

.hcr-faq__q {
    margin: 0;
}

.hcr-faq__btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
    padding: 18px 22px;
    border: 0;
    background: transparent;
    font-family: var(--hcr-font-body);
    font-size: 17px;
    font-weight: 500;
    line-height: 1.4;
    text-align: left;
    color: var(--hcr-ink);
    cursor: pointer;
}

.hcr-faq__btn:focus-visible {
    outline: 2px solid var(--hcr-orange);
    outline-offset: -2px;
}

.hcr-faq__icon {
    position: relative;
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
}

.hcr-faq__icon::before,
.hcr-faq__icon::after {
    content: "";
    position: absolute;
    background: var(--hcr-orange-dark);
    transition: transform 0.2s ease;
}

.hcr-faq__icon::before {
    top: 8px;
    left: 0;
    width: 18px;
    height: 2px;
}

.hcr-faq__icon::after {
    top: 0;
    left: 8px;
    width: 2px;
    height: 18px;
}

.hcr-faq__item.is-open .hcr-faq__icon::after {
    transform: scaleY(0);
}

.hcr-faq__a {
    padding: 0 22px 20px;
    font-size: 15px;
}

.hcr-faq__a p {
    margin: 0 0 10px;
}

.hcr-faq__a[hidden] {
    display: none;
}


/* ---------------------------------------------------------------------
 * Final CTA
 * ------------------------------------------------------------------ */

.hcr-final {
    color: #d7dee4;
    text-align: center;
}

.hcr-final__title {
    margin: 0 0 14px;
    font-family: var(--hcr-font-head);
    font-size: 34px;
    font-weight: 600;
    line-height: 1.2;
    color: #fff;
}

.hcr-final__body {
    max-width: 760px;
    margin: 0 auto;
}

.hcr-final .hcr-cta-row {
    justify-content: center;
}

.hcr-final .hcr-btn--ghost {
    color: #fff;
}


/* ---------------------------------------------------------------------
 * Contact
 * ------------------------------------------------------------------ */

.hcr-contact__grid {
    display: grid;
    grid-template-columns: 0.8fr 1.2fr;
    gap: 40px;
    align-items: start;
}

.hcr-contact__row {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 16px 0;
    border-bottom: 1px solid #e8edf2;
}

.hcr-contact__label {
    font-family: var(--hcr-font-head);
    font-size: 15px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--hcr-orange-dark);
}

.hcr-contact__value {
    font-size: 16px;
    color: var(--hcr-ink);
    text-decoration: none;
}

.hcr-contact__line {
    display: block;
}

.hcr-contact__phone {
    font-family: var(--hcr-font-head);
    font-size: 22px;
    font-weight: 600;
}


/* ---------------------------------------------------------------------
 * Responsive
 * ------------------------------------------------------------------ */

@media (max-width: 1024px) {
    .hcr-section {
        padding: 56px 0;
    }
    .hcr-hero {
        padding: 34px 0;
    }
    .hcr-hero__grid,
    .hcr-ti__grid,
    .hcr-quote__inner,
    .hcr-contact__grid {
        grid-template-columns: 1fr;
        gap: 34px;
    }
    .hcr-ti--left .hcr-ti__text,
    .hcr-ti--left .hcr-ti__media {
        order: 0;
    }
    .hcr-hero__title {
        font-size: 44px;
    }
    .hcr-badges__grid,
    .hcr-services__grid,
    .hcr-services__grid[data-cols="4"],
    .hcr-purchases__grid,
    .hcr-reviews__grid,
    .hcr-steps__grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .hcr-brands__grid,
    .hcr-locations__grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

@media (max-width: 768px) {
    .hcr-section {
        padding: 46px 0;
    }
    .hcr-h2 {
        font-size: 26px;
    }
    .hcr-hero__title {
        font-size: 36px;
    }
    .hcr-strip__inner {
        flex-direction: column;
        align-items: flex-start;
        text-align: left;
    }
    .hcr-strip__title {
        font-size: 24px;
    }
    .hcr-final__title {
        font-size: 27px;
    }
    .hcr-quote__panel {
        padding: 24px 20px;
    }
    .hcr-purchase__media img {
        height: 200px;
    }
}

@media (max-width: 480px) {
    .hcr-wrap {
        padding: 0 16px;
    }
    .hcr-hero__title {
        font-size: 30px;
    }
    .hcr-badges__grid,
    .hcr-services__grid,
    .hcr-services__grid[data-cols="2"],
    .hcr-services__grid[data-cols="4"],
    .hcr-purchases__grid,
    .hcr-reviews__grid,
    .hcr-steps__grid {
        grid-template-columns: 1fr;
    }
    .hcr-brands__grid,
    .hcr-locations__grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .hcr-cta-row {
        flex-direction: column;
        align-items: stretch;
    }
    .hcr-btn {
        justify-content: center;
    }
    .hcr-btn--ghost {
        align-items: center;
    }
    .hcr-rating {
        position: static;
        margin-top: 14px;
        align-items: flex-start;
    }
}


/* ---------------------------------------------------------------------
 * Brand marquee — card sizes per breakpoint, matching the live site
 * ------------------------------------------------------------------ */

@media (max-width: 1024px) {
    .hcr-brands--marquee .hcr-brand {
        width: 160px;
        height: 100px;
    }
    .hcr-brands__row {
        gap: 14px;
    }
    .hcr-brands__lane+.hcr-brands__lane .hcr-brands__row {
        margin-left: 80px;
    }
}

@media (max-width: 768px) {
    .hcr-brands--marquee .hcr-brand {
        width: 120px;
        height: 80px;
        padding: 8px;
        border-radius: 14px;
    }
    .hcr-brands__row {
        gap: 10px;
    }
    .hcr-brands__lane+.hcr-brands__lane .hcr-brands__row {
        margin-left: 56px;
    }
}

@media (max-width: 480px) {
    .hcr-brands--marquee .hcr-brand {
        width: 96px;
        height: 66px;
        padding: 6px;
        border-radius: 12px;
    }
    .hcr-brands__row {
        gap: 8px;
    }
    .hcr-brands__lane+.hcr-brands__lane .hcr-brands__row {
        margin-left: 40px;
    }
}


/* Anyone who asked for less motion gets the rows standing still. */

@media (prefers-reduced-motion: reduce) {
    .hcr-brands__row {
        transform: none !important;
        will-change: auto;
    }
}