/* ============================================
   MAIN CSS — Async loaded
   Full component styles for Carport1 theme
   ============================================ */

/* --- Section Patterns --- */
.cp1-section {
    padding: var(--cp1-space-3xl) 0;
}
.cp1-section--dark {
    background: var(--cp1-charcoal);
    color: var(--cp1-concrete);
}
.cp1-section--dark h2,
.cp1-section--dark h3 { color: var(--cp1-pure-white); }
.cp1-section--concrete {
    background: var(--cp1-concrete);
}
.cp1-section--black {
    background: var(--cp1-black);
    color: var(--cp1-concrete);
}
.cp1-section--black h2,
.cp1-section--black h3 { color: var(--cp1-pure-white); }

.cp1-section__header {
    text-align: center;
    margin-bottom: var(--cp1-space-2xl);
}
.cp1-section__label {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: var(--cp1-gold);
    margin-bottom: var(--cp1-space-sm);
}
.cp1-section__title {
    font-size: var(--cp1-text-3xl);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    margin-bottom: var(--cp1-space-md);
    color: var(--cp1-crimson);
}
.cp1-section--dark .cp1-section__title,
.cp1-section--black .cp1-section__title {
    color: var(--cp1-pure-white);
}
.cp1-section__cta {
    text-align: center;
    margin-top: var(--cp1-space-2xl);
}
.cp1-section__title::after {
    content: '';
    display: block;
    width: 60px;
    height: 3px;
    background: var(--cp1-gold);
    margin: var(--cp1-space-md) auto 0;
}
.cp1-section__subtitle {
    font-size: var(--cp1-text-lg);
    color: var(--cp1-steel);
    max-width: 600px;
    margin: 0 auto;
}

/* --- Product Card: Hybrid A Dark Industrial --- */
@property --border-angle {
    syntax: "<angle>";
    inherits: false;
    initial-value: 0deg;
}

/* Stagger entrance — hidden by default, revealed by IntersectionObserver */
.cp1-product-card-glow {
    opacity: 0;
    transform: translateY(40px) scale(0.97);
}
.cp1-product-card-glow.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
    transition: opacity 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* Glowing border wrapper */
.cp1-product-card-glow {
    position: relative;
    border-radius: var(--cp1-radius-md);
    padding: 2px;
    background: rgba(255,255,255,0.06);
    transition: all 0.4s ease;
}
.cp1-product-card-glow:hover {
    background: conic-gradient(
        from var(--border-angle, 0deg),
        var(--cp1-crimson),
        var(--cp1-gold),
        var(--cp1-crimson-deep),
        var(--cp1-gold-muted),
        var(--cp1-crimson)
    );
    animation: cp1-border-rotate 3s linear infinite;
}
/* Outer glow blur */
.cp1-product-card-glow::before {
    content: '';
    position: absolute;
    inset: -4px;
    border-radius: calc(var(--cp1-radius-md) + 4px);
    background: conic-gradient(
        from var(--border-angle, 0deg),
        var(--cp1-crimson),
        var(--cp1-gold),
        var(--cp1-crimson-deep),
        var(--cp1-gold-muted),
        var(--cp1-crimson)
    );
    opacity: 0;
    filter: blur(14px);
    transition: opacity 0.4s ease;
    z-index: -1;
}
.cp1-product-card-glow:hover::before {
    opacity: 0.35;
    animation: cp1-border-rotate 3s linear infinite;
}
@keyframes cp1-border-rotate {
    to { --border-angle: 360deg; }
}

/* Dark card base */
.cp1-product-card {
    background: var(--cp1-charcoal);
    border-radius: var(--cp1-radius-md);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    position: relative;
    transition: transform 0.3s ease;
}
.cp1-product-card-glow:hover .cp1-product-card {
    transform: translateY(-2px);
}

/* Image area */
a.cp1-product-card__image,
.cp1-product-card__image {
    display: block;
    position: relative;
    overflow: hidden;
}
.cp1-product-card__image img {
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    display: block;
    transition: transform 0.6s ease;
    filter: brightness(0.85);
}
.cp1-product-card-glow:hover .cp1-product-card__image img {
    transform: scale(1.06);
    filter: brightness(0.95);
}
/* Dark gradient bleed into body */
.cp1-product-card__image::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 40%;
    background: linear-gradient(to top, var(--cp1-charcoal), transparent);
    pointer-events: none;
    z-index: 1;
}

/* Price tag corner notch */
.cp1-product-card__price-tag {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 4;
    background: rgba(13,13,13,0.9);
    color: var(--cp1-gold);
    padding: 0.5rem 1rem 0.5rem 1.5rem;
    clip-path: polygon(20px 0, 100% 0, 100% 100%, 0 100%);
    font-family: var(--cp1-font-heading);
    font-weight: 700;
    font-size: 1.125rem;
    line-height: 1;
    transition: all var(--cp1-transition);
}
.cp1-product-card__price-tag small {
    display: block;
    font-size: 0.5625rem;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--cp1-pure-white);
    margin-bottom: 2px;
}
.cp1-product-card-glow:hover .cp1-product-card__price-tag {
    background: rgba(155,17,24,0.9);
    color: var(--cp1-pure-white);
}

/* Badges */
.cp1-product-card__badges {
    position: absolute;
    top: var(--cp1-space-sm);
    left: var(--cp1-space-sm);
    display: flex;
    flex-direction: column;
    gap: var(--cp1-space-xs);
    z-index: 4;
}
.cp1-badge {
    display: inline-flex;
    padding: 4px 10px;
    font-family: var(--cp1-font-heading);
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border-radius: 2px;
    border: 1px solid rgba(255,255,255,0.1);
}
.cp1-badge--gold {
    background: rgba(212,168,19,0.8);
    color: var(--cp1-black);
    border-color: rgba(212,168,19,0.9);
}
.cp1-badge--crimson {
    background: rgba(155,17,24,0.8);
    color: var(--cp1-pure-white);
    border-color: rgba(155,17,24,0.9);
}

/* Body */
.cp1-product-card__body {
    padding: 0.625rem 1.25rem 1.5rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* Body inner — holds default text + HUD, swaps on hover */
.cp1-product-card__body-inner {
    position: relative;
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 5rem;
}
/* Default text (roof + title) — fades out on hover */
.cp1-product-card__body-default {
    opacity: 1;
    transform: translateY(0);
    transition: all 0.3s ease;
}
.cp1-product-card-glow:hover .cp1-product-card__body-default {
    opacity: 0;
    transform: translateY(-8px);
    pointer-events: none;
}
/* HUD specs — hidden by default, fades in on hover */
.cp1-product-card__hud {
    position: absolute;
    inset: 0;
    display: flex;
    gap: 1.25rem;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transform: translateY(8px);
    transition: all 0.3s ease 0.05s;
    pointer-events: none;
}
.cp1-product-card-glow:hover .cp1-product-card__hud {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}
.cp1-product-card__hud-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
}
.cp1-product-card__hud-label {
    font-family: var(--cp1-font-heading);
    font-size: 0.625rem;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--cp1-gold);
}
.cp1-product-card__hud-value {
    font-family: var(--cp1-font-heading);
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--cp1-pure-white);
    white-space: nowrap;
}
.cp1-product-card__hud-divider {
    width: 1px;
    height: 28px;
    background: rgba(255,255,255,0.15);
    align-self: center;
}

.cp1-product-card__roof {
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--cp1-gold-muted);
    font-weight: 600;
    margin-bottom: 4px;
}
.cp1-product-card__title {
    font-size: var(--cp1-text-lg);
    font-family: var(--cp1-font-heading);
    font-weight: 700;
    line-height: 1.25;
    color: var(--cp1-pure-white);
    margin-bottom: auto;
}
.cp1-product-card__title a {
    color: inherit;
    transition: color var(--cp1-transition);
}
.cp1-product-card__title a:hover { color: var(--cp1-gold); }

/* Footer with CTA button */
.cp1-product-card__footer {
    margin-top: 1.25rem;
}
.cp1-product-card__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 100%;
    padding: 0.625rem 1rem;
    background: transparent;
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: var(--cp1-radius-sm);
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--cp1-pure-white);
    cursor: pointer;
    transition: all var(--cp1-transition);
}
.cp1-product-card__cta:hover {
    background: var(--cp1-crimson);
    border-color: var(--cp1-crimson);
    box-shadow: 0 4px 20px rgba(155,17,24,0.3);
}
.cp1-product-card__cta svg {
    transition: transform var(--cp1-transition);
}
.cp1-product-card__cta:hover svg { transform: translateX(3px); }

/* Product Grid */
.cp1-product-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--cp1-space-xl);
}
@media (max-width: 1024px) {
    .cp1-category-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 768px) {
    .cp1-product-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
    .cp1-product-grid { grid-template-columns: 1fr; }
}

/* --- Filter Bar --- */
.cp1-filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: var(--cp1-space-sm);
    margin-bottom: var(--cp1-space-2xl);
    padding: var(--cp1-space-lg) 0;
    border-bottom: 1px solid var(--cp1-graphite);
}
.cp1-filter-btn {
    padding: var(--cp1-space-sm) var(--cp1-space-lg);
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 100px;
    color: var(--cp1-steel-light);
    background: transparent;
    transition: all var(--cp1-transition);
    cursor: pointer;
}
.cp1-filter-btn:hover {
    border-color: var(--cp1-crimson);
    color: var(--cp1-pure-white);
    background: rgba(155,17,24,0.1);
}
.cp1-filter-btn.is-active {
    background: var(--cp1-crimson);
    border-color: var(--cp1-crimson);
    color: var(--cp1-pure-white);
}
.cp1-filter-btn__count {
    opacity: 0.6;
    font-weight: 400;
    margin-left: 4px;
}

/* --- Single Product --- */
@media (max-width: 1024px) {
    .cp1-category-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 768px) {
    }



/* Specs Table */
.cp1-specs {
    margin-bottom: var(--cp1-space-md);
}
.cp1-specs__title {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-sm);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding-bottom: var(--cp1-space-xs);
    border-bottom: 2px solid var(--cp1-gold);
    margin-bottom: var(--cp1-space-sm);
    color: var(--cp1-pure-white);
}
.cp1-specs__table {
    width: 100%;
}
.cp1-specs__row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--cp1-space-xs) 0;
    border-bottom: 1px solid var(--cp1-graphite);
}
.cp1-specs__label {
    font-size: var(--cp1-text-xs);
    color: var(--cp1-steel);
    font-weight: 600;
}
.cp1-specs__value {
    font-size: var(--cp1-text-xs);
    font-weight: 600;
    color: var(--cp1-pure-white);
}

/* Color Swatches */
.cp1-swatches {
    margin-bottom: var(--cp1-space-md);
}
.cp1-swatches__title {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-sm);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding-bottom: var(--cp1-space-xs);
    border-bottom: 2px solid var(--cp1-gold);
    margin-bottom: var(--cp1-space-sm);
    color: var(--cp1-pure-white);
}
.cp1-swatch-row {
    display: flex;
    align-items: center;
    gap: var(--cp1-space-sm);
    padding: var(--cp1-space-xs) 0;
    border-bottom: 1px solid var(--cp1-graphite);
}
.cp1-swatch-row__label {
    font-size: var(--cp1-text-sm);
    color: var(--cp1-steel);
    min-width: 100px;
}
.cp1-swatch-row__color {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2px solid var(--cp1-graphite);
    flex-shrink: 0;
}
.cp1-swatch-row__name {
    font-size: var(--cp1-text-sm);
    font-weight: 600;
    color: var(--cp1-pure-white);
}

/* Quote CTA Box */
.cp1-quote-box {
    background: var(--cp1-charcoal);
    color: var(--cp1-pure-white);
    padding: var(--cp1-space-md);
    border-radius: var(--cp1-radius-md);
    text-align: center;
    margin-top: var(--cp1-space-md);
    border-top: 2px solid var(--cp1-crimson);
}
.cp1-quote-box__title {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-base);
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: var(--cp1-space-2xs);
    color: var(--cp1-pure-white);
}
.cp1-quote-box__subtitle {
    font-size: var(--cp1-text-xs);
    color: var(--cp1-steel-light);
    margin-bottom: var(--cp1-space-sm);
}
.cp1-quote-box .cp1-btn {
    width: 100%;
    justify-content: center;
}
.cp1-quote-box__phone {
    margin-top: var(--cp1-space-md);
    font-size: var(--cp1-text-sm);
    color: var(--cp1-steel-light);
}
.cp1-quote-box__phone a {
    color: var(--cp1-gold);
    font-weight: 600;
}

/* Doors & Windows */
.cp1-details {
    margin-bottom: var(--cp1-space-md);
}
.cp1-details__title {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-sm);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding-bottom: var(--cp1-space-xs);
    border-bottom: 2px solid var(--cp1-gold);
    margin-bottom: var(--cp1-space-sm);
    color: var(--cp1-pure-white);
}


/* Product Description */
.cp1-product__description {
    margin-top: var(--cp1-space-2xl);
    padding-top: var(--cp1-space-2xl);
    border-top: 1px solid #E0E0E0;
    color: #444;
    line-height: 1.8;
    font-size: var(--cp1-text-base);
}
/* First h2 = "About This Building" */
.cp1-product__description > h2:first-child {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-2xl);
    font-weight: 800;
    color: var(--cp1-charcoal);
    margin-bottom: var(--cp1-space-lg);
    text-transform: uppercase;
    letter-spacing: 0.02em;
}
.cp1-product__description h2 {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xl);
    font-weight: 700;
    color: var(--cp1-charcoal);
    margin: var(--cp1-space-2xl) 0 var(--cp1-space-md);
    padding-bottom: var(--cp1-space-xs);
    border-bottom: 2px solid var(--cp1-crimson);
    display: inline-block;
}
.cp1-product__description h2 strong { font-weight: inherit; }
.cp1-product__description p {
    margin-bottom: var(--cp1-space-md);
    line-height: 1.8;
    color: #555;
}
.cp1-product__description a {
    color: var(--cp1-crimson);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.cp1-product__description a:hover { color: var(--cp1-charcoal); }
/* Kill ALL old Bootstrap classes */
.cp1-product__description div[class*="richtext"],
.cp1-product__description div[class*="col-"],
.cp1-product__description div[class*="row"],
.cp1-product__description div[class*="tab-"],
.cp1-product__description div[class*="rich-text"],
.cp1-product__description div[class*="px-"],
.cp1-product__description div[class*="py-"],
.cp1-product__description div[class*="my-"],
.cp1-product__description div[class*="mx-"] {
    all: unset !important;
    display: block !important;
    color: inherit !important;
    background: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
/* Specs wrapper — the bg-light div gets a dark card look */
.cp1-product__description .bg-light {
    all: unset !important;
    display: block !important;
    background: rgba(255,255,255,0.03) !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
    border-radius: var(--cp1-radius-md) !important;
    padding: var(--cp1-space-xl) !important;
    margin-top: var(--cp1-space-2xl) !important;
}
/* Bold labels (Front End, Back End, etc.) */
.cp1-product__description b,
.cp1-product__description strong:only-child {
    display: block;
    color: var(--cp1-charcoal);
    font-weight: 700;
    font-size: 0.85rem;
    margin-top: var(--cp1-space-lg);
    margin-bottom: var(--cp1-space-xs);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-family: var(--cp1-font-heading);
}
.cp1-product__description h2 + b,
.cp1-product__description h2 + strong {
    margin-top: var(--cp1-space-md);
}
/* Don't apply block-label style to strong inside paragraphs */
.cp1-product__description p strong,
.cp1-product__description p b {
    display: inline;
    color: var(--cp1-charcoal);
    font-weight: 600;
    font-size: inherit;
    margin: 0;
    text-transform: none;
    letter-spacing: normal;
    font-family: inherit;
}
/* Spec lists — 2-col grid with crimson dots */
.cp1-product__description ul {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--cp1-space-md);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--cp1-space-xs) var(--cp1-space-lg);
}
.cp1-product__description ul li {
    position: relative;
    padding-left: 1.4em;
    color: #555;
    font-size: var(--cp1-text-sm);
    line-height: 1.7;
}
.cp1-product__description ul li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 6px;
    height: 6px;
    background: var(--cp1-crimson);
    border-radius: 50%;
}
/* Color values in italic */
.cp1-product__description ul li i {
    color: var(--cp1-crimson);
    font-style: normal;
    font-weight: 600;
}
@media (max-width: 640px) {
    .cp1-product__description ul {
        grid-template-columns: 1fr;
    }
}


/* --- Product Carousel --- */
.cp1-carousel {
    position: relative;
    overflow: hidden;
}
.cp1-carousel__track {
    display: flex;
    transition: transform 0.45s cubic-bezier(0.25, 0.8, 0.25, 1);
    gap: var(--cp1-space-lg);
}
.cp1-carousel__slide {
    flex: 0 0 calc(33.333% - var(--cp1-space-lg) * 2 / 3);
    min-width: 0;
}
.cp1-carousel__slide .cp1-product-card {
    height: 100%;
}
@media (max-width: 1024px) {
    .cp1-carousel__slide {
        flex: 0 0 calc(50% - var(--cp1-space-lg) / 2);
    }
}
@media (max-width: 640px) {
    .cp1-carousel__slide {
        flex: 0 0 85%;
    }
}
.cp1-carousel__btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--cp1-charcoal);
    border: 1px solid rgba(255,255,255,0.15);
    color: var(--cp1-pure-white);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 2;
    transition: background 0.2s, border-color 0.2s;
    box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.cp1-carousel__btn:hover {
    background: var(--cp1-crimson);
    border-color: var(--cp1-crimson);
}
.cp1-carousel__btn:disabled {
    opacity: 0.3;
    cursor: default;
    pointer-events: none;
}
.cp1-carousel__btn--prev { left: var(--cp1-space-sm); }
.cp1-carousel__btn--next { right: var(--cp1-space-sm); }

/* Override old Bootstrap classes inside product descriptions */
.cp1-product__description .bg-light,
.cp1-product__description [class*="bg-light"] {
    background: #F5F5F5 !important;
    background-color: #F5F5F5 !important;
    border: 1px solid #E0E0E0 !important;
    border-radius: var(--cp1-radius-md) !important;
    padding: var(--cp1-space-lg) !important;
    margin-top: var(--cp1-space-xl) !important;
}
.cp1-product__description div[class*="col-"],
.cp1-product__description div[class*="row"],
.cp1-product__description div[class*="tab-"],
.cp1-product__description div[class*="rich-text"],
.cp1-product__description div[class*="richtext"],
.cp1-product__description div[class*="px-"],
.cp1-product__description div[class*="py-"],
.cp1-product__description div[class*="my-"] {
    background: transparent !important;
    color: inherit !important;
    padding: 0 !important;
    margin: 0 !important;
    float: none !important;
    width: auto !important;
    max-width: none !important;
    display: block !important;
    opacity: 1 !important;
    border: none !important;
}

/* Related Products */
.cp1-related {
    padding: var(--cp1-space-3xl) 0;
    background: var(--cp1-black);
    margin-top: var(--cp1-space-3xl);
}
.cp1-related .cp1-product-card {
    background: var(--cp1-pure-white);
    border: 1px solid #E0E0E0;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
.cp1-related .cp1-product-card__title {
    color: var(--cp1-charcoal);
}
.cp1-related .cp1-product-card__roof {
    color: #888;
}
.cp1-related .cp1-product-card__price-tag {
    color: var(--cp1-crimson);
}
.cp1-related .cp1-product-card__hud-label {
    color: #888;
}
.cp1-related .cp1-product-card__hud-value {
    color: var(--cp1-charcoal);
}
.cp1-related .cp1-product-card__title a {
    color: var(--cp1-charcoal);
}
.cp1-related .cp1-product-card__cta {
    color: var(--cp1-pure-white);
    border-color: var(--cp1-black);
    background: var(--cp1-black);
}
.cp1-related .cp1-product-card__cta:hover {
    background: var(--cp1-crimson);
    border-color: var(--cp1-crimson);
    color: var(--cp1-pure-white);
}
.cp1-related .cp1-product-card__hud-divider {
    background: rgba(0,0,0,0.1);
}
.cp1-related .cp1-product-card-glow {
    background: transparent;
}
.cp1-related .cp1-product-card__price-tag small {
    color: #888;
}
.cp1-related .cp1-section__label {
    color: var(--cp1-gold);
}
.cp1-related .cp1-section__title,
.cp1-related h2 {
    background: conic-gradient(
        from var(--border-angle, 0deg),
        var(--cp1-crimson),
        var(--cp1-gold),
        var(--cp1-crimson-deep, #7a0e13),
        var(--cp1-gold-muted, #b8941a),
        var(--cp1-crimson)
    );
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    background-clip: text !important;
    animation: cp1-border-rotate 3s linear infinite;
}
.cp1-related .cp1-section__title::after {
    background: linear-gradient(90deg, var(--cp1-crimson), var(--cp1-gold)) !important;
}
.cp1-related .cp1-carousel__btn {
    background: var(--cp1-pure-white);
    border: 1px solid #DDD;
    color: var(--cp1-charcoal);
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.cp1-related .cp1-carousel__btn:hover {
    background: var(--cp1-crimson);
    border-color: var(--cp1-crimson);
    color: var(--cp1-pure-white);
}

/* --- Category Grid --- */
.cp1-category-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: var(--cp1-space-lg);
    max-width: 70%;
    margin: 0 auto;
}
@media (max-width: 1024px) {
    .cp1-category-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 768px) {
    .cp1-category-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
    .cp1-category-grid { grid-template-columns: 1fr; }
}
.cp1-category-card {
    position: relative;
    aspect-ratio: 1 / 1;
    border-radius: var(--cp1-radius-md);
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    background: var(--cp1-graphite);
}
.cp1-category-card img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}
.cp1-category-card:hover img { transform: scale(1.08); }
.cp1-category-card__overlay {
    position: relative;
    z-index: 1;
    width: 100%;
    padding: var(--cp1-space-lg);
    background: linear-gradient(transparent, rgba(13,13,13,0.9));
}
.cp1-category-card__name {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xl);
    font-weight: 700;
    color: var(--cp1-pure-white);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.cp1-category-card__count {
    font-size: var(--cp1-text-xs);
    color: var(--cp1-gold);
    margin-top: var(--cp1-space-xs);
}

/* --- Features Row --- */
.cp1-features {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--cp1-space-xl);
    text-align: center;
    max-width: 1100px;
    margin: 0 auto;
}
@media (max-width: 1024px) {
    .cp1-features { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
    .cp1-features { grid-template-columns: 1fr; max-width: 360px; }
}
.cp1-feature {
    padding: var(--cp1-space-xl) var(--cp1-space-lg);
    border-radius: 8px;
    transition: transform 0.2s ease, background 0.2s ease;
}
.cp1-feature:hover {
    transform: translateY(-4px);
    background: rgba(255, 255, 255, 0.04);
}
.cp1-feature:hover .cp1-feature__icon {
    color: var(--cp1-crimson-light);
    background: rgba(196, 22, 31, 0.12);
}
.cp1-feature__icon {
    width: 64px;
    height: 64px;
    margin: 0 auto var(--cp1-space-md);
    color: var(--cp1-gold);
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 50%;
    padding: 12px;
}
.cp1-feature__title {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-base);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: var(--cp1-space-sm);
}
.cp1-feature__text {
    font-size: var(--cp1-text-sm);
    color: var(--cp1-steel);
    line-height: 1.6;
}

/* --- Testimonials --- */
/* Carousel wrapper */
.cp1-reviews-carousel {
    overflow: hidden;
    position: relative;
}
.cp1-reviews-carousel__track {
    display: flex;
    gap: var(--cp1-space-lg);
    transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.cp1-testimonial {
    flex: 0 0 calc((100% - var(--cp1-space-lg) * 2) / 3);
    background: var(--cp1-graphite);
    padding: var(--cp1-space-xl);
    border-radius: var(--cp1-radius-md);
    border-left: 3px solid var(--cp1-gold);
    display: flex;
    flex-direction: column;
}
@media (max-width: 1024px) {
    .cp1-testimonial { flex: 0 0 calc((100% - var(--cp1-space-lg)) / 2); }
}
@media (max-width: 640px) {
    .cp1-testimonial { flex: 0 0 100%; }
}
.cp1-testimonial__stars {
    display: flex;
    gap: 2px;
    color: var(--cp1-gold);
    margin-bottom: var(--cp1-space-md);
}
.cp1-testimonial__text {
    font-size: var(--cp1-text-base);
    line-height: 1.7;
    color: var(--cp1-concrete);
    margin-bottom: var(--cp1-space-lg);
    font-style: italic;
    flex: 1;
}
.cp1-testimonial__footer {
    margin-top: auto;
}
.cp1-testimonial__author {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-sm);
    font-weight: 700;
    color: var(--cp1-pure-white);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.cp1-testimonial__location {
    font-size: var(--cp1-text-xs);
    color: var(--cp1-steel);
}

/* Carousel controls */
.cp1-reviews-carousel__controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--cp1-space-md);
    margin-top: var(--cp1-space-xl);
}
.cp1-reviews-carousel__btn {
    background: var(--cp1-graphite);
    border: 1px solid rgba(255,255,255,0.1);
    color: var(--cp1-concrete);
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s ease;
}
.cp1-reviews-carousel__btn:hover {
    background: var(--cp1-crimson);
    border-color: var(--cp1-crimson);
    color: var(--cp1-pure-white);
}
.cp1-reviews-carousel__dots {
    display: flex;
    gap: 6px;
    align-items: center;
}
.cp1-reviews-carousel__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: none;
    background: rgba(255,255,255,0.2);
    cursor: pointer;
    padding: 0;
    transition: all 0.3s ease;
}
.cp1-reviews-carousel__dot.active {
    background: var(--cp1-gold);
    width: 24px;
    border-radius: 4px;
}

/* --- CTA Banner --- */
.cp1-cta-banner {
    position: relative;
    background: var(--cp1-crimson);
    color: var(--cp1-pure-white);
    text-align: center;
    padding: var(--cp1-space-3xl) var(--cp1-space-lg);
    overflow: hidden;
}
.cp1-cta-banner__content {
    position: relative;
    z-index: 1;
}
.cp1-cta-banner__title {
    font-size: var(--cp1-text-3xl);
    text-transform: uppercase;
    color: var(--cp1-pure-white);
    margin-bottom: var(--cp1-space-md);
}
.cp1-cta-banner__text {
    font-size: var(--cp1-text-lg);
    opacity: 0.9;
    margin-bottom: var(--cp1-space-xl);
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

/* --- FAQ Accordion --- */
.cp1-accordion__item {
    background: var(--cp1-graphite);
    border-radius: var(--cp1-radius-md);
    margin-bottom: var(--cp1-space-sm);
    border-left: 3px solid var(--cp1-crimson);
    transition: border-color var(--cp1-transition);
}
.cp1-accordion__item:hover {
    border-left-color: var(--cp1-gold);
}
.cp1-accordion__item.is-open {
    border-left-color: var(--cp1-gold);
}
.cp1-accordion__trigger {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--cp1-space-lg) var(--cp1-space-xl);
    text-align: left;
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-lg);
    font-weight: 700;
    color: var(--cp1-pure-white);
    cursor: pointer;
    transition: color var(--cp1-transition);
}
.cp1-accordion__trigger:hover { color: var(--cp1-gold); }
.cp1-accordion__icon {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    color: var(--cp1-steel);
    transition: transform var(--cp1-transition), color var(--cp1-transition);
}
.cp1-accordion__item.is-open .cp1-accordion__icon {
    transform: rotate(180deg);
    color: var(--cp1-gold);
}
.cp1-accordion__content {
    display: none;
    padding: 0 var(--cp1-space-xl) var(--cp1-space-lg);
    color: var(--cp1-steel-light);
    line-height: 1.7;
}
.cp1-accordion__item.is-open .cp1-accordion__content {
    display: block;
}

/* --- State Map --- */
.cp1-state-map {
    max-width: 900px;
    margin: 0 auto var(--cp1-space-2xl);
    background: var(--cp1-charcoal);
    border-radius: var(--cp1-radius-lg);
    border: 1px solid var(--cp1-graphite);
    padding: var(--cp1-space-xl) var(--cp1-space-xl) var(--cp1-space-lg);
    position: relative;
}
.cp1-state-map__header {
    text-align: center;
    margin-bottom: var(--cp1-space-lg);
}
.cp1-state-map__count {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-2xl);
    color: var(--cp1-pure-white);
    text-transform: uppercase;
    margin-bottom: var(--cp1-space-xs);
}
.cp1-state-map__count strong { color: var(--cp1-gold); }
.cp1-state-map__hint {
    font-size: var(--cp1-text-sm);
    color: var(--cp1-steel);
}
.cp1-state-map__svg-wrap {
    position: relative;
}
.cp1-state-map__svg { width: 100%; height: auto; }
.cp1-state-map__svg path {
    fill: var(--cp1-graphite);
    stroke: #fff;
    stroke-width: 0.5;
    transition: fill var(--cp1-transition);
    cursor: default;
    opacity: 0;
}
.cp1-state-map.is-visible .cp1-state-map__svg path {
    animation: stateReveal 0.5s ease-out forwards;
}
@keyframes stateReveal {
    from { opacity: 0; transform: scale(0.95); }
    to { opacity: 1; transform: scale(1); }
}
.cp1-state-map__svg path.is-served {
    fill: var(--cp1-crimson);
    cursor: pointer;
}
.cp1-state-map.is-visible .cp1-state-map__svg path.is-served {
    animation: stateReveal 0.5s ease-out forwards, servedPulse 3s ease-in-out 1.5s infinite;
}
@keyframes servedPulse {
    0%, 100% { filter: brightness(1); }
    50% { filter: brightness(1.3); }
}
.cp1-state-map__svg path.is-served:hover {
    fill: var(--cp1-gold);
    animation: stateReveal 0.5s ease-out forwards !important;
}
.cp1-state-map__svg path:not(.is-served):hover {
    fill: rgba(255,255,255,0.08);
}
.cp1-state-map__tooltip {
    position: absolute;
    pointer-events: none;
    background: var(--cp1-black);
    color: var(--cp1-pure-white);
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 6px 12px;
    border-radius: var(--cp1-radius-sm);
    border: 1px solid var(--cp1-gold);
    white-space: nowrap;
    opacity: 0;
    transition: opacity 150ms ease;
    z-index: 10;
    transform: translate(-50%, -100%);
    margin-top: -8px;
}
.cp1-state-map__tooltip.is-visible { opacity: 1; }
.cp1-state-map__legend {
    display: flex;
    justify-content: center;
    gap: var(--cp1-space-xl);
    margin-top: var(--cp1-space-lg);
    padding-top: var(--cp1-space-md);
    border-top: 1px solid var(--cp1-graphite);
}
.cp1-state-map__legend-item {
    display: flex;
    align-items: center;
    gap: var(--cp1-space-sm);
    font-size: var(--cp1-text-xs);
    color: var(--cp1-steel-light);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.cp1-state-map__legend-item::before {
    content: '';
    width: 14px;
    height: 14px;
    border-radius: 2px;
}
.cp1-state-map__legend-item--served::before {
    background: var(--cp1-crimson);
}
.cp1-state-map__legend-item--other::before {
    background: var(--cp1-graphite);
    border: 1px solid rgba(255,255,255,0.1);
}

.cp1-states-list {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: var(--cp1-space-sm);
    margin-top: var(--cp1-space-2xl);
}
@media (max-width: 768px) {
    .cp1-states-list { grid-template-columns: repeat(2, 1fr); }
}
.cp1-states-list a {
    display: flex;
    align-items: center;
    gap: var(--cp1-space-sm);
    padding: var(--cp1-space-md) var(--cp1-space-lg);
    font-size: var(--cp1-text-sm);
    font-weight: 600;
    color: var(--cp1-pure-white);
    background: var(--cp1-graphite);
    border-left: 3px solid var(--cp1-crimson);
    border-radius: var(--cp1-radius-sm);
    opacity: 0;
    transform: translateY(12px);
    transition: opacity 0.4s ease, transform 0.4s ease, border-color 0.2s, background 0.2s, box-shadow 0.2s;
}
.cp1-states-list.is-visible a {
    opacity: 1;
    transform: translateY(0);
}
.cp1-states-list a svg {
    color: var(--cp1-gold);
    flex-shrink: 0;
}
.cp1-states-list a:hover {
    border-left-color: var(--cp1-gold);
    background: var(--cp1-crimson);
    box-shadow: 0 4px 20px rgba(155,17,24,0.4);
}

/* --- Stats Bar --- */
.cp1-stats-bar {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--cp1-space-md);
    text-align: center;
    max-width: 1000px;
    margin: 0 auto;
}
@media (max-width: 768px) {
    .cp1-stats-bar { grid-template-columns: repeat(2, 1fr); }
}
.cp1-stat {
    padding: var(--cp1-space-xl) var(--cp1-space-md);
    background: var(--cp1-graphite);
    border-radius: var(--cp1-radius-md);
    border: 1px solid rgba(255,255,255,0.06);
}
.cp1-stat__number {
    display: block;
    font-family: var(--cp1-font-heading);
    font-size: clamp(2rem, 4vw, 3.5rem);
    font-weight: 800;
    color: var(--cp1-gold);
    line-height: 1;
    margin-bottom: var(--cp1-space-xs);
}
.cp1-stat__label {
    font-size: var(--cp1-text-sm);
    color: var(--cp1-steel-light);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

/* --- Process Steps --- */
.cp1-process {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 0;
}
.cp1-process__step {
    flex: 1;
    max-width: 320px;
    text-align: center;
    padding: var(--cp1-space-lg);
}
.cp1-process__number {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 800;
    color: var(--cp1-gold);
    letter-spacing: 0.1em;
    margin-bottom: var(--cp1-space-md);
}
.cp1-process__icon {
    width: 100px;
    height: 80px;
    margin: 0 auto var(--cp1-space-md);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(155,17,24,0.15);
    border: 2px solid var(--cp1-crimson);
    color: var(--cp1-crimson);
}
.cp1-process__title {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-lg);
    color: var(--cp1-pure-white);
    margin-bottom: var(--cp1-space-sm);
}
.cp1-process__text {
    font-size: var(--cp1-text-sm);
    color: var(--cp1-steel-light);
    line-height: 1.6;
}
.cp1-process__connector {
    display: flex;
    align-items: center;
    padding-top: 5rem;
    color: var(--cp1-graphite);
}
@media (max-width: 768px) {
    .cp1-process {
        flex-direction: column;
        align-items: center;
    }
    .cp1-process__connector {
        transform: rotate(90deg);
        padding-top: 0;
    }
}

/* --- Regional Coverage --- */
.cp1-regions {
    display: grid;
    gap: var(--cp1-space-md);
}
.cp1-region {
    background: var(--cp1-graphite);
    border-radius: var(--cp1-radius-md);
    border: 1px solid rgba(255,255,255,0.06);
    border-left: 3px solid var(--cp1-crimson);
    overflow: hidden;
    transition: border-color var(--cp1-transition);
}
.cp1-region:hover {
    border-left-color: var(--cp1-gold);
}
.cp1-region__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: var(--cp1-space-lg) var(--cp1-space-xl);
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.cp1-region__title {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xl);
    color: var(--cp1-pure-white);
    margin-bottom: var(--cp1-space-xs);
}
.cp1-region__desc {
    font-size: var(--cp1-text-sm);
    color: var(--cp1-steel);
    max-width: 600px;
}
.cp1-region__count {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-sm);
    color: var(--cp1-gold);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    white-space: nowrap;
    padding: var(--cp1-space-xs) var(--cp1-space-md);
    background: rgba(212,168,19,0.1);
    border-radius: var(--cp1-radius-sm);
}
.cp1-region__states {
    display: flex;
    flex-wrap: wrap;
    gap: var(--cp1-space-xs);
    padding: var(--cp1-space-lg) var(--cp1-space-xl);
}
.cp1-region__state {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: var(--cp1-space-xs) var(--cp1-space-md);
    font-size: var(--cp1-text-sm);
    color: var(--cp1-steel-light);
    background: var(--cp1-charcoal);
    border-radius: var(--cp1-radius-sm);
    border: 1px solid rgba(255,255,255,0.06);
    transition: all var(--cp1-transition);
}
.cp1-region__state svg {
    color: var(--cp1-crimson);
    transition: transform var(--cp1-transition);
}
.cp1-region__state:hover {
    background: var(--cp1-crimson);
    color: var(--cp1-pure-white);
    border-color: var(--cp1-crimson);
}
.cp1-region__state:hover svg {
    color: var(--cp1-pure-white);
    transform: translateX(2px);
}
@media (max-width: 768px) {
    .cp1-region__header {
        flex-direction: column;
        gap: var(--cp1-space-sm);
    }
}

/* --- What's Included Grid --- */
.cp1-includes-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--cp1-space-md);
}
@media (max-width: 768px) {
    .cp1-includes-grid { grid-template-columns: 1fr; }
}
.cp1-include {
    padding: var(--cp1-space-xl);
    background: var(--cp1-graphite);
    border-radius: var(--cp1-radius-md);
    border: 1px solid rgba(255,255,255,0.06);
    transition: transform 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}
.cp1-include:hover {
    border-color: rgba(255,255,255,0.1);
    transform: translateY(-4px);
    background: rgba(255, 255, 255, 0.04);
}
.cp1-include__icon {
    color: var(--cp1-gold);
    margin-bottom: var(--cp1-space-md);
    transition: color 0.2s ease;
}
.cp1-include:hover .cp1-include__icon {
    color: var(--cp1-crimson-light);
}
.cp1-include__title {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-base);
    color: var(--cp1-pure-white);
    margin-bottom: var(--cp1-space-sm);
}
.cp1-include__text {
    font-size: var(--cp1-text-sm);
    color: var(--cp1-steel);
    line-height: 1.6;
}

/* --- Blog Hero --- */
.cp1-blog-hero {
    background: url(/wp-content/uploads/2024/04/workshop.438d751937b3-1024x768.webp) center/cover no-repeat;
    padding: 64px 0 56px;
    position: relative;
    overflow: hidden;
}
.cp1-blog-hero::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(0,0,0,0.75) 0%, rgba(0,0,0,0.6) 100%);
    pointer-events: none;
}
.cp1-blog-hero__inner {
    max-width: 640px;
    position: relative;
    text-align: center;
    margin: 0 auto;
    z-index: 1;
}
.cp1-blog-hero__badge {
    display: inline-block;
    font-family: var(--cp1-font-heading);
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--cp1-gold);
    background: rgba(212,168,19,0.2);
    border: 1px solid rgba(212,168,19,0.4);
    padding: 5px 16px;
    border-radius: 999px;
    margin-bottom: 20px;
}
.cp1-blog-hero__title {
    font-family: var(--cp1-font-heading);
    font-size: 2.8rem;
    font-weight: 900;
    color: var(--cp1-pure-white);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    line-height: 1.05;
    margin: 0 0 16px;
}
.cp1-blog-hero__subtitle {
    font-size: 1rem;
    color: rgba(255,255,255,0.8);
    line-height: 1.65;
    margin: 0 0 28px;
}
.cp1-blog-hero__search {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: rgba(255,255,255,0.15);
    border: 1px solid rgba(255,255,255,0.25);
    border-radius: 999px;
    padding: 10px 22px;
    max-width: 380px;
    width: 100%;
    transition: background 0.2s ease, border-color 0.2s ease;
}
.cp1-blog-hero__search:focus-within {
    background: rgba(255,255,255,0.22);
    border-color: rgba(255,255,255,0.4);
}
.cp1-blog-hero__search svg {
    color: rgba(255,255,255,0.6);
    flex-shrink: 0;
}
.cp1-blog-hero__input {
    background: none;
    border: none;
    outline: none;
    color: var(--cp1-pure-white);
    font-size: 0.85rem;
    width: 100%;
}
.cp1-blog-hero__input::placeholder {
    color: rgba(255,255,255,0.5);
}
@media (max-width: 768px) {
    .cp1-blog-hero { padding: 48px 0 40px; }
    .cp1-blog-hero__title { font-size: 2rem; }
    .cp1-blog-hero__subtitle { font-size: 0.9rem; }
}
@media (max-width: 480px) {
    .cp1-blog-hero { padding: 36px 0 32px; }
    .cp1-blog-hero__title { font-size: 1.6rem; }
    .cp1-blog-hero__search { padding: 8px 16px; }
}

/* --- Blog Featured Post --- */
.cp1-blog-featured-section {
    padding-bottom: 0;
}
.cp1-blog-featured {
    display: grid;
    grid-template-columns: 55% 1fr;
    gap: 0;
    border-radius: var(--cp1-radius-lg);
    overflow: hidden;
    border: 1px solid #e8e8e8;
    box-shadow: 0 4px 24px rgba(0,0,0,0.07);
    background: var(--cp1-pure-white);
}
.cp1-blog-featured__image {
    display: block;
    aspect-ratio: 3 / 2;
    overflow: hidden;
}
.cp1-blog-featured__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
    display: block;
}
.cp1-blog-featured:hover .cp1-blog-featured__image img {
    transform: scale(1.04);
}
.cp1-blog-featured__body {
    padding: var(--cp1-space-2xl) var(--cp1-space-2xl);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: var(--cp1-space-md);
}
.cp1-blog-featured__meta {
    font-size: var(--cp1-text-xs);
    color: var(--cp1-steel);
    display: flex;
    align-items: center;
    gap: var(--cp1-space-sm);
}
.cp1-blog-featured__meta-sep {
    color: #ccc;
}
.cp1-blog-featured__title {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-2xl);
    font-weight: 800;
    line-height: 1.25;
    margin: 0;
}
.cp1-blog-featured__title a {
    color: var(--cp1-charcoal);
    transition: color var(--cp1-transition);
    text-decoration: none;
}
.cp1-blog-featured__title a:hover {
    color: var(--cp1-crimson);
}
.cp1-blog-featured__excerpt {
    font-size: var(--cp1-text-base);
    color: #555;
    line-height: 1.7;
    margin: 0;
}
.cp1-blog-featured__link {
    display: inline-flex;
    align-items: center;
    gap: 0.4em;
    font-family: var(--cp1-font-heading);
    font-weight: 700;
    font-size: var(--cp1-text-sm);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--cp1-crimson);
    text-decoration: none;
    transition: gap var(--cp1-transition), color var(--cp1-transition);
    margin-top: var(--cp1-space-sm);
    align-self: flex-start;
}
.cp1-blog-featured__link:hover {
    color: var(--cp1-crimson-deep);
    gap: 0.7em;
}
@media (max-width: 900px) {
    .cp1-blog-featured {
        grid-template-columns: 1fr;
    }
    .cp1-blog-featured__image {
        aspect-ratio: 16 / 9;
    }
    .cp1-blog-featured__body {
        padding: var(--cp1-space-xl) var(--cp1-space-lg);
    }
}

/* --- Category Badge --- */
.cp1-blog-badge {
    display: inline-block;
    background: var(--cp1-crimson);
    color: var(--cp1-pure-white);
    font-family: var(--cp1-font-heading);
    font-weight: 700;
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 0.25em 0.75em;
    border-radius: 999px;
    line-height: 1.6;
    flex-shrink: 0;
}
.cp1-blog-badge--sm {
    font-size: 0.625rem;
    padding: 0.2em 0.65em;
}

/* --- Blog Category Filters --- */
.cp1-blog-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: var(--cp1-space-xl);
}
.cp1-blog-filter {
    font-family: var(--cp1-font-heading);
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--cp1-steel);
    background: var(--cp1-pure-white);
    border: 1px solid #ddd;
    border-radius: 999px;
    padding: 6px 18px;
    cursor: pointer;
    transition: all 0.2s ease;
}
.cp1-blog-filter:hover {
    border-color: var(--cp1-crimson);
    color: var(--cp1-crimson);
}
.cp1-blog-filter--active {
    background: var(--cp1-crimson);
    border-color: var(--cp1-crimson);
    color: var(--cp1-pure-white);
}
.cp1-blog-filter--active:hover {
    background: #7a0e13;
    border-color: #7a0e13;
    color: var(--cp1-pure-white);
}
/* --- Blog Grid (remaining posts) --- */
.cp1-blog-grid-section {
    background: #f7f7f7;
}
.cp1-blog-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--cp1-space-xl);
}
@media (max-width: 900px) {
    .cp1-blog-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
    .cp1-blog-grid { grid-template-columns: 1fr; }
}
.cp1-blog-card {
    background: var(--cp1-pure-white);
    border-radius: var(--cp1-radius-lg);
    overflow: hidden;
    border: 1px solid #eee;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
    transition: transform var(--cp1-transition-slow), box-shadow var(--cp1-transition-slow);
    display: flex;
    flex-direction: column;
}
.cp1-blog-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 32px rgba(0,0,0,0.12);
}
.cp1-blog-card__image {
    display: block;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    flex-shrink: 0;
}
.cp1-blog-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
    display: block;
}
.cp1-blog-card:hover .cp1-blog-card__image img {
    transform: scale(1.05);
}
.cp1-blog-card__body {
    padding: var(--cp1-space-lg);
    display: flex;
    flex-direction: column;
    gap: var(--cp1-space-sm);
    flex: 1;
}
.cp1-blog-card__title {
    font-size: var(--cp1-text-lg);
    font-family: var(--cp1-font-heading);
    font-weight: 700;
    line-height: 1.3;
    margin: 0;
}
.cp1-blog-card__title a {
    color: var(--cp1-charcoal);
    text-decoration: none;
    transition: color var(--cp1-transition);
}
.cp1-blog-card__title a:hover {
    color: var(--cp1-crimson);
}
.cp1-blog-card__excerpt {
    font-size: var(--cp1-text-sm);
    color: #666;
    line-height: 1.65;
    margin: 0;
    flex: 1;
}
.cp1-blog-card__meta {
    font-size: var(--cp1-text-xs);
    color: var(--cp1-steel);
    display: flex;
    align-items: center;
    gap: var(--cp1-space-sm);
    margin-top: auto;
    padding-top: var(--cp1-space-sm);
    border-top: 1px solid #f0f0f0;
}
.cp1-blog-card__meta-sep {
    color: #ccc;
}

.cp1-blog-card__link {
    display: inline-flex;
    align-items: center;
    gap: 0.3em;
    font-family: var(--cp1-font-heading);
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--cp1-crimson);
    text-decoration: none;
    margin-top: auto;
    padding-top: var(--cp1-space-sm);
    transition: gap 0.2s ease;
}
.cp1-blog-card__link:hover {
    gap: 0.6em;
}
/* --- Blog CTA Banner --- */
.cp1-blog-cta {
    background: var(--cp1-charcoal);
    padding: var(--cp1-space-3xl) 0;
}
.cp1-blog-cta__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--cp1-space-2xl);
    flex-wrap: wrap;
}
.cp1-blog-cta__title {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-2xl);
    font-weight: 800;
    color: var(--cp1-pure-white);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    margin: 0 0 var(--cp1-space-sm);
}
.cp1-blog-cta__subtitle {
    font-size: var(--cp1-text-base);
    color: var(--cp1-steel-light);
    margin: 0;
    line-height: 1.6;
}
.cp1-blog-cta__actions {
    display: flex;
    align-items: center;
    gap: var(--cp1-space-xl);
    flex-shrink: 0;
    flex-wrap: wrap;
}
.cp1-blog-cta__phone {
    display: inline-flex;
    align-items: center;
    gap: var(--cp1-space-sm);
    font-family: var(--cp1-font-heading);
    font-weight: 700;
    font-size: var(--cp1-text-lg);
    color: var(--cp1-gold);
    text-decoration: none;
    transition: color var(--cp1-transition);
}
.cp1-blog-cta__phone:hover {
    color: #e8ba18;
}
@media (max-width: 768px) {
    .cp1-blog-cta__inner {
        flex-direction: column;
        text-align: center;
        align-items: center;
    }
    .cp1-blog-cta__actions {
        justify-content: center;
    }
}

/* Blog single — magazine layout */
.cp1-post-hero {
    position: relative;
    min-height: 440px;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
}
.cp1-post-hero__img {
    position: absolute;
    inset: 0;
}
.cp1-post-hero__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.cp1-post-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.88) 0%, rgba(0,0,0,0.55) 50%, rgba(0,0,0,0.4) 100%);
}
.cp1-post-hero__inner {
    position: relative;
    z-index: 1;
    max-width: 720px;
    padding-bottom: 52px;
}
.cp1-post-hero__title {
    font-family: var(--cp1-font-heading);
    font-size: 2.6rem;
    font-weight: 900;
    color: var(--cp1-pure-white);
    line-height: 1.08;
    margin: 14px 0 16px;
    text-transform: uppercase;
    letter-spacing: 0.01em;
}
.cp1-post-hero__meta {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.82rem;
    color: rgba(255,255,255,0.7);
}

/* Progress bar */
.cp1-post-progress {
    position: sticky;
    top: 0;
    z-index: 100;
    height: 3px;
    background: var(--cp1-crimson);
    width: 0%;
    transition: width 0.1s linear;
}

/* Two-column layout */
.cp1-post-layout {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 48px;
    max-width: 1080px;
    margin: 0 auto;
    padding: 48px 24px 32px;
}

/* Sidebar */
.cp1-post-sidebar {
    position: sticky;
    top: 24px;
    align-self: start;
    padding-top: 8px;
}
.cp1-post-toc__title {
    font-family: var(--cp1-font-heading);
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--cp1-steel);
    margin: 0 0 14px;
    padding-bottom: 10px;
    border-bottom: 2px solid #eee;
}
.cp1-post-toc__nav {
    display: flex;
    flex-direction: column;
    gap: 0;
}
.cp1-post-toc__nav a {
    display: block;
    font-size: 0.76rem;
    color: #666;
    text-decoration: none;
    padding: 6px 0 6px 12px;
    border-left: 2px solid #eee;
    transition: all 0.2s ease;
    line-height: 1.4;
}
.cp1-post-toc__nav a:hover,
.cp1-post-toc__nav a.active {
    color: var(--cp1-crimson);
    border-left-color: var(--cp1-crimson);
}
.cp1-post-sidebar__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 28px;
    padding: 12px 20px;
    background: var(--cp1-crimson);
    color: var(--cp1-pure-white);
    font-family: var(--cp1-font-heading);
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border-radius: 8px;
    text-decoration: none;
    transition: background 0.2s ease, transform 0.2s ease;
}
.cp1-post-sidebar__cta:hover {
    background: #7a0e13;
    transform: translateY(-1px);
}

/* Article content — light & airy */
.cp1-post {
    min-width: 0;
}
.cp1-post__content {
    font-size: 1.02rem;
    line-height: 1.85;
    color: #444;
}
.cp1-post__content h2 {
    font-family: var(--cp1-font-heading);
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--cp1-charcoal);
    margin: 2.8rem 0 1rem;
    padding-top: 1.5rem;
    border-top: 1px solid #eee;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}
.cp1-post__content h2:first-child {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}
.cp1-post__content h3 {
    font-family: var(--cp1-font-heading);
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--cp1-charcoal);
    margin: 1.8rem 0 0.6rem;
}
.cp1-post__content h4 {
    font-family: var(--cp1-font-heading);
    font-size: 0.95rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--cp1-crimson);
    margin: 1.5rem 0 0.5rem;
}
.cp1-post__content p {
    margin-bottom: 1.15rem;
}
.cp1-post__content > p:first-child {
    font-size: 1.12rem;
    color: #333;
    line-height: 1.7;
}
.cp1-post__content a {
    color: var(--cp1-crimson);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.cp1-post__content a:hover { color: #7a0e13; }
.cp1-post__content ul, .cp1-post__content ol {
    margin-bottom: 1.15rem;
    padding-left: 1.4rem;
}
.cp1-post__content ul { list-style: disc; }
.cp1-post__content ol { list-style: decimal; }
.cp1-post__content li {
    margin-bottom: 0.5rem;
    line-height: 1.7;
}
.cp1-post__content li b,
.cp1-post__content li strong,
.cp1-post__content p b,
.cp1-post__content p strong {
    color: var(--cp1-charcoal);
}
.cp1-post__content img {
    border-radius: 10px;
    margin: 1.5rem 0;
    max-width: 100%;
    height: auto;
}
.cp1-post__content blockquote {
    border-left: 3px solid var(--cp1-crimson);
    padding: 1rem 1.5rem;
    margin: 1.5rem 0;
    background: #f7f7f7;
    border-radius: 0 8px 8px 0;
    font-style: italic;
    color: #555;
}
.cp1-post__content hr {
    border: none;
    height: 1px;
    background: linear-gradient(90deg, transparent, #ddd, transparent);
    margin: 2.5rem 0;
}

.cp1-post__inline-img {
    margin: 2.5rem -40px;
    padding: 0;
}
.cp1-post__inline-img img {
    width: 100%;
    height: 280px;
    object-fit: cover;
    border-radius: 12px;
    display: block;
}
.cp1-post__inline-img figcaption {
    font-size: 0.72rem;
    color: #999;
    text-align: center;
    margin-top: 8px;
    font-style: italic;
}
@media (max-width: 900px) {
    .cp1-post__inline-img { margin: 2rem 0; }
    .cp1-post__inline-img img { height: 220px; }
}
@media (max-width: 480px) {
    .cp1-post__inline-img img { height: 180px; border-radius: 8px; }
}
/* Post footer */
.cp1-post__footer {
    margin-top: 48px;
    padding-top: 24px;
    border-top: 1px solid #eee;
}
.cp1-post__back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--cp1-font-heading);
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--cp1-crimson);
    text-decoration: none;
    transition: gap 0.2s ease;
}
.cp1-post__back:hover { gap: 10px; }

/* CTA band */
.cp1-post-cta {
    background: var(--cp1-charcoal);
    padding: 48px 0;
}
.cp1-post-cta__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    flex-wrap: wrap;
}
.cp1-post-cta__title {
    font-family: var(--cp1-font-heading);
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--cp1-pure-white);
    text-transform: uppercase;
    margin: 0 0 6px;
}
.cp1-post-cta__sub {
    font-size: 0.9rem;
    color: var(--cp1-steel);
    margin: 0;
}
.cp1-post-cta__actions {
    display: flex;
    gap: 12px;
}

/* Related */
.cp1-post-related {
    background: #f7f7f7;
    padding: 56px 0;
}
.cp1-post-related__title {
    font-family: var(--cp1-font-heading);
    font-size: 1.3rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--cp1-charcoal);
    margin: 0 0 28px;
    text-align: center;
}

/* Responsive */
@media (max-width: 900px) {
    .cp1-post-layout {
        grid-template-columns: 1fr;
        gap: 0;
        padding: 32px 20px 24px;
    }
    .cp1-post-sidebar {
        position: relative;
        top: 0;
        display: flex;
        gap: 16px;
        align-items: center;
        padding: 16px 0 24px;
        border-bottom: 1px solid #eee;
        margin-bottom: 24px;
    }
    .cp1-post-toc { display: none; }
    .cp1-post-sidebar__cta { margin-top: 0; }
    .cp1-post-hero { min-height: 340px; }
    .cp1-post-hero__title { font-size: 1.8rem; }
    .cp1-post-hero__inner { padding-bottom: 36px; }
}
@media (max-width: 480px) {
    .cp1-post-layout { padding: 24px 16px 20px; }
    .cp1-post-hero { min-height: 280px; }
    .cp1-post-hero__title { font-size: 1.4rem; }
    .cp1-post__content { font-size: 0.92rem; }
    .cp1-post__content h2 { font-size: 1.2rem; }
    .cp1-post-cta__inner { flex-direction: column; text-align: center; }
    .cp1-post-cta__actions { width: 100%; flex-direction: column; }
}

/* Keep old .cp1-article for generic pages */
.cp1-article {
    max-width: 860px;
    margin: 0 auto;
    padding: var(--cp1-space-2xl) var(--cp1-space-lg);
    color: var(--cp1-steel-light);
}
.cp1-article__content {
    background: var(--cp1-charcoal);
    padding: var(--cp1-space-2xl) var(--cp1-space-2xl);
    border-radius: var(--cp1-radius-md);
    color: #C8C8C8;
    font-size: var(--cp1-text-base);
    line-height: 1.8;
}
.cp1-article__header {
    margin-bottom: var(--cp1-space-2xl);
}
.cp1-article__meta {
    font-size: var(--cp1-text-sm);
    color: var(--cp1-gold-muted);
    margin-bottom: var(--cp1-space-md);
    display: flex;
    flex-wrap: wrap;
    gap: var(--cp1-space-md);
}
.cp1-article__title {
    font-size: var(--cp1-text-4xl);
    line-height: 1.1;
    margin-bottom: var(--cp1-space-lg);
    color: var(--cp1-pure-white);
}
.cp1-article__content h2 {
    font-size: var(--cp1-text-2xl);
    margin: var(--cp1-space-2xl) 0 var(--cp1-space-lg);
    color: var(--cp1-pure-white);
}
.cp1-article__content h3 {
    font-size: var(--cp1-text-xl);
    margin: var(--cp1-space-xl) 0 var(--cp1-space-md);
    color: var(--cp1-pure-white);
}
.cp1-article__content p {
    margin-bottom: var(--cp1-space-md);
}
.cp1-article__content ul,
.cp1-article__content ol {
    margin-bottom: var(--cp1-space-md);
    padding-left: var(--cp1-space-xl);
}
.cp1-article__content ul { list-style: disc; }
.cp1-article__content ol { list-style: decimal; }
.cp1-article__content li {
    margin-bottom: var(--cp1-space-sm);
}
.cp1-article__content a {
    color: var(--cp1-gold);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.cp1-article__content a:hover {
    color: var(--cp1-gold-light);
}
.cp1-article__content img {
    border-radius: var(--cp1-radius-md);
    margin: var(--cp1-space-xl) 0;
}
.cp1-article__content blockquote {
    border-left: 3px solid var(--cp1-gold);
    padding: var(--cp1-space-md) var(--cp1-space-xl);
    margin: var(--cp1-space-xl) 0;
    background: var(--cp1-graphite);
    border-radius: 0 var(--cp1-radius-sm) var(--cp1-radius-sm) 0;
    font-style: italic;
    color: var(--cp1-steel-light);
}
.cp1-article__content > p:first-child {
    font-size: var(--cp1-text-lg);
    color: var(--cp1-concrete);
    line-height: 1.7;
}
.cp1-article__content hr {
    border: none;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--cp1-gold-muted), transparent);
    margin: var(--cp1-space-2xl) 0;
}
.cp1-article__content h4 {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-base);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--cp1-gold);
    margin: var(--cp1-space-xl) 0 var(--cp1-space-sm);
}
.cp1-article__content ul li {
    position: relative;
    padding-left: 0.25rem;
    line-height: 1.7;
}
.cp1-article__content ul li b,
.cp1-article__content ul li strong {
    color: var(--cp1-pure-white);
}
.cp1-article__content p b,
.cp1-article__content p strong {
    color: var(--cp1-concrete);
}
/* --- Light theme for generic pages --- */
.page .cp1-article {
    color: var(--cp1-charcoal);
}
.page .cp1-article__content {
    background: var(--cp1-pure-white);
    color: #444;
}
.page .cp1-article__content h2 {
    color: var(--cp1-charcoal);
}
.page .cp1-article__content h3 {
    color: var(--cp1-charcoal);
}
.page .cp1-article__content h4 {
    color: var(--cp1-crimson);
}
.page .cp1-article__content > p:first-child {
    color: #555;
}
.page .cp1-article__content p b,
.page .cp1-article__content p strong {
    color: var(--cp1-charcoal);
}
.page .cp1-article__content ul li b,
.page .cp1-article__content ul li strong {
    color: var(--cp1-charcoal);
}
.page .cp1-article__content a {
    color: var(--cp1-crimson);
}
.page .cp1-article__content a:hover {
    color: #7a0e13;
}
.page .cp1-article__content blockquote {
    background: #f5f5f5;
    color: #555;
}

/* ============================================
   FINANCING PAGE (page-financing.php)
   ============================================ */

/* ---- Hero ---- */
.cp1-fin-hero {
    background: linear-gradient(135deg, #7a0e13 0%, var(--cp1-crimson) 60%, #b31920 100%);
    position: relative;
    overflow: hidden;
    min-height: 420px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: var(--cp1-space-4xl) var(--cp1-space-lg);
}
.cp1-fin-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
        -45deg,
        transparent,
        transparent 14px,
        rgba(0,0,0,0.04) 14px,
        rgba(0,0,0,0.04) 28px
    );
    pointer-events: none;
}
/* Gold top accent line */
.cp1-fin-hero::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--cp1-gold);
}
.cp1-fin-hero__inner {
    position: relative;
    z-index: 1;
    max-width: 760px;
    margin: 0 auto;
}
.cp1-fin-hero__eyebrow {
    display: inline-block;
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--cp1-gold);
    border: 1px solid rgba(212,168,19,0.35);
    border-radius: 100px;
    padding: 0.3em 1.2em;
    margin-bottom: var(--cp1-space-md);
}
.cp1-fin-hero__title {
    font-family: var(--cp1-font-heading);
    font-size: clamp(2.2rem, 5vw, 3.5rem);
    font-weight: 900;
    text-transform: uppercase;
    color: var(--cp1-pure-white);
    line-height: 1.05;
    letter-spacing: -0.01em;
    margin-bottom: var(--cp1-space-md);
}
.cp1-fin-hero__subtitle {
    font-size: clamp(1rem, 2vw, 1.2rem);
    color: rgba(255,255,255,0.88);
    line-height: 1.6;
    max-width: 620px;
    margin: 0 auto var(--cp1-space-xl);
}
.cp1-fin-hero__actions {
    display: flex;
    gap: var(--cp1-space-md);
    justify-content: center;
    flex-wrap: wrap;
}

/* Gold button variant (used in hero and bottom CTA) */
.cp1-btn--gold {
    background: var(--cp1-gold);
    color: var(--cp1-black);
    border: 2px solid var(--cp1-gold);
    font-weight: 700;
}
.cp1-btn--gold:hover,
.cp1-btn--gold:focus-visible {
    background: #c09010;
    border-color: #c09010;
    color: var(--cp1-black);
}
/* White outline button variant */
.cp1-btn--outline-white {
    background: transparent;
    color: var(--cp1-pure-white);
    border: 2px solid rgba(255,255,255,0.7);
}
.cp1-btn--outline-white:hover,
.cp1-btn--outline-white:focus-visible {
    background: rgba(255,255,255,0.1);
    border-color: var(--cp1-pure-white);
    color: var(--cp1-pure-white);
}

/* ---- Trust Badges Strip ---- */
.cp1-fin-badges {
    background: #f4f4f4;
    border-bottom: 1px solid #e2e2e2;
    padding: var(--cp1-space-xl) var(--cp1-space-lg);
}
.cp1-fin-badges__inner {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: var(--cp1-space-md);
    max-width: var(--cp1-wide);
    margin: 0 auto;
}
.cp1-fin-badge {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: var(--cp1-space-lg) var(--cp1-space-sm);
    text-align: center;
    background: var(--cp1-pure-white);
    border-radius: var(--cp1-radius-md);
    border: 1px solid #e8e8e8;
    transition: border-color var(--cp1-transition), box-shadow var(--cp1-transition);
}
.cp1-fin-badge:hover {
    border-color: var(--cp1-crimson);
    box-shadow: 0 2px 12px rgba(155,17,24,0.08);
}
.cp1-fin-badge__icon {
    width: 52px;
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(155,17,24,0.08);
    border-radius: 50%;
    color: var(--cp1-crimson);
    flex-shrink: 0;
}
.cp1-fin-badge__label {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--cp1-charcoal);
    line-height: 1.3;
}

/* ---- How It Works ---- */
.cp1-fin-steps {
    background: var(--cp1-pure-white);
    padding: var(--cp1-space-4xl) var(--cp1-space-lg);
}
.cp1-fin-steps__inner {
    max-width: var(--cp1-wide);
    margin: 0 auto;
}
.cp1-fin-steps__header {
    text-align: center;
    margin-bottom: var(--cp1-space-3xl);
}
.cp1-fin-steps__title {
    font-family: var(--cp1-font-heading);
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    font-weight: 900;
    text-transform: uppercase;
    color: var(--cp1-charcoal);
    margin-bottom: var(--cp1-space-sm);
    letter-spacing: -0.01em;
}
.cp1-fin-steps__underline {
    width: 56px;
    height: 4px;
    background: var(--cp1-gold);
    border-radius: 2px;
    margin: 0 auto;
}
.cp1-fin-steps__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--cp1-space-xl);
    counter-reset: steps;
}
.cp1-fin-step {
    position: relative;
    padding-top: var(--cp1-space-md);
}
/* Connector line between steps */
.cp1-fin-step:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 32px;
    right: calc(-1 * var(--cp1-space-xl) / 2);
    width: calc(var(--cp1-space-xl));
    height: 2px;
    background: linear-gradient(90deg, #e0e0e0, #f0f0f0);
}
.cp1-fin-step__num {
    display: block;
    font-family: var(--cp1-font-heading);
    font-size: clamp(3rem, 6vw, 4.5rem);
    font-weight: 900;
    color: var(--cp1-crimson-deep);
    opacity: 0.75;
    line-height: 1;
    margin-bottom: var(--cp1-space-sm);
    letter-spacing: -0.02em;
}
.cp1-fin-step__title {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-lg);
    font-weight: 700;
    color: var(--cp1-charcoal);
    margin-bottom: var(--cp1-space-sm);
    line-height: 1.3;
}
.cp1-fin-step__text {
    font-size: var(--cp1-text-sm);
    color: #555;
    line-height: 1.65;
}

/* ---- Financing Partners ---- */
.cp1-fin-partners {
    background: #f7f7f7;
    padding: var(--cp1-space-4xl) var(--cp1-space-lg);
    border-top: 1px solid #ebebeb;
    border-bottom: 1px solid #ebebeb;
}
.cp1-fin-partners__inner {
    max-width: var(--cp1-wide);
    margin: 0 auto;
}
.cp1-fin-partners__header {
    text-align: center;
    margin-bottom: var(--cp1-space-3xl);
}
.cp1-fin-partners__eyebrow {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    color: var(--cp1-crimson);
    margin-bottom: var(--cp1-space-sm);
}
.cp1-fin-partners__title {
    font-family: var(--cp1-font-heading);
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    font-weight: 900;
    text-transform: uppercase;
    color: var(--cp1-charcoal);
    letter-spacing: -0.01em;
    margin: 0;
}
.cp1-fin-partners__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--cp1-space-lg);
}
.cp1-fin-partner {
    background: var(--cp1-pure-white);
    border-radius: var(--cp1-radius-lg);
    border: 1px solid #e4e4e4;
    padding: var(--cp1-space-xl);
    display: flex;
    flex-direction: column;
    gap: var(--cp1-space-lg);
    transition: border-color var(--cp1-transition), box-shadow var(--cp1-transition), transform var(--cp1-transition);
}
.cp1-fin-partner:hover {
    border-color: var(--cp1-crimson);
    box-shadow: 0 4px 24px rgba(155,17,24,0.1);
    transform: translateY(-2px);
}
.cp1-fin-partner__logo-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 68px;
    padding-bottom: var(--cp1-space-lg);
    border-bottom: 1px solid #f0f0f0;
}
.cp1-fin-partner__logo {
    max-height: 60px;
    width: auto;
    max-width: 200px;
    object-fit: contain;
    display: block;
}
.cp1-fin-partner__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.cp1-fin-partner__list li {
    position: relative;
    padding-left: 1.4em;
    font-size: var(--cp1-text-sm);
    color: #444;
    line-height: 1.5;
}
.cp1-fin-partner__list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 7px;
    height: 7px;
    background: var(--cp1-gold);
    border-radius: 50%;
}

/* ---- Why Finance with Carport1 ---- */
.cp1-fin-why {
    background: var(--cp1-pure-white);
    padding: var(--cp1-space-4xl) var(--cp1-space-lg);
}
.cp1-fin-why__inner {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--cp1-space-3xl);
    align-items: center;
}
.cp1-fin-why__eyebrow {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    color: var(--cp1-crimson);
    margin-bottom: var(--cp1-space-sm);
    display: block;
}
.cp1-fin-why__title {
    font-family: var(--cp1-font-heading);
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    font-weight: 900;
    text-transform: uppercase;
    color: var(--cp1-charcoal);
    letter-spacing: -0.01em;
    line-height: 1.1;
    margin-bottom: var(--cp1-space-lg);
}
.cp1-fin-why__text {
    font-size: var(--cp1-text-base);
    color: #444;
    line-height: 1.75;
    margin-bottom: var(--cp1-space-lg);
}
.cp1-fin-why__list {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--cp1-space-xl);
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.cp1-fin-why__list li {
    position: relative;
    padding-left: 1.6em;
    font-size: var(--cp1-text-sm);
    color: #333;
    line-height: 1.5;
    font-weight: 500;
}
.cp1-fin-why__list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.45em;
    width: 9px;
    height: 9px;
    background: var(--cp1-crimson);
    border-radius: 50%;
}
.cp1-fin-why__actions {
    display: flex;
    gap: var(--cp1-space-md);
    flex-wrap: wrap;
}
.cp1-fin-why__image-wrap {
    position: relative;
}
.cp1-fin-why__image {
    width: 100%;
    height: auto;
    border-radius: var(--cp1-radius-lg);
    display: block;
    box-shadow: 0 8px 40px rgba(0,0,0,0.12);
}

/* ---- Bottom CTA Banner ---- */
.cp1-fin-cta {
    background: linear-gradient(135deg, #7a0e13 0%, var(--cp1-crimson) 60%, #b31920 100%);
    position: relative;
    overflow: hidden;
    padding: var(--cp1-space-3xl) var(--cp1-space-lg);
}
.cp1-fin-cta::before {
    content: '';
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
        -45deg,
        transparent,
        transparent 14px,
        rgba(0,0,0,0.04) 14px,
        rgba(0,0,0,0.04) 28px
    );
    pointer-events: none;
}
.cp1-fin-cta::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--cp1-gold);
}
.cp1-fin-cta__inner {
    position: relative;
    z-index: 1;
    max-width: var(--cp1-wide);
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--cp1-space-2xl);
}
.cp1-fin-cta__text {
    flex: 1;
}
.cp1-fin-cta__title {
    font-family: var(--cp1-font-heading);
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    font-weight: 900;
    text-transform: uppercase;
    color: var(--cp1-pure-white);
    letter-spacing: -0.01em;
    margin-bottom: var(--cp1-space-xs);
}
.cp1-fin-cta__sub {
    font-size: var(--cp1-text-base);
    color: rgba(255,255,255,0.85);
    line-height: 1.5;
}
.cp1-fin-cta__actions {
    display: flex;
    gap: var(--cp1-space-md);
    flex-shrink: 0;
    flex-wrap: wrap;
}

/* ============================================
   FINANCING PAGE — RESPONSIVE
   ============================================ */
@media (max-width: 1100px) {
    .cp1-fin-badges__inner {
        grid-template-columns: repeat(3, 1fr);
    }
}
@media (max-width: 900px) {
    .cp1-fin-steps__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--cp1-space-xl) var(--cp1-space-2xl);
    }
    .cp1-fin-step:not(:last-child)::after { display: none; }
    .cp1-fin-why__inner {
        grid-template-columns: 1fr;
    }
    .cp1-fin-why__image-wrap {
        order: -1;
    }
    .cp1-fin-cta__inner {
        flex-direction: column;
        text-align: center;
    }
    .cp1-fin-cta__actions {
        justify-content: center;
    }
}
@media (max-width: 768px) {
    .cp1-fin-badges__inner {
        grid-template-columns: repeat(2, 1fr);
    }
    .cp1-fin-partners__grid {
        grid-template-columns: 1fr;
    }
    .cp1-fin-hero {
        min-height: 340px;
        padding: var(--cp1-space-3xl) var(--cp1-space-md);
    }
    .cp1-fin-hero__actions {
        flex-direction: column;
        align-items: center;
    }
    .cp1-fin-hero__actions .cp1-btn {
        width: 100%;
        max-width: 320px;
        justify-content: center;
    }
    .cp1-fin-steps {
        padding: var(--cp1-space-3xl) var(--cp1-space-md);
    }
    .cp1-fin-partners {
        padding: var(--cp1-space-3xl) var(--cp1-space-md);
    }
    .cp1-fin-why {
        padding: var(--cp1-space-3xl) var(--cp1-space-md);
    }
    .cp1-fin-cta {
        padding: var(--cp1-space-2xl) var(--cp1-space-md);
    }
}
@media (max-width: 480px) {
    .cp1-fin-badges__inner {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--cp1-space-sm);
    }
    .cp1-fin-badge {
        padding: var(--cp1-space-md) var(--cp1-space-sm);
    }
    .cp1-fin-badge__icon {
        width: 42px;
        height: 42px;
    }
    .cp1-fin-steps__grid {
        grid-template-columns: 1fr;
    }
    .cp1-fin-cta__actions {
        flex-direction: column;
        width: 100%;
    }
    .cp1-fin-cta__actions .cp1-btn {
        width: 100%;
        justify-content: center;
    }
}




/* ============================================
   FINANCING — WHAT CAN YOU FINANCE
   ============================================ */
.cp1-fin-types {
    background: #f7f7f7;
    padding: var(--cp1-space-4xl) var(--cp1-space-lg);
    border-top: 1px solid #ebebeb;
    border-bottom: 1px solid #ebebeb;
}
.cp1-fin-types__inner {
    max-width: var(--cp1-wide);
    margin: 0 auto;
}
.cp1-fin-types__header {
    text-align: center;
    margin-bottom: var(--cp1-space-3xl);
}
.cp1-fin-types__eyebrow {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    color: var(--cp1-crimson);
    margin-bottom: var(--cp1-space-sm);
}
.cp1-fin-types__title {
    font-family: var(--cp1-font-heading);
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    font-weight: 900;
    text-transform: uppercase;
    color: var(--cp1-charcoal);
    letter-spacing: -0.01em;
    margin-bottom: var(--cp1-space-sm);
}
.cp1-fin-types__subtitle {
    font-size: var(--cp1-text-base);
    color: #555;
    max-width: 600px;
    margin: 0 auto;
    line-height: 1.6;
}
.cp1-fin-types__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--cp1-space-lg);
}
.cp1-fin-type {
    background: var(--cp1-pure-white);
    border-radius: var(--cp1-radius-lg);
    border: 1px solid #e4e4e4;
    padding: var(--cp1-space-xl);
    text-align: center;
    transition: border-color var(--cp1-transition), box-shadow var(--cp1-transition), transform var(--cp1-transition);
}
.cp1-fin-type:hover {
    border-color: var(--cp1-crimson);
    box-shadow: 0 4px 24px rgba(155,17,24,0.08);
    transform: translateY(-2px);
}
.cp1-fin-type__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: rgba(155,17,24,0.06);
    color: var(--cp1-crimson);
    margin-bottom: var(--cp1-space-md);
}
.cp1-fin-type__title {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-lg);
    font-weight: 700;
    color: var(--cp1-charcoal);
    margin-bottom: var(--cp1-space-xs);
}
.cp1-fin-type__range {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xl);
    font-weight: 900;
    color: var(--cp1-crimson-deep);
    margin-bottom: var(--cp1-space-sm);
}
.cp1-fin-type__desc {
    font-size: var(--cp1-text-sm);
    color: #555;
    line-height: 1.6;
    margin: 0;
}

/* ============================================
   FINANCING — PAYMENT CALCULATOR
   ============================================ */
.cp1-fin-calc {
    background: var(--cp1-charcoal);
    padding: var(--cp1-space-4xl) var(--cp1-space-lg);
}
.cp1-fin-calc__inner {
    max-width: 900px;
    margin: 0 auto;
}
.cp1-fin-calc__header {
    text-align: center;
    margin-bottom: var(--cp1-space-3xl);
}
.cp1-fin-calc__eyebrow {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    color: var(--cp1-gold);
    margin-bottom: var(--cp1-space-sm);
}
.cp1-fin-calc__title {
    font-family: var(--cp1-font-heading);
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    font-weight: 900;
    text-transform: uppercase;
    color: var(--cp1-pure-white);
    letter-spacing: -0.01em;
    margin-bottom: var(--cp1-space-sm);
}
.cp1-fin-calc__subtitle {
    font-size: var(--cp1-text-sm);
    color: var(--cp1-steel-light);
    max-width: 520px;
    margin: 0 auto;
    line-height: 1.6;
}
.cp1-fin-calc__card {
    background: var(--cp1-graphite);
    border-radius: var(--cp1-radius-lg);
    border: 1px solid rgba(255,255,255,0.08);
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    overflow: hidden;
}
.cp1-fin-calc__inputs {
    padding: var(--cp1-space-xl);
    display: flex;
    flex-direction: column;
    gap: var(--cp1-space-lg);
}
.cp1-fin-calc__field {}
.cp1-fin-calc__label {
    display: block;
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--cp1-steel-light);
    margin-bottom: var(--cp1-space-sm);
}
.cp1-fin-calc__input-wrap {
    display: flex;
    align-items: center;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: var(--cp1-radius-md, 6px);
    overflow: hidden;
}
.cp1-fin-calc__prefix {
    padding: 0 0 0 var(--cp1-space-md);
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-lg);
    font-weight: 700;
    color: var(--cp1-gold);
}
.cp1-fin-calc__input {
    flex: 1;
    background: transparent;
    border: none;
    outline: none;
    padding: var(--cp1-space-sm) var(--cp1-space-md);
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xl);
    font-weight: 700;
    color: var(--cp1-pure-white);
}
.cp1-fin-calc__range {
    width: 100%;
    margin-top: var(--cp1-space-sm);
    accent-color: var(--cp1-crimson);
    height: 6px;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    background: rgba(255,255,255,0.1);
    border-radius: 3px;
    outline: none;
}
.cp1-fin-calc__range::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--cp1-crimson);
    border: 2px solid var(--cp1-pure-white);
    cursor: pointer;
}
.cp1-fin-calc__range::-moz-range-thumb {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--cp1-crimson);
    border: 2px solid var(--cp1-pure-white);
    cursor: pointer;
}
.cp1-fin-calc__term-options {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}
.cp1-fin-calc__term-btn {
    padding: var(--cp1-space-sm) var(--cp1-space-md);
    border: 1px solid rgba(255,255,255,0.15);
    border-radius: var(--cp1-radius-md, 6px);
    background: transparent;
    color: var(--cp1-steel-light);
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-sm);
    font-weight: 700;
    cursor: pointer;
    transition: all 0.15s ease;
}
.cp1-fin-calc__term-btn:hover {
    border-color: var(--cp1-crimson);
    color: var(--cp1-pure-white);
}
.cp1-fin-calc__term-btn--active {
    background: var(--cp1-crimson);
    border-color: var(--cp1-crimson);
    color: var(--cp1-pure-white);
}
.cp1-fin-calc__result {
    background: linear-gradient(135deg, var(--cp1-crimson-deep) 0%, var(--cp1-crimson) 100%);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: var(--cp1-space-xl);
    text-align: center;
}
.cp1-fin-calc__result-label {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: rgba(255,255,255,0.7);
    margin-bottom: var(--cp1-space-sm);
}
.cp1-fin-calc__result-amount {
    font-family: var(--cp1-font-heading);
    font-size: clamp(2.5rem, 5vw, 3.5rem);
    font-weight: 900;
    color: var(--cp1-pure-white);
    line-height: 1;
    margin-bottom: var(--cp1-space-xs);
}
.cp1-fin-calc__result-note {
    font-size: var(--cp1-text-xs);
    color: rgba(255,255,255,0.55);
    margin-bottom: var(--cp1-space-lg);
    line-height: 1.5;
}

/* ============================================
   FINANCING — COMPARISON TABLE
   ============================================ */
.cp1-fin-compare {
    background: var(--cp1-pure-white);
    padding: var(--cp1-space-4xl) var(--cp1-space-lg);
}
.cp1-fin-compare__inner {
    max-width: var(--cp1-wide);
    margin: 0 auto;
}
.cp1-fin-compare__header {
    text-align: center;
    margin-bottom: var(--cp1-space-3xl);
}
.cp1-fin-compare__eyebrow {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    color: var(--cp1-crimson);
    margin-bottom: var(--cp1-space-sm);
}
.cp1-fin-compare__title {
    font-family: var(--cp1-font-heading);
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    font-weight: 900;
    text-transform: uppercase;
    color: var(--cp1-charcoal);
    letter-spacing: -0.01em;
}
.cp1-fin-compare__table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.cp1-fin-compare__table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--cp1-text-sm);
}
.cp1-fin-compare__table thead th {
    padding: var(--cp1-space-md) var(--cp1-space-lg);
    background: var(--cp1-charcoal);
    color: var(--cp1-pure-white);
    font-family: var(--cp1-font-heading);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    text-align: center;
    font-size: var(--cp1-text-sm);
}
.cp1-fin-compare__table thead th:first-child {
    background: var(--cp1-graphite);
    border-radius: var(--cp1-radius-md, 6px) 0 0 0;
}
.cp1-fin-compare__table thead th:last-child {
    border-radius: 0 var(--cp1-radius-md, 6px) 0 0;
}
.cp1-fin-compare__table tbody td {
    padding: var(--cp1-space-md) var(--cp1-space-lg);
    text-align: center;
    border-bottom: 1px solid #f0f0f0;
    color: #444;
    line-height: 1.5;
}
.cp1-fin-compare__table tbody tr:last-child td {
    border-bottom: none;
}
.cp1-fin-compare__table tbody tr:hover td {
    background: #fafafa;
}
.cp1-fin-compare__row-label {
    text-align: left !important;
    font-family: var(--cp1-font-heading);
    font-weight: 700;
    color: var(--cp1-charcoal) !important;
}
.cp1-fin-compare__highlight {
    font-weight: 700;
    color: var(--cp1-crimson-deep);
}

/* ============================================
   FINANCING — TESTIMONIALS
   ============================================ */
.cp1-fin-testimonials {
    background: #f7f7f7;
    padding: var(--cp1-space-4xl) var(--cp1-space-lg);
    border-top: 1px solid #ebebeb;
    border-bottom: 1px solid #ebebeb;
}
.cp1-fin-testimonials__inner {
    max-width: var(--cp1-wide);
    margin: 0 auto;
}
.cp1-fin-testimonials__header {
    text-align: center;
    margin-bottom: var(--cp1-space-3xl);
}
.cp1-fin-testimonials__eyebrow {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    color: var(--cp1-crimson);
    margin-bottom: var(--cp1-space-sm);
}
.cp1-fin-testimonials__title {
    font-family: var(--cp1-font-heading);
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    font-weight: 900;
    text-transform: uppercase;
    color: var(--cp1-charcoal);
    letter-spacing: -0.01em;
}
.cp1-fin-testimonials__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--cp1-space-lg);
}
.cp1-fin-testimonial {
    background: var(--cp1-pure-white);
    border-radius: var(--cp1-radius-lg);
    border: 1px solid #e4e4e4;
    padding: var(--cp1-space-xl);
    display: flex;
    flex-direction: column;
    margin: 0;
    transition: border-color var(--cp1-transition), box-shadow var(--cp1-transition);
}
.cp1-fin-testimonial:hover {
    border-color: var(--cp1-gold);
    box-shadow: 0 4px 20px rgba(0,0,0,0.06);
}
.cp1-fin-testimonial__stars {
    display: flex;
    gap: 2px;
    color: var(--cp1-gold);
    margin-bottom: var(--cp1-space-md);
}
.cp1-fin-testimonial__text {
    font-size: var(--cp1-text-sm);
    color: #444;
    line-height: 1.75;
    flex: 1;
    margin-bottom: var(--cp1-space-lg);
    font-style: normal;
}
.cp1-fin-testimonial__footer {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding-top: var(--cp1-space-md);
    border-top: 1px solid #f0f0f0;
}
.cp1-fin-testimonial__name {
    font-family: var(--cp1-font-heading);
    font-weight: 700;
    font-style: normal;
    color: var(--cp1-charcoal);
    font-size: var(--cp1-text-sm);
}
.cp1-fin-testimonial__location {
    font-size: var(--cp1-text-xs);
    color: var(--cp1-steel);
}
.cp1-fin-testimonial__product {
    font-size: var(--cp1-text-xs);
    color: var(--cp1-crimson);
    font-weight: 600;
}

/* ============================================
   FINANCING — FAQ
   ============================================ */
.cp1-fin-faq {
    background: var(--cp1-pure-white);
    padding: var(--cp1-space-4xl) var(--cp1-space-lg);
}
.cp1-fin-faq__inner {
    max-width: 800px;
    margin: 0 auto;
}
.cp1-fin-faq__header {
    text-align: center;
    margin-bottom: var(--cp1-space-3xl);
}
.cp1-fin-faq__title {
    font-family: var(--cp1-font-heading);
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    font-weight: 900;
    text-transform: uppercase;
    color: var(--cp1-charcoal);
    letter-spacing: -0.01em;
    margin-bottom: var(--cp1-space-sm);
}
.cp1-fin-faq__underline {
    width: 56px;
    height: 4px;
    background: var(--cp1-gold);
    border-radius: 2px;
    margin: 0 auto;
}
.cp1-fin-faq__list {
    display: flex;
    flex-direction: column;
    gap: 0;
}
.cp1-fin-faq__item {
    border-bottom: 1px solid #ebebeb;
}
.cp1-fin-faq__item:first-child {
    border-top: 1px solid #ebebeb;
}
.cp1-fin-faq__question {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--cp1-space-lg) 0;
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-lg);
    font-weight: 700;
    color: var(--cp1-charcoal);
    cursor: pointer;
    list-style: none;
    user-select: none;
    transition: color 0.15s ease;
}
.cp1-fin-faq__question::-webkit-details-marker { display: none; }
.cp1-fin-faq__question::after {
    content: '+';
    font-size: 1.5rem;
    font-weight: 300;
    color: var(--cp1-steel);
    flex-shrink: 0;
    margin-left: var(--cp1-space-md);
    transition: transform 0.2s ease, color 0.2s ease;
}
.cp1-fin-faq__item[open] .cp1-fin-faq__question::after {
    content: '\2212';
    color: var(--cp1-crimson);
}
.cp1-fin-faq__item[open] .cp1-fin-faq__question {
    color: var(--cp1-crimson-deep);
}
.cp1-fin-faq__answer {
    padding: 0 0 var(--cp1-space-lg);
}
.cp1-fin-faq__answer p {
    font-size: var(--cp1-text-sm);
    color: #444;
    line-height: 1.75;
    margin: 0;
}
.cp1-fin-faq__answer p + p {
    margin-top: var(--cp1-space-md);
}

/* ============================================
   FINANCING NEW SECTIONS — RESPONSIVE
   ============================================ */
@media (max-width: 900px) {
    .cp1-fin-types__grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .cp1-fin-calc__card {
        grid-template-columns: 1fr;
    }
    .cp1-fin-compare__table {
        min-width: 600px;
    }
    .cp1-fin-testimonials__grid {
        grid-template-columns: 1fr;
        max-width: 560px;
        margin: 0 auto;
    }
}
@media (max-width: 768px) {
    .cp1-fin-types {
        padding: var(--cp1-space-3xl) var(--cp1-space-md);
    }
    .cp1-fin-calc {
        padding: var(--cp1-space-3xl) var(--cp1-space-md);
    }
    .cp1-fin-compare {
        padding: var(--cp1-space-3xl) var(--cp1-space-md);
    }
    .cp1-fin-testimonials {
        padding: var(--cp1-space-3xl) var(--cp1-space-md);
    }
    .cp1-fin-faq {
        padding: var(--cp1-space-3xl) var(--cp1-space-md);
    }
}
@media (max-width: 480px) {
    .cp1-fin-types__grid {
        grid-template-columns: 1fr;
    }
    .cp1-fin-calc__term-options {
        gap: 4px;
    }
    .cp1-fin-calc__term-btn {
        flex: 1;
        min-width: 0;
        padding: var(--cp1-space-sm) var(--cp1-space-xs);
        font-size: var(--cp1-text-xs);
    }
}

/* ============================================
/* ============================================
   SOCIAL PROOF TOAST
   ============================================ */
.cp1-toast {
    position: fixed;
    bottom: var(--cp1-space-lg);
    left: var(--cp1-space-lg);
    z-index: 9990;
    max-width: 380px;
    background: var(--cp1-pure-white);
    border-radius: var(--cp1-radius-lg);
    box-shadow: var(--cp1-shadow-lg);
    border: 1px solid rgba(0,0,0,0.08);
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    transition: opacity 0.4s ease, transform 0.4s ease, visibility 0.4s ease;
    pointer-events: none;
}
.cp1-toast.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}

.cp1-toast__wrap {
    display: flex;
    align-items: flex-start;
    gap: var(--cp1-space-sm);
    padding: var(--cp1-space-md);
    text-decoration: none;
    color: inherit;
}
.cp1-toast__wrap:hover {
    text-decoration: none;
    color: inherit;
}

.cp1-toast__img {
    flex-shrink: 0;
    width: 72px;
    height: 72px;
    border-radius: var(--cp1-radius-md);
    overflow: hidden;
    background: var(--cp1-concrete);
}
.cp1-toast__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.cp1-toast__text {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
    flex: 1;
    padding-right: var(--cp1-space-md);
}

.cp1-toast__line1 {
    font-family: var(--cp1-font-body);
    font-size: var(--cp1-text-sm);
    line-height: 1.4;
    color: var(--cp1-charcoal);
}

.cp1-toast__name {
    font-weight: 700;
    color: var(--cp1-charcoal);
}

.cp1-toast__in {
    color: var(--cp1-steel);
}

.cp1-toast__loc {
    font-weight: 600;
    color: var(--cp1-charcoal);
}

.cp1-toast__action {
    color: var(--cp1-steel);
}

.cp1-toast__prod {
    display: block;
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-sm);
    font-weight: 700;
    color: var(--cp1-crimson);
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.cp1-toast__wrap:hover .cp1-toast__prod {
    color: var(--cp1-crimson-deep);
}

.cp1-toast__line2 {
    display: flex;
    align-items: center;
    gap: 4px;
    font-family: var(--cp1-font-body);
    font-size: var(--cp1-text-xs);
    color: var(--cp1-steel);
    margin-top: 2px;
}

.cp1-toast__clock {
    flex-shrink: 0;
    color: var(--cp1-steel-light);
}

.cp1-toast__close {
    position: absolute;
    top: 6px;
    right: 6px;
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: transparent;
    color: var(--cp1-steel-light);
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    border-radius: 50%;
    padding: 0;
    transition: background var(--cp1-transition), color var(--cp1-transition);
}
.cp1-toast__close:hover {
    background: var(--cp1-concrete);
    color: var(--cp1-charcoal);
}

/* Hide on mobile */
@media (max-width: 767px) {
    .cp1-toast { display: none !important; }
}
/* ---- City Products Grid ---- */
.cp1-city-products__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--cp1-space-lg);
    margin-bottom: var(--cp1-space-xl);
}
@media (max-width: 900px) {
    .cp1-city-products__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
    .cp1-city-products__grid { grid-template-columns: 1fr; }
}

/* ---- City Backlink ---- */
.cp1-city-backlink {
    margin-top: var(--cp1-space-2xl);
    padding-top: var(--cp1-space-xl);
    border-top: 1px solid #ebebeb;
}
.cp1-city-backlink__link {
    display: inline-flex;
    align-items: center;
    gap: var(--cp1-space-sm);
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-sm);
    font-weight: 700;
    color: var(--cp1-crimson);
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    transition: color 0.15s ease;
}
.cp1-city-backlink__link:hover {
    color: var(--cp1-crimson-deep);
}

   PRE-FOOTER CTA BAND
   ============================================ */
.cp1-prefooter {
    position: relative;
    background: var(--cp1-crimson);
    overflow: hidden;
}
/* Diagonal stripe texture */
.cp1-prefooter::before {
    content: '';
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
        -45deg,
        transparent,
        transparent 12px,
        rgba(0,0,0,0.06) 12px,
        rgba(0,0,0,0.06) 24px
    );
}
/* Gold accent top edge */
.cp1-prefooter::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--cp1-gold);
}
.cp1-prefooter__inner {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--cp1-space-xl);
    max-width: var(--cp1-wide);
    margin: 0 auto;
    padding: var(--cp1-space-2xl) var(--cp1-space-lg);
}
.cp1-prefooter__label {
    display: block;
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: rgba(255,255,255,0.7);
    margin-bottom: var(--cp1-space-xs);
}
.cp1-prefooter__title {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-2xl);
    font-weight: 700;
    color: var(--cp1-pure-white);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    line-height: 1.15;
}
.cp1-prefooter__actions {
    display: flex;
    gap: var(--cp1-space-md);
    flex-shrink: 0;
}
@media (max-width: 768px) {
    .cp1-prefooter__inner {
        flex-direction: column;
        text-align: center;
    }
    .cp1-prefooter__actions {
        flex-direction: column;
        width: 100%;
    }
    .cp1-prefooter__actions .cp1-btn { width: 100%; justify-content: center; }
}

/* ============================================
   FOOTER
   ============================================ */
.cp1-footer {
    background: linear-gradient(170deg, #111111 0%, #0a0a0a 40%, #0f0808 100%);
    color: var(--cp1-steel-light);
    position: relative;
    border-top: 3px solid var(--cp1-crimson);
}
/* Subtle diagonal steel pattern */
.cp1-footer::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(135deg, rgba(155,17,24,0.03) 25%, transparent 25%),
        linear-gradient(225deg, rgba(155,17,24,0.03) 25%, transparent 25%),
        linear-gradient(rgba(255,255,255,0.012) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.012) 1px, transparent 1px);
    background-size: 80px 80px, 80px 80px, 40px 40px, 40px 40px;
    pointer-events: none;
}

.cp1-footer__main {
    position: relative;
    padding: var(--cp1-space-3xl) 0;
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1.3fr;
    gap: var(--cp1-space-2xl);
}
@media (max-width: 1024px) {
    .cp1-category-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 768px) {
    .cp1-footer__main { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
    .cp1-footer__main { grid-template-columns: 1fr; }
}

/* Brand column */
.cp1-footer__brand {
    max-width: 320px;
}
.cp1-footer__logo {
    display: inline-flex;
    margin-bottom: var(--cp1-space-lg);
}
.cp1-footer__tagline {
    font-size: var(--cp1-text-sm);
    line-height: 1.7;
    margin-bottom: var(--cp1-space-xl);
    color: var(--cp1-steel);
}
.cp1-footer__social {
    display: flex;
    gap: var(--cp1-space-sm);
}
.cp1-footer__social a {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--cp1-radius-sm);
    border: 1px solid var(--cp1-graphite);
    color: var(--cp1-steel-light);
    transition: all var(--cp1-transition);
}
.cp1-footer__social a:hover {
    border-color: var(--cp1-crimson);
    background: var(--cp1-crimson);
    color: var(--cp1-pure-white);
    transform: translateY(-2px);
}

/* Column heading with gold rule */
.cp1-footer__heading {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--cp1-pure-white);
    padding-bottom: var(--cp1-space-sm);
    margin-bottom: var(--cp1-space-lg);
    position: relative;
}
.cp1-footer__heading::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 40px;
    height: 3px;
    background: linear-gradient(90deg, var(--cp1-gold), var(--cp1-crimson));
    border-radius: 2px;
}

/* Links list */
.cp1-footer__links {
    display: flex;
    flex-direction: column;
    gap: 0;
    list-style: none;
}
.cp1-footer__links li { list-style: none; }
.cp1-footer__links a {
    display: inline-block;
    font-size: var(--cp1-text-sm);
    color: var(--cp1-steel-light);
    padding: 0.3rem 0;
    transition: all var(--cp1-transition);
    position: relative;
}
.cp1-footer__links a:hover {
    color: var(--cp1-gold);
    padding-left: 8px;
}

/* Contact column */
.cp1-footer__contact {
    display: flex;
    flex-direction: column;
    gap: var(--cp1-space-md);
}
.cp1-footer__phone-block {
    display: block;
    padding: var(--cp1-space-md) var(--cp1-space-lg);
    border: 1px solid rgba(155,17,24,0.3);
    border-radius: var(--cp1-radius-sm);
    background: rgba(155,17,24,0.08);
    transition: all var(--cp1-transition);
}
.cp1-footer__phone-block:hover {
    border-color: var(--cp1-crimson);
    background: rgba(155,17,24,0.15);
    transform: translateY(-2px);
    box-shadow: 0 4px 20px rgba(155,17,24,0.2);
}
.cp1-footer__phone-label {
    display: block;
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--cp1-steel);
    margin-bottom: 2px;
}
.cp1-footer__phone-number {
    display: block;
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xl);
    font-weight: 700;
    color: var(--cp1-pure-white);
    letter-spacing: 0.02em;
}
.cp1-footer__info-row {
    display: flex;
    align-items: flex-start;
    gap: var(--cp1-space-sm);
    font-size: var(--cp1-text-sm);
    color: var(--cp1-steel-light);
}
.cp1-footer__info-row svg {
    flex-shrink: 0;
    margin-top: 3px;
    color: var(--cp1-gold);
}
.cp1-footer__info-row a { transition: color var(--cp1-transition); }
.cp1-footer__info-row a:hover { color: var(--cp1-gold); }

.cp1-footer__state-views {
    font-size: 0.65rem;
    color: var(--cp1-steel);
    margin-left: 0.35rem;
    font-weight: 400;
}
.cp1-footer__view-all a {
    color: var(--cp1-gold) !important;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.cp1-footer__view-all a:hover {
    padding-left: 8px;
}



/* ============================================
   STATS STRIP
   ============================================ */
.cp1-stats-strip {
    background: var(--cp1-crimson);
    padding: var(--cp1-space-xl) 0;
    position: relative;
    overflow: hidden;
}
.cp1-stats-strip::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(0,0,0,0.15) 0%, transparent 50%, rgba(0,0,0,0.1) 100%);
    pointer-events: none;
}
.cp1-stats-strip__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--cp1-space-lg);
    position: relative;
}
.cp1-stats-strip__item {
    text-align: center;
    color: var(--cp1-pure-white);
}
.cp1-stats-strip__number {
    display: block;
    font-family: var(--cp1-font-heading);
    font-size: clamp(1.75rem, 1.5rem + 1.5vw, 2.5rem);
    font-weight: 700;
    line-height: 1;
    margin-bottom: 4px;
}
.cp1-stats-strip__number small {
    font-size: 0.6em;
    opacity: 0.7;
}
.cp1-stats-strip__label {
    font-size: var(--cp1-text-sm);
    opacity: 0.85;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}
@media (max-width: 768px) {
    .cp1-stats-strip__grid { grid-template-columns: repeat(2, 1fr); gap: var(--cp1-space-lg) var(--cp1-space-md); }
}
@media (max-width: 480px) {
    .cp1-stats-strip__grid { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================
   HOW IT WORKS — Process Steps
   ============================================ */
.cp1-process {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 0;
    max-width: 1000px;
    margin: 0 auto;
}
.cp1-process__step {
    flex: 1;
    text-align: center;
    padding: 0 var(--cp1-space-md);
}
.cp1-process__icon {
    width: 80px;
    height: 80px;
    margin: 0 auto var(--cp1-space-lg);
    border-radius: 50%;
    background: rgba(155,17,24,0.12);
    border: 2px solid rgba(155,17,24,0.3);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--cp1-gold);
    position: relative;
    transition: all 0.3s ease;
}
.cp1-process__step:hover .cp1-process__icon {
    background: rgba(155,17,24,0.2);
    border-color: var(--cp1-crimson);
    transform: scale(1.05);
}
.cp1-process__num {
    position: absolute;
    top: -6px;
    right: -6px;
    width: 26px;
    height: 26px;
    background: var(--cp1-crimson);
    color: var(--cp1-pure-white);
    font-family: var(--cp1-font-heading);
    font-size: 0.8125rem;
    font-weight: 700;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}
.cp1-process__connector {
    width: 60px;
    height: 2px;
    background: linear-gradient(90deg, rgba(155,17,24,0.2), var(--cp1-crimson), rgba(155,17,24,0.2));
    margin-top: 40px;
    flex-shrink: 0;
}
.cp1-process__title {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-lg);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--cp1-pure-white);
    margin-bottom: var(--cp1-space-sm);
}
.cp1-process__text {
    font-size: var(--cp1-text-sm);
    color: var(--cp1-steel-light);
    line-height: 1.6;
}
@media (max-width: 768px) {
    .cp1-process { flex-direction: column; align-items: center; gap: var(--cp1-space-lg); }
    .cp1-process__connector { width: 2px; height: 40px; margin-top: 0; }
    .cp1-process__step { max-width: 300px; }
}

/* ============================================
   WHY METAL
   ============================================ */
.cp1-why-metal {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--cp1-space-3xl);
    align-items: start;
}
.cp1-why-metal__benefits {
    display: flex;
    flex-direction: column;
    gap: var(--cp1-space-lg);
}
.cp1-why-metal__item {
    display: flex;
    gap: var(--cp1-space-md);
    align-items: flex-start;
}
.cp1-why-metal__icon {
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(155,17,24,0.1);
    border: 1px solid rgba(155,17,24,0.25);
    border-radius: var(--cp1-radius-sm);
    color: var(--cp1-gold);
}
.cp1-why-metal__title {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-base);
    font-weight: 700;
    color: var(--cp1-pure-white);
    margin-bottom: 4px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
.cp1-why-metal__text {
    font-size: var(--cp1-text-sm);
    color: var(--cp1-steel-light);
    line-height: 1.6;
}

/* Comparison Table */
.cp1-why-metal__comparison {
    position: sticky;
    top: 100px;
}
.cp1-why-metal__table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--cp1-text-sm);
}
.cp1-why-metal__table th,
.cp1-why-metal__table td {
    padding: 0.75rem 1rem;
    text-align: center;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    color: var(--cp1-steel-light);
}
.cp1-why-metal__table th:first-child,
.cp1-why-metal__table td:first-child {
    text-align: left;
    color: rgba(255,255,255,0.7);
    font-weight: 600;
}
.cp1-why-metal__table thead th {
    font-family: var(--cp1-font-heading);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--cp1-steel);
    padding-bottom: var(--cp1-space-md);
    border-bottom: 2px solid rgba(255,255,255,0.1);
}
.cp1-why-metal__th--metal {
    color: var(--cp1-gold) !important;
}
.cp1-why-metal__td--best {
    color: var(--cp1-gold) !important;
    font-weight: 700;
    background: rgba(212,168,19,0.06);
}
.cp1-why-metal__table tbody tr:hover {
    background: rgba(255,255,255,0.02);
}
@media (max-width: 1024px) {
    .cp1-why-metal { grid-template-columns: 1fr; gap: var(--cp1-space-2xl); }
    .cp1-why-metal__comparison { position: static; }
}

/* ============================================
   FINANCING CALLOUT
   ============================================ */
.cp1-financing {
    padding: var(--cp1-space-3xl) 0;
    background: linear-gradient(160deg, var(--cp1-charcoal) 0%, #141414 100%);
    position: relative;
    overflow: hidden;
}
.cp1-financing::before {
    content: '';
    position: absolute;
    right: -100px;
    top: -100px;
    width: 500px;
    height: 500px;
    background: radial-gradient(circle, rgba(155,17,24,0.08) 0%, transparent 70%);
    pointer-events: none;
}
.cp1-financing__inner {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: var(--cp1-space-3xl);
    align-items: center;
}
.cp1-financing__title {
    font-size: var(--cp1-text-3xl);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--cp1-pure-white);
    margin-bottom: var(--cp1-space-md);
}
.cp1-financing__text {
    font-size: var(--cp1-text-lg);
    color: var(--cp1-steel-light);
    margin-bottom: var(--cp1-space-xl);
    max-width: 520px;
}
.cp1-financing__options {
    display: flex;
    flex-direction: column;
    gap: var(--cp1-space-md);
    margin-bottom: var(--cp1-space-xl);
}
.cp1-financing__option {
    display: flex;
    gap: var(--cp1-space-md);
    align-items: flex-start;
    padding: var(--cp1-space-md) var(--cp1-space-lg);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: var(--cp1-radius-md);
    background: rgba(255,255,255,0.02);
}
.cp1-financing__option-icon {
    color: var(--cp1-gold);
    flex-shrink: 0;
    margin-top: 2px;
}
.cp1-financing__option-title {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-base);
    font-weight: 700;
    color: var(--cp1-pure-white);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 2px;
}
.cp1-financing__option-text {
    font-size: var(--cp1-text-sm);
    color: var(--cp1-steel-light);
    line-height: 1.5;
}
.cp1-financing__actions {
    display: flex;
    gap: var(--cp1-space-md);
    flex-wrap: wrap;
}

/* Payment Card */
.cp1-financing__card {
    background: linear-gradient(160deg, rgba(155,17,24,0.15) 0%, rgba(155,17,24,0.05) 100%);
    border: 1px solid rgba(155,17,24,0.3);
    border-radius: var(--cp1-radius-lg);
    padding: var(--cp1-space-2xl);
    text-align: center;
    position: relative;
}
.cp1-financing__card::before {
    content: '';
    position: absolute;
    inset: -1px;
    border-radius: inherit;
    background: linear-gradient(160deg, rgba(212,168,19,0.2), transparent 50%);
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    padding: 1px;
    pointer-events: none;
}
.cp1-financing__card-header {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--cp1-gold);
    margin-bottom: var(--cp1-space-lg);
}
.cp1-financing__card-amount {
    margin-bottom: var(--cp1-space-sm);
}
.cp1-financing__card-amount span {
    font-family: var(--cp1-font-heading);
    font-size: clamp(2.5rem, 2rem + 2vw, 3.5rem);
    font-weight: 700;
    color: var(--cp1-pure-white);
    line-height: 1;
}
.cp1-financing__card-amount small {
    font-size: var(--cp1-text-base);
    color: var(--cp1-steel);
}
.cp1-financing__card-detail {
    font-size: var(--cp1-text-sm);
    color: var(--cp1-steel);
    margin-bottom: var(--cp1-space-xl);
    padding-bottom: var(--cp1-space-xl);
    border-bottom: 1px solid rgba(255,255,255,0.08);
}
.cp1-financing__card-features {
    display: flex;
    flex-direction: column;
    gap: var(--cp1-space-sm);
    font-size: var(--cp1-text-sm);
    color: var(--cp1-steel-light);
}
.cp1-financing__card-features div::before {
    content: '\2713';
    color: var(--cp1-gold);
    margin-right: 8px;
    font-weight: 700;
}

@media (max-width: 1024px) {
    .cp1-financing__inner { grid-template-columns: 1fr; }
    .cp1-financing__visual { max-width: 380px; }
}

/* ============================================
   SERVICE AREA TEASER
   ============================================ */
.cp1-area-teaser {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--cp1-space-3xl);
    align-items: center;
}
.cp1-area-teaser__title {
    font-size: var(--cp1-text-3xl);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--cp1-pure-white);
    margin-bottom: var(--cp1-space-md);
}
.cp1-area-teaser__title span {
    color: var(--cp1-gold);
}
.cp1-area-teaser__text {
    font-size: var(--cp1-text-lg);
    color: var(--cp1-steel-light);
    margin-bottom: var(--cp1-space-xl);
}
.cp1-area-teaser__states {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: var(--cp1-space-xl);
}
.cp1-area-teaser__state {
    display: inline-block;
    padding: 6px 14px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 100px;
    font-size: var(--cp1-text-sm);
    color: var(--cp1-steel-light);
    text-decoration: none;
    transition: all 0.2s;
}
.cp1-area-teaser__state:hover {
    background: rgba(155,17,24,0.15);
    border-color: rgba(155,17,24,0.4);
    color: var(--cp1-pure-white);
}
.cp1-area-teaser__state--more {
    background: rgba(155,17,24,0.1);
    border-color: rgba(155,17,24,0.3);
    color: var(--cp1-gold);
    font-weight: 600;
}

/* Map SVG */
.cp1-area-teaser__map {
    display: flex;
    align-items: center;
    justify-content: center;
}
.cp1-area-teaser__svg {
}
.cp1-area-teaser__svg path {
    fill: rgba(155,17,24,0.2);
    stroke: rgba(255,255,255,0.35);
    stroke-width: 0.75;
    transition: fill 0.2s ease;
}
.cp1-area-teaser__svg path:hover {
    fill: rgba(155,17,24,0.5);
}
.cp1-area-teaser__svg {
    width: 100%;
    max-width: 500px;
    height: auto;
}
.cp1-area-teaser__dot {
    animation: cp1-dot-pulse 3s ease-in-out infinite;
}
@keyframes cp1-dot-pulse {
    0%, 100% { opacity: 0.5; }
    50% { opacity: 1; }
}

@media (max-width: 1024px) {
    .cp1-area-teaser { grid-template-columns: 1fr; }
    .cp1-area-teaser__map { order: -1; }
    .cp1-area-teaser__svg {
}
.cp1-area-teaser__svg path {
    fill: rgba(155,17,24,0.2);
    stroke: rgba(255,255,255,0.35);
    stroke-width: 0.75;
    transition: fill 0.2s ease;
}
.cp1-area-teaser__svg path:hover {
    fill: rgba(155,17,24,0.5);
}
.cp1-area-teaser__svg { max-width: 400px; }
}

/* --- Footer Bottom Bar --- */
.cp1-footer__bottom {
    position: relative;
    border-top: 1px solid var(--cp1-graphite);
}
.cp1-footer__bottom-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--cp1-space-md);
    max-width: var(--cp1-wide);
    margin: 0 auto;
    padding: var(--cp1-space-lg) var(--cp1-space-lg);
    font-size: var(--cp1-text-xs);
    color: var(--cp1-steel);
}
.cp1-footer__legal {
    display: flex;
    align-items: center;
    gap: var(--cp1-space-sm);
}
.cp1-footer__legal a {
    color: var(--cp1-steel);
    transition: color var(--cp1-transition);
}
.cp1-footer__legal a:hover { color: var(--cp1-gold); }
.cp1-footer__legal span { color: var(--cp1-graphite); }

.cp1-back-to-top {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 0.4em 0.8em;
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--cp1-steel);
    border: 1px solid var(--cp1-graphite);
    border-radius: var(--cp1-radius-sm);
    cursor: pointer;
    transition: all var(--cp1-transition);
}
.cp1-back-to-top:hover {
    color: var(--cp1-gold);
    border-color: var(--cp1-gold);
}
@media (max-width: 640px) {
    .cp1-footer__bottom-inner { justify-content: center; text-align: center; }
    .cp1-back-to-top { display: none; }
}

/* --- Pagination --- */
.cp1-pagination {
    margin-top: var(--cp1-space-2xl);
    display: flex;
    justify-content: center;
}
.cp1-pagination .page-numbers {
    display: flex;
    align-items: center;
    gap: var(--cp1-space-xs);
}
.cp1-pagination .page-numbers li { list-style: none; }
.cp1-pagination a,
.cp1-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 var(--cp1-space-sm);
    border: 1px solid var(--cp1-graphite);
    border-radius: var(--cp1-radius-sm);
    font-size: var(--cp1-text-sm);
    font-weight: 600;
    color: var(--cp1-steel-light);
    transition: all var(--cp1-transition);
}
.cp1-pagination a:hover {
    border-color: var(--cp1-crimson);
    color: var(--cp1-pure-white);
    background: rgba(155,17,24,0.1);
}
.cp1-pagination .current {
    background: var(--cp1-crimson);
    border-color: var(--cp1-crimson);
    color: var(--cp1-pure-white);
}

/* --- Load More --- */
.cp1-load-more {
    text-align: center;
    padding: var(--cp1-space-2xl) 0 var(--cp1-space-xl);
}
.cp1-load-more__btn {
    min-width: 220px;
    transition: opacity 0.2s, transform 0.2s;
}
.cp1-load-more__spinner {
    display: none;
    width: 36px;
    height: 36px;
    margin: 0 auto;
    border: 3px solid rgba(155, 17, 24, 0.2);
    border-top-color: var(--cp1-crimson);
    border-radius: 50%;
    animation: cp1-spin 0.7s linear infinite;
}
.cp1-load-more.is-loading .cp1-load-more__btn { display: none; }
.cp1-load-more.is-loading .cp1-load-more__spinner { display: block; }
.cp1-load-more.is-done { display: none; }

@keyframes cp1-spin {
    to { transform: rotate(360deg); }
}

/* Fade-in for newly loaded cards */
.cp1-fade-in {
    animation: cp1-card-in 0.4s ease both;
}
@keyframes cp1-card-in {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* --- No Results --- */
.cp1-no-results {
    text-align: center;
    padding: var(--cp1-space-3xl);
    color: var(--cp1-steel);
    font-size: var(--cp1-text-lg);
    grid-column: 1 / -1;
}

/* --- 404 --- */
.cp1-404 {
    text-align: center;
    padding: var(--cp1-space-4xl) var(--cp1-space-lg);
    min-height: 50vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--cp1-black);
}
.cp1-404__code {
    font-family: var(--cp1-font-heading);
    font-size: clamp(6rem, 10vw, 12rem);
    font-weight: 700;
    color: var(--cp1-graphite);
    line-height: 1;
    text-shadow: 0 0 80px rgba(155,17,24,0.2);
}
.cp1-404__title {
    font-size: var(--cp1-text-3xl);
    margin-bottom: var(--cp1-space-md);
    color: var(--cp1-pure-white);
}
.cp1-404__text {
    font-size: var(--cp1-text-lg);
    color: var(--cp1-steel);
    margin-bottom: var(--cp1-space-2xl);
    max-width: 500px;
}

/* --- Search --- */
.cp1-search-form {
    display: flex;
    max-width: 500px;
    margin: var(--cp1-space-xl) auto;
}
.cp1-search-form input[type="search"] {
    flex: 1;
    padding: var(--cp1-space-md) var(--cp1-space-lg);
    border: 2px solid var(--cp1-graphite);
    border-right: none;
    border-radius: var(--cp1-radius-sm) 0 0 var(--cp1-radius-sm);
    font-size: var(--cp1-text-base);
    outline: none;
    background: var(--cp1-charcoal);
    color: var(--cp1-pure-white);
    transition: border-color var(--cp1-transition);
}
.cp1-search-form input[type="search"]::placeholder {
    color: var(--cp1-steel);
}
.cp1-search-form input[type="search"]:focus {
    border-color: var(--cp1-gold);
}
.cp1-search-form button {
    padding: var(--cp1-space-md) var(--cp1-space-xl);
    background: var(--cp1-crimson);
    color: var(--cp1-pure-white);
    border-radius: 0 var(--cp1-radius-sm) var(--cp1-radius-sm) 0;
    font-family: var(--cp1-font-heading);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: var(--cp1-text-sm);
    transition: background var(--cp1-transition);
}
.cp1-search-form button:hover {
    background: var(--cp1-crimson-deep);
}

/* --- Service Area Single --- */
.cp1-state__grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: var(--cp1-space-sm);
}
@media (max-width: 768px) {
    .cp1-state__grid { grid-template-columns: repeat(2, 1fr); }
}
.cp1-state__grid li {
    font-size: var(--cp1-text-sm);
    padding: var(--cp1-space-xs) 0;
    color: var(--cp1-steel-light);
    border-bottom: 1px solid var(--cp1-graphite);
}

/* --- Page Hero (for interior pages) --- */
.cp1-page-hero {
    background: var(--cp1-charcoal);
    color: var(--cp1-pure-white);
    padding: var(--cp1-space-3xl) 0;
    text-align: center;
    position: relative;
    overflow: hidden;
}
/* Subtle industrial cross-hatch texture */
.cp1-page-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px);
    background-size: 40px 40px;
    pointer-events: none;
}
/* Bottom gradient bleed */
.cp1-page-hero::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 60px;
    background: linear-gradient(to top, var(--cp1-black), transparent);
    pointer-events: none;
}
.cp1-page-hero__title {
    position: relative;
    font-size: var(--cp1-text-3xl);
    text-transform: uppercase;
    color: var(--cp1-pure-white);
    margin-bottom: var(--cp1-space-sm);
}
.cp1-page-hero__subtitle {
    position: relative;
    font-size: var(--cp1-text-lg);
    color: var(--cp1-steel-light);
    max-width: 600px;
    margin: 0 auto;
}
.cp1-page-hero__count {
    position: relative;
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--cp1-gold);
    margin-top: var(--cp1-space-md);
}

/* --- Building Types Showcase Grid --- */
.cp1-building-types-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--cp1-space-lg);
}
@media (max-width: 1024px) {
    .cp1-category-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 768px) {
    .cp1-building-types-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
    .cp1-building-types-grid { grid-template-columns: 1fr; }
}
.cp1-building-type-card {
    position: relative;
    display: flex;
    flex-direction: column;
    border-radius: var(--cp1-radius-md);
    overflow: hidden;
    background: var(--cp1-charcoal);
    border: 1px solid var(--cp1-graphite);
    transition: all var(--cp1-transition-slow);
}
.cp1-building-type-card:hover {
    border-color: rgba(255,255,255,0.12);
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(0,0,0,0.5);
}
.cp1-building-type-card__image {
    aspect-ratio: 16 / 10;
    overflow: hidden;
}
.cp1-building-type-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
    filter: brightness(0.85);
}
.cp1-building-type-card:hover .cp1-building-type-card__image img {
    transform: scale(1.06);
    filter: brightness(0.95);
}
.cp1-building-type-card__overlay {
    padding: var(--cp1-space-lg);
    flex: 1;
    display: flex;
    flex-direction: column;
}
.cp1-building-type-card__count {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--cp1-gold);
    margin-bottom: var(--cp1-space-xs);
}
.cp1-building-type-card__name {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xl);
    font-weight: 700;
    color: var(--cp1-pure-white);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    margin-bottom: var(--cp1-space-sm);
}
.cp1-building-type-card__desc {
    font-size: var(--cp1-text-sm);
    color: var(--cp1-steel);
    line-height: 1.6;
    margin-bottom: var(--cp1-space-md);
}
.cp1-building-type-card__cta {
    margin-top: auto;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--cp1-crimson);
    transition: color var(--cp1-transition);
}
.cp1-building-type-card:hover .cp1-building-type-card__cta {
    color: var(--cp1-gold);
}
.cp1-building-type-card__cta svg {
    transition: transform var(--cp1-transition);
}
.cp1-building-type-card:hover .cp1-building-type-card__cta svg {
    transform: translateX(3px);
}

/* --- Blog Single: Hero Image --- */


/* --- State Single: Content width --- */
.cp1-article--wide {
    max-width: var(--cp1-content);
}

/* --- State Service Area Pages --- */
.cp1-state-article {
    padding: var(--cp1-space-2xl) 0 var(--cp1-space-2xl);
}
.cp1-state-article__body {
    font-size: 1.0625rem;
    line-height: 1.85;
    color: var(--cp1-charcoal);
}
.cp1-state-article__body h2 {
    font-size: var(--cp1-text-2xl);
    line-height: 1.2;
    margin: 3rem 0 1.25rem;
    padding-top: 2rem;
    border-top: 2px solid #e5e5e5;
    color: var(--cp1-charcoal);
}
.cp1-state-article__body h2:first-child {
    border-top: none;
    padding-top: 0;
    margin-top: 0;
}
.cp1-state-article__body h3 {
    font-size: var(--cp1-text-lg);
    line-height: 1.3;
    margin: 2rem 0 0.75rem;
    color: var(--cp1-crimson);
}
.cp1-state-article__body p {
    margin-bottom: 1.25rem;
    color: #3a3a3a;
}
.cp1-state-article__body ul,
.cp1-state-article__body ol {
    margin-bottom: 1.25rem;
    padding-left: 1.5rem;
}
.cp1-state-article__body ul { list-style: none; padding-left: 0; }
.cp1-state-article__body ul li {
    position: relative;
    padding-left: 1.5rem;
    margin-bottom: 0.75rem;
    color: #3a3a3a;
}
.cp1-state-article__body ul li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.6em;
    width: 8px;
    height: 8px;
    background: var(--cp1-crimson);
    border-radius: 50%;
}
.cp1-state-article__body ol { list-style: decimal; }
.cp1-state-article__body ol li {
    margin-bottom: 0.75rem;
    color: #3a3a3a;
}
.cp1-state-article__body a {
    color: var(--cp1-crimson);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-color: rgba(155, 17, 24, 0.3);
    transition: text-decoration-color 0.2s;
}
.cp1-state-article__body a:hover {
    text-decoration-color: var(--cp1-crimson);
}
.cp1-state-article__body strong {
    color: var(--cp1-charcoal);
    font-weight: 700;
}
.cp1-state-article__body em {
    font-style: italic;
}

/* Inline CTA bar */
.cp1-state-cta {
    margin: 3.5rem 0;
    padding: 2.5rem;
    background: var(--cp1-charcoal);
    border-radius: var(--cp1-radius-md);
    border-left: 4px solid var(--cp1-crimson);
}
.cp1-state-cta__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    flex-wrap: wrap;
}
.cp1-state-cta h3 {
    font-size: var(--cp1-text-xl);
    color: var(--cp1-pure-white);
    margin: 0;
}
.cp1-state-cta p {
    color: var(--cp1-steel-light);
    margin: 0.25rem 0 0;
    font-size: var(--cp1-text-sm);
}
.cp1-state-cta__actions {
    display: flex;
    gap: 0.75rem;
    flex-shrink: 0;
}
@media (max-width: 640px) {
    .cp1-state-cta__inner { flex-direction: column; align-items: stretch; text-align: center; }
    .cp1-state-cta__actions { justify-content: center; }
}

/* ============================================
   COMPARISON TABLE — Steel vs Wood vs Concrete
   ============================================ */
.cp1-compare__wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: var(--cp1-radius-md);
    border: 1px solid var(--cp1-graphite);
}
.cp1-compare {
    width: 100%;
    border-collapse: collapse;
    min-width: 500px;
}
.cp1-compare thead th {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-sm);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 1rem 1.25rem;
    background: var(--cp1-graphite);
    color: var(--cp1-steel-light);
    text-align: center;
    border-bottom: 2px solid var(--cp1-crimson);
}
.cp1-compare thead th.cp1-compare__feature-head {
    text-align: left;
    color: var(--cp1-steel);
}
.cp1-compare thead th.cp1-compare__highlight {
    background: var(--cp1-crimson);
    color: var(--cp1-pure-white);
}
.cp1-compare tbody td {
    padding: 1rem 1.25rem;
    font-size: var(--cp1-text-base);
    color: var(--cp1-steel-light);
    text-align: center;
    border-bottom: 1px solid var(--cp1-graphite);
    background: var(--cp1-charcoal);
    transition: background 0.15s;
}
.cp1-compare tbody tr:nth-child(even) td {
    background: var(--cp1-black);
}
.cp1-compare tbody tr:hover td {
    background: var(--cp1-graphite);
}
.cp1-compare tbody td.cp1-compare__feature {
    text-align: left;
    font-weight: 600;
    color: var(--cp1-pure-white);
    font-size: var(--cp1-text-sm);
}
.cp1-compare tbody td.cp1-compare__highlight {
    background: #2a1215;
    color: var(--cp1-pure-white);
    font-weight: 700;
    font-size: var(--cp1-text-base);
}
.cp1-compare tbody tr:nth-child(even) td.cp1-compare__highlight {
    background: #1f0d0f;
}
.cp1-compare tbody tr:hover td.cp1-compare__highlight {
    background: #3a181c;
}
/* Check/X icon colors + sizing */
.cp1-compare tbody td svg {
    display: block;
    margin: 0 auto;
    width: 22px;
    height: 22px;
}
.cp1-compare tbody td.cp1-compare__highlight svg polyline {
    stroke: #66BB6A;
    stroke-width: 3;
}
.cp1-compare tbody td svg polyline {
    stroke: #66BB6A;
}
.cp1-compare tbody td svg line {
    stroke: #EF5350;
    stroke-width: 3;
}
.cp1-compare__dash {
    color: var(--cp1-steel);
    font-size: 1.4em;
}
@media (max-width: 640px) {
    .cp1-compare thead th,
    .cp1-compare tbody td {
        padding: 0.625rem 0.75rem;
        font-size: var(--cp1-text-xs);
    }
}


.cp1-compare__disclaimer {
    display: block;
    font-size: 0.6rem;
    font-weight: 400;
    color: var(--cp1-pure-white);
    margin-top: 4px;
    letter-spacing: 0.01em;
    line-height: 1.3;
    font-style: italic;
}

/* ============================================
   VIDEO SECTION — Full-bleed with overlay
   ============================================ */
.cp1-video-section {
    position: relative;
    min-height: 400px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.cp1-video-section__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.cp1-video-section__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(13, 13, 13, 0.85) 0%, rgba(28, 28, 28, 0.7) 100%);
}
.cp1-video-section__content {
    position: relative;
    z-index: 1;
    text-align: center;
    padding: var(--cp1-space-4xl) var(--cp1-space-lg);
}
.cp1-video-section__label {
    display: inline-block;
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: var(--cp1-gold);
    margin-bottom: var(--cp1-space-md);
}
.cp1-video-section__title {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-3xl);
    font-weight: 700;
    color: var(--cp1-pure-white);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    margin-bottom: var(--cp1-space-md);
}
.cp1-video-section__text {
    font-size: var(--cp1-text-lg);
    color: var(--cp1-steel-light);
    max-width: 600px;
    margin: 0 auto var(--cp1-space-xl);
    line-height: 1.7;
}
@media (max-width: 768px) {
    .cp1-video-section { min-height: 320px; }
    .cp1-video-section__title { font-size: var(--cp1-text-2xl); }
    .cp1-video-section__content { padding: var(--cp1-space-3xl) var(--cp1-space-lg); }
}

/* ============================================
   SERVICE AREA — Full-bleed dark section
   ============================================ */
.cp1-service-area {
    position: relative;
    padding: var(--cp1-space-4xl) 0;
    background: var(--cp1-charcoal);
    overflow: hidden;
    border-top: 4px solid var(--cp1-crimson);
    border-bottom: 4px solid var(--cp1-crimson);
}
.cp1-service-area__bg {
    position: absolute;
    inset: 0;
    opacity: 0.035;
    background-image: url("data:image/svg+xml,%3Csvg width='600' height='600' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 300c50-40 100-20 150-60s100 10 150-30 100-50 150-10 100 40 150-20' fill='none' stroke='%23fff' stroke-width='1'/%3E%3Cpath d='M0 200c60-30 120 10 180-40s120 20 180-20 120-40 180 0' fill='none' stroke='%23fff' stroke-width='1'/%3E%3Cpath d='M0 400c40-50 80 0 160-30s120 30 200-10 160-60 240-20' fill='none' stroke='%23fff' stroke-width='1'/%3E%3Cpath d='M0 100c70-20 140 30 210-10s140-40 210 10 140 20 180-30' fill='none' stroke='%23fff' stroke-width='1'/%3E%3Cpath d='M0 500c80-30 160 20 240-20s160-30 240 10 120 40 120-10' fill='none' stroke='%23fff' stroke-width='1'/%3E%3C/svg%3E");
    background-size: 600px 600px;
    pointer-events: none;
}
.cp1-service-area__header {
    text-align: center;
    margin-bottom: var(--cp1-space-2xl);
    position: relative;
    z-index: 1;
}
.cp1-service-area__label {
    display: inline-block;
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: var(--cp1-gold);
    margin-bottom: var(--cp1-space-sm);
}
.cp1-service-area__title {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-3xl);
    font-weight: 700;
    color: var(--cp1-pure-white);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    justify-content: center;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: var(--cp1-space-md);
}
.cp1-service-area__title svg {
    color: var(--cp1-crimson);
    flex-shrink: 0;
}
.cp1-service-area__subtitle {
    font-size: var(--cp1-text-lg);
    color: var(--cp1-steel-light);
    max-width: 600px;
    margin: 0 auto;
}
/* Flowing newspaper columns */
.cp1-service-area__columns {
    column-count: 5;
    column-gap: 2.5rem;
    list-style: none;
    padding: 0;
    margin: 0;
    position: relative;
    z-index: 1;
}
.cp1-service-area__columns li {
    padding: 0.4rem 0;
    font-size: var(--cp1-text-sm);
    color: var(--cp1-steel-light);
    break-inside: avoid;
    border-bottom: 1px solid rgba(46, 46, 46, 0.6);
    transition: color 0.15s;
    line-height: 1.6;
}
.cp1-service-area__columns li:hover {
    color: var(--cp1-pure-white);
}
.cp1-service-area__columns li::before {
    content: '';
    display: inline-block;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--cp1-crimson);
    margin-right: 0.625rem;
    vertical-align: middle;
}
/* CTA at bottom */
.cp1-service-area__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--cp1-space-lg);
    margin-top: var(--cp1-space-2xl);
    padding-top: var(--cp1-space-xl);
    border-top: 1px solid var(--cp1-graphite);
    position: relative;
    z-index: 1;
}
.cp1-service-area__cta-text {
    font-size: var(--cp1-text-lg);
    color: var(--cp1-steel-light);
    font-style: italic;
}
@media (max-width: 1024px) {
    .cp1-category-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 768px) {
    .cp1-service-area__columns { column-count: 4; }
}
@media (max-width: 768px) {
    .cp1-service-area__columns { column-count: 3; column-gap: 1.5rem; }
    .cp1-service-area__title { font-size: var(--cp1-text-2xl); }
    .cp1-service-area__cta { flex-direction: column; text-align: center; }
}
@media (max-width: 480px) {
    .cp1-service-area__columns { column-count: 2; column-gap: 1rem; }
}

/* --- Contact Page --- */
.cp1-contact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--cp1-space-3xl);
    align-items: start;
}
@media (max-width: 768px) {
    .cp1-contact-grid { grid-template-columns: 1fr; }
}
.cp1-contact__heading {
    font-size: var(--cp1-text-2xl);
    margin-bottom: var(--cp1-space-lg);
    color: var(--cp1-pure-white);
}
.cp1-contact-info {
    display: flex;
    flex-direction: column;
    gap: var(--cp1-space-xl);
}
.cp1-contact-item {
    display: flex;
    gap: var(--cp1-space-lg);
    align-items: flex-start;
}
.cp1-contact-item__icon {
    width: 48px;
    height: 48px;
    background: var(--cp1-crimson);
    border-radius: var(--cp1-radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.cp1-contact-item__title {
    font-size: var(--cp1-text-lg);
    margin-bottom: var(--cp1-space-xs);
    color: var(--cp1-pure-white);
}
.cp1-contact-item__link {
    color: var(--cp1-gold);
    font-weight: 600;
    font-size: var(--cp1-text-lg);
}
.cp1-contact-item__link:hover {
    color: var(--cp1-gold-light);
}
.cp1-contact-item__text {
    color: var(--cp1-steel-light);
}
.cp1-contact__cta {
    margin-top: var(--cp1-space-2xl);
    text-align: center;
}

/* ============================================
   STATE PAGE — Two-Column Layout
   ============================================ */
.cp1-state-layout {
    display: grid;
    grid-template-columns: 1fr 420px;
    gap: var(--cp1-space-3xl);
    align-items: start;
    padding-top: var(--cp1-space-2xl);
    padding-bottom: var(--cp1-space-4xl);
    max-width: 65%;
    margin: 0 auto;
}
.cp1-state-layout__content {
    min-width: 0;
}
.cp1-state-layout__sidebar {
    position: sticky;
    top: 80px;
    max-height: calc(100vh - 100px);
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--cp1-graphite) transparent;
}
.cp1-state-layout__sidebar::-webkit-scrollbar {
    width: 4px;
}
.cp1-state-layout__sidebar::-webkit-scrollbar-thumb {
    background: var(--cp1-graphite);
    border-radius: 2px;
}
@media (max-width: 1024px) {
    .cp1-category-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 768px) {
    .cp1-state-layout {
        grid-template-columns: 1fr;
    }
    .cp1-state-layout__sidebar {
        display: none;
    }
}

/* ============================================
   STATE PAGE — Section Animations
   ============================================ */
.cp1-state-section {
    margin: var(--cp1-space-4xl) 0;
    padding: var(--cp1-space-3xl) 0;
    border-top: 1px solid #e5e5e5;
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}
.cp1-state-section.is-visible {
    opacity: 1;
    transform: translateY(0);
}
.cp1-state-section__title {
    font-size: var(--cp1-text-2xl);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--cp1-charcoal);
    margin-bottom: var(--cp1-space-md);
}

/* ============================================
   PROCESS TIMELINE — How It Works
   ============================================ */
.cp1-timeline {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--cp1-space-xl);
    position: relative;
    padding: var(--cp1-space-xl) 0;
    max-width: 1000px;
    margin: 0 auto;
}
.cp1-timeline__step {
    text-align: center;
    position: relative;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s ease, transform 0.5s ease;
    cursor: default;
}
.cp1-timeline__step.is-visible {
    opacity: 1;
    transform: translateY(0);
}
/* Connecting line — base track */
.cp1-timeline__step:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 28px;
    left: 50%;
    width: 100%;
    height: 4px;
    background: #e0e0e0;
    border-radius: 2px;
    z-index: 0;
}
/* Connecting line — fill overlay (water flow) */
.cp1-timeline__step:not(:last-child)::before {
    content: '';
    position: absolute;
    top: 28px;
    left: 50%;
    width: 0%;
    height: 4px;
    border-radius: 2px;
    background: linear-gradient(90deg,
        var(--cp1-crimson) 0%,
        var(--cp1-crimson-light) 40%,
        var(--cp1-crimson) 60%,
        var(--cp1-crimson-light) 100%);
    background-size: 200% 100%;
    z-index: 0;
    transition: width 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);

}
.cp1-timeline__step.is-line-filled:not(:last-child)::before {
    width: 100%;
    animation: cp1-water-flow 1.5s ease-in-out infinite;
}
@keyframes cp1-water-flow {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}
/* Icon — default: outlined */
.cp1-timeline__icon {
    width: 60px;
    height: 60px;
    margin: 0 auto var(--cp1-space-md);
    border-radius: 50%;
    background: var(--cp1-pure-white);
    border: 2px solid var(--cp1-charcoal);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--cp1-charcoal);
    position: relative;
    z-index: 1;
    transition: all 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
/* Icon — filled state */
.cp1-timeline__step.is-filled .cp1-timeline__icon {
    background: var(--cp1-crimson);
    border-color: var(--cp1-crimson);
    color: var(--cp1-pure-white);
    box-shadow: 0 0 24px rgba(155, 17, 24, 0.4);
    transform: scale(1.08);
}
.cp1-timeline__number {
    display: block;
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--cp1-steel);
    margin-bottom: var(--cp1-space-xs);
    transition: color 0.35s ease;
}
.cp1-timeline__step.is-filled .cp1-timeline__number {
    color: var(--cp1-gold);
}
.cp1-timeline__title {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-base);
    font-weight: 700;
    text-transform: uppercase;
    color: #b0b0b0;
    margin-bottom: var(--cp1-space-xs);
    transition: color 0.35s ease;
}
.cp1-timeline__step.is-filled .cp1-timeline__title {
    color: var(--cp1-charcoal);
}
.cp1-timeline__text {
    font-size: var(--cp1-text-sm);
    color: var(--cp1-steel);
    line-height: 1.5;
    transition: color 0.35s ease;
}
.cp1-timeline__step.is-filled .cp1-timeline__text {
    color: var(--cp1-charcoal);
}
@media (max-width: 768px) {
    .cp1-timeline {
        grid-template-columns: 1fr 1fr;
        gap: var(--cp1-space-xl) var(--cp1-space-lg);
    }
    .cp1-timeline__step:not(:last-child)::after,
    .cp1-timeline__step:not(:last-child)::before {
        display: none;
    }
}
@media (max-width: 480px) {
    .cp1-timeline {
        grid-template-columns: 1fr;
    }
}

/* ============================================
   PRODUCTS CAROUSEL
   ============================================ */
/* Override product card glow animation inside carousel — show immediately */
.cp1-carousel .cp1-product-card-glow {
    opacity: 1 !important;
    transform: none !important;
}

/* ============================================
   STATS BAR — Trust Signals (state pages)
   ============================================ */
.cp1-state-trust .cp1-stats-bar {
    grid-template-columns: repeat(4, 1fr);
    padding: var(--cp1-space-xl);
    background: var(--cp1-charcoal);
    border-radius: var(--cp1-radius-md);
    border-left: 4px solid var(--cp1-gold);
    margin-bottom: var(--cp1-space-xl);
}
.cp1-state-trust .cp1-stat {
    text-align: center;
}
.cp1-stat__value {
    display: block;
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-3xl);
    font-weight: 700;
    color: var(--cp1-gold);
    line-height: 1;
    margin-bottom: var(--cp1-space-xs);
}
@media (max-width: 640px) {
    .cp1-state-trust .cp1-stats-bar {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--cp1-space-lg);
    }
}

/* Trust Badges */
.cp1-trust-badges {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: var(--cp1-space-2xl);
    flex-wrap: wrap;
    padding: var(--cp1-space-lg) 0;
}
.cp1-trust-badge {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--cp1-space-sm);
    text-align: center;
    color: var(--cp1-steel);
    font-size: var(--cp1-text-xs);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    line-height: 1.4;
}
.cp1-trust-badge svg {
    color: var(--cp1-gold);
}

/* ============================================
   FINANCING TEASER
   ============================================ */
.cp1-financing-teaser__inner {
    display: flex;
    align-items: center;
    gap: var(--cp1-space-xl);
    padding: var(--cp1-space-xl);
    background: var(--cp1-charcoal);
    border-radius: var(--cp1-radius-md);
    border-left: 4px solid var(--cp1-gold);
}
.cp1-financing-teaser__badge {
    flex-shrink: 0;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: rgba(212, 168, 19, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--cp1-gold);
}
.cp1-financing-teaser__title {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xl);
    font-weight: 700;
    text-transform: uppercase;
    color: var(--cp1-pure-white);
    margin-bottom: var(--cp1-space-xs);
}
.cp1-financing-teaser__text {
    font-size: var(--cp1-text-sm);
    color: var(--cp1-steel-light);
    margin-bottom: var(--cp1-space-md);
}
.cp1-financing-teaser__options {
    display: flex;
    gap: var(--cp1-space-sm);
    flex-wrap: wrap;
}
.cp1-financing-teaser__pill {
    display: inline-block;
    padding: 0.25rem 0.75rem;
    background: var(--cp1-graphite);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 100px;
    font-size: var(--cp1-text-xs);
    color: var(--cp1-steel-light);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.cp1-financing-teaser__cta {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: var(--cp1-space-sm);
}
@media (max-width: 768px) {
    .cp1-financing-teaser__inner {
        flex-direction: column;
        text-align: center;
    }
    .cp1-financing-teaser__options {
        justify-content: center;
    }
    .cp1-financing-teaser__cta {
        width: 100%;
    }
    .cp1-financing-teaser__cta .cp1-btn {
        width: 100%;
        justify-content: center;
    }
}

/* ============================================
   MOBILE QUOTE BAR + MODAL
   ============================================ */
.cp1-mobile-quote-bar {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 998;
    background: var(--cp1-charcoal);
    border-top: 2px solid var(--cp1-crimson);
    padding: var(--cp1-space-md) var(--cp1-space-lg);
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.4);
    align-items: center;
    justify-content: space-between;
    gap: var(--cp1-space-md);
}
.cp1-mobile-quote-bar__text {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-sm);
    font-weight: 700;
    text-transform: uppercase;
    color: var(--cp1-pure-white);
}
@media (max-width: 1024px) {
    .cp1-category-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 768px) {
    .cp1-mobile-quote-bar {
        display: flex;
    }
    body.single-states-service-area {
        padding-bottom: 72px;
    }
}

/* Quote Modal */
.cp1-quote-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}
.cp1-quote-modal.is-open {
    opacity: 1;
    visibility: visible;
}
.cp1-quote-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}
.cp1-quote-modal__panel {
    position: relative;
    background: var(--cp1-charcoal);
    border-radius: var(--cp1-radius-lg) var(--cp1-radius-lg) 0 0;
    max-height: 90vh;
    overflow-y: auto;
    transform: translateY(100%);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    padding: var(--cp1-space-lg);
}
.cp1-quote-modal.is-open .cp1-quote-modal__panel {
    transform: translateY(0);
}
.cp1-quote-modal__header {
    text-align: center;
    margin-bottom: var(--cp1-space-lg);
    position: relative;
}
.cp1-quote-modal__title {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xl);
    font-weight: 700;
    text-transform: uppercase;
    color: var(--cp1-pure-white);
}
.cp1-quote-modal__subtitle {
    font-size: var(--cp1-text-sm);
    color: var(--cp1-steel-light);
}
.cp1-quote-modal__close {
    position: absolute;
    top: 0;
    right: 0;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--cp1-graphite);
    border: none;
    color: var(--cp1-pure-white);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background var(--cp1-transition);
}
.cp1-quote-modal__close:hover {
    background: var(--cp1-crimson);
}
/* Modal form uses 2-column rows on wider phones */
@media (min-width: 480px) {
    .cp1-quote-modal .cp1-form__row {
        grid-template-columns: 1fr 1fr;
    }
}

/* --- Utility --- */
.text-center { text-align: center; }
.mt-xl { margin-top: var(--cp1-space-xl); }
.mt-2xl { margin-top: var(--cp1-space-2xl); }
.mb-xl { margin-bottom: var(--cp1-space-xl); }
.mb-2xl { margin-bottom: var(--cp1-space-2xl); }

/* Product Title */
.cp1-product__title {
    color: var(--cp1-pure-white);
    font-size: var(--cp1-text-xl);
    margin-bottom: var(--cp1-space-xs);
    line-height: 1.2;
}

/* Price "Starting at" label */
.cp1-product__price-tag small {
    display: block;
    font-size: var(--cp1-text-xs);
    font-weight: 400;
    color: var(--cp1-steel);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: var(--cp1-space-2xs);
}

/* Product Trust Signals */
.cp1-product-trust {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--cp1-space-2xs);
    margin-top: var(--cp1-space-sm);
    padding-top: var(--cp1-space-sm);
    border-top: 1px solid var(--cp1-graphite);
}
.cp1-product-trust__item {
    display: flex;
    align-items: center;
    gap: var(--cp1-space-sm);
    font-size: var(--cp1-text-xs);
    font-weight: 600;
    color: var(--cp1-steel-light);
}
.cp1-product-trust__item svg {
    flex-shrink: 0;
    color: var(--cp1-gold);
}

/* Related products grid — 80% width centered */

/* Related section — wider container */
.cp1-related .cp1-container {
    max-width: 80%;
}

/* Category badge on product page */
.cp1-product__category {
    display: inline-block;
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--cp1-gold);
    margin-bottom: var(--cp1-space-sm);
    transition: color var(--cp1-transition);
}
.cp1-product__category:hover {
    color: var(--cp1-pure-white);
}

/* Mobile Sticky CTA */
.cp1-mobile-cta {
    display: none;
}
@media (max-width: 768px) {
    .cp1-mobile-cta {
        display: flex;
        align-items: center;
        justify-content: space-between;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 999;
        background: var(--cp1-charcoal);
        border-top: 1px solid var(--cp1-graphite);
        padding: var(--cp1-space-md) var(--cp1-space-lg);
        box-shadow: 0 -4px 20px rgba(0,0,0,0.4);
    }
    .cp1-mobile-cta__price {
        font-family: var(--cp1-font-heading);
        font-size: var(--cp1-text-lg);
        font-weight: 700;
        color: var(--cp1-gold);
        line-height: 1.2;
    }
    .cp1-mobile-cta__price small {
        display: block;
        font-size: var(--cp1-text-xs);
        font-weight: 400;
        color: var(--cp1-steel);
        text-transform: uppercase;
        letter-spacing: 0.08em;
    }
    /* Add bottom padding to main so sticky bar doesn't cover content */
    .cp1-product ~ .cp1-related {
        padding-bottom: calc(var(--cp1-space-3xl) + 70px);
    }
}

/* --- Global Quote Modal — compact & eye-catching --- */
.cp1-quote-modal--financing {
    justify-content: center;
    align-items: center;
    padding: var(--cp1-space-lg);
}
.cp1-quote-modal--financing .cp1-quote-modal__panel--compact {
    border-radius: var(--cp1-radius-lg);
    max-width: 520px;
    width: 100%;
    padding: 0;
    transform: translateY(40px) scale(0.92);
    opacity: 0;
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease;
    border: 1px solid rgba(255,255,255,0.08);
    box-shadow: 0 25px 60px rgba(0,0,0,0.5), 0 0 0 1px rgba(155,17,24,0.3);
}
.cp1-quote-modal--financing.is-open .cp1-quote-modal__panel--compact {
    transform: translateY(0) scale(1);
    opacity: 1;
}

.cp1-quote-modal--global {
    justify-content: center;
    align-items: center;
    padding: var(--cp1-space-lg);
}
.cp1-quote-modal--global .cp1-quote-modal__panel--compact {
    border-radius: var(--cp1-radius-lg);
    max-width: 520px;
    width: 100%;
    padding: 0;
    transform: translateY(40px) scale(0.92);
    opacity: 0;
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease;
    border: 1px solid rgba(255,255,255,0.08);
    box-shadow: 0 25px 60px rgba(0,0,0,0.5), 0 0 0 1px rgba(155,17,24,0.3);
}
.cp1-quote-modal--global.is-open .cp1-quote-modal__panel--compact {
    transform: translateY(0) scale(1);
    opacity: 1;
}
/* Close button — top right over accent */
.cp1-quote-modal__panel--compact .cp1-quote-modal__close {
    position: absolute;
    top: var(--cp1-space-sm);
    right: var(--cp1-space-sm);
    z-index: 2;
    background: rgba(0,0,0,0.3);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}
/* Accent header */
.cp1-quote-modal__accent {
    background: var(--cp1-crimson);
    padding: var(--cp1-space-xl) var(--cp1-space-xl) var(--cp1-space-lg);
    text-align: center;
    position: relative;
    overflow: hidden;
}
.cp1-quote-modal__accent::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(255,255,255,0.1) 0%, transparent 50%, rgba(0,0,0,0.1) 100%);
}
.cp1-quote-modal__accent-label {
    display: inline-block;
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--cp1-pure-white);
    background: var(--cp1-black);
    border-radius: 100px;
    padding: 0.3em 1.2em;
    margin-bottom: var(--cp1-space-sm);
    position: relative;
}
.cp1-quote-modal__accent-title {
    font-family: var(--cp1-font-heading);
    font-size: clamp(1.25rem, 3vw, 1.6rem);
    font-weight: 800;
    color: var(--cp1-pure-white);
    text-transform: uppercase;
    line-height: 1.15;
    margin-bottom: var(--cp1-space-xs);
    position: relative;
}
.cp1-quote-modal__accent-sub {
    font-size: var(--cp1-text-sm);
    color: rgba(255,255,255,0.85);
    position: relative;
}
/* Form body */
.cp1-quote-modal__body {
    padding: var(--cp1-space-lg) var(--cp1-space-xl) var(--cp1-space-xl);
}
.cp1-quote-modal__body .cp1-form {
    max-width: none;
}
.cp1-quote-modal__body .cp1-form__row {
    gap: var(--cp1-space-sm);
    margin-bottom: var(--cp1-space-sm);
}
.cp1-quote-modal__body .cp1-form__input,
.cp1-quote-modal__body .cp1-form__select {
    padding: 0.55rem 0.7rem;
    font-size: var(--cp1-text-sm);
}
.cp1-quote-modal__body .cp1-form__label {
    font-size: 0.65rem;
}
.cp1-quote-modal__body .cp1-form__row--size {
    grid-template-columns: 1.5fr 1fr 1fr 1fr;
    gap: var(--cp1-space-xs);
}
.cp1-quote-modal__body .cp1-form__submit--compact {
    margin-top: var(--cp1-space-md);
}
.cp1-quote-modal__body .cp1-sidebar-form__btn {
    width: 100%;
    justify-content: center;
}
.cp1-quote-modal__body .cp1-sidebar-form__phone {
    text-align: center;
    margin-top: var(--cp1-space-sm);
    font-size: var(--cp1-text-sm);
    color: var(--cp1-steel-light);
}
.cp1-quote-modal__body .cp1-sidebar-form__phone a {
    color: var(--cp1-gold);
    font-weight: 600;
    text-decoration: none;
}
.cp1-quote-modal__body .cp1-turnstile {
    margin: var(--cp1-space-sm) 0;
}
@media (max-width: 640px) {
    .cp1-quote-modal--financing {
    justify-content: center;
    align-items: center;
    padding: var(--cp1-space-lg);
}
.cp1-quote-modal--financing .cp1-quote-modal__panel--compact {
    border-radius: var(--cp1-radius-lg);
    max-width: 520px;
    width: 100%;
    padding: 0;
    transform: translateY(40px) scale(0.92);
    opacity: 0;
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease;
    border: 1px solid rgba(255,255,255,0.08);
    box-shadow: 0 25px 60px rgba(0,0,0,0.5), 0 0 0 1px rgba(155,17,24,0.3);
}
.cp1-quote-modal--financing.is-open .cp1-quote-modal__panel--compact {
    transform: translateY(0) scale(1);
    opacity: 1;
}

.cp1-quote-modal--global {
        padding: 0;
        justify-content: flex-end;
        align-items: stretch;
    }
    .cp1-quote-modal--global .cp1-quote-modal__panel--compact {
        border-radius: var(--cp1-radius-lg) var(--cp1-radius-lg) 0 0;
        max-width: none;
        border-bottom: none;
    }
    .cp1-quote-modal__body {
        padding: var(--cp1-space-md);
    }
    .cp1-quote-modal__body .cp1-form__row--size {
        grid-template-columns: 1fr 1fr 1fr;
    }
    .cp1-quote-modal__body .cp1-form__row--half {
        grid-template-columns: 1fr;
    }
}

/* ============================================
   FINANCING / RTO PAGE
   ============================================ */

/* Hero variant — taller with actions */
.cp1-page-hero--tall {
    padding: var(--cp1-space-3xl) 0 var(--cp1-space-2xl);
}
.cp1-page-hero__label {
    display: inline-block;
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--cp1-gold);
    border: 1px solid rgba(212,168,19,0.3);
    border-radius: 100px;
    padding: 0.3em 1.2em;
    margin-bottom: var(--cp1-space-md);
}
.cp1-page-hero--tall .cp1-page-hero__subtitle {
    max-width: 600px;
    margin: 0 auto var(--cp1-space-xl);
}
.cp1-page-hero__actions {
    display: flex;
    gap: var(--cp1-space-md);
    justify-content: center;
    flex-wrap: wrap;
}

/* Benefits Grid */
.cp1-rto-benefits {
    padding: var(--cp1-space-2xl) 0;
}
.cp1-rto-benefits__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--cp1-space-lg);
}
.cp1-rto-benefit {
    text-align: center;
    padding: var(--cp1-space-xl) var(--cp1-space-lg);
    background: var(--cp1-charcoal);
    border-radius: var(--cp1-radius-md);
    border: 1px solid rgba(255,255,255,0.05);
    transition: border-color var(--cp1-transition), transform var(--cp1-transition);
}
.cp1-rto-benefit:hover {
    border-color: rgba(212,168,19,0.2);
    transform: translateY(-2px);
}
.cp1-rto-benefit__icon {
    width: 56px;
    height: 56px;
    margin: 0 auto var(--cp1-space-md);
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(212,168,19,0.1);
    border-radius: 50%;
    color: var(--cp1-gold);
    transition: background var(--cp1-transition), color var(--cp1-transition);
}
.cp1-rto-benefit:hover .cp1-rto-benefit__icon {
    background: rgba(155,17,24,0.15);
    color: var(--cp1-crimson);
}
.cp1-rto-benefit__title {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-base);
    font-weight: 700;
    color: var(--cp1-pure-white);
    margin-bottom: var(--cp1-space-xs);
}
.cp1-rto-benefit__text {
    font-size: var(--cp1-text-sm);
    color: var(--cp1-steel-light);
    line-height: 1.5;
}

/* Steps */
.cp1-rto-steps {
    padding: var(--cp1-space-3xl) 0;
    background: var(--cp1-charcoal);
}
.cp1-rto-steps__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--cp1-space-xl);
    margin-top: var(--cp1-space-2xl);
}
.cp1-rto-step {
    position: relative;
}
.cp1-rto-step__number {
    display: block;
    font-family: var(--cp1-font-heading);
    font-size: clamp(2.5rem, 5vw, 3.5rem);
    font-weight: 800;
    color: var(--cp1-gold);
    line-height: 1;
    margin-bottom: var(--cp1-space-sm);
}
.cp1-rto-step__title {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-lg);
    font-weight: 700;
    color: var(--cp1-pure-white);
    margin-bottom: var(--cp1-space-sm);
}
.cp1-rto-step__text {
    font-size: var(--cp1-text-sm);
    color: var(--cp1-steel-light);
    line-height: 1.6;
}

/* Section labels & titles (shared) */
.cp1-section-label {
    display: block;
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--cp1-gold);
    margin-bottom: var(--cp1-space-sm);
    text-align: center;
}
.cp1-section-title {
    font-family: var(--cp1-font-heading);
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    font-weight: 800;
    text-transform: uppercase;
    color: var(--cp1-pure-white);
    text-align: center;
    margin-bottom: var(--cp1-space-sm);
}
.cp1-section-subtitle {
    font-size: var(--cp1-text-base);
    color: var(--cp1-steel-light);
    text-align: center;
    max-width: 560px;
    margin: 0 auto;
}

/* Partners Grid */
.cp1-rto-partners {
    padding: var(--cp1-space-3xl) 0;
}
.cp1-rto-partners__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--cp1-space-lg);
    margin-top: var(--cp1-space-2xl);
}
.cp1-rto-partner {
    background: var(--cp1-charcoal);
    border-radius: var(--cp1-radius-md);
    border: 1px solid rgba(255,255,255,0.06);
    padding: var(--cp1-space-xl);
    transition: border-color var(--cp1-transition);
    display: flex;
    flex-direction: column;
    align-items: center;
}
.cp1-rto-partner:hover {
    border-color: rgba(212,168,19,0.2);
}
.cp1-rto-partner__logo {
    margin-bottom: var(--cp1-space-lg);
    padding-bottom: var(--cp1-space-lg);
    border-bottom: 1px solid rgba(255,255,255,0.06);
    text-align: center;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 60px;
}
.cp1-rto-partner__logo img {
    max-height: 55px;
    width: auto;
    object-fit: contain;
}
.cp1-rto-partner__features {
    list-style: none;
    padding: 0;
    margin: 0;
}
.cp1-rto-partner__features li {
    position: relative;
    padding-left: 1.4em;
    margin-bottom: var(--cp1-space-sm);
    font-size: var(--cp1-text-sm);
    color: #D4D4D4;
    line-height: 1.5;
}
.cp1-rto-partner__features li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 6px;
    height: 6px;
    background: var(--cp1-gold);
    border-radius: 50%;
}

/* Why Section */
.cp1-rto-why {
    padding: var(--cp1-space-3xl) 0;
    background: var(--cp1-charcoal);
}
.cp1-rto-why__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--cp1-space-2xl);
    align-items: center;
}
.cp1-rto-why__title {
    font-family: var(--cp1-font-heading);
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 800;
    text-transform: uppercase;
    color: var(--cp1-pure-white);
    margin-bottom: var(--cp1-space-md);
}
.cp1-rto-why__text {
    color: var(--cp1-steel-light);
    line-height: 1.7;
    margin-bottom: var(--cp1-space-lg);
}
.cp1-rto-why__list {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--cp1-space-xl);
}
.cp1-rto-why__list li {
    position: relative;
    padding-left: 1.6em;
    margin-bottom: var(--cp1-space-sm);
    color: var(--cp1-concrete, #ddd);
    font-size: var(--cp1-text-sm);
}
.cp1-rto-why__list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.45em;
    width: 8px;
    height: 8px;
    background: var(--cp1-crimson);
    border-radius: 50%;
}
.cp1-rto-why__actions {
    display: flex;
    gap: var(--cp1-space-md);
    flex-wrap: wrap;
}
.cp1-rto-why__image img {
    width: 100%;
    border-radius: var(--cp1-radius-md);
}

/* Bottom CTA */
.cp1-rto-cta {
    padding: var(--cp1-space-3xl) 0;
    text-align: center;
}
.cp1-rto-cta__title {
    font-family: var(--cp1-font-heading);
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    font-weight: 800;
    text-transform: uppercase;
    color: var(--cp1-pure-white);
    margin-bottom: var(--cp1-space-sm);
}
.cp1-rto-cta__text {
    color: var(--cp1-steel-light);
    margin-bottom: var(--cp1-space-xl);
    max-width: 500px;
    margin-left: auto;
    margin-right: auto;
}
.cp1-rto-cta__actions {
    display: flex;
    gap: var(--cp1-space-md);
    justify-content: center;
    flex-wrap: wrap;
}

/* Responsive */
@media (max-width: 768px) {
    .cp1-rto-benefits__grid { grid-template-columns: repeat(2, 1fr); }
    .cp1-rto-steps__grid { grid-template-columns: repeat(2, 1fr); }
    .cp1-rto-partners__grid { grid-template-columns: 1fr; }
    .cp1-rto-why__inner { grid-template-columns: 1fr; }
    .cp1-rto-why__image { order: -1; }
}
@media (max-width: 480px) {
    .cp1-rto-benefits__grid { grid-template-columns: 1fr; }
    .cp1-rto-steps__grid { grid-template-columns: 1fr; }
}

/* Featured buildings on financing page */
.cp1-rto-buildings {
    padding: var(--cp1-space-3xl) 0;
    background: rgba(255,255,255,0.04);
    border-top: 1px solid rgba(255,255,255,0.06);
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.cp1-rto-buildings .cp1-product-grid {
    margin-top: var(--cp1-space-2xl);
}

/* ============================================
   BUYING GUIDE PAGES
   ============================================ */

.cp1-container--narrow {
    max-width: var(--cp1-narrow, 800px);
    margin: 0 auto;
    padding-left: var(--cp1-space-lg);
    padding-right: var(--cp1-space-lg);
}

/* Table of Contents */
.cp1-guide-toc {
    padding: var(--cp1-space-xl) 0;
}
.cp1-guide-toc__title {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-sm);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--cp1-charcoal);
    margin-bottom: var(--cp1-space-md);
}
.cp1-guide-toc__nav {
    display: flex;
    flex-wrap: wrap;
    gap: var(--cp1-space-xs);
}
.cp1-guide-toc__nav a {
    font-size: var(--cp1-text-sm);
    color: var(--cp1-charcoal);
    text-decoration: none;
    padding: 0.35em 0.9em;
    border: 1px solid rgba(0,0,0,0.15);
    border-radius: 100px;
    transition: all var(--cp1-transition);
}
.cp1-guide-toc__nav a:hover {
    color: var(--cp1-crimson);
    border-color: var(--cp1-crimson);
}

/* Guide Sections */
.cp1-guide-section {
    padding: var(--cp1-space-3xl) 0;
}
.cp1-guide-section--alt {
    background: var(--cp1-charcoal);
}
.cp1-guide-section__title {
    font-family: var(--cp1-font-heading);
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 800;
    text-transform: uppercase;
    color: var(--cp1-charcoal);
    margin-bottom: var(--cp1-space-md);
    text-align: center;
}
.cp1-guide-section--alt .cp1-guide-section__title {
    color: var(--cp1-pure-white);
}
.cp1-guide-section__intro {
    font-size: var(--cp1-text-base);
    color: #555;
    text-align: center;
    line-height: 1.7;
    margin-bottom: var(--cp1-space-2xl);
}

/* Guide Body Text */
.cp1-guide-text {
    color: #444;
    line-height: 1.8;
    margin-bottom: var(--cp1-space-lg);
}
.cp1-guide-text p {
    margin-bottom: var(--cp1-space-md);
}
.cp1-guide-text strong {
    color: var(--cp1-pure-white);
}

/* Guide Cards (what to consider) */
.cp1-guide-cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--cp1-space-lg);
    margin-bottom: var(--cp1-space-2xl);
}
.cp1-guide-card {
    background: var(--cp1-charcoal);
    border-radius: var(--cp1-radius-md);
    padding: var(--cp1-space-xl);
    border: 1px solid rgba(255,255,255,0.05);
    transition: border-color var(--cp1-transition);
}
.cp1-guide-card:hover {
    border-color: rgba(212,168,19,0.2);
}
.cp1-guide-card__icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(212,168,19,0.1);
    border-radius: 50%;
    color: var(--cp1-gold);
    margin-bottom: var(--cp1-space-md);
    transition: background var(--cp1-transition), color var(--cp1-transition);
}
.cp1-guide-card:hover .cp1-guide-card__icon {
    background: rgba(155,17,24,0.15);
    color: var(--cp1-crimson);
}
.cp1-guide-card h3 {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-base);
    font-weight: 700;
    color: var(--cp1-pure-white);
    margin-bottom: var(--cp1-space-xs);
}
.cp1-guide-card p {
    font-size: var(--cp1-text-sm);
    color: #CCCCCC;
    line-height: 1.6;
}

/* Figures */
.cp1-guide-figure {
    margin: var(--cp1-space-2xl) 0 0;
}
.cp1-guide-figure img {
    width: 100%;
    border-radius: var(--cp1-radius-md);
}
.cp1-guide-figure figcaption {
    font-size: var(--cp1-text-sm);
    color: var(--cp1-steel-light);
    text-align: center;
    margin-top: var(--cp1-space-sm);
    font-style: italic;
}

/* Roof Styles */
.cp1-guide-roof-styles {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--cp1-space-lg);
}
.cp1-guide-roof {
    background: var(--cp1-graphite, rgba(255,255,255,0.04));
    border-radius: var(--cp1-radius-md);
    padding: var(--cp1-space-lg);
    border: 1px solid rgba(255,255,255,0.06);
    position: relative;
    overflow: hidden;
}
.cp1-guide-roof__badge {
    position: absolute;
    top: var(--cp1-space-sm);
    right: var(--cp1-space-sm);
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 0.2em 0.8em;
    border-radius: 100px;
}
.cp1-guide-roof__badge--good {
    background: var(--cp1-charcoal);
    color: var(--cp1-pure-white);
}
.cp1-guide-roof__badge--better {
    background: var(--cp1-gold);
    color: var(--cp1-black);
}
.cp1-guide-roof__badge--best {
    background: var(--cp1-crimson);
    color: var(--cp1-pure-white);
}
.cp1-guide-roof__images {
    margin-bottom: var(--cp1-space-md);
}
.cp1-guide-roof__images img {
    width: 100%;
    border-radius: var(--cp1-radius-sm);
}
.cp1-guide-roof h3 {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-lg);
    font-weight: 700;
    color: var(--cp1-pure-white);
    margin-bottom: var(--cp1-space-xs);
}
.cp1-guide-roof p {
    font-size: var(--cp1-text-sm);
    color: #CCCCCC;
    line-height: 1.6;
}

/* Specs (size section) */
.cp1-guide-specs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--cp1-space-lg);
}
.cp1-guide-spec {
    background: var(--cp1-charcoal);
    border-radius: var(--cp1-radius-md);
    padding: var(--cp1-space-xl);
    border-top: 3px solid var(--cp1-crimson);
}
.cp1-guide-spec h3 {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-lg);
    font-weight: 700;
    color: var(--cp1-pure-white);
    margin-bottom: var(--cp1-space-sm);
}
.cp1-guide-spec__sizes {
    font-size: var(--cp1-text-xs);
    color: var(--cp1-gold);
    font-weight: 600;
    margin-bottom: var(--cp1-space-md);
}
.cp1-guide-spec p:last-child {
    font-size: var(--cp1-text-sm);
    color: #CCCCCC;
    line-height: 1.6;
}

/* Gauge Compare */
.cp1-guide-compare {
    display: flex;
    align-items: stretch;
    gap: var(--cp1-space-lg);
    margin-bottom: var(--cp1-space-2xl);
}
.cp1-guide-compare__col {
    flex: 1;
    background: rgba(255,255,255,0.03);
    border-radius: var(--cp1-radius-md);
    padding: var(--cp1-space-xl);
    border: 1px solid rgba(255,255,255,0.06);
}
.cp1-guide-compare__col--highlight {
    border-color: var(--cp1-crimson);
    background: rgba(155,17,24,0.08);
}
.cp1-guide-compare__label {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--cp1-gold);
}
.cp1-guide-compare__col--highlight .cp1-guide-compare__label {
    color: var(--cp1-crimson);
}
.cp1-guide-compare__col h3 {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-2xl);
    font-weight: 800;
    color: var(--cp1-pure-white);
    margin: var(--cp1-space-xs) 0;
}
.cp1-guide-compare__dim {
    font-size: var(--cp1-text-sm);
    color: #CCCCCC;
    margin-bottom: var(--cp1-space-md);
}
.cp1-guide-compare__col ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.cp1-guide-compare__col li {
    position: relative;
    padding-left: 1.4em;
    margin-bottom: var(--cp1-space-sm);
    font-size: var(--cp1-text-sm);
    color: #D4D4D4;
}
.cp1-guide-compare__col li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.5em;
    width: 6px;
    height: 6px;
    background: var(--cp1-gold);
    border-radius: 50%;
}
.cp1-guide-compare__col--highlight li::before {
    background: var(--cp1-crimson);
}
.cp1-guide-compare__vs {
    display: flex;
    align-items: center;
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xl);
    font-weight: 800;
    color: var(--cp1-steel-light);
}

/* Options Grid */
.cp1-guide-options {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--cp1-space-md);
    margin-bottom: var(--cp1-space-2xl);
}
.cp1-guide-option {
    padding: var(--cp1-space-lg);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: var(--cp1-radius-md);
    transition: border-color var(--cp1-transition);
}
.cp1-guide-option:hover {
    border-color: rgba(212,168,19,0.2);
}
.cp1-guide-option h3 {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-base);
    font-weight: 700;
    color: var(--cp1-pure-white);
    margin-bottom: var(--cp1-space-xs);
}
.cp1-guide-option p {
    font-size: var(--cp1-text-sm);
    color: #CCCCCC;
    line-height: 1.6;
}

/* Checklist */
.cp1-guide-checklist {
    background: rgba(212,168,19,0.06);
    border: 1px solid rgba(212,168,19,0.15);
    border-radius: var(--cp1-radius-md);
    padding: var(--cp1-space-xl);
    margin: var(--cp1-space-xl) 0;
}
.cp1-guide-checklist h3 {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-base);
    font-weight: 700;
    color: var(--cp1-gold);
    margin-bottom: var(--cp1-space-md);
}
.cp1-guide-checklist ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.cp1-guide-checklist li {
    position: relative;
    padding-left: 1.8em;
    margin-bottom: var(--cp1-space-sm);
    font-size: var(--cp1-text-sm);
    color: #D4D4D4;
    line-height: 1.5;
}
.cp1-guide-checklist li::before {
    content: '\2713';
    position: absolute;
    left: 0;
    color: var(--cp1-gold);
    font-weight: 700;
}

/* Pricing Factors */
.cp1-guide-pricing-factors {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--cp1-space-md);
}
.cp1-guide-pricing-factor {
    text-align: center;
    padding: var(--cp1-space-lg);
    background: var(--cp1-charcoal);
    border-radius: var(--cp1-radius-md);
    border: 1px solid rgba(255,255,255,0.05);
}
.cp1-guide-pricing-factor h3 {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-base);
    font-weight: 700;
    color: var(--cp1-pure-white);
    margin-bottom: var(--cp1-space-xs);
}
.cp1-guide-pricing-factor p {
    font-size: var(--cp1-text-sm);
    color: #CCCCCC;
    line-height: 1.5;
}

/* Responsive — guides */
@media (max-width: 768px) {
    .cp1-guide-cards { grid-template-columns: 1fr; }
    .cp1-guide-roof-styles { grid-template-columns: 1fr; }
    .cp1-guide-specs { grid-template-columns: 1fr; }
    .cp1-guide-compare { flex-direction: column; }
    .cp1-guide-compare__vs { justify-content: center; }
    .cp1-guide-options { grid-template-columns: 1fr; }
    .cp1-guide-pricing-factors { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
    .cp1-guide-pricing-factors { grid-template-columns: 1fr; }
}

.cp1-guide-section--alt .cp1-guide-section__intro {
    color: #D4D4D4;
}

.cp1-guide-section:not(.cp1-guide-section--alt) .cp1-section-label {
    color: var(--cp1-crimson);
}

.cp1-guide-section--alt .cp1-guide-text {
    color: #D4D4D4;
}
.cp1-guide-section--alt .cp1-guide-text strong {
    color: var(--cp1-pure-white);
}
.cp1-guide-section:not(.cp1-guide-section--alt) .cp1-guide-text strong {
    color: var(--cp1-charcoal);
}

.cp1-guide-section:not(.cp1-guide-section--alt) .cp1-guide-figure figcaption {
    color: #666;
}

.cp1-guide-section:not(.cp1-guide-section--alt) .cp1-guide-pricing-factor {
    background: var(--cp1-charcoal);
}
.cp1-guide-section:not(.cp1-guide-section--alt) .cp1-guide-text {
    color: #444;
}

.cp1-guide-section:not(.cp1-guide-section--alt) .cp1-guide-checklist {
    background: rgba(212,168,19,0.08);
    border-color: rgba(212,168,19,0.25);
}
.cp1-guide-section:not(.cp1-guide-section--alt) .cp1-guide-checklist li {
    color: #444;
}

.cp1-guide-section:not(.cp1-guide-section--alt) p {
    color: #444;
}
.cp1-guide-section:not(.cp1-guide-section--alt) h3 {
    color: var(--cp1-charcoal);
}
.cp1-guide-section:not(.cp1-guide-section--alt) .cp1-guide-spec h3,
.cp1-guide-section:not(.cp1-guide-section--alt) .cp1-guide-pricing-factor h3 {
    color: var(--cp1-pure-white);
}
.cp1-guide-section:not(.cp1-guide-section--alt) .cp1-guide-spec p,
.cp1-guide-section:not(.cp1-guide-section--alt) .cp1-guide-pricing-factor p {
    color: #CCCCCC;
}

/* Preserve light text inside dark cards on white-bg sections */
.cp1-guide-section:not(.cp1-guide-section--alt) .cp1-guide-card h3 {
    color: var(--cp1-pure-white);
}
.cp1-guide-section:not(.cp1-guide-section--alt) .cp1-guide-card p {
    color: #CCCCCC;
}
.cp1-guide-section:not(.cp1-guide-section--alt) .cp1-guide-checklist h3 {
    color: var(--cp1-gold);
}
.cp1-guide-section:not(.cp1-guide-section--alt) .cp1-guide-roof h3 {
    color: var(--cp1-pure-white);
}
.cp1-guide-section:not(.cp1-guide-section--alt) .cp1-guide-roof p {
    color: #CCCCCC;
}

/* ============================================
   GLOSSARY (Terminology Page)
   ============================================ */
.cp1-glossary {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
}
.cp1-glossary__item {
    padding: var(--cp1-space-lg) 0;
    border-bottom: 1px solid rgba(0,0,0,0.08);
}
.cp1-glossary__item:last-child {
    border-bottom: none;
}
.cp1-glossary__term {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-base);
    font-weight: 700;
    color: var(--cp1-charcoal);
    margin-bottom: var(--cp1-space-xs);
}
.cp1-glossary__def {
    font-size: var(--cp1-text-sm);
    color: #555;
    line-height: 1.7;
}

/* ============================================
   ROOF DETAIL (Roof Styles Page)
   ============================================ */
.cp1-roof-detail {
    position: relative;
}
.cp1-roof-detail__badge {
    display: inline-block;
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 0.3em 1em;
    border-radius: 100px;
    margin-bottom: var(--cp1-space-md);
}
.cp1-roof-detail__features {
    background: var(--cp1-charcoal);
    border-radius: var(--cp1-radius-md);
    padding: var(--cp1-space-xl);
    margin-top: var(--cp1-space-xl);
}
.cp1-roof-detail__features h3 {
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-base);
    font-weight: 700;
    color: var(--cp1-pure-white);
    margin-bottom: var(--cp1-space-md);
}
.cp1-roof-detail__features ul {
    list-style: none;
    padding: 0;
    margin: 0;
    columns: 2;
    column-gap: var(--cp1-space-xl);
}
.cp1-roof-detail__features li {
    position: relative;
    padding-left: 1.4em;
    margin-bottom: var(--cp1-space-sm);
    font-size: var(--cp1-text-sm);
    color: #CCCCCC;
    line-height: 1.5;
    break-inside: avoid;
}
.cp1-roof-detail__features li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.5em;
    width: 6px;
    height: 6px;
    background: var(--cp1-gold);
    border-radius: 50%;
}
@media (max-width: 640px) {
    .cp1-roof-detail__features ul { columns: 1; }
}

/* =============================================
   A3 PRODUCT PAGE LAYOUT
   ============================================= */

/* =============================================
   A3 PRODUCT PAGE LAYOUT
   ============================================= */

/* =============================================
   A3 PRODUCT PAGE LAYOUT
   ============================================= */

/* --- Breadcrumb inside hero --- */
.cp1-pdp-hero__breadcrumb {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 4;
    padding: 12px 24px;
}
.cp1-pdp-hero__breadcrumb .cp1-breadcrumb {
    padding: 0;
}

/* --- 1. Cinematic Hero --- */
.cp1-pdp-hero {
    position: relative;
    background: var(--cp1-black);
    height: 520px;
    overflow: hidden;
}
.cp1-pdp-hero__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    max-width: 1400px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}
.cp1-pdp-hero__overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.25) 50%, transparent 100%);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 40px 48px;
}
.cp1-pdp-hero__badges {
    display: flex;
    gap: 6px;
    margin-bottom: var(--cp1-space-sm);
}
.cp1-pdp-hero__badge {
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 5px 12px;
    border-radius: 4px;
}
.cp1-pdp-hero__badge--gold { background: var(--cp1-gold); color: var(--cp1-black); }
.cp1-pdp-hero__badge--crimson { background: var(--cp1-crimson); color: #fff; }
.cp1-pdp-hero__cat {
    color: var(--cp1-gold);
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    margin-bottom: 6px;
}
.cp1-pdp-hero__title {
    color: #fff;
    font-family: var(--cp1-font-heading);
    font-size: 2rem;
    font-weight: 800;
    line-height: 1.15;
    max-width: 600px;
    margin: 0;
}
.cp1-pdp-hero__sku {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 8px;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--cp1-pure-white);
    background: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.18);
    padding: 3px 8px;
    border-radius: 4px;
    width: fit-content;
}
.cp1-pdp-hero__thumbrow {
    position: absolute;
    bottom: 16px;
    right: 40px;
    display: flex;
    gap: 6px;
    z-index: 3;
}
.cp1-pdp-hero__thumb {
    width: 72px;
    height: 50px;
    border-radius: 6px;
    border: 2px solid transparent;
    overflow: hidden;
    opacity: 0.5;
    cursor: pointer;
    transition: all 0.2s ease;
    padding: 0;
    background: none;
}
.cp1-pdp-hero__thumb:hover,
.cp1-pdp-hero__thumb.is-active {
    opacity: 1;
    border-color: var(--cp1-gold);
}
.cp1-pdp-hero__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* --- 2. Floating Spec Bar --- */
.cp1-spec-bar {
    max-width: 1200px;
    width: 90%;
    margin: -30px auto 0;
    position: relative;
    z-index: 5;
    background: var(--cp1-charcoal);
    border-radius: 14px;
    display: flex;
    align-items: stretch;
    box-shadow: 0 8px 32px rgba(0,0,0,0.25);
    overflow: hidden;
}
.cp1-spec-bar__cell {
    flex: 1;
    padding: 18px 16px;
    text-align: center;
    border-right: 1px solid rgba(255,255,255,0.06);
}
.cp1-spec-bar__cell:last-child { border-right: none; }
.cp1-spec-bar__label {
    font-size: 0.55rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--cp1-steel);
    margin-bottom: 3px;
}
.cp1-spec-bar__value {
    font-size: 1.05rem;
    font-weight: 800;
    color: #fff;
    font-family: var(--cp1-font-heading);
}
.cp1-spec-bar__price {
    flex: 1;
    padding: 18px 20px;
    text-align: center;
    background: var(--cp1-crimson);
}
.cp1-spec-bar__price .cp1-spec-bar__label { color: rgba(255,255,255,0.7); }
.cp1-spec-bar__price .cp1-spec-bar__value { color: #fff; font-size: 1.3rem; }

/* --- 3. CTA Row --- */
.cp1-cta-row {
    max-width: 1200px;
    width: 90%;
    margin: 24px auto 0;
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
}
.cp1-cta-row__phone {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 28px;
    background: var(--cp1-charcoal);
    color: var(--cp1-pure-white);
    border: 2px solid var(--cp1-charcoal);
    border-radius: var(--cp1-radius-sm);
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-sm);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    text-decoration: none;
    line-height: 1;
    transition: all 0.2s ease;
}
.cp1-cta-row__phone:hover {
    background: var(--cp1-black); border-color: var(--cp1-black);
    transform: translateY(-3px); box-shadow: 0 6px 20px rgba(28,28,28,0.35);
}
.cp1-cta-row__3d {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 28px;
    background: var(--cp1-gold);
    color: var(--cp1-black);
    border: 2px solid var(--cp1-gold);
    border-radius: var(--cp1-radius-sm);
    font-family: var(--cp1-font-heading);
    font-size: var(--cp1-text-sm);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    text-decoration: none;
    line-height: 1;
    transition: all 0.2s ease;
}
.cp1-cta-row__3d:hover {
    background: #c99a11; border-color: #c99a11;
    transform: translateY(-3px); box-shadow: 0 6px 20px rgba(212,168,19,0.35);
}
.cp1-cta-row .cp1-btn--primary { transition: all 0.2s ease; }
.cp1-cta-row .cp1-btn--primary:hover {
    transform: translateY(-3px); box-shadow: 0 6px 20px rgba(155,17,24,0.35);
}

/* --- 4. Feature Columns --- */
.cp1-product-features {
    max-width: 1200px;
    width: 90%;
    margin: 36px auto 0;
}
.cp1-product-features__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
.cp1-feature-col {
    padding: 24px;
    border-radius: 12px;
    background: #f5f5f5;
    position: relative;
}
.cp1-feature-col::before {
    content: '';
    position: absolute;
    top: 0; left: 24px; right: 24px;
    height: 3px;
    border-radius: 0 0 3px 3px;
}
.cp1-feature-col--crimson::before { background: var(--cp1-crimson); }
.cp1-feature-col--gold::before { background: var(--cp1-gold); }
.cp1-feature-col--charcoal::before { background: var(--cp1-charcoal); }
.cp1-feature-col h3 {
    font-family: var(--cp1-font-heading);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--cp1-steel);
    margin-bottom: 14px;
    padding-bottom: 8px;
    border-bottom: 1px solid #e0e0e0;
}
.cp1-feature-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
    font-size: 0.85rem;
    color: #444;
    flex-wrap: wrap;
}
.cp1-feature-item strong { color: var(--cp1-charcoal); font-weight: 700; }
.cp1-feature-dot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; }
.cp1-feature-col--crimson .cp1-feature-dot { background: var(--cp1-crimson); }
.cp1-feature-col--gold .cp1-feature-dot { background: var(--cp1-gold); }
.cp1-feature-col--charcoal .cp1-feature-dot { background: var(--cp1-charcoal); }
.cp1-feature-swatch {
    display: inline-block;
    width: 14px; height: 14px;
    border-radius: 50%;
    border: 1px solid rgba(0,0,0,0.15);
    flex-shrink: 0;
}

/* --- 5. 3D Builder Banner --- */
.cp1-3d-banner { max-width: 1200px; width: 90%; margin: 32px auto 0; }
.cp1-3d-banner__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: linear-gradient(135deg, var(--cp1-charcoal) 0%, #2a2a2a 100%);
    border-radius: 12px;
    padding: 20px 28px;
    border: 1px solid rgba(212,168,19,0.15);
    gap: 20px;
}
.cp1-3d-banner__text { color: #ccc; font-size: 0.85rem; line-height: 1.5; }
.cp1-3d-banner__text strong { color: var(--cp1-gold); }
.cp1-3d-banner__link {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 10px 22px; background: var(--cp1-gold); color: var(--cp1-black);
    border-radius: 8px; font-weight: 700; font-size: 0.8rem;
    text-transform: uppercase; text-decoration: none; letter-spacing: 0.04em;
    white-space: nowrap; transition: background 0.2s ease;
}
.cp1-3d-banner__link:hover { background: #c99a11; }

/* --- 6. Description --- */
.cp1-description { max-width: 1200px; width: 90%; margin: 36px auto 0; padding-bottom: 48px; }
.cp1-description > h2:first-child {
    font-family: var(--cp1-font-heading); font-size: var(--cp1-text-2xl);
    font-weight: 800; color: var(--cp1-charcoal);
    margin-bottom: var(--cp1-space-lg); text-transform: uppercase;
    letter-spacing: 0.02em; border-bottom: 2px solid var(--cp1-crimson);
    display: inline-block; padding-bottom: 4px;
}
.cp1-description h2 {
    font-family: var(--cp1-font-heading); font-size: var(--cp1-text-xl);
    font-weight: 700; color: var(--cp1-charcoal);
    margin: var(--cp1-space-2xl) 0 var(--cp1-space-md);
    padding-bottom: var(--cp1-space-xs); border-bottom: 2px solid var(--cp1-crimson);
    display: inline-block;
}
.cp1-description p { color: #555; line-height: 1.8; max-width: 800px; margin-bottom: var(--cp1-space-md); }
.cp1-description a { color: var(--cp1-crimson); text-decoration: underline; text-underline-offset: 3px; }
.cp1-description a:hover { color: var(--cp1-charcoal); }
.cp1-description h2 strong { font-weight: inherit; }
.cp1-description div[class*="richtext"],
.cp1-description div[class*="col-"],
.cp1-description div[class*="row"],
.cp1-description div[class*="tab-"],
.cp1-description div[class*="rich-text"],
.cp1-description div[class*="px-"],
.cp1-description div[class*="py-"],
.cp1-description div[class*="my-"],
.cp1-description div[class*="mx-"] {
    all: unset !important; display: block !important;
    color: inherit !important; background: none !important;
    padding: 0 !important; margin: 0 !important;
}
.cp1-description .bg-light {
    all: unset !important; display: block !important;
    background: #f5f5f5 !important; border: 1px solid #e8e8e8 !important;
    border-radius: var(--cp1-radius-md) !important;
    padding: var(--cp1-space-xl) !important; margin-top: var(--cp1-space-2xl) !important;
}
.cp1-description b,
.cp1-description strong:only-child {
    display: block; color: var(--cp1-charcoal); font-weight: 700;
    font-size: 0.85rem; margin-top: var(--cp1-space-lg);
    margin-bottom: var(--cp1-space-xs); text-transform: uppercase;
    letter-spacing: 0.06em; font-family: var(--cp1-font-heading);
}
.cp1-description h2 + b,
.cp1-description h2 + strong { margin-top: var(--cp1-space-md); }
.cp1-description p strong,
.cp1-description p b {
    display: inline; color: var(--cp1-charcoal); font-weight: 600;
    font-size: inherit; margin: 0; text-transform: none;
    letter-spacing: normal; font-family: inherit;
}
.cp1-description ul {
    list-style: none; padding: 0; margin: 0 0 var(--cp1-space-md);
    display: grid; grid-template-columns: 1fr 1fr;
    gap: var(--cp1-space-xs) var(--cp1-space-lg);
}
.cp1-description ul li {
    position: relative; padding-left: 1.4em; color: #555;
    font-size: var(--cp1-text-sm); line-height: 1.7;
}
.cp1-description ul li::before {
    content: ''; position: absolute; left: 0; top: 0.55em;
    width: 6px; height: 6px; background: var(--cp1-crimson); border-radius: 50%;
}
.cp1-description ul li i { color: var(--cp1-crimson); font-style: normal; font-weight: 600; }


/* --- Trust Strip --- */
.cp1-trust-strip {
    max-width: 1200px;
    width: 90%;
    margin: 28px auto 0;
}
.cp1-trust-strip__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.cp1-trust-card {
    display: flex;
    gap: 16px;
    padding: 20px 22px;
    background: var(--cp1-white);
    border: 1px solid #e8e8e8;
    border-radius: 10px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.cp1-trust-card:hover {
    border-color: #ddd;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}
.cp1-trust-card__icon {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(155,17,24,0.08);
    border-radius: 10px;
    color: var(--cp1-crimson);
}
.cp1-trust-card__text h4 {
    font-family: var(--cp1-font-heading);
    font-size: 0.82rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--cp1-charcoal);
    margin: 0 0 6px;
}
.cp1-trust-card__text p {
    font-size: 0.72rem;
    color: var(--cp1-steel);
    line-height: 1.6;
    margin: 0 0 8px;
}
.cp1-trust-card__link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-family: var(--cp1-font-heading);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--cp1-crimson);
    transition: gap 0.2s ease;
}
.cp1-trust-card__link:hover {
    gap: 8px;
}
@media (max-width: 768px) {
    .cp1-trust-strip { width: 92%; }
    .cp1-trust-strip__grid { grid-template-columns: 1fr; gap: 12px; }
}
@media (max-width: 480px) {
    .cp1-trust-strip { width: 94%; }
    .cp1-trust-card { padding: 16px; gap: 12px; }
    .cp1-trust-card__icon { width: 38px; height: 38px; }
    .cp1-trust-card__icon svg { width: 22px; height: 22px; }
    .cp1-trust-card__text h4 { font-size: 0.75rem; }
    .cp1-trust-card__text p { font-size: 0.67rem; }
}
/* --- Color Chart --- */
.cp1-color-chart {
    max-width: 1200px;
    width: 90%;
    margin: 36px auto 0;
}
.cp1-color-chart__inner {
    background: var(--cp1-charcoal);
    border-radius: 14px;
    overflow: hidden;
    padding: 36px 36px 0;
    text-align: center;
}
.cp1-color-chart__title {
    font-family: var(--cp1-font-heading);
    font-size: 1.6rem;
    font-weight: 800;
    color: var(--cp1-pure-white);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin: 0 0 8px;
}
.cp1-color-chart__subtitle {
    font-size: 0.78rem;
    color: var(--cp1-steel);
    margin: 0 0 28px;
}
.cp1-color-chart__img {
    max-width: 900px;
    margin: 0 auto;
}
.cp1-color-chart__img img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 10px 10px 0 0;
}
@media (max-width: 768px) {
    .cp1-color-chart { width: 92%; }
    .cp1-color-chart__inner { padding: 28px 20px 0; }
    .cp1-color-chart__title { font-size: 1.3rem; }
}
@media (max-width: 480px) {
    .cp1-color-chart { width: 94%; }
    .cp1-color-chart__inner { padding: 24px 14px 0; }
    .cp1-color-chart__title { font-size: 1.1rem; }
    .cp1-color-chart__subtitle { font-size: 0.68rem; }
}
/* --- Building Add-Ons --- */
.cp1-addons {
    max-width: 1200px;
    width: 90%;
    margin: 36px auto 0;
}
.cp1-addons__inner {
    display: grid;
    grid-template-columns: 280px 1fr;
    background: var(--cp1-crimson);
    border-radius: 14px;
    overflow: hidden;
    min-height: 320px;
}
.cp1-addons__left {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 40px 36px;
    background: linear-gradient(135deg, #7a0e13 0%, var(--cp1-crimson) 100%);
}
.cp1-addons__title {
    font-family: var(--cp1-font-heading);
    font-size: 2rem;
    font-weight: 800;
    color: var(--cp1-pure-white);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    line-height: 1.1;
    margin: 0;
    text-decoration: underline;
    text-underline-offset: 6px;
    text-decoration-color: var(--cp1-gold);
    text-decoration-thickness: 3px;
}
.cp1-addons__note {
    font-size: 0.65rem;
    color: rgba(255,255,255,0.55);
    margin-top: 16px;
    font-style: italic;
}
.cp1-addons__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;
    background: rgba(255,255,255,0.08);
}
.cp1-addon-card {
    background: var(--cp1-crimson);
    padding: 24px 20px;
    text-align: center;
    transition: background 0.2s ease;
}
.cp1-addon-card:hover {
    background: #7a0e13;
}
.cp1-addon-card__icon {
    display: flex;
    justify-content: center;
    margin-bottom: 10px;
    color: var(--cp1-gold);
}
.cp1-addon-card h3 {
    font-family: var(--cp1-font-heading);
    font-size: 0.85rem;
    font-weight: 800;
    color: var(--cp1-pure-white);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin: 0 0 6px;
}
.cp1-addon-card p {
    font-size: 0.7rem;
    color: rgba(255,255,255,0.65);
    line-height: 1.4;
    margin: 0;
}
.cp1-addon-card--img .cp1-addon-card__img {
    width: 100%;
    height: 170px;
    overflow: hidden;
    border-radius: 6px;
    margin-bottom: 10px;
}
.cp1-addon-card--img .cp1-addon-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}
.cp1-addon-card--img:hover .cp1-addon-card__img img {
    transform: scale(1.05);
}
.cp1-addons__options {
    grid-column: 1 / -1;
    padding: 24px 36px 28px;
    border-top: 1px solid rgba(255,255,255,0.1);
}
.cp1-addons__options-title {
    font-family: var(--cp1-font-heading);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--cp1-gold);
    margin: 0 0 14px;
}
.cp1-addons__options-list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 4px 28px;
    list-style: none;
    padding: 0;
    margin: 0;
}
.cp1-addons__options-list li {
    position: relative;
    padding-left: 1em;
    font-family: var(--cp1-font-heading);
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--cp1-pure-white);
    line-height: 1.9;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
.cp1-addons__options-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.65em;
    width: 4px;
    height: 4px;
    background: var(--cp1-gold);
    border-radius: 50%;
}
@media (max-width: 1024px) {
    .cp1-addons__inner { grid-template-columns: 220px 1fr; }
    .cp1-addon-card--img .cp1-addon-card__img {
    width: 100%;
    height: 170px;
    overflow: hidden;
    border-radius: 6px;
    margin-bottom: 10px;
}
.cp1-addon-card--img .cp1-addon-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}
.cp1-addon-card--img:hover .cp1-addon-card__img img {
    transform: scale(1.05);
}
.cp1-addons__options { padding: 20px 24px 24px; }
    .cp1-addons__options-list { grid-template-columns: repeat(3, 1fr); gap: 3px 20px; }
    .cp1-addons__left { padding: 28px 24px; }
    .cp1-addons__title { font-size: 1.6rem; }
    .cp1-addon-card { padding: 18px 14px; }
    .cp1-addon-card h3 { font-size: 0.78rem; }
}
@media (max-width: 768px) {
    .cp1-addons { width: 92%; }
    .cp1-addons__inner {
        grid-template-columns: 1fr;
    }
    .cp1-addons__left {
        padding: 24px;
        text-align: center;
        align-items: center;
    }
    .cp1-addons__title { font-size: 1.5rem; }
    .cp1-addons__grid { grid-template-columns: repeat(3, 1fr); }
    .cp1-addon-card--img .cp1-addon-card__img {
    width: 100%;
    height: 170px;
    overflow: hidden;
    border-radius: 6px;
    margin-bottom: 10px;
}
.cp1-addon-card--img .cp1-addon-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}
.cp1-addon-card--img:hover .cp1-addon-card__img img {
    transform: scale(1.05);
}
.cp1-addons__options { padding: 20px 24px; }
    .cp1-addons__options-list { grid-template-columns: repeat(2, 1fr); gap: 3px 20px; }
}
@media (max-width: 480px) {
    .cp1-addons { width: 94%; }
    .cp1-addons__left { padding: 20px 16px; }
    .cp1-addons__title { font-size: 1.2rem; }
    .cp1-addons__note { font-size: 0.55rem; margin-top: 8px; }
    .cp1-addons__grid { grid-template-columns: repeat(2, 1fr); }
    .cp1-addon-card { padding: 14px 10px; }
    .cp1-addon-card__icon svg { width: 28px; height: 28px; }
    .cp1-addon-card--img .cp1-addon-card__img { height: 120px; }
    .cp1-addon-card h3 { font-size: 0.68rem; }
    .cp1-addon-card p { font-size: 0.6rem; }
    .cp1-addon-card--img .cp1-addon-card__img {
    width: 100%;
    height: 170px;
    overflow: hidden;
    border-radius: 6px;
    margin-bottom: 10px;
}
.cp1-addon-card--img .cp1-addon-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}
.cp1-addon-card--img:hover .cp1-addon-card__img img {
    transform: scale(1.05);
}
.cp1-addons__options { padding: 16px; }
    .cp1-addons__options-list { grid-template-columns: 1fr 1fr; gap: 2px 16px; }
    .cp1-addons__options-list li { font-size: 0.65rem; }
}

/* =============================================
   RESPONSIVE — LAPTOP (≤1366px)
   ============================================= */
@media (max-width: 1366px) {
    .cp1-pdp-hero { height: 460px; }
    .cp1-pdp-hero__overlay { padding: 32px 36px; }
    .cp1-pdp-hero__title { font-size: 1.75rem; }
}

/* =============================================
   RESPONSIVE — SMALL LAPTOP (≤1024px)
   ============================================= */
@media (max-width: 1024px) {
    .cp1-pdp-hero { height: 400px; }
    .cp1-pdp-hero__overlay { padding: 24px 28px; }
    .cp1-pdp-hero__title { font-size: 1.5rem; max-width: 450px; }
    .cp1-pdp-hero__thumb { width: 60px; height: 42px; }
    .cp1-pdp-hero__thumbrow { right: 20px; }

    .cp1-spec-bar { width: 94%; }
    .cp1-spec-bar__cell { padding: 12px 8px; }
    .cp1-spec-bar__label { font-size: 0.5rem; }
    .cp1-spec-bar__value { font-size: 0.88rem; }
    .cp1-spec-bar__price .cp1-spec-bar__value { font-size: 1.05rem; }

    .cp1-cta-row { width: 94%; }
    .cp1-cta-row .cp1-btn,
    .cp1-cta-row__phone,
    .cp1-cta-row__3d { padding: 12px 18px; font-size: 0.75rem; }

    .cp1-product-features { width: 94%; }

    /* Header: tighter nav */
    .cp1-nav__link { padding: 0.5rem 0.6rem; font-size: 0.75rem; }
    .cp1-header__inner { padding: 0.6rem 1rem; gap: 0.75rem; }
    .cp1-logo__img { height: 34px; }
}

/* =============================================
   RESPONSIVE — TABLET (≤768px)
   ============================================= */
@media (max-width: 768px) {
    .cp1-pdp-hero { height: 320px; }
    .cp1-pdp-hero__breadcrumb { padding: 8px 16px; }
    .cp1-pdp-hero__breadcrumb .cp1-breadcrumb ol {
        font-size: 0.55rem; padding: 0.35rem 0.8rem;
    }
    .cp1-pdp-hero__overlay { padding: 20px; }
    .cp1-pdp-hero__title { font-size: 1.25rem; max-width: 65%; }
    .cp1-pdp-hero__cat { font-size: 0.55rem; }
    .cp1-pdp-hero__badge { font-size: 0.5rem; padding: 4px 8px; }
    .cp1-pdp-hero__thumb { width: 52px; height: 36px; }
    .cp1-pdp-hero__thumbrow { right: 14px; bottom: 12px; }

    .cp1-spec-bar { flex-wrap: wrap; border-radius: 10px; width: 92%; }
    .cp1-spec-bar__cell { flex: 1 1 30%; border-bottom: 1px solid rgba(255,255,255,0.06); padding: 12px 10px; }
    .cp1-spec-bar__price { flex: 1 1 100%; }

    .cp1-cta-row { flex-direction: column; width: 92%; }
    .cp1-cta-row .cp1-btn,
    .cp1-cta-row__phone,
    .cp1-cta-row__3d { justify-content: center; width: 100%; padding: 14px 20px; font-size: 0.8rem; }

    .cp1-product-features { width: 92%; }
    .cp1-product-features__grid { grid-template-columns: 1fr; gap: 16px; }

    .cp1-3d-banner { width: 92%; }
    .cp1-3d-banner__inner { flex-direction: column; text-align: center; padding: 16px 20px; }

    .cp1-description { width: 92%; padding-bottom: 32px; }
    .cp1-description ul { grid-template-columns: 1fr; }

    /* Header at tablet */
    .cp1-header__inner { padding: 0.6rem 1rem; }
    .cp1-logo__img { height: 32px; }
    .cp1-header__phone { font-size: 0.75rem; }
    .cp1-header__phone-icon { width: 28px; height: 28px; }

    /* Topbar compact */
    .cp1-topbar__inner { padding: 0.4rem 1rem; padding-top: calc(0.4rem + 3px); }
    .cp1-topbar__phone { font-size: 0.7rem; }
    .cp1-topbar__phone span { display: none; }
}

/* =============================================
   RESPONSIVE — MOBILE / iPhone 16 Pro Max (≤430px)
   ============================================= */
@media (max-width: 480px) {
    /* Topbar: just the phone number, centered */
    .cp1-topbar__inner { padding: 0.35rem 0.75rem; padding-top: calc(0.35rem + 3px); }
    .cp1-topbar__left { gap: 8px; }
    .cp1-topbar__phone { font-size: 0.65rem; gap: 4px; }
    .cp1-topbar__phone svg { width: 12px; height: 12px; }
    .cp1-topbar__sep { display: none; }
    .cp1-topbar__link { font-size: 0.6rem; }

    /* Header: logo + hamburger only */
    .cp1-header__inner { padding: 0.5rem 0.75rem; gap: 0.5rem; }
    .cp1-logo__img { height: 28px; }
    .cp1-logo__text { font-size: 1rem; letter-spacing: 0.06em; }
    .cp1-header__phone { display: none !important; }
    .cp1-btn--header-cta { display: none; }

    /* Product hero */
    .cp1-pdp-hero { height: 260px; }
    .cp1-pdp-hero__breadcrumb { display: none; }
    .cp1-pdp-hero__overlay { padding: 14px 16px; }
    .cp1-pdp-hero__badges { margin-bottom: 4px; gap: 4px; }
    .cp1-pdp-hero__badge { font-size: 0.48rem; padding: 3px 6px; }
    .cp1-pdp-hero__cat { font-size: 0.5rem; margin-bottom: 3px; }
    .cp1-pdp-hero__title { font-size: 1.05rem; max-width: 70%; }
    .cp1-pdp-hero__sku { font-size: 0.6rem; padding: 4px 10px; margin-top: 10px; margin-bottom: 16px; }
    .cp1-pdp-hero__thumbrow { right: 10px; bottom: 8px; gap: 3px; }
    .cp1-pdp-hero__thumb { width: 40px; height: 28px; border-radius: 3px; border-width: 1.5px; }

    /* Spec bar: 2-col */
    .cp1-spec-bar { width: 94%; margin-top: 2%; border-radius: 10px; flex-wrap: wrap; }
    .cp1-spec-bar__cell { flex: 1 1 45%; padding: 10px 6px; border-bottom: 1px solid rgba(255,255,255,0.06); }
    .cp1-spec-bar__label { font-size: 0.45rem; }
    .cp1-spec-bar__value { font-size: 0.78rem; }
    .cp1-spec-bar__price { flex: 1 1 100%; padding: 10px 12px; }
    .cp1-spec-bar__price .cp1-spec-bar__value { font-size: 1.05rem; }

    /* CTA stack */
    .cp1-cta-row { width: 94%; margin-top: 14px; gap: 8px; }
    .cp1-cta-row .cp1-btn,
    .cp1-cta-row__phone,
    .cp1-cta-row__3d { padding: 12px 14px; font-size: 0.72rem; }
    .cp1-cta-row svg { width: 14px; height: 14px; }

    /* Features */
    .cp1-product-features { width: 94%; margin-top: 20px; }
    .cp1-product-features__grid { gap: 10px; }
    .cp1-feature-col { padding: 16px; }
    .cp1-feature-col h3 { font-size: 0.58rem; margin-bottom: 10px; }
    .cp1-feature-item { font-size: 0.78rem; padding: 6px 0; gap: 7px; }

    /* 3D banner */
    .cp1-3d-banner { width: 94%; margin-top: 16px; }
    .cp1-3d-banner__inner { padding: 12px 14px; gap: 10px; }
    .cp1-3d-banner__text { font-size: 0.75rem; }
    .cp1-3d-banner__link { font-size: 0.68rem; padding: 8px 14px; }

    /* Description */
    .cp1-description { width: 94%; margin-top: 20px; padding-bottom: 20px; }
    .cp1-description > h2:first-child { font-size: 1rem; }
    .cp1-description p { font-size: 0.82rem; line-height: 1.65; }

    /* Mobile sticky CTA */
    .cp1-mobile-cta { padding: 0.5rem 0.75rem; }
    .cp1-mobile-cta__price { font-size: 1rem; }
    .cp1-mobile-cta__price small { font-size: 0.5rem; }
}
