/* =============================================================================
   CFC Auto Quotes — Public Stylesheet
   Brand: Cash Fore Clubs · cashforeclubs.co.uk
   Green: #2D5A1B  |  Orange: #E8491D  |  Text: #1A1A2E
   ============================================================================= */

/* ----- Design tokens -------------------------------------------------------- */
:root {
    --cfc-orange:        #E8491D;
    --cfc-orange-dark:   #C73D17;
    --cfc-orange-light:  #FFF3EF;

    --cfc-green:         #2D5A1B;
    --cfc-green-dark:    #1A3D10;
    --cfc-green-mid:     #3D7A26;
    --cfc-green-light:   #EBF5E5;
    --cfc-green-deep:    #2D5A1B; /* alias kept for My Account styles */
    --cfc-brand-green:   #1E4D2B; /* CashForeClubs site-header brand green */

    --cfc-navy:          #1A1A2E;
    --cfc-ink:           #111827;
    --cfc-gray-50:       #F8F9F7;
    --cfc-gray-100:      #F0F2EE;
    --cfc-gray-200:      #E2E6DF;
    --cfc-gray-300:      #C8CECC;
    --cfc-gray-400:      #9AA39A;
    --cfc-gray-600:      #4A5550;


    --cfc-teal:          #0D9488;
    --cfc-teal-light:    #F0FDFA;
    --cfc-blue:          #2563EB;
    --cfc-blue-light:    #EFF6FF;
    --cfc-amber:         #D97706;
    --cfc-amber-light:   #FFFBEB;
    --cfc-red:           #DC2626;
    --cfc-red-light:     #FEF2F2;

    --cfc-radius-sm:     4px;
    --cfc-radius:        6px;
    --cfc-radius-lg:     8px;
    --cfc-shadow-sm:     0 1px 4px rgba(0,0,0,0.08);
    --cfc-shadow:        0 4px 16px rgba(0,0,0,0.10);
    --cfc-shadow-lg:     0 8px 32px rgba(0,0,0,0.14);

    --cfc-btn-radius:    4px;
    --cfc-border-radius: 10px;

    --cfc-font:          "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --cfc-text-xs:       11px;
    --cfc-text-sm:       13px;
    --cfc-text-base:     15px;
    --cfc-text-lg:       18px;
    --cfc-transition:    all 0.2s ease;
    --cfc-transition-slow: all 0.35s ease;
}

/* ----- Reset ---------------------------------------------------------------- */
.cfc-wrapper *,
.cfc-wrapper *::before,
.cfc-wrapper *::after { box-sizing: border-box; }

.cfc-wrapper {
    --cfc-bg:    #F8F9F7;
    --cfc-white: #FFFFFF;

    max-width: 680px;
    margin: 0 auto;
    padding: 24px 16px;
    font-family: var(--cfc-font);
    color: var(--cfc-navy);
}

.cfc-wrapper--auth { max-width: 700px; }

/* ----- Focus visible -------------------------------------------------------- */
.cfc-wrapper a:focus-visible,
.cfc-wrapper button:focus-visible,
.cfc-wrapper input:focus-visible,
.cfc-wrapper select:focus-visible,
.cfc-wrapper textarea:focus-visible,
.cfc-wrapper [role="button"]:focus-visible,
.cfc-my-quotes a:focus-visible,
.cfc-my-quotes button:focus-visible {
    outline: 2px solid var(--cfc-orange);
    outline-offset: 3px;
}

/* ----- Page shell ----------------------------------------------------------- */
body.cfc-valuation-page { background: var(--cfc-gray-50); }
body.cfc-valuation-page .wp-block-post-title,
body.cfc-valuation-page h1.wp-block-post-title { display: none !important; }
body.cfc-valuation-page .wp-site-blocks > main,
body.cfc-valuation-page main.wp-block-group,
body.cfc-valuation-page .wp-block-post-content { margin-top: 0 !important; }
body.cfc-valuation-page .wp-site-blocks > main {
    padding-top: 0 !important;
    padding-bottom: 56px !important;
    background: #ffffff;
}
body.cfc-valuation-page .cfc-wrapper {
    max-width: 680px;
    padding-top: 10px;
}

/* ============================================================================
   CARD
   ============================================================================ */

.cfc-card,
.cfc-login-card {
    background: var(--cfc-white);
    border: 1px solid rgba(0,0,0,0.08);
    border-radius: var(--cfc-border-radius);
    box-shadow: 0 2px 8px rgba(0,0,0,0.07), 0 1px 3px rgba(0,0,0,0.04);
    overflow: hidden;
}

/* Brand header — dark green band at the top of the sell card */
.cfc-card__header {
    background: var(--cfc-green);
    padding: 18px 24px;
}
.cfc-card__header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.cfc-card__header-title {
    font-size: 20px;
    font-weight: 900;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    line-height: 1.1;
}
.cfc-card__header-sub {
    font-size: 13px;
    color: rgba(255,255,255,0.75);
    margin-top: 3px;
    font-weight: 500;
}
.cfc-card__header-icon {
    flex-shrink: 0;
    opacity: 0.6;
}

/* Card body padding — applied to the states container */
.cfc-card > .cfc-state,
.cfc-card > .cfc-card__body {
    padding: 24px;
}
/* Direct state children get body padding */
#cfc-form-card > .cfc-state {
    padding: 24px;
}
@media (max-width: 480px) {
    .cfc-card__header { padding: 16px 18px; }
    #cfc-form-card > .cfc-state { padding: 20px 16px; }
}

/* Card title (inside upload state) */
.cfc-card__title {
    font-size: 18px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--cfc-green);
    margin: 0 0 20px;
}

/* Login card */
.cfc-login-card {
    padding: 36px;
}
@media (max-width: 540px) {
    .cfc-login-card { padding: 24px 20px; }
}
.cfc-login-card__heading {
    font-size: 24px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--cfc-green);
    margin: 0 0 10px;
}
.cfc-login-card__sub { color: #555; font-size: 15px; margin: 0 0 16px; }
.cfc-login-card__guide-row { margin-bottom: 24px; }
.cfc-login-card__lost-pw { font-size: 14px; color: #555; margin: 14px 0 0; }
.cfc-login-card__lost-pw a { color: var(--cfc-orange); text-decoration: underline; text-underline-offset: 2px; }
.cfc-login-divider { border: none; border-top: 1px solid var(--cfc-gray-200); margin: 24px 0; }
.cfc-login-card__register-label { font-size: 15px; color: #555; margin: 0 0 12px; }

/* ============================================================================
   BUTTONS
   ============================================================================ */

.cfc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 28px;
    height: 50px;
    min-height: 50px;
    min-width: 44px;
    border-radius: var(--cfc-btn-radius);
    font-weight: 800;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    text-decoration: none;
    border: none;
    cursor: pointer;
    transition: background 0.18s ease, opacity 0.18s ease, transform 0.1s ease;
    font-family: inherit;
    line-height: 1;
    box-sizing: border-box;
}
.cfc-btn--primary { background: var(--cfc-orange); color: #fff; }
.cfc-btn--primary:hover { background: var(--cfc-orange-dark); color: #fff; text-decoration: none; }
.cfc-btn--primary:focus-visible { outline: 2px solid var(--cfc-orange); outline-offset: 3px; }
.cfc-btn--primary:disabled,
.cfc-btn--primary[disabled] { opacity: 0.5; cursor: not-allowed; pointer-events: none; }

.cfc-btn--secondary {
    background: transparent;
    color: var(--cfc-green);
    border: 2px solid var(--cfc-green);
}
.cfc-btn--secondary:hover { background: var(--cfc-green-light); text-decoration: none; color: var(--cfc-green); }
.cfc-btn--secondary:focus-visible { outline: 2px solid var(--cfc-green); outline-offset: 3px; }

.cfc-btn--sm { height: 38px; min-height: 38px; padding: 0 16px; font-size: 11px; }
.cfc-btn--success { background: var(--cfc-green); color: #fff; }
.cfc-btn--success:hover { background: var(--cfc-green-dark); color: #fff; text-decoration: none; }
.cfc-btn--full { width: 100%; display: flex; }
.cfc-btn--submit { margin-top: 20px; }
.cfc-btn:disabled,
.cfc-btn[disabled] { opacity: 0.5; cursor: not-allowed; pointer-events: none; }
.cfc-btn:active:not(:disabled) { transform: scale(0.98); }

.cfc-btn--ghost {
    background: transparent;
    color: var(--cfc-navy);
    border: 2px solid var(--cfc-gray-200);
}
.cfc-btn--ghost:hover { background: var(--cfc-gray-100); border-color: var(--cfc-gray-400); color: var(--cfc-navy); text-decoration: none; }
.cfc-btn--ghost:focus-visible { outline: 2px solid var(--cfc-orange); outline-offset: 3px; }

/* Button spinner */
.cfc-btn--loading { opacity: 0.75; pointer-events: none; cursor: not-allowed; }
.cfc-btn--loading::after {
    content: '';
    display: inline-block;
    width: 14px; height: 14px;
    border: 2px solid rgba(255,255,255,0.4);
    border-top-color: #fff;
    border-radius: 50%;
    animation: cfc-spin-pub 0.7s linear infinite;
    margin-left: 6px;
}
@keyframes cfc-spin-pub { to { transform: rotate(360deg); } }

/* Dot spinner inside submit button */
.cfc-btn__spinner { display: inline-flex; align-items: center; gap: 5px; }
.cfc-spinner-dot {
    width: 6px; height: 6px;
    background: currentColor;
    border-radius: 50%;
    animation: cfc-bounce 1.2s infinite ease-in-out both;
}
.cfc-spinner-dot:nth-child(1) { animation-delay: -0.32s; }
.cfc-spinner-dot:nth-child(2) { animation-delay: -0.16s; }
@keyframes cfc-bounce {
    0%, 80%, 100% { transform: scale(0.6); opacity: 0.5; }
    40%            { transform: scale(1);   opacity: 1;   }
}

/* ============================================================================
   BADGES
   ============================================================================ */

.cfc-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 3px;
    font-size: var(--cfc-text-xs);
    font-weight: 700;
    letter-spacing: 0.04em;
    white-space: nowrap;
    text-transform: uppercase;
}
.cfc-badge--orange { color: var(--cfc-orange); background: var(--cfc-orange-light); border: 1px solid var(--cfc-orange); }
.cfc-badge--green  { color: #fff;              background: var(--cfc-green);         border: 1px solid var(--cfc-green); }
.cfc-badge--amber  { color: var(--cfc-amber);  background: var(--cfc-amber-light);   border: 1px solid var(--cfc-amber); }
.cfc-badge--blue   { color: var(--cfc-blue);   background: var(--cfc-blue-light);    border: 1px solid var(--cfc-blue); }
.cfc-badge--gray   { color: var(--cfc-gray-600); background: var(--cfc-gray-100);    border: 1px solid var(--cfc-gray-200); }

/* ============================================================================
   FORM INPUTS
   ============================================================================ */

.cfc-input {
    display: block;
    width: 100%;
    height: 48px;
    background: var(--cfc-gray-100);
    border: 2px solid var(--cfc-gray-200);
    border-radius: var(--cfc-radius);
    padding: 0 16px;
    font-size: 14px;
    font-family: inherit;
    color: var(--cfc-navy);
    transition: border-color 0.2s ease, background 0.2s ease;
    box-sizing: border-box;
}
.cfc-input:focus { outline: none; border-color: var(--cfc-green); background: #fff; }
.cfc-input--error { border-color: var(--cfc-red); background: var(--cfc-red-light); }
select.cfc-input {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239CA3AF' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    padding-right: 36px;
    cursor: pointer;
}

.cfc-label { display: block; font-size: 13px; font-weight: 700; color: var(--cfc-navy); margin-bottom: 6px; text-transform: uppercase; letter-spacing: 0.04em; }
.cfc-label-optional { margin-left: 6px; color: var(--cfc-gray-400); font-size: 11px; font-weight: 500; text-transform: none; letter-spacing: 0; }
.cfc-label-required { margin-left: 4px; color: #E8602C; font-size: 14px; font-weight: 700; }
.cfc-label--upper { text-transform: uppercase; font-size: 12px; letter-spacing: 0.06em; }
.cfc-field-help,
.cfc-signed-in-email { margin: 6px 0 0; color: var(--cfc-gray-600); font-size: 12px; line-height: 1.5; }
.cfc-signed-in-email { margin-bottom: 16px; }
.cfc-field { margin-bottom: 14px; }
.cfc-field:last-child { margin-bottom: 0; }
.cfc-sublabel { display: block; font-size: 11px; color: var(--cfc-gray-400); margin-top: 4px; }

.cfc-checkbox-row { margin: 14px 0; }
.cfc-checkbox-label {
    display: flex; align-items: center; gap: 8px;
    font-size: 12px; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.06em; color: var(--cfc-navy); cursor: pointer;
}
.cfc-checkbox-label input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--cfc-green); cursor: pointer; flex-shrink: 0; }

.cfc-field-hint {
    display: block;
    font-size: 11px;
    color: #888;
    margin-top: 3px;
}

.cfc-field-error {
    background: var(--cfc-red-light);
    border: 1px solid #FCA5A5;
    border-radius: var(--cfc-radius);
    color: var(--cfc-red);
    font-size: 13px;
    padding: 10px 14px;
    line-height: 1.5;
    margin-top: 10px;
}

/* Description textarea */
.cfc-textarea {
    width: 100%;
    background: var(--cfc-gray-100);
    border: 2px solid var(--cfc-gray-200);
    border-radius: var(--cfc-radius);
    padding: 12px 14px;
    font-size: 14px;
    font-family: inherit;
    color: var(--cfc-navy);
    resize: vertical;
    transition: border-color 0.2s;
    line-height: 1.5;
}
.cfc-textarea:focus { outline: none; border-color: var(--cfc-green); background: #fff; }

.cfc-char-counter { text-align: right; font-size: 12px; color: #999; margin: 4px 0 0; }
.cfc-small-print   { text-align: center; font-size: 12px; color: #999; margin: 10px 0 0; }

/* Error message */
.cfc-error-msg {
    margin-top: 14px;
    padding: 12px 16px;
    background: var(--cfc-red-light);
    border: 1px solid #FECACA;
    border-radius: var(--cfc-radius);
    color: var(--cfc-red);
    font-size: 14px;
    line-height: 1.5;
}

/* ============================================================================
   MODALS
   ============================================================================ */

@keyframes cfc-modal-in {
    from { opacity: 0; transform: translateY(16px); }
    to   { opacity: 1; transform: translateY(0); }
}

.cfc-modal-overlay {
    position: fixed;
    inset: 0;
    z-index: 99999;
    background: rgba(0,0,0,0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    overflow-y: auto;
}

.cfc-modal-container {
    background: #fff;
    max-width: 600px;
    width: 100%;
    border-radius: var(--cfc-border-radius);
    overflow: hidden;
    position: relative;
    max-height: 90vh;
    overflow-y: auto;
    overflow-x: hidden;
    animation: cfc-modal-in 0.22s ease;
    box-shadow: var(--cfc-shadow-lg);
    padding: 36px;
    border-top: 5px solid var(--cfc-green);
}
.cfc-modal-container--wide { max-width: 680px; }

.cfc-modal-close {
    position: absolute;
    top: 14px; right: 14px;
    width: 36px; height: 36px;
    border-radius: 50%;
    border: none;
    background: transparent;
    font-size: 22px;
    color: var(--cfc-gray-400);
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: background 0.15s, color 0.15s;
    line-height: 1;
    font-family: inherit;
    z-index: 1;
}
.cfc-modal-close:hover { background: var(--cfc-gray-100); color: var(--cfc-navy); }
.cfc-modal-close:focus-visible { outline: 2px solid var(--cfc-orange); outline-offset: 2px; }

.cfc-modal-heading {
    font-size: 22px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--cfc-green);
    margin: 0 0 20px;
    padding-right: 40px;
}

.cfc-fieldset { border: none; padding: 0; margin: 0 0 20px; }
.cfc-fieldset:last-of-type { margin-bottom: 0; }
.cfc-fieldset-legend {
    display: block;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--cfc-green);
    margin-bottom: 10px;
    width: 100%;
    border-bottom: 2px solid var(--cfc-green-light);
    padding-bottom: 6px;
}

.cfc-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

/* ============================================================================
   CONDITION GUIDE MODAL
   ============================================================================ */

.cfc-guide-section-heading {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--cfc-green);
    margin: 0 0 10px;
}
.cfc-guide-list { list-style: none; margin: 0 0 8px; padding: 0; }
.cfc-guide-list li { padding: 7px 0; border-bottom: 1px solid var(--cfc-gray-100); font-size: 14px; line-height: 1.6; color: var(--cfc-gray-600); }
.cfc-guide-list li:last-child { border-bottom: none; }
.cfc-guide-list li strong { color: var(--cfc-navy); }
.cfc-not-sellable { font-size: 14px; color: var(--cfc-red); margin: 8px 0 0; }
.cfc-guide-divider { border: none; border-top: 2px solid var(--cfc-green-light); margin: 20px 0; }

/* ============================================================================
   STATE TRANSITIONS
   ============================================================================ */

.cfc-state {
    display: none;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.28s ease, transform 0.28s ease;
}
.cfc-state--active {
    display: block;
    opacity: 1;
    transform: translateY(0);
}

/* ============================================================================
   STATE 1 — UPLOAD
   ============================================================================ */

/* Trust strip */
.cfc-trust-strip {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 18px;
    padding: 10px 12px;
    background: var(--cfc-green-light);
    border-radius: var(--cfc-radius);
    border: 1px solid rgba(45,90,27,0.15);
}
.cfc-trust-item {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 700;
    color: var(--cfc-green);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.cfc-trust-item svg { flex-shrink: 0; stroke: var(--cfc-green); }

/* Dropzone */
.cfc-dropzone {
    border: 2px dashed var(--cfc-green);
    border-radius: var(--cfc-radius);
    min-height: 190px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 28px 20px;
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease;
    position: relative;
    text-align: center;
    background: var(--cfc-green-light);
}
.cfc-dropzone:hover { background: #e0efd8; border-color: var(--cfc-green-dark); }
.cfc-dropzone:focus-visible { outline: 3px solid rgba(45,90,27,0.3); outline-offset: 2px; }
.cfc-dropzone.cfc-dropzone--over { background: #d6eacc; border-style: solid; border-color: var(--cfc-green-dark); }
.cfc-dropzone--shake { animation: cfc-shake 0.4s ease; }
@keyframes cfc-shake {
    0%, 100% { transform: translateX(0); }
    20%       { transform: translateX(-6px); }
    40%       { transform: translateX(6px); }
    60%       { transform: translateX(-4px); }
    80%       { transform: translateX(4px); }
}

.cfc-dropzone__icon { margin-bottom: 10px; }
.cfc-dropzone__icon svg { stroke: var(--cfc-green) !important; }
.cfc-dropzone__primary  { font-weight: 700; font-size: 15px; color: var(--cfc-green); margin: 0 0 4px; }
.cfc-dropzone__secondary { font-size: 13px; color: var(--cfc-gray-600); margin: 0 0 4px; }
.cfc-dropzone__paste-hint { font-size: 11px; color: var(--cfc-gray-400); margin: 0 0 4px; }
.cfc-dropzone__types { font-size: 12px; color: var(--cfc-gray-400); margin: 0; }

.cfc-dropzone__mobile-only  { display: none; }
.cfc-dropzone__desktop-only { display: block; }

.cfc-dropzone__mobile-actions {
    display: flex;
    gap: 10px;
    margin-top: 14px;
    flex-wrap: wrap;
    justify-content: center;
    width: 100%;
}
.cfc-dropzone__action-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 10px 18px;
    border: 2px solid var(--cfc-green);
    border-radius: var(--cfc-btn-radius);
    background: #fff;
    color: var(--cfc-green);
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.15s;
    -webkit-tap-highlight-color: transparent;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.cfc-dropzone__action-btn:active,
.cfc-dropzone__action-btn:hover { background: var(--cfc-green-light); }

@media (hover: hover) and (pointer: fine) {
    .cfc-dropzone__mobile-actions.cfc-dropzone__mobile-only { display: flex; margin-top: 12px; }
    .cfc-dropzone__mobile-actions #cfc-btn-camera { display: none !important; }
}
@media (hover: none) and (pointer: coarse) {
    .cfc-dropzone__desktop-only { display: none !important; }
    .cfc-dropzone__mobile-only  { display: block; }
    .cfc-dropzone__mobile-actions.cfc-dropzone__mobile-only { display: flex; }
    .cfc-thumb-remove { opacity: 1; }
}

/* Photo count */
.cfc-photo-count { font-size: 12px; color: var(--cfc-gray-400); text-align: center; margin-top: 8px; }
.cfc-photo-count.has-photos { color: var(--cfc-green); font-weight: 700; }

/* Thumbnails */
.cfc-thumbs {
    display: flex; flex-wrap: wrap; gap: 8px;
    justify-content: center; margin-top: 16px; width: 100%;
}
.cfc-thumb { position: relative; width: 80px; height: 80px; border-radius: var(--cfc-radius); overflow: visible; flex-shrink: 0; }
.cfc-thumb img {
    width: 80px; height: 80px;
    object-fit: cover;
    border-radius: var(--cfc-radius);
    display: block;
    border: 2px solid transparent;
    transition: border-color 0.15s;
}
.cfc-thumb:hover img { border-color: var(--cfc-green); }
.cfc-thumb-remove {
    position: absolute; top: -6px; right: -6px;
    width: 22px; height: 22px;
    background: var(--cfc-green-dark); color: #fff;
    border: 2px solid #fff;
    border-radius: 50%;
    cursor: pointer; font-size: 12px; line-height: 1;
    display: flex; align-items: center; justify-content: center;
    z-index: 2; padding: 0;
    opacity: 0;
    transition: opacity 0.15s, background 0.15s;
}
.cfc-thumb:hover .cfc-thumb-remove { opacity: 1; }
.cfc-thumb-remove:hover { background: var(--cfc-red); }

/* Photo tips */
.cfc-photo-tips-toggle {
    background: none; border: none;
    font-size: var(--cfc-text-sm); color: var(--cfc-gray-400);
    cursor: pointer; padding: 4px 0; font-family: inherit;
    display: flex; align-items: center; gap: 4px;
    margin-top: 8px; min-height: 32px;
}
.cfc-photo-tips-toggle:hover { color: var(--cfc-green); }
.cfc-photo-tips-body { max-height: 0; overflow: hidden; transition: max-height 0.3s ease; }
.cfc-photo-tips-body.open { max-height: 200px; }
.cfc-photo-tips-list {
    list-style: none; margin: 8px 0 0; padding: 10px 14px;
    background: var(--cfc-green-light); border-radius: var(--cfc-radius);
    font-size: var(--cfc-text-sm); color: var(--cfc-gray-600);
    border-left: 3px solid var(--cfc-green);
}
.cfc-photo-tips-list li { padding: 3px 0; }
.cfc-photo-tips-list li::before { content: '✓ '; color: var(--cfc-green); font-weight: 700; }

/* Description group */
.cfc-desc-group { margin-top: 18px; }

/* ============================================================================
   STATE 2 — LOADING
   ============================================================================ */

.cfc-state--loading { text-align: center; }
.cfc-loading-inner  { padding: 48px 24px; }

.cfc-spinner {
    width: 48px; height: 48px;
    border: 4px solid var(--cfc-green-light);
    border-top-color: var(--cfc-green);
    border-radius: 50%;
    animation: cfc-spin 0.9s linear infinite;
    margin: 0 auto 24px;
}
@keyframes cfc-spin { to { transform: rotate(360deg); } }

.cfc-loading__title { font-size: 20px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em; color: var(--cfc-green); margin: 0 0 8px; }
.cfc-loading__sub   { font-size: 14px; color: #666; margin: 0; }

.cfc-loading-microcopy {
    font-size: 14px; color: var(--cfc-gray-600);
    margin: 12px 0 0; min-height: 20px;
    transition: opacity 0.4s ease;
}
.cfc-loading-microcopy.fading { opacity: 0; }

.cfc-loading-steps {
    list-style: none; margin: 24px auto 0; padding: 0;
    max-width: 340px; text-align: left;
}
.cfc-loading-steps li {
    position: relative; padding: 9px 0 9px 28px;
    color: var(--cfc-gray-600); font-size: 14px;
    border-bottom: 1px solid var(--cfc-gray-100);
}
.cfc-loading-steps li:last-child { border-bottom: none; }
.cfc-loading-steps li::before {
    content: '';
    position: absolute; left: 0; top: 12px;
    width: 14px; height: 14px;
    border-radius: 50%;
    border: 2px solid var(--cfc-green);
    background: #fff;
}
.cfc-loading-steps li:first-child::before {
    background: var(--cfc-green);
    box-shadow: 0 0 0 4px rgba(45,90,27,0.15);
}

/* ============================================================================
   STATE 3 — QUOTED
   ============================================================================ */

.cfc-state--quoted { text-align: center; }

.cfc-quoted-price {
    font-size: 76px;
    font-weight: 900;
    color: var(--cfc-green);
    line-height: 1;
    margin-bottom: 6px;
    letter-spacing: -0.02em;
}
.cfc-quoted-sub { font-size: 15px; color: #666; margin: 0 0 18px; font-weight: 500; }

.cfc-estimate-review-note {
    max-width: 520px;
    margin: 0 auto 18px;
    padding: 12px 14px;
    border: 1px solid #fde68a;
    border-radius: var(--cfc-radius);
    background: #fffbeb;
    color: #78350f;
    font-size: 13px;
    line-height: 1.55;
    text-align: left;
}

.cfc-quote-heading { outline: none; }
.cfc-divider { border: none; border-top: 2px solid var(--cfc-green-light); margin: 18px 0; }

.cfc-countdown-row {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 14px; color: #666; margin-bottom: 22px;
}
.cfc-countdown {
    font-size: 14px; font-weight: 800;
    color: var(--cfc-navy);
    font-variant-numeric: tabular-nums; letter-spacing: 0.02em;
}
.cfc-countdown--urgent { color: var(--cfc-red); animation: cfc-pulse 1s ease-in-out infinite; }
@keyframes cfc-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.6; } }

.cfc-micro-text { font-size: 11px; color: #bbb; margin: 8px 0 0; line-height: 1.5; }

/* ============================================================================
   STATE 3B — MORE INFO
   ============================================================================ */

.cfc-state--more-info { text-align: left; }

/* ============================================================================
   STATE 4 — DELIVERY
   ============================================================================ */

.cfc-back-link {
    border: none; background: transparent;
    color: var(--cfc-gray-600); font: inherit; font-size: 13px;
    padding: 0; margin: 0 0 18px;
    cursor: pointer; text-decoration: underline; text-underline-offset: 3px;
    display: block;
}
.cfc-back-link:hover { color: var(--cfc-green); }

.cfc-accepted-kicker {
    color: var(--cfc-green); font-size: 13px; font-weight: 800;
    text-transform: uppercase; letter-spacing: 0.08em; margin: 0 0 8px;
}

.cfc-delivery-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px; margin: 20px 0 16px;
}
.cfc-delivery-card {
    text-align: center; display: flex; flex-direction: column; gap: 8px;
    padding: 20px 16px;
    border: 2px solid var(--cfc-gray-200);
    border-radius: var(--cfc-radius);
    background: #fff;
    color: var(--cfc-navy);
    cursor: pointer; font-family: inherit;
    min-height: 170px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease;
}
.cfc-delivery-card:hover,
.cfc-delivery-card:focus-visible {
    border-color: var(--cfc-green);
    box-shadow: 0 0 0 3px rgba(45,90,27,0.12);
}
.cfc-delivery-card:active { transform: scale(0.99); }
.cfc-delivery-card__title { font-size: 16px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em; }
.cfc-delivery-card__body  { color: var(--cfc-gray-600); font-size: 13px; line-height: 1.5; }
.cfc-delivery-card__meta  { margin-top: auto; color: var(--cfc-green); font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.04em; }
.cfc-delivery-card.is-loading { border-color: var(--cfc-green); }

/* ============================================================================
   STATES 5-7 — MANUAL / CONFIRMED
   ============================================================================ */

.cfc-state--manual,
.cfc-state--accepted,
.cfc-state--delivery,
.cfc-state--confirmed,
.cfc-state--dashboard,
.cfc-state--declined { text-align: center; padding: 8px 0; }

.cfc-manual-icon { font-size: 48px; margin-bottom: 16px; line-height: 1; }
.cfc-state-title {
    font-size: 20px; font-weight: 800;
    text-transform: uppercase; letter-spacing: 0.06em;
    color: var(--cfc-green); margin: 0 0 10px;
}
.cfc-state-body { font-size: 15px; color: #555; line-height: 1.6; margin: 0 0 22px; }

/* Animated checkmark */
.cfc-checkmark-wrap { width: 80px; height: 80px; margin: 0 auto 20px; }
.cfc-checkmark { width: 80px; height: 80px; }
.cfc-checkmark__circle {
    stroke: var(--cfc-green);
    stroke-width: 2;
    stroke-dasharray: 166; stroke-dashoffset: 166;
    stroke-miterlimit: 10;
    animation: cfc-stroke 0.6s cubic-bezier(0.65,0,0.45,1) forwards;
}
.cfc-checkmark__check {
    stroke: var(--cfc-green);
    stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round;
    stroke-dasharray: 48; stroke-dashoffset: 48;
    animation: cfc-stroke 0.3s cubic-bezier(0.65,0,0.45,1) 0.6s forwards;
}
@keyframes cfc-stroke { to { stroke-dashoffset: 0; } }

/* Reference box */
.cfc-reference-box {
    border: 2px solid var(--cfc-green);
    border-radius: var(--cfc-radius);
    padding: 18px;
    margin: 18px 0;
    background: var(--cfc-green-light);
}
.cfc-reference-box span,
.cfc-reference-box small { display: block; color: var(--cfc-gray-600); font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; }
.cfc-reference-box strong {
    display: block; color: var(--cfc-green);
    font-size: 36px; font-weight: 900;
    letter-spacing: 0.1em; margin: 6px 0;
}

/* Store address */
.cfc-store-address {
    display: flex; flex-direction: column; gap: 3px;
    margin: 0 0 22px; padding: 16px;
    border: 1px solid var(--cfc-gray-200);
    border-radius: var(--cfc-radius);
    background: var(--cfc-gray-50);
    color: var(--cfc-gray-600); font-size: 14px;
    border-left: 4px solid var(--cfc-green);
}
.cfc-store-address strong { color: var(--cfc-navy); font-size: 15px; font-weight: 800; }
.cfc-store-address small  { color: var(--cfc-gray-400); margin-top: 5px; }

/* "What happens next" steps */
.cfc-what-next { margin: 22px 0 0; text-align: left; }
.cfc-what-next__title,
.cfc-what-next__heading {
    font-size: 11px; font-weight: 800; color: var(--cfc-green);
    text-transform: uppercase; letter-spacing: 0.1em;
    margin: 0 0 14px; text-align: center;
}
.cfc-what-next__steps {
    display: flex; gap: 12px;
    justify-content: center;
    list-style: none; margin: 0; padding: 0;
}
.cfc-what-next__step {
    flex: 1; display: flex; flex-direction: column;
    align-items: center; text-align: center; gap: 8px;
}
.cfc-what-next__num {
    width: 30px; height: 30px; border-radius: 50%;
    background: var(--cfc-green); color: #fff;
    font-size: 13px; font-weight: 800;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.cfc-what-next__text { font-size: 12px; color: var(--cfc-gray-600); line-height: 1.4; }
.cfc-what-next__step p { margin: 4px 0 0; color: var(--cfc-gray-600); font-size: 12px; line-height: 1.45; }
.cfc-what-next__step strong { color: var(--cfc-navy); font-size: 13px; }

@media (max-width: 480px) {
    .cfc-what-next__steps { flex-direction: column; align-items: flex-start; gap: 10px; }
    .cfc-what-next__step  { flex-direction: row; text-align: left; }
    .cfc-delivery-options { grid-template-columns: 1fr; }
}

/* ============================================================================
   STATE — EMAIL CAPTURE
   ============================================================================ */

.cfc-state--email { text-align: left; }
.cfc-state--email .cfc-state-title { text-align: center; }

/* ============================================================================
   STATE 8 — DASHBOARD
   ============================================================================ */

.cfc-flow-dashboard {
    display: grid;
    grid-template-columns: 200px 1fr;
    min-height: 500px;
    margin: 0 -24px -24px;
    text-align: left;
    border-top: 2px solid var(--cfc-green-light);
}
.cfc-flow-dashboard__sidebar {
    background: #fff;
    border-right: 1px solid var(--cfc-gray-200);
    padding: 16px 0;
}
.cfc-flow-dashboard__sidebar span {
    display: block; padding: 11px 18px;
    color: var(--cfc-gray-600); font-size: 13px; font-weight: 600;
}
.cfc-flow-dashboard__sidebar span.is-active { background: var(--cfc-green); color: #fff; }
.cfc-flow-dashboard__main { background: var(--cfc-gray-50); padding: 24px; }
.cfc-flow-quote-card {
    background: #fff;
    border: 1px solid var(--cfc-gray-200);
    border-radius: var(--cfc-radius);
    padding: 18px;
    box-shadow: var(--cfc-shadow-sm);
}
.cfc-flow-quote-card__top,
.cfc-flow-quote-card__footer {
    display: flex; justify-content: space-between; gap: 16px; align-items: flex-start;
}
.cfc-flow-quote-card__top h4 { margin: 0 0 4px; font-size: 15px; color: var(--cfc-navy); font-weight: 800; }
.cfc-flow-quote-card__top p  { margin: 0; color: var(--cfc-gray-400); font-size: 12px; }
.cfc-dashboard-status {
    color: var(--cfc-green); border: 1px solid var(--cfc-green);
    border-radius: 3px; padding: 4px 10px;
    font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em;
}
.cfc-dashboard-progress {
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px; margin: 20px 0;
}
.cfc-dashboard-progress span {
    position: relative; padding-top: 36px;
    color: var(--cfc-gray-400); font-size: 11px;
    font-weight: 700; text-align: center;
}
.cfc-dashboard-progress span::before {
    content: ''; position: absolute; top: 0; left: 50%;
    width: 28px; height: 28px; transform: translateX(-50%);
    border: 2px solid var(--cfc-gray-200); border-radius: 50%; background: #fff;
}
.cfc-dashboard-progress span.is-done,
.cfc-dashboard-progress span.is-next { color: var(--cfc-navy); }
.cfc-dashboard-progress span.is-done::before {
    content: '✓'; display: flex; align-items: center; justify-content: center;
    background: var(--cfc-green); border-color: var(--cfc-green); color: #fff;
}
.cfc-dashboard-progress span.is-next::before { border-color: var(--cfc-green); }
.cfc-flow-quote-card__footer {
    align-items: center;
    border-top: 1px solid var(--cfc-gray-100);
    padding-top: 14px;
}
.cfc-flow-quote-card__footer span { display: block; color: var(--cfc-gray-400); font-size: 12px; }
.cfc-flow-quote-card__footer strong { color: var(--cfc-green); font-size: 24px; font-weight: 900; }

@media (max-width: 640px) {
    .cfc-flow-dashboard { grid-template-columns: 1fr; margin: 0 -16px -20px; }
    .cfc-flow-dashboard__sidebar { display: none; }
    .cfc-dashboard-progress { grid-template-columns: 1fr 1fr; }
    .cfc-flow-quote-card__top,
    .cfc-flow-quote-card__footer { flex-direction: column; }
}

/* ============================================================================
   STATE 9 — DECLINED
   ============================================================================ */

.cfc-decline-reasons { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin: 0 0 24px; }
.cfc-reason-pill {
    padding: 8px 18px;
    border: 2px solid var(--cfc-gray-200);
    border-radius: 3px;
    background: transparent;
    font-size: 12px; font-weight: 700;
    color: #555; text-transform: uppercase; letter-spacing: 0.05em;
    cursor: pointer;
    transition: border-color 0.15s, color 0.15s, background 0.15s;
    font-family: inherit; min-height: 40px;
}
.cfc-reason-pill:hover { border-color: var(--cfc-green); color: var(--cfc-green); }
.cfc-reason-pill.cfc-reason-pill--selected { background: var(--cfc-green); border-color: var(--cfc-green); color: #fff; }

/* ============================================================================
   PGA PROFESSIONALS FLOW
   ============================================================================ */

.cfc-pga-wrapper { max-width: 680px; }
.cfc-pga-frame {
    background: #fff;
    border-radius: var(--cfc-border-radius);
    box-shadow: 0 2px 8px rgba(0,0,0,0.07), 0 1px 3px rgba(0,0,0,0.04);
    overflow: hidden;
    min-height: 500px;
    padding: 28px 24px;
}
.cfc-pga-screen { display: none; }
.cfc-pga-screen--active { display: block; }
.cfc-pga-login-header {
    background: var(--cfc-green);
    color: #fff; text-align: center;
    margin: -28px -24px 24px; padding: 22px 24px;
}
.cfc-pga-login-badge,
.cfc-pga-ribbon,
.cfc-pga-pro-badge,
.cfc-pga-rate-tag {
    display: inline-flex; align-items: center;
    border-radius: 3px; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em;
}
.cfc-pga-login-badge {
    background: rgba(255,255,255,0.15);
    border: 1px solid rgba(255,255,255,0.3);
    padding: 4px 12px; margin-bottom: 10px;
}
.cfc-pga-login-header h2 { margin: 0 0 4px; color: #fff; font-size: 20px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; }
.cfc-pga-login-header p  { margin: 0; color: rgba(255,255,255,.72); font-size: 12px; }
.cfc-pga-apply { color: var(--cfc-gray-600); font-size: 13px; }
.cfc-pga-apply a { color: var(--cfc-orange); text-decoration: underline; text-underline-offset: 2px; }
.cfc-pga-pro-bar {
    background: var(--cfc-green);
    color: #fff; margin: -28px -24px 20px;
    padding: 9px 20px;
    display: flex; align-items: center; justify-content: space-between;
    gap: 10px; flex-wrap: wrap;
}
.cfc-pga-pro-badge {
    background: rgba(255,255,255,0.18);
    border: 1px solid rgba(255,255,255,0.3);
    padding: 3px 10px; margin-right: 8px;
}
.cfc-pga-pro-name { color: rgba(255,255,255,.85); font-size: 12px; }
.cfc-pga-rate-tag { background: #fbbf24; color: #1a3a6a; padding: 3px 9px; }
.cfc-trust-item--pro { color: var(--cfc-green); font-weight: 800; }
.cfc-pga-static-dropzone { margin-bottom: 8px; }
.cfc-pga-thumbs { display: flex; gap: 8px; justify-content: center; margin-top: 14px; }
.cfc-pga-offer { text-align: center; }
.cfc-pga-ribbon { background: #fbbf24; color: #1a3a6a; padding: 4px 12px; margin-bottom: 14px; }
.cfc-pga-uplift { color: var(--cfc-green); font-size: 12px; font-weight: 800; margin: 0 0 12px; }
.cfc-pga-notice {
    background: var(--cfc-green-light); border: 1px solid rgba(45,90,27,0.25);
    border-radius: var(--cfc-radius); color: var(--cfc-green);
    font-size: 12px; line-height: 1.5; margin: 0 0 18px; padding: 12px 14px;
}
.cfc-pga-confirmation { text-align: center; }

@media (max-width: 540px) {
    .cfc-pga-frame { padding: 24px 16px; }
    .cfc-pga-login-header,
    .cfc-pga-pro-bar { margin-left: -16px; margin-right: -16px; }
}

/* ============================================================================
   MY ACCOUNT — SELLER DASHBOARD
   ============================================================================ */

.cfc-my-quotes { font-family: inherit; max-width: 760px; }

.cfc-my-quotes__header { margin-bottom: 28px; }
.cfc-my-quotes__heading {
    font-size: 22px; font-weight: 900;
    text-transform: uppercase; letter-spacing: 0.08em;
    color: var(--cfc-green); margin: 0 0 6px;
}
.cfc-my-quotes__sub { font-size: 15px; color: var(--cfc-gray-600); margin: 0; }

.cfc-quote-stage-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 24px;
}

.cfc-quote-stage-filter {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    padding: 8px 12px;
    border: 1px solid var(--cfc-gray-200);
    border-radius: 4px;
    background: #fff;
    color: var(--cfc-gray-600);
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
    transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.cfc-quote-stage-filter:hover {
    border-color: var(--cfc-orange);
    color: var(--cfc-orange);
    text-decoration: none;
}

.cfc-quote-stage-filter.is-active {
    background: var(--cfc-orange);
    border-color: var(--cfc-orange);
    color: #fff;
}

.cfc-quote-stage-filter__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 7px;
    border-radius: 999px;
    background: var(--cfc-gray-100);
    color: var(--cfc-gray-600);
    font-size: 12px;
    font-weight: 900;
}

.cfc-quote-stage-filter.is-active .cfc-quote-stage-filter__count {
    background: rgba(255,255,255,0.22);
    color: #fff;
}

.cfc-filter-empty {
    padding: 34px 24px;
    border: 1px solid var(--cfc-gray-200);
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--cfc-shadow-sm);
    text-align: center;
}

.cfc-filter-empty h3 {
    margin: 0 0 8px;
    color: var(--cfc-navy);
    font-size: 18px;
    font-weight: 900;
}

.cfc-filter-empty p {
    margin: 0;
    color: var(--cfc-gray-600);
    font-size: 14px;
}

/* Empty state */
.cfc-empty-state { text-align: center; padding: 80px 24px; }
.cfc-empty-state__icon { margin: 0 auto 24px; display: block; }
.cfc-empty-state h3 { font-size: 22px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em; color: var(--cfc-green); margin: 0 0 10px; }
.cfc-empty-state p  { font-size: 15px; color: var(--cfc-gray-600); margin: 0 0 28px; }
.cfc-empty-trust {
    display: flex; justify-content: center; gap: 24px; flex-wrap: wrap;
    margin-top: 20px; font-size: var(--cfc-text-sm); color: var(--cfc-gray-600);
}
.cfc-empty-trust span { display: flex; align-items: center; gap: 5px; }

/* Quote cards */
.cfc-quote-cards { display: flex; flex-direction: column; gap: 20px; }

.cfc-quote-section {
    margin: 0 0 28px;
}

.cfc-quote-section__title {
    margin: 0 0 6px;
    color: var(--cfc-navy);
    font-size: 17px;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.cfc-quote-section__sub {
    margin: 0 0 14px;
    color: var(--cfc-gray-600);
    font-size: 14px;
}

.cfc-quote-card {
    background: #fff;
    border: 1px solid var(--cfc-gray-200);
    border-radius: var(--cfc-radius-lg);
    box-shadow: var(--cfc-shadow-sm);
    overflow: hidden;
    transition: box-shadow 0.2s;
}
.cfc-quote-card:hover { box-shadow: var(--cfc-shadow); }

.cfc-quote-card__top {
    display: flex; align-items: flex-start;
    justify-content: space-between;
    padding: 16px 20px 12px; gap: 12px;
    border-bottom: 1px solid var(--cfc-gray-100);
}
.cfc-quote-card__club { flex: 1; min-width: 0; }
.cfc-quote-card__name {
    font-size: 17px; font-weight: 800; color: var(--cfc-navy);
    margin: 0 0 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.cfc-quote-card__meta { font-size: 13px; color: var(--cfc-gray-400); margin: 0; }

/* Customer status badge */
.cfc-cust-badge {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 5px 10px; border-radius: 3px;
    font-size: var(--cfc-text-xs); font-weight: 800;
    white-space: nowrap; flex-shrink: 0;
    text-transform: uppercase; letter-spacing: 0.06em;
}
@keyframes cfc-pulse-border {
    0%, 100% { box-shadow: 0 0 0 0 rgba(232,73,29,0.4); }
    50%       { box-shadow: 0 0 0 6px rgba(232,73,29,0); }
}
.cfc-cust-badge--pulse { animation: cfc-pulse-border 2s ease-in-out infinite; }
.cfc-cust-badge--orange   { background: var(--cfc-orange-light); color: var(--cfc-orange);     border: 1px solid var(--cfc-orange); }
.cfc-cust-badge--blue     { background: var(--cfc-blue-light);   color: var(--cfc-blue);       border: 1px solid var(--cfc-blue); }
.cfc-cust-badge--green    { background: var(--cfc-green-light);  color: var(--cfc-green);      border: 1px solid var(--cfc-green); }
.cfc-cust-badge--amber    { background: var(--cfc-amber-light);  color: var(--cfc-amber);      border: 1px solid var(--cfc-amber); }
.cfc-cust-badge--gray     { background: var(--cfc-gray-100);     color: var(--cfc-gray-600);   border: 1px solid var(--cfc-gray-200); }
.cfc-cust-badge--teal     { background: var(--cfc-teal-light);   color: var(--cfc-teal);       border: 1px solid var(--cfc-teal); }
.cfc-cust-badge--lt-gray  { background: #fafafa;                 color: #999;                  border: 1px solid #eee; }

/* Progress tracker */
.cfc-quote-card__progress { padding: 16px 20px; border-bottom: 1px solid var(--cfc-gray-100); }
.cfc-progress { display: flex; list-style: none; margin: 0; padding: 0; gap: 0; }
.cfc-progress__step { flex: 1; display: flex; flex-direction: column; align-items: center; position: relative; text-align: center; }
.cfc-progress__step::after {
    content: ''; position: absolute; top: 13px; left: 50%;
    width: 100%; height: 2px; background: var(--cfc-gray-200); z-index: 0;
}
.cfc-progress__step:last-child::after { display: none; }
.cfc-progress__step--complete::after  { background: var(--cfc-green); }
.cfc-progress__step--complete + .cfc-progress__step--active::after { display: none; }

.cfc-progress__circle {
    width: 28px; height: 28px; border-radius: 50%;
    border: 2px solid var(--cfc-gray-200); background: #fff;
    display: flex; align-items: center; justify-content: center;
    font-size: 11px; font-weight: 800; color: var(--cfc-gray-400);
    z-index: 1; position: relative; transition: var(--cfc-transition);
}
.cfc-progress__step--complete .cfc-progress__circle { background: var(--cfc-green); border-color: var(--cfc-green); color: #fff; }
@keyframes cfc-active-ring {
    0%, 100% { box-shadow: 0 0 0 0 rgba(45,90,27,0.35); }
    50%       { box-shadow: 0 0 0 5px rgba(45,90,27,0); }
}
.cfc-progress__step--active .cfc-progress__circle {
    border-color: var(--cfc-green); color: var(--cfc-green);
    animation: cfc-active-ring 2s ease-in-out infinite;
}
.cfc-progress__label { font-size: 11px; margin-top: 5px; color: var(--cfc-gray-400); font-weight: 500; }
.cfc-progress__step--complete .cfc-progress__label,
.cfc-progress__step--active .cfc-progress__label { color: var(--cfc-navy); font-weight: 700; }
.cfc-progress__date { font-size: 10px; color: var(--cfc-gray-400); margin-top: 2px; }

@media (max-width: 480px) {
    .cfc-progress__label { display: none; }
    .cfc-progress__date  { display: none; }
}

/* Offer amount row */
.cfc-quote-card__offer {
    display: flex; align-items: center; justify-content: space-between;
    padding: 12px 20px; border-bottom: 1px solid var(--cfc-gray-100);
    gap: 12px; flex-wrap: wrap;
}
.cfc-offer-amount { font-size: 15px; color: var(--cfc-gray-600); }
.cfc-offer-amount strong { font-size: 24px; font-weight: 900; color: var(--cfc-green); }
.cfc-quote-card__offer-label { font-size: 13px; color: var(--cfc-gray-600); }
.cfc-quote-card__offer-amount { font-size: 28px; font-weight: 900; color: var(--cfc-green); }
.cfc-offer-amount--revised s    { color: var(--cfc-gray-400); font-size: 15px; }
.cfc-offer-amount--revised strong { color: var(--cfc-orange); }
.cfc-offer-date { font-size: var(--cfc-text-xs); color: var(--cfc-gray-400); white-space: nowrap; }

/* Updates feed */
.cfc-quote-card__updates { padding: 10px 20px; border-bottom: 1px solid var(--cfc-gray-100); }
.cfc-updates-toggle {
    background: none; border: none;
    font-size: var(--cfc-text-sm); color: var(--cfc-gray-400);
    cursor: pointer; padding: 4px 0; font-family: inherit;
    display: flex; align-items: center; gap: 6px;
    min-height: 32px; width: 100%; text-align: left;
}
.cfc-updates-toggle:hover { color: var(--cfc-green); }
.cfc-updates-feed { overflow: hidden; max-height: 0; transition: max-height 0.35s ease; }
.cfc-updates-feed.open { max-height: 400px; }
.cfc-update-entry {
    display: flex; gap: 10px;
    padding: 8px 0; border-top: 1px solid var(--cfc-gray-100);
    font-size: var(--cfc-text-sm);
}
.cfc-update-date { font-size: 11px; color: var(--cfc-gray-400); white-space: nowrap; padding-top: 2px; min-width: 60px; }
.cfc-update-text { color: var(--cfc-gray-600); line-height: 1.5; flex: 1; }

.cfc-updates-feed__item {
    display: flex; gap: 10px;
    padding: 8px 0; border-top: 1px solid var(--cfc-gray-100);
    font-size: var(--cfc-text-sm);
}
.cfc-updates-feed__time { font-size: 11px; color: var(--cfc-gray-400); white-space: nowrap; padding-top: 2px; min-width: 64px; flex-shrink: 0; }
.cfc-updates-feed__msg  { color: var(--cfc-gray-600); line-height: 1.5; flex: 1; }

.cfc-updates-toggle__chevron { transition: transform 0.2s ease; flex-shrink: 0; margin-left: auto; }
.cfc-updates-toggle__chevron.is-open { transform: rotate(180deg); }

/* Revised offer panel */
.cfc-quote-card__revised {
    margin: 12px 20px;
    border: 2px solid var(--cfc-amber);
    background: var(--cfc-amber-light);
    border-radius: var(--cfc-radius);
    padding: 16px;
}
.cfc-revised-title { font-size: var(--cfc-text-sm); font-weight: 800; color: #92400e; margin: 0 0 12px; text-transform: uppercase; letter-spacing: 0.06em; }
.cfc-revised-prices { display: flex; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }
.cfc-revised-price-box {
    flex: 1; background: rgba(255,255,255,0.6); border-radius: var(--cfc-radius);
    padding: 10px 14px; text-align: center; min-width: 100px;
}
.cfc-revised-price-box__label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--cfc-gray-400); margin-bottom: 4px; }
.cfc-revised-price-box__val   { font-size: 20px; font-weight: 900; color: var(--cfc-navy); }
.cfc-revised-price-box__val s { font-size: 16px; color: var(--cfc-gray-400); text-decoration: line-through; }
.cfc-revised-price-box--new .cfc-revised-price-box__val { color: var(--cfc-orange); }
.cfc-revised-note {
    font-size: var(--cfc-text-sm); color: var(--cfc-gray-600);
    background: rgba(255,255,255,0.6); border-radius: var(--cfc-radius);
    padding: 10px 14px; font-style: italic;
    border-left: 3px solid var(--cfc-amber); margin-bottom: 12px;
}
.cfc-revised-expiry {
    font-size: var(--cfc-text-xs); color: var(--cfc-amber); font-weight: 700;
    margin-bottom: 12px; display: flex; align-items: center; gap: 5px;
}
.cfc-revised-expiry--urgent { color: var(--cfc-red); }
.cfc-revised-accept-btn  { margin-bottom: 8px; }
.cfc-revised-decline-btn {
    background: none; border: none; font-size: var(--cfc-text-sm);
    color: var(--cfc-gray-400); cursor: pointer;
    text-decoration: underline; font-family: inherit; padding: 4px 0; min-height: 32px;
}
.cfc-revised-decline-btn:hover { color: var(--cfc-red); }

/* Revised offer inner layout */
.cfc-quote-card__revised-inner {
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: 12px; margin-bottom: 14px;
}
.cfc-quote-card__revised-text { flex: 1; }
.cfc-quote-card__revised-heading { font-size: 13px; font-weight: 800; color: #92400e; margin: 0 0 6px; text-transform: uppercase; letter-spacing: 0.05em; }
.cfc-quote-card__revised-countdown { font-size: 12px; color: var(--cfc-amber); font-weight: 600; margin: 0; }
.cfc-quote-card__revised-price { font-size: 30px; font-weight: 900; color: var(--cfc-orange); margin: 0; white-space: nowrap; flex-shrink: 0; }
.cfc-quote-card__revised-actions { display: flex; flex-direction: column; gap: 8px; align-items: center; }

@media (max-width: 480px) {
    .cfc-quote-card__revised-inner  { flex-direction: column; }
    .cfc-quote-card__revised-price  { font-size: 26px; }
    .cfc-quote-card__revised-actions { align-items: stretch; }
}

/* Card action footer */
.cfc-quote-card__action {
    padding: 14px 20px;
    display: flex; justify-content: flex-end;
    background: var(--cfc-gray-50);
}

/* Attention border for actionable cards */
.cfc-quote-card--pending_acceptance,
.cfc-quote-card--revised_offer { border-left: 4px solid var(--cfc-orange); }

/* Card meta */
.cfc-quote-card__ref { font-size: 11px; color: var(--cfc-gray-400); font-variant-numeric: tabular-nums; letter-spacing: 0.03em; }
.cfc-quote-card__meta-sep { color: var(--cfc-gray-300); user-select: none; }
.cfc-quote-card__status-note { font-size: 13px; color: var(--cfc-gray-600); line-height: 1.5; display: block; padding: 4px 0; }

/* Offer variants */
.cfc-quote-card__offer--review,
.cfc-quote-card__offer--declined,
.cfc-quote-card__offer--expired { background: var(--cfc-gray-50); }
.cfc-quote-card__review-msg,
.cfc-quote-card__decline-msg,
.cfc-quote-card__expire-msg {
    font-size: 13px; color: var(--cfc-gray-600); margin: 0;
    display: flex; align-items: center; gap: 8px; line-height: 1.5; flex-wrap: wrap;
}
.cfc-quote-card__review-msg a,
.cfc-quote-card__decline-msg a,
.cfc-quote-card__expire-msg a { color: var(--cfc-orange); text-decoration: underline; text-underline-offset: 2px; }

/* Payment info */
.cfc-quote-card__payment-meta {
    display: flex; gap: 16px; flex-wrap: wrap; margin-top: 4px;
    padding: 8px 12px; background: var(--cfc-green-light);
    border-radius: var(--cfc-radius); font-size: 12px; color: var(--cfc-green);
}
.cfc-quote-card__payment-date,
.cfc-quote-card__payment-ref { font-weight: 700; }

/* Trust footer */
.cfc-trust-footer {
    margin-top: 32px; padding: 16px 20px;
    background: var(--cfc-green-light);
    border: 1px solid rgba(45,90,27,0.2);
    border-radius: var(--cfc-radius);
    font-size: var(--cfc-text-sm); color: var(--cfc-green);
    display: flex; flex-wrap: wrap; justify-content: center;
    align-items: center; gap: 16px;
}
.cfc-trust-footer span { display: inline-flex; align-items: center; gap: 6px; }
.cfc-trust-footer p { margin: 4px 0; }
.cfc-trust-footer strong { color: var(--cfc-green-dark); }

/* Confirm steps */
.cfc-confirm-steps {
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px; margin: 18px 0 20px; text-align: left;
}
.cfc-confirm-steps div { min-width: 0; }
.cfc-confirm-steps strong {
    display: inline-flex; align-items: center; justify-content: center;
    width: 26px; height: 26px; border-radius: 50%;
    background: var(--cfc-green); color: #fff;
    font-size: 12px; margin-bottom: 8px;
}
.cfc-confirm-steps span {
    display: block; font-size: 12px; font-weight: 800;
    color: var(--cfc-navy); margin-bottom: 4px;
    text-transform: uppercase; letter-spacing: 0.04em;
}
.cfc-confirm-steps small { display: block; font-size: 11px; line-height: 1.45; color: var(--cfc-gray-600); }

/* Expiry states */
.cfc-expires--urgent { color: var(--cfc-red) !important; font-weight: 700; }
.cfc-expires--gone   { color: var(--cfc-gray-400); }

/* Sell another button */
.cfc-my-quotes__sell-another { margin-top: 24px; }
@media (max-width: 480px) {
    .cfc-my-quotes__sell-another .cfc-btn { width: 100%; display: flex; }
    .cfc-empty-trust { gap: 12px; }
    .cfc-quote-card__offer { flex-direction: column; align-items: flex-start; gap: 4px; }
    .cfc-revised-prices { flex-direction: column; }
}

/* ============================================================================
   RESPONSIVE
   ============================================================================ */

@media (max-width: 540px) {
    .cfc-grid-2 { grid-template-columns: 1fr; }
    .cfc-modal-container { border-radius: 10px 10px 0 0; }
    .cfc-confirm-steps { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
    .cfc-my-quotes { max-width: 100%; }
    .cfc-what-next__steps { flex-direction: column; }
    .cfc-trust-strip { gap: 10px; }
}

/* ============================================================================
   REDUCED MOTION
   ============================================================================ */

@media (prefers-reduced-motion: reduce) {
    .cfc-state,
    .cfc-loading-microcopy,
    .cfc-photo-tips-body,
    .cfc-updates-feed,
    .cfc-spinner,
    .cfc-checkmark__circle,
    .cfc-checkmark__check,
    .cfc-btn--loading::after,
    .cfc-spinner-dot,
    .cfc-progress__step--active .cfc-progress__circle,
    .cfc-cust-badge--pulse,
    .cfc-countdown--urgent,
    .cfc-updates-toggle__chevron {
        animation: none !important;
        transition: none !important;
    }
    .cfc-modal-container { animation: none !important; }
}

/* ============================================================================
   CFC STOREFRONT REFRESH
   ============================================================================ */

.cfc-card,
.cfc-login-card,
.cfc-pga-frame {
    max-width: 780px;
    margin-right: auto;
    margin-left: auto;
    border: 1px solid var(--cfc-gray-200);
    border-radius: 10px;
    box-shadow: var(--cfc-shadow);
}

.cfc-card,
.cfc-login-card {
    padding: 30px 28px;
}

.cfc-card__title,
.cfc-state-title,
.cfc-modal-heading,
.cfc-my-quotes__heading {
    color: var(--cfc-ink);
    font-weight: 950;
    line-height: 1.08;
    text-transform: uppercase;
}

.cfc-card__title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    font-size: 26px;
}

.cfc-card__title::after {
    content: none;
}

.cfc-btn {
    border-radius: 4px;
    font-weight: 950;
    letter-spacing: 0.06em;
}

.cfc-btn--primary {
    background: var(--cfc-orange);
    color: #fff;
    box-shadow: inset 0 -2px 0 rgba(0,0,0,0.16);
}

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

.cfc-btn--secondary {
    background: #fff;
    color: var(--cfc-orange);
    border-color: var(--cfc-orange);
}

.cfc-btn--success {
    background: var(--cfc-green-deep);
    color: #fff;
}

.cfc-input,
.cfc-textarea,
.cfc-delivery-card,
.cfc-store-address,
.cfc-reference-box,
.cfc-flow-quote-card,
.cfc-quote-card,
.cfc-trust-footer {
    border-radius: 6px;
}

.cfc-input,
.cfc-textarea {
    background: #fbfaf7;
    border-color: var(--cfc-gray-200);
}

.cfc-input:focus,
.cfc-textarea:focus {
    border-color: var(--cfc-orange);
    box-shadow: 0 0 0 4px rgba(229,90,31,0.15);
}

.cfc-trust-strip,
.cfc-empty-trust,
.cfc-trust-footer {
    background: #fff;
    color: var(--cfc-ink);
    border: 1px solid var(--cfc-gray-200);
    border-radius: 6px;
}

.cfc-trust-strip {
    justify-content: space-between;
    padding: 12px 14px;
}

.cfc-trust-item {
    color: inherit;
    font-weight: 800;
}

.cfc-trust-item svg,
.cfc-empty-trust svg,
.cfc-trust-footer svg {
    color: var(--cfc-orange);
}

.cfc-dropzone {
    min-height: 228px;
    background: #fff;
    border-color: var(--cfc-orange);
    border-radius: 8px;
}

.cfc-dropzone:hover,
.cfc-dropzone.cfc-dropzone--over {
    background: var(--cfc-orange-light);
}

.cfc-dropzone__primary {
    color: var(--cfc-ink);
    font-size: 18px;
    font-weight: 900;
    text-transform: uppercase;
}

.cfc-dropzone__action-btn {
    border-color: var(--cfc-ink);
    color: var(--cfc-ink);
    font-weight: 900;
}

.cfc-photo-tips-toggle,
.cfc-updates-toggle,
.cfc-pga-apply a,
.cfc-login-card__lost-pw a {
    color: var(--cfc-orange);
    font-weight: 800;
}

.cfc-photo-tips-list {
    background: #fff;
    border: 1px solid var(--cfc-gray-200);
}

.cfc-spinner {
    border-color: rgba(229,90,31,0.25);
    border-top-color: var(--cfc-orange);
}

.cfc-loading-inner {
    background: linear-gradient(180deg, #fff, var(--cfc-gray-50));
    border-radius: 8px;
}

.cfc-loading-steps li::before {
    border-color: var(--cfc-orange);
}

.cfc-loading-steps li:first-child::before {
    background: var(--cfc-orange);
    border-color: var(--cfc-orange);
    box-shadow: 0 0 0 4px rgba(229,90,31,0.2);
}

.cfc-state--quoted,
.cfc-pga-offer {
    padding: 22px;
    background: #fff;
    color: var(--cfc-ink);
    border-radius: 8px;
    border: 1px solid var(--cfc-border);
}

.cfc-state--quoted .cfc-quoted-price,
.cfc-pga-offer .cfc-quoted-price {
    color: var(--cfc-orange);
    font-weight: 950;
}

.cfc-state--quoted .cfc-quoted-sub,
.cfc-state--quoted .cfc-countdown-row,
.cfc-state--quoted .cfc-micro-text,
.cfc-pga-offer .cfc-quoted-sub,
.cfc-pga-uplift {
    color: #56615b;
}

.cfc-countdown {
    color: var(--cfc-ink);
}

.cfc-divider {
    border-top-color: var(--cfc-green-light);
}

.cfc-accepted-kicker,
.cfc-dashboard-status,
.cfc-pga-ribbon,
.cfc-pga-rate-tag {
    width: fit-content;
    padding: 6px 10px;
    background: var(--cfc-orange);
    color: #fff;
    border: 0;
    border-radius: 4px;
    font-weight: 950;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.cfc-accepted-kicker {
    margin-right: auto;
    margin-left: auto;
}

.cfc-delivery-card {
    min-height: 190px;
    border-color: var(--cfc-gray-200);
    background: #fff;
    box-shadow: 0 1px 0 rgba(0,0,0,0.04);
}

.cfc-delivery-card:hover,
.cfc-delivery-card:focus-visible {
    border-color: var(--cfc-orange);
    box-shadow: 0 12px 24px rgba(18,18,18,0.1);
}

.cfc-delivery-card__title {
    color: var(--cfc-ink);
    text-transform: uppercase;
}

.cfc-delivery-card__meta {
    color: var(--cfc-orange);
}

.cfc-reference-box {
    background: var(--cfc-orange-light);
    border-color: var(--cfc-orange);
}

.cfc-reference-box strong {
    color: var(--cfc-ink);
}

.cfc-checkmark__circle,
.cfc-checkmark__check {
    stroke: var(--cfc-green-deep);
}

.cfc-pga-frame {
    padding: 30px 28px;
}

.cfc-pga-frame--denied .cfc-pga-denied {
    max-width: 520px;
    margin: 0 auto;
}
.cfc-pga-denied-actions {
    margin-top: 22px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.cfc-pga-login-header {
    background: #fff;
    color: var(--cfc-ink);
}

.cfc-pga-login-header h2,
.cfc-pga-login-header p {
    color: var(--cfc-ink);
}

.cfc-pga-pro-bar {
    background: var(--cfc-green-deep);
}

.cfc-pga-login-header {
    border-bottom: 5px solid var(--cfc-orange);
}

.cfc-pga-login-badge,
.cfc-pga-pro-badge {
    background: var(--cfc-orange);
    color: #fff;
    border: 0;
    border-radius: 4px;
    text-transform: uppercase;
}

.cfc-flow-dashboard {
    border-radius: 0 0 8px 8px;
    overflow: hidden;
}

.cfc-flow-dashboard__sidebar {
    background: var(--cfc-ink);
    border: 0;
}

.cfc-flow-dashboard__sidebar span {
    color: rgba(255,255,255,0.64);
}

.cfc-flow-dashboard__sidebar span.is-active {
    background: var(--cfc-orange);
    color: #fff;
}

.cfc-dashboard-progress span.is-done::before,
.cfc-what-next__num,
.cfc-confirm-steps strong,
.cfc-progress__step--complete .cfc-progress__circle {
    background: var(--cfc-orange);
    border-color: var(--cfc-orange);
}

.cfc-dashboard-progress span.is-next::before,
.cfc-progress__step--active .cfc-progress__circle {
    border-color: var(--cfc-orange);
    color: var(--cfc-orange);
}

.cfc-my-quotes {
    max-width: 920px;
}

.cfc-my-quotes__header {
    padding: 22px 24px;
    background: var(--cfc-brand-green);
    color: #fff;
    border-radius: 8px;
}

.cfc-my-quotes__heading {
    color: #fff;
}

.cfc-my-quotes__sub {
    color: rgba(255,255,255,0.7);
}

.cfc-empty-state {
    margin-top: 18px;
    background: #fff;
    border: 1px solid var(--cfc-gray-200);
    border-radius: 8px;
    box-shadow: var(--cfc-shadow-sm);
}

.cfc-quote-card {
    border-top: 5px solid var(--cfc-brand-green);
}

.cfc-quote-card--pending_acceptance,
.cfc-quote-card--revised_offer {
    border-left: 1px solid var(--cfc-gray-200);
    border-top-color: var(--cfc-orange);
}

.cfc-quote-card__top {
    background: #fff;
}

.cfc-cust-badge,
.cfc-badge {
    border-radius: 4px;
    font-weight: 950;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.cfc-cust-badge--orange,
.cfc-badge--orange {
    background: var(--cfc-orange);
    color: #fff;
    border-color: var(--cfc-orange);
}

.cfc-quote-card__revised {
    background: var(--cfc-orange-light);
    border-color: var(--cfc-orange);
}

.cfc-quote-card__offer-amount,
.cfc-quote-card__revised-price,
.cfc-offer-amount--revised strong,
.cfc-flow-quote-card__footer strong {
    color: var(--cfc-orange);
}

.cfc-modal-overlay {
    background: rgba(18,18,18,0.72);
}

.cfc-modal-container {
    border-radius: 10px;
}

@media (max-width: 760px) {
    body.cfc-valuation-page .wp-site-blocks > main {
        background: #ffffff;
    }

    .cfc-card,
    .cfc-login-card,
    .cfc-pga-frame {
        padding: 24px 18px;
    }

    .cfc-card__title {
        align-items: flex-start;
        flex-direction: column;
    }

    .cfc-trust-strip {
        justify-content: center;
    }
}

/* ============================================================================
   PGA PRO BAR — My Batches nav button
   ============================================================================ */

.cfc-pga-batches-nav-btn {
    background: rgba(255,255,255,0.15);
    border: 1px solid rgba(255,255,255,0.35);
    border-radius: 4px;
    color: #fff;
    font-size: 11px; font-weight: 800;
    text-transform: uppercase; letter-spacing: 0.06em;
    padding: 5px 12px;
    cursor: pointer; font-family: inherit;
    transition: background 0.15s;
    min-height: 30px;
}
.cfc-pga-batches-nav-btn:hover { background: rgba(255,255,255,0.28); }

/* ============================================================================
   PGA BATCH DASHBOARD
   ============================================================================ */

.cfc-pga-batches-header {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 20px; gap: 12px;
}
.cfc-pga-batches-header .cfc-card__title { margin: 0; }

.cfc-batch-section {
    margin-bottom: 20px;
    border: 1px solid var(--cfc-gray-200);
    border-radius: var(--cfc-radius);
    background: #fff;
    overflow: hidden;
}
.cfc-batch-section--open { border-color: var(--cfc-green); }

.cfc-batch-section__title {
    font-size: 12px; font-weight: 800;
    text-transform: uppercase; letter-spacing: 0.07em;
    color: var(--cfc-navy);
    background: var(--cfc-gray-50);
    border-bottom: 1px solid var(--cfc-gray-100);
    padding: 10px 16px;
    display: flex; align-items: center; gap: 10px; margin: 0;
}
.cfc-batch-section__sub {
    font-size: 12px; color: var(--cfc-gray-600);
    padding: 8px 16px 0; margin: 0;
}

.cfc-batch-count {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 20px; height: 20px; padding: 0 5px;
    background: var(--cfc-orange); color: #fff;
    border-radius: 10px; font-size: 11px; font-weight: 900;
}
.cfc-batch-ref {
    font-size: 10px; color: var(--cfc-gray-400);
    font-weight: 600; letter-spacing: 0.04em;
    background: var(--cfc-gray-100); border-radius: 3px;
    padding: 2px 7px; font-variant-numeric: tabular-nums;
}

.cfc-batch-summary {
    display: flex; gap: 20px;
    padding: 10px 16px; border-bottom: 1px solid var(--cfc-gray-100);
}
.cfc-batch-summary span { font-size: 13px; color: var(--cfc-gray-600); }
.cfc-batch-summary strong { font-size: 18px; color: var(--cfc-green); font-weight: 900; }

.cfc-batch-quote-list { padding: 0; margin: 0; }
.cfc-batch-quote-list--loading {
    display: flex; align-items: center; justify-content: center;
    min-height: 72px; padding: 16px;
}

.cfc-batch-quote-row {
    display: flex; align-items: center; justify-content: space-between;
    gap: 12px; padding: 10px 16px;
    border-bottom: 1px solid var(--cfc-gray-100);
}
.cfc-batch-quote-row:last-child { border-bottom: none; }

.cfc-batch-quote-info { flex: 1; min-width: 0; }
.cfc-batch-quote-info strong {
    display: block; font-size: 13px; color: var(--cfc-navy);
    font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.cfc-batch-quote-info span { font-size: 12px; color: var(--cfc-green); font-weight: 800; }
.cfc-batch-customer { display: block; font-size: 11px; color: var(--cfc-mid-grey, #6B7280); font-style: normal; margin: 1px 0; }

.cfc-batch-empty {
    padding: 18px 16px; font-size: 13px; color: var(--cfc-gray-600);
    text-align: center; margin: 0;
}

.cfc-past-batches { padding: 0; }

.cfc-past-batch-row {
    display: flex; align-items: center; justify-content: space-between;
    gap: 12px; padding: 11px 16px;
    border-bottom: 1px solid var(--cfc-gray-100);
}
.cfc-past-batch-row:last-child { border-bottom: none; }

.cfc-past-batch-info { flex: 1; min-width: 0; }
.cfc-past-batch-info strong {
    display: block; font-size: 12px; font-weight: 800; color: var(--cfc-navy);
    letter-spacing: 0.04em; font-variant-numeric: tabular-nums;
}
.cfc-past-batch-info span { font-size: 12px; color: var(--cfc-gray-600); }

.cfc-batch-status-pill {
    flex-shrink: 0; font-size: 10px; font-weight: 800;
    text-transform: uppercase; letter-spacing: 0.06em;
    padding: 3px 9px; border-radius: 3px;
}
.cfc-batch-status-pill--open             { background: #E5F0FF; color: #1D4ED8; border: 1px solid #93C5FD; }
.cfc-batch-status-pill--label_requested  { background: #FFF7ED; color: #C2410C; border: 1px solid #FDBA74; }
.cfc-batch-status-pill--label_sent       { background: #F0FDF4; color: #15803D; border: 1px solid #86EFAC; }
.cfc-batch-status-pill--shipped          { background: var(--cfc-blue-light);  color: var(--cfc-blue);  border: 1px solid var(--cfc-blue); }
.cfc-batch-status-pill--received         { background: var(--cfc-teal-light);  color: var(--cfc-teal);  border: 1px solid var(--cfc-teal); }
.cfc-batch-status-pill--settled          { background: var(--cfc-green-light); color: var(--cfc-green); border: 1px solid var(--cfc-green); }

/* Pending batch cards (label_requested / label_sent) */
.cfc-batch-section--pending { border-color: #FDBA74; }
.cfc-pending-batch-card {
    border: 1px solid var(--cfc-gray-100); border-radius: var(--cfc-radius);
    margin-bottom: 12px; overflow: hidden;
}
.cfc-pending-batch-card--label_requested { border-color: #FDBA74; background: #FFFBF5; }
.cfc-pending-batch-card--label_sent      { border-color: #86EFAC; background: #F0FDF4; }
.cfc-pending-batch-header {
    display: flex; align-items: center; justify-content: space-between;
    gap: 12px; padding: 12px 16px;
    border-bottom: 1px solid var(--cfc-gray-100);
}
.cfc-batch-label-pending, .cfc-batch-label-ready {
    font-size: 13px; line-height: 1.5; padding: 10px 16px; margin: 0;
}
.cfc-batch-label-pending { color: #92400E; }
.cfc-batch-label-ready   { color: #166534; font-weight: 600; }
.cfc-pending-batch-card .cfc-btn { margin: 0 16px 14px; width: calc(100% - 32px); box-sizing: border-box; }

.cfc-batch-section--open .cfc-btn--success,
.cfc-batch-section--open .cfc-btn--full {
    display: block; margin: 12px 16px 0; width: calc(100% - 32px); box-sizing: border-box;
}
.cfc-batch-section--open .cfc-small-print { margin: 6px 16px 14px; }

/* Screen 4 optional fields note */
.cfc-pga-fields-note {
    font-size: 12px; color: var(--cfc-gray-600);
    background: var(--cfc-gray-50); border: 1px solid var(--cfc-gray-100);
    border-radius: var(--cfc-radius); padding: 10px 14px;
    margin: 0 0 16px; line-height: 1.5;
}
.cfc-label-optional {
    font-size: 11px; font-weight: 600; color: var(--cfc-gray-400);
    text-transform: none; letter-spacing: 0; margin-left: 4px;
}

/* ============================================================================
   MY ACCOUNT — PGA BATCHES TAB
   ============================================================================ */

.cfc-my-batches { font-family: inherit; max-width: 760px; }

.cfc-my-batches__header { margin-bottom: 24px; }
.cfc-my-batches__heading {
    font-size: 22px; font-weight: 900;
    text-transform: uppercase; letter-spacing: 0.08em;
    color: var(--cfc-green); margin: 0 0 6px;
}
.cfc-my-batches__sub { font-size: 14px; color: var(--cfc-gray-600); margin: 0; }

.cfc-batch-dispatch-form { padding: 0 16px 14px; }
.cfc-batch-dispatch-form .cfc-btn { width: 100%; }
.cfc-batch-dispatch-form .cfc-small-print { margin: 6px 0 0; }

/* =====================================================================
   V2 — STRUCTURED FORM REDESIGN
   ===================================================================== */

/* Higher-specificity full-bleed (ID + class) so block themes that constrain content
   width with their own rules (e.g. .is-layout-constrained > *) can't squash the form.
   !important on width/margin is needed because some themes apply `margin: 0 auto`
   with high specificity that competes with our negative margins. */
#cfc-wrapper.cfc-wrapper--v2,
.cfc-wrapper--v2 {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left:  calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding: 28px max(16px, calc((100vw - 1480px) / 2));
    box-sizing: border-box;
    background: var(--cfc-gray-50);
    container-type: inline-size;
    container-name: cfc-wrap;
}

.cfc-v2-layout {
    display: grid;
    grid-template-columns: minmax(0,1fr) 320px;
    gap: 24px;
    align-items: start;
    width: 100%;
    box-sizing: border-box;
}
@media (max-width: 880px) {
    .cfc-v2-layout { grid-template-columns: 1fr; }
}
@container cfc-wrap (max-width: 880px) {
    .cfc-v2-layout { grid-template-columns: 1fr; }
}

.cfc-v2-card {
    position: relative;
    background: #fff;
    border-radius: 18px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04), 0 8px 24px rgba(0,0,0,0.04);
    padding: 36px 36px 32px;
    min-width: 0;
    box-sizing: border-box;
    container-type: inline-size;
    container-name: cfc-card;
}
@media (max-width: 640px) {
    .cfc-v2-card { padding: 24px 18px; border-radius: 14px; }
}
@container cfc-card (max-width: 540px) {
    .cfc-v2-card { padding: 24px 18px; border-radius: 14px; }
}

#cfc-login-wall.cfc-v2-card {
    max-width: 560px;
    margin: 0 auto;
}

.cfc-v2-badge {
    position: absolute;
    top: 14px;
    right: 14px;
    background: var(--cfc-orange);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    padding: 4px 10px;
    border-radius: 999px;
    line-height: 1;
}

.cfc-v2-heading {
    font-size: 30px;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: #111;
    margin: 0 0 10px;
    text-transform: uppercase;
}
.cfc-v2-subheading { font-size: 15px; color: #4b5563; margin: 0 0 20px; }
.cfc-v2-title { font-size: 26px; font-weight: 800; color: #111; margin: 0 0 8px; letter-spacing: -0.01em; }
.cfc-v2-title--center { text-align: center; }
.cfc-v2-lede { font-size: 14px; color: #4b5563; line-height: 1.55; margin: 0 0 22px; }
.cfc-v2-lede--center { text-align: center; max-width: 540px; margin-left: auto; margin-right: auto; }

.cfc-v2-condition-btn {
    display: inline-block;
    background: transparent;
    color: var(--cfc-orange);
    border: 2px solid var(--cfc-orange);
    border-radius: 6px;
    padding: 12px 26px;
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.18s, color 0.18s;
    margin: 0 0 28px;
}
.cfc-v2-condition-btn:hover, .cfc-v2-condition-btn:focus-visible {
    background: var(--cfc-orange);
    color: #fff;
}

.cfc-v2-login-form { display: block; }

.cfc-v2-field { display: block; margin: 0 0 16px; }
.cfc-v2-label {
    display: block;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    color: #111;
    text-transform: uppercase;
    margin: 0 0 8px;
}
.cfc-v2-input,
.cfc-v2-textarea,
select.cfc-v2-input {
    display: block;
    width: 100%;
    box-sizing: border-box;
    background: #fff;
    color: #111;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    padding: 12px 14px;
    font-size: 15px;
    line-height: 1.4;
    font-family: inherit;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.cfc-v2-input:focus, .cfc-v2-textarea:focus, select.cfc-v2-input:focus {
    outline: none;
    border-color: var(--cfc-orange);
    box-shadow: 0 0 0 3px rgba(232,73,29,0.15);
}
.cfc-v2-textarea { resize: vertical; min-height: 60px; background: #f6f4f0; }

.cfc-v2-checkbox {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 6px 0 22px;
    cursor: pointer;
    font-size: 12px;
    font-weight: 700;
    color: #111;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}
.cfc-v2-checkbox input[type="checkbox"] {
    width: 18px; height: 18px; accent-color: var(--cfc-orange);
}

.cfc-v2-btn-primary {
    display: block;
    width: 100%;
    background: #2563EB;
    color: #fff;
    border: 0;
    border-radius: 6px;
    padding: 16px 22px;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.15s, transform 0.05s;
}
.cfc-v2-btn-primary:hover, .cfc-v2-btn-primary:focus-visible { background: #1D4ED8; }
.cfc-v2-btn-primary:active { transform: translateY(1px); }
.cfc-v2-btn-primary[disabled], .cfc-v2-btn-primary.is-disabled {
    opacity: 0.55; cursor: not-allowed; background: #6b7280;
}
.cfc-v2-btn-primary--continue { background: var(--cfc-orange); }
.cfc-v2-btn-primary--continue:hover, .cfc-v2-btn-primary--continue:focus-visible { background: var(--cfc-orange-dark); }

.cfc-v2-btn-secondary {
    display: block;
    width: 100%;
    background: #fff;
    color: #111;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    padding: 13px 22px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    cursor: pointer;
    margin-top: 10px;
}
.cfc-v2-btn-secondary:hover { background: #f9fafb; }

.cfc-v2-lost-pw { margin: 14px 0 0; font-size: 14px; }
.cfc-v2-lost-pw a { color: var(--cfc-orange); text-decoration: underline; text-underline-offset: 3px; }

.cfc-v2-rule { border: none; border-top: 1px solid #e5e7eb; margin: 24px 0; }

.cfc-v2-register-link { font-size: 14px; color: #1f2937; margin: 0; }
.cfc-v2-register-link a { color: var(--cfc-orange); text-decoration: underline; text-underline-offset: 3px; font-weight: 600; margin-left: 4px; }

.cfc-v2-field-error {
    background: var(--cfc-red-light);
    color: var(--cfc-red);
    font-size: 13px;
    padding: 10px 12px;
    border-radius: 6px;
    margin: 0 0 14px;
}

/* Photo strip */
.cfc-v2-photo-strip {
    display: grid;
    grid-template-columns: auto 1fr auto auto;
    gap: 14px;
    align-items: center;
    border: 2px dashed var(--cfc-orange);
    border-radius: 12px;
    background: var(--cfc-orange-light);
    padding: 14px 16px;
    margin-bottom: 8px;
}
.cfc-v2-photo-strip.is-dragover { background: #FFE7DE; border-color: var(--cfc-orange-dark); }
.cfc-v2-photo-strip__icon {
    width: 38px; height: 38px;
    background: #fff;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 1px 2px rgba(0,0,0,0.06);
}
.cfc-v2-photo-strip__label { font-size: 14px; color: #111; line-height: 1.4; min-width: 0; }
.cfc-v2-photo-strip__label strong { font-weight: 700; }
.cfc-v2-photo-strip__label span { color: #4b5563; }
.cfc-v2-photo-strip__label small { display: block; font-size: 12px; color: #6b7280; margin-top: 2px; }
.cfc-v2-photo-slots { display: flex; gap: 6px; }
.cfc-v2-photo-slot {
    width: 42px; height: 42px;
    border-radius: 6px;
    background: linear-gradient(180deg, #d8dde6 0%, #b8c0cc 100%);
    position: relative;
    overflow: hidden;
}
.cfc-v2-photo-slot--filled { background: none; }
.cfc-v2-photo-slot img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cfc-v2-photo-slot__remove {
    position: absolute; top: 2px; right: 2px;
    width: 18px; height: 18px;
    border-radius: 50%;
    background: rgba(0,0,0,0.6);
    color: #fff; border: 0; font-size: 12px; line-height: 1;
    cursor: pointer; padding: 0;
    display: flex; align-items: center; justify-content: center;
}
.cfc-v2-photo-add {
    background: #fff;
    color: #111;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    padding: 8px 14px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}
.cfc-v2-photo-add:hover { background: #f9fafb; }

.cfc-v2-photo-status { font-size: 13px; color: var(--cfc-green); margin: 0 0 22px; }
.cfc-v2-photo-status.is-error { color: var(--cfc-red); }
.cfc-v2-photo-status:empty { margin: 0 0 6px; }

@media (max-width: 640px) {
    .cfc-v2-photo-strip { grid-template-columns: auto 1fr; gap: 10px; padding: 12px; }
    .cfc-v2-photo-slots { grid-column: 1 / -1; }
    .cfc-v2-photo-add { grid-column: 1 / -1; width: 100%; }
}
/* Container-based version: trigger when the card itself is narrow,
   regardless of viewport size (e.g. embedded in a narrow theme column). */
@container cfc-card (max-width: 560px) {
    .cfc-v2-photo-strip { grid-template-columns: auto 1fr; gap: 10px; padding: 12px; }
    .cfc-v2-photo-slots { grid-column: 1 / -1; flex-wrap: wrap; }
    .cfc-v2-photo-add  { grid-column: 1 / -1; width: 100%; }
}

/* Sections */
.cfc-v2-section { margin: 0 0 22px; }
.cfc-v2-section-label {
    display: block;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    color: #111;
    text-transform: uppercase;
    margin: 0 0 8px;
}
.cfc-v2-section-label small {
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    color: #9ca3af;
    margin-left: 4px;
}
.cfc-v2-section-label--sm { font-size: 10.5px; }

.cfc-v2-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin: 0 0 18px;
}
.cfc-v2-row:last-child { margin-bottom: 0; }
@media (max-width: 560px) {
    .cfc-v2-row { grid-template-columns: 1fr; gap: 14px; }
}
@container cfc-card (max-width: 500px) {
    .cfc-v2-row { grid-template-columns: 1fr; gap: 14px; }
}
.cfc-v2-section--half { margin-bottom: 0; }

/* Club type grid */
.cfc-v2-type-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
}
@media (max-width: 640px) {
    .cfc-v2-type-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
}
@container cfc-card (max-width: 560px) {
    .cfc-v2-type-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
}
.cfc-v2-type {
    background: #fff;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    padding: 14px 8px;
    font-size: 14px;
    font-weight: 500;
    color: #111;
    text-align: center;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
}
.cfc-v2-type:hover { border-color: #9ca3af; }
.cfc-v2-type.is-active {
    border-color: var(--cfc-orange);
    background: var(--cfc-orange-light);
    box-shadow: 0 0 0 3px rgba(232,73,29,0.12);
    font-weight: 700;
}

/* Combobox */
.cfc-v2-combobox { position: relative; }
.cfc-v2-input--combo { padding-right: 36px; }
.cfc-v2-combo-chevron {
    position: absolute;
    right: 12px; top: 50%;
    transform: translateY(-50%);
    color: #6b7280;
    pointer-events: none;
    font-size: 14px;
}
.cfc-v2-combo-list {
    position: absolute;
    top: calc(100% + 4px); left: 0; right: 0;
    background: #fff;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.1);
    max-height: 220px;
    overflow-y: auto;
    z-index: 50;
    margin: 0; padding: 4px 0;
    list-style: none;
}
.cfc-v2-combo-list li {
    padding: 8px 14px;
    font-size: 14px;
    cursor: pointer;
}
.cfc-v2-combo-list li:hover, .cfc-v2-combo-list li.is-active { background: var(--cfc-orange-light); color: var(--cfc-orange-dark); }

/* Condition slider */
.cfc-v2-slider { position: relative; padding: 14px 6px 0; }
.cfc-v2-slider-track {
    position: relative;
    height: 4px;
    background: #e5e7eb;
    border-radius: 4px;
    margin: 0 8px 18px;
}
.cfc-v2-slider-fill {
    position: absolute; left: 0; top: 0; bottom: 0;
    background: #10B981;
    border-radius: 4px;
    transition: width 0.2s;
}
.cfc-v2-slider-stops {
    position: absolute;
    top: 6px; left: 0; right: 0;
    display: flex; justify-content: space-between;
    pointer-events: none;
    padding: 0;
}
.cfc-v2-slider-stop {
    width: 18px; height: 18px;
    border-radius: 50%;
    border: 2px solid #d1d5db;
    background: #fff;
    cursor: pointer;
    pointer-events: auto;
    padding: 0;
    transition: background 0.15s, border-color 0.15s, transform 0.15s;
}
.cfc-v2-slider-stop.is-active { background: #10B981; border-color: #10B981; }
.cfc-v2-slider-stop.is-active.cfc-v2-slider-stop--current {
    box-shadow: 0 0 0 4px rgba(16,185,129,0.18);
    transform: scale(1.1);
}
.cfc-v2-slider-stop.is-past { background: #10B981; border-color: #10B981; }
.cfc-v2-slider-labels {
    display: flex; justify-content: space-between;
    font-size: 12px;
    color: #6b7280;
    padding: 0;
}
.cfc-v2-slider-labels span { flex: 1; text-align: center; }
.cfc-v2-slider-labels span:first-child { text-align: left; }
.cfc-v2-slider-labels span:last-child { text-align: right; }
.cfc-v2-slider-labels span.is-active { color: #111; font-weight: 700; }

.cfc-v2-condition-desc {
    background: transparent;
    font-size: 13.5px;
    line-height: 1.55;
    color: #4b5563;
    margin: 14px 0 0;
}
.cfc-v2-condition-desc strong { color: #111; font-weight: 700; }

/* Accordion */
.cfc-v2-accordion {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #f6f7f8;
    margin: 0 0 22px;
    overflow: hidden;
}
.cfc-v2-accordion-summary {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 14px;
    align-items: center;
    padding: 16px 18px;
    cursor: pointer;
    list-style: none;
    border: 0;
    outline: none;
    user-select: none;
    transition: background 0.15s;
}
.cfc-v2-accordion-summary:hover { background: rgba(0,0,0,0.025); }
.cfc-v2-accordion-summary:focus { outline: none; }
.cfc-v2-accordion-summary:focus-visible {
    outline: 2px solid var(--cfc-orange);
    outline-offset: -2px;
}
.cfc-v2-accordion-summary::-webkit-details-marker,
.cfc-v2-accordion-summary::marker { display: none; content: ""; }
.cfc-v2-accordion[open] .cfc-v2-accordion-summary { background: rgba(0,0,0,0.015); }
.cfc-v2-accordion-icon {
    width: 26px; height: 26px;
    border-radius: 50%;
    background: var(--cfc-orange);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-weight: 900;
    font-size: 20px;
    line-height: 1;
    text-indent: 0;
    transition: transform 0.2s;
    flex-shrink: 0;
}
.cfc-v2-accordion[open] .cfc-v2-accordion-icon { transform: rotate(45deg); }
.cfc-v2-accordion-summary > div { line-height: 1.35; min-width: 0; }
.cfc-v2-accordion-summary strong {
    display: block; font-size: 12.5px; font-weight: 800;
    color: #111; letter-spacing: 0.06em; text-transform: uppercase;
}
.cfc-v2-accordion-summary > div > span {
    display: block; font-size: 13px; color: #6b7280; margin-top: 3px; line-height: 1.4;
}
.cfc-v2-accordion-chevron { color: #6b7280; transition: transform 0.2s; font-size: 12px; }
.cfc-v2-accordion[open] .cfc-v2-accordion-chevron { transform: rotate(180deg); }
.cfc-v2-accordion-body {
    padding: 18px 18px 20px;
    background: #fff;
    border-top: 1px solid #e5e7eb;
}

/* Char counter */
.cfc-v2-char-counter { text-align: right; font-size: 12px; color: #6b7280; margin-top: 4px; }

/* Add another club inline */
.cfc-v2-add-club-inline {
    display: block;
    width: 100%;
    background: #fff;
    color: var(--cfc-orange);
    border: 2px dashed var(--cfc-orange);
    border-radius: 8px;
    padding: 14px;
    font-size: 14px;
    font-weight: 700;
    text-transform: none;
    letter-spacing: 0;
    margin: 0 0 14px;
    cursor: pointer;
}
.cfc-v2-add-club-inline:hover { background: var(--cfc-orange-light); }

.cfc-v2-fineprint { font-size: 12.5px; color: #6b7280; text-align: center; margin: 10px 0 0; }

/* Quote aside */
.cfc-v2-quote-aside { position: sticky; top: 24px; }
@media (max-width: 880px) {
    .cfc-v2-quote-aside { position: static; }
}
.cfc-v2-quote-card {
    background: #fff;
    border-radius: 14px;
    padding: 16px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04), 0 8px 20px rgba(0,0,0,0.05);
}
.cfc-v2-quote-card__head {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 14px;
}
.cfc-v2-quote-card__title {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    color: #6b7280;
    text-transform: uppercase;
}
.cfc-v2-quote-card__count { font-size: 12px; color: #9ca3af; }

.cfc-v2-quote-list { list-style: none; margin: 0 0 12px; padding: 0; }
.cfc-v2-quote-empty {
    font-size: 13px; color: #9ca3af;
    background: #f9fafb;
    border-radius: 8px;
    padding: 14px;
    text-align: center;
}
.cfc-v2-quote-item {
    display: grid;
    grid-template-columns: 32px 1fr auto auto;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
}
.cfc-v2-quote-item + .cfc-v2-quote-item { border-top: 1px solid #f3f4f6; }
.cfc-v2-quote-item__icon {
    width: 32px; height: 32px;
    border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    font-size: 11px;
    font-weight: 800;
    color: #111;
    background: #fde6d8;
    letter-spacing: 0.03em;
}
.cfc-v2-quote-item__icon--iron { background: #DDE3F5; color: #1F2A55; }
.cfc-v2-quote-item__icon--put  { background: #D7EBC8; color: #2D5A1B; }
.cfc-v2-quote-item__icon--shaft { background: #F3D9EE; color: #672259; }
.cfc-v2-quote-item__icon--bag  { background: #FCE7C6; color: #6B4106; }
.cfc-v2-quote-item__name { font-size: 13.5px; color: #111; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cfc-v2-quote-item__price { font-size: 13px; font-weight: 700; color: #111; }
.cfc-v2-quote-item__price--pending { color: #9ca3af; font-weight: 500; }
.cfc-v2-quote-item__remove {
    background: none; border: 0; padding: 0 4px;
    color: #9ca3af; cursor: pointer; font-size: 16px; line-height: 1;
}
.cfc-v2-quote-item__remove:hover { color: var(--cfc-red); }

.cfc-v2-quote-total {
    display: flex; align-items: baseline; justify-content: space-between;
    border-top: 1px solid #e5e7eb;
    padding-top: 14px;
    margin-bottom: 14px;
}
.cfc-v2-quote-total span { font-size: 12px; font-weight: 800; color: #6b7280; letter-spacing: 0.08em; }
.cfc-v2-quote-total strong { font-size: 22px; color: var(--cfc-green); font-weight: 800; }

.cfc-v2-view-quote {
    display: block;
    width: 100%;
    background: #fff;
    color: var(--cfc-orange);
    border: 2px dashed var(--cfc-orange);
    border-radius: 8px;
    padding: 11px;
    font-size: 13px;
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    text-align: center;
}
.cfc-v2-view-quote:hover,
.cfc-v2-view-quote:focus-visible {
    background: var(--cfc-orange-light);
    outline: none;
}
.cfc-v2-view-quote[disabled] {
    opacity: 0.55;
    cursor: not-allowed;
}

/* Confirm state */
.cfc-v2-alert {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 12px;
    align-items: start;
    background: #FEF2F2;
    border: 1px solid #FBBFBF;
    color: #B42318;
    border-radius: 8px;
    padding: 14px 16px;
    margin: 0 0 18px;
}
.cfc-v2-alert__icon {
    width: 22px; height: 22px;
    border-radius: 50%;
    background: #B42318;
    color: #fff;
    display: flex; align-items: center; justify-content: center;
    font-weight: 800; font-size: 14px;
}
.cfc-v2-alert strong { display: block; font-weight: 700; font-size: 14px; }
.cfc-v2-alert span { display: block; font-size: 13px; color: #B42318; margin-top: 2px; }

.cfc-v2-detected-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
    margin: 0 0 18px;
}
@media (max-width: 560px) {
    .cfc-v2-detected-grid { grid-template-columns: 1fr; }
}
.cfc-v2-detected {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 14px;
    text-align: center;
}
.cfc-v2-detected__thumb {
    background: linear-gradient(180deg, #e5e7eb 0%, #c7cbd1 100%);
    border-radius: 8px;
    height: 110px;
    margin-bottom: 10px;
    overflow: hidden;
}
.cfc-v2-detected__thumb img { width: 100%; height: 100%; object-fit: cover; }
.cfc-v2-detected__name { font-weight: 700; font-size: 14px; color: #111; }
.cfc-v2-detected__meta { font-size: 12.5px; color: #6b7280; margin-top: 4px; }

.cfc-v2-confirm-choices { display: grid; gap: 10px; margin: 0 0 18px; }
.cfc-v2-choice {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 12px;
    align-items: start;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 14px 16px;
    cursor: pointer;
}
.cfc-v2-choice.is-active {
    border-color: var(--cfc-orange);
    background: var(--cfc-orange-light);
    box-shadow: 0 0 0 2px rgba(232,73,29,0.12);
}
.cfc-v2-choice input[type="radio"] { accent-color: var(--cfc-orange); margin: 2px 0 0; }
.cfc-v2-choice strong { display: block; color: #111; font-weight: 700; font-size: 14px; }
.cfc-v2-choice span { display: block; font-size: 13px; color: #6b7280; margin-top: 2px; }

/* Valuing state */
.cfc-v2-valuing { padding: 8px 0; }
.cfc-v2-valuing-spinner {
    width: 64px; height: 64px;
    border-radius: 50%;
    border: 3px solid #e5e7eb;
    border-top-color: var(--cfc-orange);
    margin: 0 auto 20px;
    animation: cfc-v2-spin 0.9s linear infinite;
}
@keyframes cfc-v2-spin { to { transform: rotate(360deg); } }

.cfc-v2-valuing-steps {
    list-style: none;
    padding: 0;
    margin: 26px auto 0;
    max-width: 540px;
}
.cfc-v2-valuing-step {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 6px 0;
    font-size: 14px;
    color: #9ca3af;
    line-height: 1.45;
}
.cfc-v2-valuing-step.is-done { color: var(--cfc-green); }
.cfc-v2-valuing-step.is-active { color: var(--cfc-orange); font-weight: 600; }
.cfc-v2-valuing-dot {
    width: 11px; height: 11px;
    border-radius: 50%;
    background: #e5e7eb;
    flex-shrink: 0;
}
.cfc-v2-valuing-step.is-done .cfc-v2-valuing-dot { background: var(--cfc-green); }
.cfc-v2-valuing-step.is-active .cfc-v2-valuing-dot {
    background: var(--cfc-orange);
    box-shadow: 0 0 0 4px rgba(232,73,29,0.15);
}
.cfc-v2-valuing-step em { font-style: normal; color: inherit; opacity: 0.85; }

/* State transitions reuse */
.cfc-v2-card .cfc-state { display: none; }
.cfc-v2-card .cfc-state.cfc-state--active { display: block; }

/* =================================================================== */
/* V2 — Items in your quote (bundle list)                              */
/* =================================================================== */
.cfc-v2-quote-head {
    display: flex; align-items: flex-start; justify-content: space-between; gap: 12px;
    margin-bottom: 4px;
}
.cfc-v2-quote-head__pill {
    flex-shrink: 0;
    background: #f3f4f6;
    color: #374151;
    font-size: 12px;
    font-weight: 700;
    border-radius: 999px;
    padding: 6px 12px;
    white-space: nowrap;
}
.cfc-v2-bundle-list { list-style: none; margin: 14px 0 0; padding: 0; }
.cfc-v2-bundle-item {
    display: grid;
    grid-template-columns: 56px 1fr auto 22px;
    gap: 14px;
    align-items: center;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 12px 14px;
    margin-bottom: 10px;
}
.cfc-v2-bundle-item__thumb {
    width: 56px; height: 56px;
    border-radius: 10px;
    background: #f3f4f6;
    color: #6b7280;
    display: flex; align-items: center; justify-content: center;
    font-size: 11px; font-weight: 800; letter-spacing: 0.06em;
    overflow: hidden;
}
.cfc-v2-bundle-item__thumb img { width: 100%; height: 100%; object-fit: cover; }
.cfc-v2-bundle-item__thumb--form { background: #e7f0fb; color: #1f4d8a; }
.cfc-v2-bundle-item__title { font-size: 15px; font-weight: 800; color: #111; line-height: 1.25; }
.cfc-v2-bundle-item__meta { font-size: 12.5px; color: #6b7280; margin-top: 3px; line-height: 1.4; }
.cfc-v2-bundle-item__conf { color: var(--cfc-green); font-weight: 700; }
.cfc-v2-bundle-item__actions { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.cfc-v2-bundle-item__price { font-size: 18px; font-weight: 800; color: #111; white-space: nowrap; }
.cfc-v2-bundle-item__save {
    background: none;
    border: 0;
    color: var(--cfc-orange);
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    padding: 2px 0;
    text-decoration: underline;
    text-underline-offset: 2px;
    white-space: nowrap;
}
.cfc-v2-bundle-item__save:hover,
.cfc-v2-bundle-item__save:focus-visible { color: var(--cfc-orange-dark); outline: none; }
.cfc-v2-bundle-item__save:disabled { color: #9ca3af; cursor: default; text-decoration: none; }
.cfc-v2-bundle-item__remove {
    background: none; border: 0; padding: 0;
    color: #9ca3af; cursor: pointer; font-size: 18px; line-height: 1;
    align-self: flex-start; margin-top: 4px;
}
.cfc-v2-bundle-item__remove:hover { color: var(--cfc-red); }
.cfc-v2-bundle-list.is-locked .cfc-v2-bundle-item {
    grid-template-columns: 56px 1fr auto;
}
.cfc-v2-bundle-list.is-locked .cfc-v2-bundle-item__save,
.cfc-v2-bundle-list.is-locked .cfc-v2-bundle-item__remove {
    display: none;
}

.cfc-v2-add-another {
    display: block; width: 100%; box-sizing: border-box;
    background: #fff;
    color: var(--cfc-orange);
    border: 2px dashed var(--cfc-orange);
    border-radius: 12px;
    padding: 14px;
    font-size: 14px; font-weight: 700;
    cursor: pointer;
    margin: 4px 0 16px;
}
.cfc-v2-add-another:hover { background: var(--cfc-orange-light); }
.cfc-v2-start-new-quote {
    width: 100%;
    margin: 4px 0 16px;
}

.cfc-v2-bundle-total {
    display: flex; align-items: center; justify-content: space-between;
    background: var(--cfc-green);
    color: #fff;
    border-radius: 12px;
    padding: 16px 20px;
    margin-bottom: 12px;
}
.cfc-v2-bundle-total__label { display: block; font-size: 12px; font-weight: 800; letter-spacing: 0.1em; }
.cfc-v2-bundle-total__sub { display: block; font-size: 12px; opacity: 0.8; margin-top: 2px; }
.cfc-v2-bundle-total__amount { font-size: 32px; font-weight: 800; }

.cfc-countdown-row--inline { font-size: 12.5px; color: #6b7280; justify-content: center; margin: 4px 0 10px; }

/* =================================================================== */
/* V2 — Back link (shared)                                             */
/* =================================================================== */
.cfc-v2-back-link {
    background: none; border: 0; padding: 0;
    color: #4b5563; font-size: 13px;
    cursor: pointer;
    margin-bottom: 14px;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.cfc-v2-back-link:hover { color: var(--cfc-green); }

/* =================================================================== */
/* V2 — Payment Method state                                           */
/* =================================================================== */
.cfc-v2-accepted-banner {
    display: flex; align-items: center; gap: 14px;
    background: var(--cfc-green-light);
    border: 1px solid #cfe6c0;
    border-radius: 12px;
    padding: 14px 16px;
    margin-bottom: 18px;
}
.cfc-v2-accepted-banner__icon {
    flex: 0 0 30px;
    width: 30px; height: 30px;
    border-radius: 50%;
    background: var(--cfc-green);
    color: #fff;
    display: grid;
    place-items: center;
    font-size: 18px;
    font-weight: 900;
    line-height: 1;
}
.cfc-v2-accepted-banner strong { color: var(--cfc-green-dark); font-size: 15px; display: block; }
.cfc-v2-accepted-banner span#cfc-v2-payment-subline,
.cfc-v2-accepted-banner > div > span { color: #4b5563; font-size: 13px; }

.cfc-v2-pay-options { display: flex; flex-direction: column; gap: 12px; margin: 8px 0 18px; }
.cfc-v2-pay-card {
    display: block;
    background: #fff;
    border: 1.5px solid #e5e7eb;
    border-radius: 14px;
    padding: 16px;
    cursor: pointer;
    transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
    position: relative;
}
.cfc-v2-pay-card:hover { border-color: #d1d5db; }
.cfc-v2-pay-card.is-active {
    border-color: var(--cfc-orange);
    background: var(--cfc-orange-light);
    box-shadow: 0 0 0 1px var(--cfc-orange) inset;
}
.cfc-v2-pay-card input[type="radio"] {
    position: absolute; opacity: 0; pointer-events: none;
}
.cfc-v2-pay-card__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; }
.cfc-v2-pay-card__head strong { font-size: 17px; font-weight: 800; color: #111; }
.cfc-v2-pay-card__amount { text-align: right; }
.cfc-v2-pay-card__amount strong { font-size: 22px; font-weight: 800; color: var(--cfc-green); display: block; }
.cfc-v2-pay-card__amount span { font-size: 11.5px; color: #6b7280; letter-spacing: 0.04em; }
.cfc-v2-pay-card__body { font-size: 13.5px; color: #374151; margin: 8px 0 0; line-height: 1.45; }
.cfc-v2-pay-card__rule { border: 0; border-top: 1px dashed #e5e7eb; margin: 12px 0; }
.cfc-v2-pay-card__notes { font-size: 13px; color: #374151; }
.cfc-v2-pay-card__notes strong { display: block; margin-bottom: 6px; color: #111; }
.cfc-v2-pay-card__notes ul { list-style: none; margin: 0; padding: 0; }
.cfc-v2-pay-card__notes li { position: relative; padding-left: 14px; margin-bottom: 4px; line-height: 1.4; }
.cfc-v2-pay-card__notes li::before { content: "•"; position: absolute; left: 0; color: var(--cfc-orange); }

.cfc-v2-chip {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    border-radius: 999px;
    padding: 3px 8px;
    margin-left: 6px;
    vertical-align: middle;
}
.cfc-v2-chip--recommended { background: var(--cfc-green-light); color: var(--cfc-green); }
.cfc-v2-chip--bonus { background: #fde6d8; color: var(--cfc-orange-dark); }

.cfc-v2-btn-primary--continue { font-weight: 800; letter-spacing: 0.05em; }

/* =================================================================== */
/* V2 — Delivery state                                                 */
/* =================================================================== */
.cfc-v2-paid-banner {
    display: flex; justify-content: space-between; align-items: center;
    background: var(--cfc-green-light);
    border: 1px solid #cfe6c0;
    border-radius: 10px;
    padding: 12px 14px;
    font-size: 13.5px;
    color: var(--cfc-green-dark);
    margin-bottom: 16px;
}
.cfc-v2-paid-banner strong { font-weight: 800; }
.cfc-v2-paid-banner__change {
    color: var(--cfc-green-dark);
    font-size: 12.5px;
    text-decoration: underline;
}
.cfc-v2-paid-banner__change:hover { color: var(--cfc-orange); }
.cfc-v2-paid-banner__meta { font-size: 12.5px; color: #4b5563; }

.cfc-v2-deliver-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin: 14px 0 10px;
}
@media (max-width: 540px) {
    .cfc-v2-deliver-grid { grid-template-columns: 1fr; }
}
@container cfc-card (max-width: 480px) {
    .cfc-v2-deliver-grid { grid-template-columns: 1fr; }
}
.cfc-v2-deliver-card {
    display: flex; flex-direction: column; align-items: center;
    text-align: center;
    background: #fff;
    border: 1.5px solid #e5e7eb;
    border-radius: 14px;
    padding: 22px 18px;
    cursor: pointer;
    transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
}
.cfc-v2-deliver-card:hover {
    border-color: var(--cfc-orange);
    background: var(--cfc-orange-light);
}
.cfc-v2-deliver-card__icon {
    width: 52px; height: 52px;
    border-radius: 50%;
    background: var(--cfc-orange-light);
    color: var(--cfc-orange);
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 12px;
}
.cfc-v2-deliver-card__title { font-size: 17px; font-weight: 800; color: #111; margin-bottom: 6px; }
.cfc-v2-deliver-card__body { font-size: 13.5px; color: #4b5563; line-height: 1.45; margin-bottom: 12px; }
.cfc-v2-deliver-card__meta { font-size: 12px; font-weight: 700; padding: 4px 10px; border-radius: 999px; }
.cfc-v2-deliver-card__meta--store { background: var(--cfc-orange-light); color: var(--cfc-orange); }
.cfc-v2-deliver-card__meta--post  { background: var(--cfc-green-light); color: var(--cfc-green); }

/* =================================================================== */
/* V2 — Confirmed state                                                */
/* =================================================================== */
.cfc-v2-success-mark { display: flex; justify-content: center; margin-bottom: 14px; }
.cfc-v2-title--center { text-align: center; }
.cfc-v2-lede--center { text-align: center; }
.cfc-v2-paid-banner--confirm { margin-bottom: 18px; }

.cfc-v2-ref-box {
    border: 2px dashed var(--cfc-orange);
    border-radius: 12px;
    text-align: center;
    padding: 18px 14px;
    margin-bottom: 16px;
}
.cfc-v2-ref-box__label {
    display: block;
    font-size: 11.5px;
    letter-spacing: 0.12em;
    font-weight: 800;
    color: #6b7280;
    margin-bottom: 8px;
}
.cfc-v2-ref-box__ref {
    display: block;
    font-size: 36px;
    color: var(--cfc-orange);
    letter-spacing: 0.08em;
    font-weight: 800;
    line-height: 1;
    margin-bottom: 8px;
}
.cfc-v2-ref-box small { font-size: 12.5px; color: #6b7280; }

.cfc-v2-address-card {
    display: flex; gap: 12px;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 14px;
    margin-bottom: 18px;
}
.cfc-v2-address-card__pin { color: var(--cfc-orange); flex-shrink: 0; padding-top: 2px; }
.cfc-v2-address-card strong { display: block; font-size: 14.5px; font-weight: 800; color: #111; margin-bottom: 4px; }
.cfc-v2-address-card span { display: block; font-size: 13.5px; color: #374151; line-height: 1.45; }
.cfc-v2-address-card small { display: block; font-size: 12.5px; color: #6b7280; margin-top: 6px; }

.cfc-v2-section-heading { font-size: 14px; font-weight: 800; color: #111; margin: 8px 0 10px; }
.cfc-v2-steps-grid {
    list-style: none; padding: 0; margin: 0 0 18px;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 14px;
}
@media (max-width: 540px) {
    .cfc-v2-steps-grid { grid-template-columns: 1fr; }
}
@container cfc-card (max-width: 480px) {
    .cfc-v2-steps-grid { grid-template-columns: 1fr; }
}
.cfc-v2-steps-grid li { background: #fff; }
.cfc-v2-steps-grid__num {
    display: inline-flex; align-items: center; justify-content: center;
    width: 26px; height: 26px;
    border-radius: 50%;
    background: var(--cfc-orange);
    color: #fff;
    font-weight: 800; font-size: 13px;
    margin-bottom: 8px;
}
.cfc-v2-steps-grid strong { display: block; font-size: 14px; font-weight: 800; color: #111; margin-bottom: 4px; }
.cfc-v2-steps-grid p { font-size: 12.5px; color: #4b5563; margin: 0; line-height: 1.5; }

/* =================================================================== */
/* V2 — PGA Pro flow                                                   */
/* =================================================================== */

#cfc-pga-wrapper.cfc-pga-wrapper--v2,
.cfc-pga-wrapper--v2 {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left:  calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding: 20px max(16px, calc((100vw - 1480px) / 2));
    box-sizing: border-box;
    background: var(--cfc-gray-50);
    container-type: inline-size;
    container-name: cfc-pga-wrap;
}

/* Step bar */
.cfc-pga-stepbar {
    display: flex;
    gap: 6px;
    padding: 0 4px;
    margin-bottom: 18px;
    border-bottom: 1px solid #e5e7eb;
    overflow-x: auto;
}
.cfc-pga-stepbar__step {
    flex: 0 0 auto;
    padding: 12px 14px 14px;
    font-size: 13px;
    font-weight: 500;
    color: #6b7280;
    white-space: nowrap;
    border-bottom: 2px solid transparent;
    cursor: default;
    transition: color 0.15s, border-color 0.15s;
}
.cfc-pga-stepbar__step.is-done   { color: #4b5563; }
.cfc-pga-stepbar__step.is-active {
    color: var(--cfc-orange);
    border-bottom-color: var(--cfc-orange);
    font-weight: 700;
}

/* Layout — main card + sidebar */
.cfc-pga-layout {
    display: grid;
    grid-template-columns: minmax(0,1fr) 300px;
    gap: 18px;
    align-items: start;
}
@container cfc-pga-wrap (max-width: 940px) {
    .cfc-pga-layout { grid-template-columns: 1fr; }
}
@media (max-width: 940px) {
    .cfc-pga-layout { grid-template-columns: 1fr; }
}

/* Main frame (replaces the old narrow card) */
.cfc-pga-frame--v2 {
    position: relative;
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04), 0 8px 24px rgba(0,0,0,0.04);
    container-type: inline-size;
    container-name: cfc-pga-card;
}
.cfc-pga-frame--v2 .cfc-pga-screen { display: none; }
.cfc-pga-frame--v2 .cfc-pga-screen.cfc-pga-screen--active { display: block; }

.cfc-pga-screen-body { padding: 28px 32px 32px; }
.cfc-pga-screen-body--center { text-align: center; }
@container cfc-pga-card (max-width: 540px) {
    .cfc-pga-screen-body { padding: 22px 18px 26px; }
}

/* V2 Header strip — green band atop every authenticated screen */
.cfc-pga-header-v2 {
    background: var(--cfc-green);
    color: #fff;
    padding: 14px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
}
.cfc-pga-header-v2__left, .cfc-pga-header-v2__right {
    display: flex; align-items: center; gap: 12px; min-width: 0;
}
.cfc-pga-header-v2__pill {
    background: rgba(255,255,255,0.14);
    color: #fff;
    border: 1px solid rgba(255,255,255,0.25);
    border-radius: 999px;
    padding: 4px 10px;
    font-size: 12px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}
.cfc-pga-header-v2__name { font-size: 14px; opacity: 0.95; }
.cfc-pga-header-v2__rate {
    background: var(--cfc-orange);
    color: #fff;
    border-radius: 999px;
    padding: 5px 12px;
    font-size: 12.5px;
    font-weight: 700;
    white-space: nowrap;
}
.cfc-pga-header-v2__batches {
    background: rgba(255,255,255,0.0);
    color: #fff;
    border: 1px solid rgba(255,255,255,0.4);
    border-radius: 6px;
    padding: 6px 12px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}
.cfc-pga-header-v2__batches:hover { background: rgba(255,255,255,0.12); }

/* Login hero — green band on the login screen itself */
.cfc-pga-login-hero {
    background: var(--cfc-green);
    color: #fff;
    padding: 36px 32px 32px;
    text-align: center;
    border-bottom-left-radius: 24px;
    border-bottom-right-radius: 24px;
}
.cfc-pga-login-hero__pill {
    background: rgba(255,255,255,0.14);
    border: 1px solid rgba(255,255,255,0.3);
    border-radius: 999px;
    padding: 5px 14px;
    font-size: 13px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 14px;
}
.cfc-pga-login-hero h2 {
    color: #fff;
    font-size: 28px;
    font-weight: 800;
    margin: 0 0 8px;
}
.cfc-pga-login-hero p { color: rgba(255,255,255,0.85); font-size: 14px; margin: 0; line-height: 1.5; }

.cfc-pga-login-form { padding: 28px 32px 24px; max-width: 480px; margin: 0 auto; }
.cfc-pga-login-form__submit {
    width: 100%;
    background: var(--cfc-green);
    color: #fff;
    border: 0;
    border-radius: 10px;
    padding: 14px;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 0.05em;
    cursor: pointer;
    margin-top: 6px;
}
.cfc-pga-login-form__submit:hover { background: var(--cfc-green-dark); }
.cfc-pga-login-form__lost { text-align: center; margin: 12px 0 0; font-size: 13px; }
.cfc-pga-login-form__lost a { color: var(--cfc-orange); text-decoration: underline; text-underline-offset: 2px; }
.cfc-pga-login-form__rule { border: 0; border-top: 1px solid #e5e7eb; margin: 24px auto 18px; max-width: 480px; }
.cfc-pga-login-form__apply { text-align: center; font-size: 13.5px; color: #4b5563; margin: 0 0 28px; padding: 0 32px; }
.cfc-pga-login-form__apply a { color: var(--cfc-orange); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }

/* Trade-in Value (screen 3) */
.cfc-pga-rate-applied {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: var(--cfc-orange);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    border-radius: 999px;
    padding: 6px 14px;
    margin-bottom: 22px;
}
.cfc-pga-trade-price {
    font-size: 96px;
    font-weight: 800;
    color: #111;
    line-height: 1;
    letter-spacing: -0.02em;
    margin: 0 0 12px;
}
@container cfc-pga-card (max-width: 540px) {
    .cfc-pga-trade-price { font-size: 64px; }
}
.cfc-pga-vs-standard { font-size: 14px; color: #4b5563; margin: 0 0 14px; }
.cfc-pga-vs-standard__bonus { color: var(--cfc-green); font-weight: 700; }
.cfc-pga-club-sub { font-size: 14px; color: #4b5563; margin: 0 0 8px; }
.cfc-pga-club-sub strong { color: #111; }
.cfc-pga-divider { border: 0; border-top: 1px solid #e5e7eb; margin: 18px auto; max-width: 80%; }

.cfc-pga-save-later {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    width: 100%;
    background: #fff;
    color: var(--cfc-orange);
    border: 1.5px solid var(--cfc-orange);
    border-radius: 10px;
    padding: 12px;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.05em;
    cursor: pointer;
    margin-top: 10px;
    transition: background 0.15s;
}
.cfc-pga-save-later:hover { background: var(--cfc-orange-light); }

/* Valuing screen (4-step list + newest in shop) */
.cfc-pga-valuing-steps { max-width: 580px; margin: 18px auto 24px; text-align: left; }

.cfc-pga-newest { max-width: 720px; margin: 6px auto 0; }
.cfc-pga-newest__rule { border: 0; border-top: 1px dashed #cbd5e1; margin: 12px 0 14px; }
.cfc-pga-newest__heading {
    font-size: 11.5px;
    font-weight: 800;
    letter-spacing: 0.1em;
    color: #6b7280;
    text-align: center;
    margin: 0 0 12px;
}
.cfc-pga-newest__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}
@container cfc-pga-card (max-width: 600px) {
    .cfc-pga-newest__grid { grid-template-columns: 1fr; }
}
.cfc-pga-newest__card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 12px;
    text-align: left;
    font-size: 12.5px;
    color: #111;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.cfc-pga-newest__pill {
    align-self: flex-start;
    background: linear-gradient(180deg, var(--cfc-orange-light) 0%, #fff 100%);
    color: var(--cfc-orange);
    border-radius: 6px;
    padding: 8px 16px;
    font-size: 16px;
    font-weight: 800;
    letter-spacing: 0.06em;
    width: 100%;
    text-align: center;
    margin-bottom: 6px;
}
.cfc-pga-newest__card strong { font-weight: 800; font-size: 13px; color: #111; }
.cfc-pga-newest__card .cfc-pga-newest__price {
    color: var(--cfc-green);
    font-weight: 800;
    font-size: 14px;
    margin-top: 4px;
}
.cfc-pga-newest__hint { text-align: center; font-size: 12px; color: #6b7280; margin: 10px 0 0; }

/* Sidebar — trade-in summary */
.cfc-pga-aside { position: sticky; top: 16px; }
.cfc-pga-aside--hidden { display: none; }
@container cfc-pga-wrap (max-width: 940px) {
    .cfc-pga-aside { position: static; }
}
.cfc-pga-aside__card {
    background: #fff;
    border-radius: 14px;
    padding: 18px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04), 0 8px 20px rgba(0,0,0,0.05);
}
.cfc-pga-aside__head {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 12px;
}
.cfc-pga-aside__head span:first-child {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.1em;
    color: #6b7280;
}
.cfc-pga-aside__count {
    background: #f3f4f6;
    color: #374151;
    font-size: 11.5px;
    font-weight: 600;
    border-radius: 999px;
    padding: 3px 9px;
}
.cfc-pga-aside__list { list-style: none; margin: 0 0 14px; padding: 0; }
.cfc-pga-aside__empty {
    font-size: 12.5px;
    color: #9ca3af;
    background: #f9fafb;
    border-radius: 8px;
    padding: 12px;
    text-align: center;
}
.cfc-pga-aside-item {
    display: grid;
    grid-template-columns: 28px 1fr auto;
    align-items: center;
    gap: 10px;
    padding: 7px 0;
    font-size: 13px;
}
.cfc-pga-aside-item + .cfc-pga-aside-item { border-top: 1px solid #f3f4f6; }
.cfc-pga-aside-item__chip {
    width: 28px; height: 28px;
    border-radius: 6px;
    background: #fde6d8;
    color: #111;
    font-size: 10px;
    font-weight: 800;
    display: flex; align-items: center; justify-content: center;
}
.cfc-pga-aside-item__name { color: #111; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cfc-pga-aside-item__price { color: #111; font-weight: 700; font-size: 13px; }
.cfc-pga-aside__total {
    display: flex; align-items: baseline; justify-content: space-between;
    border-top: 1px solid #e5e7eb;
    padding-top: 12px;
    margin-bottom: 12px;
}
.cfc-pga-aside__total span { font-size: 11px; font-weight: 800; letter-spacing: 0.1em; color: #6b7280; }
.cfc-pga-aside__total strong { font-size: 22px; font-weight: 800; color: var(--cfc-green); }
.cfc-pga-aside__add { margin: 6px 0 0; padding: 10px; font-size: 13px; }
.cfc-pga-aside__note {
    font-size: 11.5px;
    color: #6b7280;
    text-align: center;
    margin: 10px 0 0;
}

/* Notices + small fields helper */
.cfc-pga-notice {
    background: var(--cfc-orange-light);
    border: 1px solid #f1d99b;
    border-radius: 10px;
    padding: 12px 14px;
    font-size: 13px;
    color: #6b4106;
    margin: 4px 0 12px;
    line-height: 1.5;
}
.cfc-pga-fields-note { font-size: 12.5px; color: #6b7280; margin: 0 0 14px; }

.cfc-pga-secondary-btn {
    width: 100%;
    background: #fff;
    color: #111;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    padding: 12px;
    font-size: 13.5px;
    font-weight: 700;
    cursor: pointer;
    margin-top: 8px;
}
.cfc-pga-secondary-btn:hover { background: #f9fafb; }

.cfc-pga-batches-header {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 14px;
}

/* =================================================================== */
/* V2 PGA — Record / Send / Confirmed (screens 5-8)                    */
/* =================================================================== */

/* Big green confirmed-total banner used on screens 5 + 6 */
.cfc-pga-total-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    background: var(--cfc-green-light);
    border: 1px solid #cfe6c0;
    border-radius: 12px;
    padding: 14px 20px;
    margin-bottom: 20px;
}
.cfc-pga-total-banner__label {
    display: block;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    color: var(--cfc-green-dark);
}
.cfc-pga-total-banner__sub {
    display: block;
    font-size: 13.5px;
    color: var(--cfc-green-dark);
    margin-top: 4px;
}
.cfc-pga-total-banner__amount {
    font-size: 28px;
    font-weight: 800;
    color: var(--cfc-green);
}

/* Green positive notice (screen 5) */
.cfc-pga-notice--positive {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    background: var(--cfc-green-light);
    border: 1px solid #cfe6c0;
    border-radius: 12px;
    padding: 14px 16px;
    color: var(--cfc-green-dark);
    font-size: 13.5px;
    line-height: 1.5;
    margin: 6px 0 18px;
}
.cfc-pga-notice--positive .cfc-pga-notice__icon {
    flex-shrink: 0;
    color: var(--cfc-green);
    margin-top: 1px;
}
.cfc-pga-notice--positive strong { font-weight: 800; }

/* Stacked send-method cards (screen 6) */
.cfc-pga-send-cards {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin: 10px 0 0;
}
.cfc-pga-send-card {
    position: relative;
    display: grid;
    grid-template-columns: auto 1fr 20px;
    grid-template-areas:
        "icon title chev"
        "icon body  chev";
    gap: 4px 16px;
    align-items: center;
    background: #fff;
    border: 1.5px solid #e5e7eb;
    border-radius: 14px;
    padding: 20px 22px;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
}
.cfc-pga-send-card:hover {
    border-color: var(--cfc-orange);
    background: var(--cfc-orange-light);
}
.cfc-pga-send-card__icon {
    grid-area: icon;
    width: 48px; height: 48px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
}
.cfc-pga-send-card__icon--batch { background: var(--cfc-green-light); color: var(--cfc-green); }
.cfc-pga-send-card__icon--post  { background: var(--cfc-orange-light); color: var(--cfc-orange); }
.cfc-pga-send-card__title {
    grid-area: title;
    font-size: 16px;
    font-weight: 800;
    color: #111;
    align-self: end;
}
.cfc-pga-send-card__body {
    grid-area: body;
    font-size: 13.5px;
    color: #4b5563;
    line-height: 1.45;
    align-self: start;
}
.cfc-pga-send-card__chev {
    grid-area: chev;
    color: var(--cfc-green);
    font-size: 22px;
    font-weight: 800;
    text-align: center;
}
.cfc-pga-send-card__chev--post { color: var(--cfc-orange); }

@container cfc-pga-card (max-width: 540px) {
    .cfc-pga-send-card {
        grid-template-columns: auto 1fr;
        grid-template-areas:
            "icon title"
            "body body"
            "chev chev";
        text-align: left;
    }
    .cfc-pga-send-card__chev { text-align: right; }
}

/* Trade-in details card (screens 7 + 8) */
.cfc-v2-success-mark--orange { color: var(--cfc-orange); }
.cfc-pga-details-card {
    background: #f6f7f8;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 18px 22px;
    text-align: left;
    margin: 6px 0 18px;
}
.cfc-pga-details-card__label {
    display: block;
    font-size: 11.5px;
    font-weight: 800;
    letter-spacing: 0.1em;
    color: #6b7280;
    margin-bottom: 10px;
}
.cfc-pga-details-card__grid {
    display: grid;
    grid-template-columns: 110px 1fr;
    row-gap: 6px;
    column-gap: 16px;
    font-size: 14px;
}
.cfc-pga-details-card__grid dt {
    color: #6b7280;
    font-weight: 500;
    margin: 0;
}
.cfc-pga-details-card__grid dd {
    color: #111;
    font-weight: 800;
    margin: 0;
}
.cfc-pga-details-card__money { color: var(--cfc-green) !important; }
.cfc-pga-details-card__money small { font-size: 12.5px; font-weight: 700; }
.cfc-pga-details-card__ref { letter-spacing: 0.04em; }
.cfc-pga-details-emoji { font-style: normal; }

@container cfc-pga-card (max-width: 480px) {
    .cfc-pga-details-card__grid { grid-template-columns: 1fr; row-gap: 2px; }
    .cfc-pga-details-card__grid dt { margin-top: 8px; }
    .cfc-pga-details-card__grid dt:first-of-type { margin-top: 0; }
}

.cfc-v2-btn-primary--green {
    background: var(--cfc-green);
    color: #fff;
}
.cfc-v2-btn-primary--green:hover { background: var(--cfc-green-dark); }

.cfc-pga-dashboard-link {
    text-align: center;
    margin: 14px 0 0;
    font-size: 13.5px;
}
.cfc-pga-dashboard-link a {
    color: var(--cfc-orange);
    text-decoration: underline;
    text-underline-offset: 2px;
    font-weight: 600;
}
.cfc-pga-dashboard-link a:hover { color: var(--cfc-orange-dark); }

/* =================================================================== */
/* Toasts                                                              */
/* =================================================================== */
#cfc-toast-stack {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 99999;
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-width: 360px;
    pointer-events: none;
}
@media (max-width: 540px) {
    #cfc-toast-stack { left: 16px; right: 16px; bottom: 16px; max-width: none; }
}
.cfc-toast {
    pointer-events: auto;
    padding: 12px 16px;
    border-radius: 10px;
    font-size: 13.5px;
    font-weight: 600;
    color: #fff;
    box-shadow: 0 6px 24px rgba(0,0,0,0.15);
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.22s ease, transform 0.22s ease;
    line-height: 1.4;
}
.cfc-toast.is-shown { opacity: 1; transform: translateY(0); }
.cfc-toast.is-leaving { opacity: 0; transform: translateY(4px); }
.cfc-toast--error   { background: #b91c1c; }
.cfc-toast--success { background: var(--cfc-green); }

/* =====================================================================
   V2 — PAYMENT METHOD + REDESIGNED DELIVERY / CONFIRMED
   ===================================================================== */

/* Back nav link */
.cfc-v2-back-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: none;
    border: 0;
    padding: 0;
    color: #4b5563;
    font-size: 14px;
    cursor: pointer;
    margin: 0 0 18px;
}
.cfc-v2-back-link:hover { color: #111; }

/* Accepted banner (top of payment state) */
.cfc-v2-accepted-banner {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 14px;
    align-items: center;
    background: #EAF5E1;
    border: 1px solid #C2DEB0;
    border-radius: 10px;
    padding: 14px 18px;
    margin: 0 0 28px;
}
.cfc-v2-accepted-banner__icon {
    width: 30px; height: 30px;
    border-radius: 50%;
    background: var(--cfc-green);
    color: #fff;
    display: grid;
    place-items: center;
    font-size: 18px;
    font-weight: 900;
    line-height: 1;
}
.cfc-v2-accepted-banner strong {
    display: block;
    color: var(--cfc-green-dark);
    font-size: 17px;
    font-weight: 800;
}
.cfc-v2-accepted-banner > div > span {
    display: block;
    color: #3F6B27;
    font-size: 13.5px;
    margin-top: 2px;
}

/* Payment radio cards */
.cfc-v2-pay-options { display: grid; gap: 14px; margin: 0 0 18px; }
.cfc-v2-pay-card {
    display: block;
    background: #fff;
    border: 2px solid #e5e7eb;
    border-radius: 12px;
    padding: 18px 22px;
    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
    position: relative;
}
.cfc-v2-pay-card.is-active {
    border-color: var(--cfc-orange);
    background: var(--cfc-orange-light);
    box-shadow: 0 0 0 3px rgba(232,73,29,0.10);
}
.cfc-v2-pay-card input[type="radio"] {
    position: absolute;
    top: 22px; left: 22px;
    width: 18px; height: 18px;
    accent-color: var(--cfc-orange);
}
.cfc-v2-pay-card__head {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 14px;
    padding-left: 32px;
}
.cfc-v2-pay-card__head > div:first-child {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.cfc-v2-pay-card__head strong {
    font-size: 17px;
    font-weight: 700;
    color: #111;
}
.cfc-v2-pay-card__amount { text-align: right; }
.cfc-v2-pay-card__amount strong {
    display: block;
    font-size: 24px;
    font-weight: 800;
    color: #111;
    line-height: 1.1;
}
.cfc-v2-pay-card__amount span {
    display: block;
    font-size: 12px;
    color: #6b7280;
    margin-top: 2px;
}
.cfc-v2-pay-card__body {
    margin: 8px 0 0 32px;
    font-size: 14px;
    color: #4b5563;
    line-height: 1.5;
}
.cfc-v2-pay-card__rule {
    border: none;
    border-top: 1px dashed #d1d5db;
    margin: 14px 0 12px 32px;
}
.cfc-v2-pay-card__notes {
    margin-left: 32px;
    font-size: 13.5px;
    color: #4b5563;
}
.cfc-v2-pay-card__notes strong { color: #111; }
.cfc-v2-pay-card__notes ul {
    list-style: none;
    margin: 6px 0 0;
    padding: 0;
}
.cfc-v2-pay-card__notes li {
    position: relative;
    padding-left: 14px;
    margin-bottom: 2px;
}
.cfc-v2-pay-card__notes li::before {
    content: "•";
    position: absolute;
    left: 0;
    color: #9ca3af;
}

/* Chips */
.cfc-v2-chip {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 999px;
    letter-spacing: 0.02em;
}
.cfc-v2-chip--recommended {
    background: #DEF0CC;
    color: #2D5A1B;
    border: 1px solid #BFD6AE;
}
.cfc-v2-chip--bonus {
    background: #FCDDC9;
    color: #8A3A14;
}

/* Paid-by banner (delivery + confirmed) */
.cfc-v2-paid-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    background: #EAF5E1;
    border: 1px solid #C2DEB0;
    border-radius: 8px;
    padding: 10px 16px;
    margin: 0 0 22px;
    color: #2D5A1B;
    font-size: 14px;
}
.cfc-v2-paid-banner strong { color: #1A3D10; }
.cfc-v2-paid-banner__change {
    color: #2D5A1B;
    text-decoration: underline;
    text-underline-offset: 3px;
    font-size: 13.5px;
}
.cfc-v2-paid-banner__change:hover { color: #1A3D10; }
.cfc-v2-paid-banner__meta {
    font-size: 13px;
    color: #3F6B27;
}
.cfc-v2-paid-banner--confirm { margin-bottom: 20px; }

/* Delivery cards (V2) */
.cfc-v2-deliver-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin: 0 0 18px;
}
@media (max-width: 640px) {
    .cfc-v2-deliver-grid { grid-template-columns: 1fr; }
}
.cfc-v2-deliver-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 26px 18px 22px;
    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
}
.cfc-v2-deliver-card:hover, .cfc-v2-deliver-card:focus-visible {
    border-color: var(--cfc-orange);
    box-shadow: 0 4px 14px rgba(232,73,29,0.08);
}
.cfc-v2-deliver-card__icon {
    width: 56px; height: 56px;
    border-radius: 50%;
    background: var(--cfc-orange-light);
    color: var(--cfc-orange);
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 14px;
}
.cfc-v2-deliver-card__title {
    font-size: 17px;
    font-weight: 700;
    color: #111;
    margin-bottom: 8px;
    display: block;
}
.cfc-v2-deliver-card__body {
    font-size: 14px;
    color: #4b5563;
    line-height: 1.5;
    margin-bottom: 16px;
    display: block;
}
.cfc-v2-deliver-card__meta {
    display: inline-block;
    font-size: 13px;
    font-weight: 700;
    padding: 6px 14px;
    border-radius: 999px;
}
.cfc-v2-deliver-card__meta--store {
    background: var(--cfc-orange-light);
    color: var(--cfc-orange-dark);
}
.cfc-v2-deliver-card__meta--post {
    background: #DEF0CC;
    color: #2D5A1B;
}

/* Success check (large) */
.cfc-v2-success-mark { text-align: center; margin: 8px 0 18px; }

/* Reference box (dashed orange) */
.cfc-v2-ref-box {
    border: 2px dashed var(--cfc-orange);
    background: var(--cfc-orange-light);
    border-radius: 14px;
    padding: 22px 18px 18px;
    text-align: center;
    margin: 0 0 22px;
}
.cfc-v2-ref-box__label {
    display: block;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.10em;
    color: #6b7280;
    text-transform: uppercase;
    margin-bottom: 8px;
}
.cfc-v2-ref-box__ref {
    display: block;
    font-size: 44px;
    font-weight: 800;
    color: var(--cfc-orange);
    letter-spacing: 0.15em;
    line-height: 1.05;
    margin-bottom: 8px;
    font-feature-settings: "tnum";
}
@media (max-width: 480px) {
    .cfc-v2-ref-box__ref { font-size: 32px; }
}
.cfc-v2-ref-box small {
    font-size: 13px;
    color: #4b5563;
}

/* Address card */
.cfc-v2-address-card {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 14px;
    align-items: start;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 16px 18px;
    margin: 0 0 26px;
    background: #fff;
}
.cfc-v2-address-card__pin {
    color: var(--cfc-orange);
    margin-top: 2px;
}
.cfc-v2-address-card > div {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: 14px;
    color: #4b5563;
    line-height: 1.45;
}
.cfc-v2-address-card strong { color: #111; font-size: 15px; }
.cfc-v2-address-card small { color: #6b7280; font-size: 12.5px; margin-top: 4px; }

/* Section heading inside confirmed */
.cfc-v2-section-heading {
    font-size: 17px;
    font-weight: 700;
    color: #111;
    margin: 12px 0 14px;
}

/* Steps grid (3-up "What happens next") */
.cfc-v2-steps-grid {
    list-style: none;
    margin: 0 0 22px;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}
@media (max-width: 720px) {
    .cfc-v2-steps-grid { grid-template-columns: 1fr; }
}
.cfc-v2-steps-grid li {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.cfc-v2-steps-grid__num {
    width: 32px; height: 32px;
    border-radius: 50%;
    background: var(--cfc-orange);
    color: #fff;
    font-weight: 800;
    font-size: 14px;
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 4px;
}
.cfc-v2-steps-grid li strong {
    font-size: 15px;
    color: #111;
    font-weight: 700;
}
.cfc-v2-steps-grid li p {
    font-size: 13.5px;
    color: #4b5563;
    line-height: 1.5;
    margin: 0;
}


/* Required marker + small field hint (V2 builder) */
.cfc-v2-required { color: var(--cfc-orange); margin-left: 2px; }
.cfc-v2-field-hint {
    display: block;
    font-size: 12.5px;
    color: #6b7280;
    margin-top: 6px;
    line-height: 1.45;
}
.cfc-v2-irons-followup {
    /* Subtle entry — no full animation, just enough to draw attention. */
    background: var(--cfc-orange-light);
    border: 1px solid #FBD7C5;
    border-radius: 8px;
    padding: 12px 14px;
}
.cfc-v2-irons-followup .cfc-v2-section-label { margin-bottom: 6px; }

/* =====================================================================
   V2 — DECLINED STATE (brand-aligned)
   ===================================================================== */

.cfc-v2-decline-prompt {
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.06em;
    color: #6b7280;
    text-transform: uppercase;
    text-align: center;
    margin: 18px 0 12px;
}

.cfc-v2-decline-reasons {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin: 0 0 22px;
}

/* Brand-orange pills replacing the green legacy ones. */
.cfc-v2-reason-pill {
    background: #fff;
    border: 1.5px solid #e5e7eb;
    border-radius: 6px;
    padding: 10px 20px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #4b5563;
    cursor: pointer;
    transition: border-color 0.15s, color 0.15s, background 0.15s, box-shadow 0.15s;
    font-family: inherit;
    min-height: 40px;
}
.cfc-v2-reason-pill:hover,
.cfc-v2-reason-pill:focus-visible {
    border-color: var(--cfc-orange);
    color: var(--cfc-orange);
}
/* The legacy decline-handler toggles cfc-reason-pill--selected — keep that hook. */
.cfc-v2-reason-pill.cfc-reason-pill--selected,
.cfc-v2-reason-pill.is-selected {
    background: var(--cfc-orange-light);
    border-color: var(--cfc-orange);
    color: var(--cfc-orange-dark);
    box-shadow: 0 0 0 3px rgba(232,73,29,0.12);
}

/* Declined state container — centered V2 layout. */
#cfc-state-declined {
    text-align: center;
    padding: 14px 0 4px;
}

/* =====================================================================
   MY CLUB QUOTES — Bundle card (V2)
   ===================================================================== */

.cfc-bundle-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 18px 20px;
    margin: 0 0 16px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}

.cfc-bundle-card__head {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 14px;
    align-items: start;
    margin-bottom: 14px;
}

.cfc-bundle-card__title {
    font-size: 17px;
    font-weight: 700;
    color: #111;
    line-height: 1.3;
    margin: 0 0 4px;
}

.cfc-bundle-card__sub {
    font-size: 13.5px;
    color: var(--cfc-gray-600);
    margin: 0;
    line-height: 1.45;
}
.cfc-bundle-card__sub strong { color: #B26A00; font-weight: 700; }

.cfc-bundle-card__badge-wrap { justify-self: end; }

.cfc-bundle-card__items {
    list-style: none;
    margin: 0 0 14px;
    padding: 14px 16px;
    background: #f7f8f6;
    border-radius: 8px;
}

.cfc-bundle-card__item {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
    align-items: baseline;
    padding: 7px 0;
    border-bottom: 1px dashed #d1d5db;
}
.cfc-bundle-card__item:last-child { border-bottom: 0; }

.cfc-bundle-card__item-name {
    font-size: 14px;
    color: #111;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cfc-bundle-card__item-note {
    grid-column: 1 / -1;
    font-size: 12px;
    color: #9a6314;
    background: var(--cfc-amber-light);
    padding: 2px 8px;
    border-radius: 999px;
    width: max-content;
    margin: 2px 0 2px;
}

.cfc-bundle-card__item-price {
    font-size: 14px;
    font-weight: 700;
    color: #111;
    grid-column: 2;
}

.cfc-bundle-card__foot {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 14px;
    align-items: center;
    padding-top: 10px;
    border-top: 1px solid #e5e7eb;
}

.cfc-bundle-card__total span {
    display: block;
    font-size: 12.5px;
    color: var(--cfc-gray-600);
    line-height: 1.2;
}

.cfc-bundle-card__total strong {
    display: block;
    font-size: 28px;
    color: var(--cfc-orange);
    font-weight: 800;
    line-height: 1.1;
    margin-top: 2px;
}

.cfc-bundle-card__action {
    display: inline-block;
    padding: 12px 22px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border-radius: 6px;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
    border: 2px solid transparent;
    text-align: center;
    white-space: nowrap;
}
.cfc-bundle-card__action--primary {
    background: var(--cfc-orange);
    color: #fff;
    border-color: var(--cfc-orange);
}
.cfc-bundle-card__action--primary:hover {
    background: var(--cfc-orange-dark);
    color: #fff;
    border-color: var(--cfc-orange-dark);
}
.cfc-bundle-card__action--outline {
    background: transparent;
    color: var(--cfc-orange);
    border-color: var(--cfc-orange);
}

@media (max-width: 540px) {
    .cfc-bundle-card__head { grid-template-columns: 1fr; }
    .cfc-bundle-card__badge-wrap { justify-self: start; }
    .cfc-bundle-card__foot { grid-template-columns: 1fr; align-items: stretch; }
    .cfc-bundle-card__action { width: 100%; }
}

/* ============================================================
   Save for Later button
   ============================================================ */
.cfc-v2-btn-save-later,
.cfc-v2-btn-decline {
    display: block;
    width: 100%;
    background: transparent;
    color: #6b7280;
    border: 1.5px solid #d1d5db;
    border-radius: 10px;
    padding: 13px 20px;
    font-size: 14px;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: border-color 0.15s, color 0.15s;
    margin: 10px 0 0;
    text-align: center;
}
.cfc-v2-btn-save-later:hover,
.cfc-v2-btn-save-later:focus-visible,
.cfc-v2-btn-decline:hover,
.cfc-v2-btn-decline:focus-visible {
    border-color: #6b7280;
    color: #111;
    outline: none;
}
.cfc-v2-saved-icon { text-align: center; margin: 0 0 18px; }

/* ============================================================
   Mobile optimisations (≤ 640px)
   90% of leads are mobile — layout and tap targets tuned for it
   ============================================================ */
@media (max-width: 640px) {
    /* Move the quote sidebar above the main card on small screens.
       align-items:stretch is REQUIRED — the base rule sets align-items:start,
       which in a flex column collapses each card to its min-content width
       (text then wraps one character per line). */
    .cfc-v2-layout { display: flex; flex-direction: column; align-items: stretch; gap: 16px; }
    .cfc-v2-quote-aside { order: -1; }

    /* Compact sidebar on mobile */
    .cfc-v2-quote-card { padding: 12px 14px; }
    .cfc-v2-quote-total strong { font-size: 18px; }

    /* Bigger tap targets for remove buttons */
    .cfc-v2-quote-item__remove { padding: 6px 10px; font-size: 18px; }

    /* Full-width primary + save-later buttons */
    .cfc-v2-btn-primary,
    .cfc-v2-btn-save-later,
    .cfc-v2-btn-decline { font-size: 15px; padding: 15px 20px; }

    /* Photo slots — larger on mobile */
    .cfc-v2-photo-slot { min-height: 72px; min-width: 72px; }

    /* Push heading up on result screens */
    .cfc-v2-title { font-size: 24px; }
    .cfc-v2-lede  { font-size: 14px; }

    /* Bundle items stack tighter */
    .cfc-v2-bundle-item { gap: 10px; }

    /* Condition stops easier to tap */
    .cfc-v2-condition-stop { min-width: 36px; min-height: 36px; }

    /* Condition slider: keep a tidy dot but expand the tap target invisibly.
       (Bloating the dot to 36px made giant blobs that overlapped the labels.) */
    .cfc-v2-slider { padding-top: 16px; }
    .cfc-v2-slider-stop {
        width: 20px; height: 20px;
        min-width: 0; min-height: 0;
        position: relative;
    }
    .cfc-v2-slider-stop::after {
        content: "";
        position: absolute;
        top: 50%; left: 50%;
        width: 40px; height: 40px;
        transform: translate(-50%, -50%);
    }
    .cfc-v2-slider-stops { top: 5px; }
    .cfc-v2-slider-labels { margin-top: 8px; }
    .cfc-v2-slider-labels span { font-size: 11px; line-height: 1.3; }

}
@container cfc-wrap (max-width: 640px) {
    .cfc-v2-layout { display: flex; flex-direction: column; align-items: stretch; gap: 16px; }
    .cfc-v2-quote-aside { order: -1; }
}
