/* ── Reset & base ───────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
    --navy:   #1A2744;
    --navy-d: #0A1628;
    --gold:   #C9913A;
    --gold-h: #b07c2a;
    --white:  #FFFFFF;
    --off:    #F8F7F4;
    --gray:   #F0EBE1;
    --text:   #1C1915;
    --muted:  #5a5a5a;
    --font-h: 'Josefin Sans', sans-serif;
    --font-b: 'Josefin Sans', sans-serif;
    --radius: 4px;
    --max-w:  1200px;
    --narrow: 820px;
    --trans:  0.25s ease;
}

html { scroll-behavior: smooth; }

body {
    font-family: var(--font-b);
    font-size: 1rem;
    line-height: 1.7;
    color: var(--text);
    background: var(--white);
    -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }

h1,h2,h3,h4,h5,h6 {
    font-family: var(--font-h);
    font-weight: 700;
    line-height: 1.15;
    color: var(--navy);
}

/* ── Container ──────────────────────────────────────────── */
.ccp-container          { max-width: var(--max-w); margin: 0 auto; padding: 0 24px; }
.ccp-container--narrow  { max-width: var(--narrow); margin: 0 auto; padding: 0 24px; }

/* ── Buttons ────────────────────────────────────────────── */
.ccp-btn {
    display: inline-block;
    font-family: var(--font-h);
    font-weight: 700;
    font-size: 0.9rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 14px 32px;
    border-radius: var(--radius);
    cursor: pointer;
    transition: background var(--trans), transform var(--trans);
    white-space: nowrap;
    border: none;
    text-align: center;
}
.ccp-btn:hover { transform: translateY(-1px); }
.ccp-btn--gold    { background: var(--gold); color: var(--white); }
.ccp-btn--gold:hover { background: var(--gold-h); }
.ccp-btn--primary { background: var(--navy); color: var(--white); }
.ccp-btn--primary:hover { background: var(--navy-d); }
.ccp-btn--lg  { padding: 18px 48px; font-size: 1rem; }
.ccp-btn--sm  { padding: 10px 20px; font-size: 0.8rem; }

/* ── Stars ──────────────────────────────────────────────── */
.ccp-stars { display: inline-flex; gap: 1px; }
.ccp-stars .star.filled { color: #F4A800; }
.ccp-stars .star.half   { color: #F4A800; opacity: 0.6; }
.ccp-stars .star.empty  { color: #ccc; }
.ccp-stars--sm { font-size: 0.85rem; }

/* ── Prices ─────────────────────────────────────────────── */
.ccp-price--old     { text-decoration: line-through; opacity: 0.55; margin-right: 6px; }
.ccp-price--current { font-weight: 700; font-size: 1.4rem; color: var(--white); }
.ccp-price--dark    { font-weight: 700; color: var(--navy); }

/* ── Header ─────────────────────────────────────────────── */
.ccp-header {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 100;
    transition: background var(--trans), box-shadow var(--trans);
    padding: 0;
}
.ccp-header.scrolled {
    background: var(--navy-d);
    box-shadow: 0 2px 16px rgba(0,0,0,0.3);
}
.ccp-header__inner {
    max-width: var(--max-w);
    margin: 0 auto;
    padding: 0 24px;
    height: 68px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.ccp-header__logo img { height: 36px; width: auto; }
.ccp-header__site-name {
    font-family: var(--font-h);
    font-weight: 700;
    font-size: 1.1rem;
    color: var(--white);
    letter-spacing: 0.05em;
    text-transform: uppercase;
}
.ccp-header__nav a {
    font-family: var(--font-h);
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.85);
    transition: color var(--trans);
}
.ccp-header__nav a:hover { color: var(--gold); }
.ccp-header__cart {
    position: relative;
    color: rgba(255,255,255,0.85);
    transition: color var(--trans);
    display: flex;
    align-items: center;
}
.ccp-header__cart:hover { color: var(--gold); }
.ccp-cart-badge {
    position: absolute;
    top: -8px; right: -8px;
    background: var(--gold);
    color: var(--white);
    font-size: 0.65rem;
    font-weight: 700;
    width: 18px; height: 18px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ── Footer ─────────────────────────────────────────────── */
.ccp-footer {
    background: var(--navy-d);
    color: rgba(255,255,255,0.75);
    padding-top: 64px;
}
.ccp-footer__inner {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 48px;
    padding-bottom: 48px;
}
.ccp-footer__brand { display: flex; flex-direction: column; gap: 16px; }
.ccp-footer__brand svg { max-width: 100%; }
.ccp-footer__vm { display: flex; flex-direction: column; gap: 10px; }
.ccp-footer__vm p { font-size: 0.82rem; line-height: 1.6; color: rgba(255,255,255,0.65); }
.ccp-footer__vm p span {
    display: block;
    font-family: var(--font-h);
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 3px;
}
.ccp-footer__contact { font-size: 0.85rem; }
.ccp-footer__contact a { color: var(--gold); }
.ccp-footer__cols { display: grid; grid-template-columns: 2fr 1fr; gap: 24px; }
.ccp-footer__col--courses { min-width: 0; }
.ccp-footer__courses-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
.ccp-footer__col h4 {
    font-family: var(--font-h);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--white);
    margin-bottom: 16px;
}
.ccp-footer__col ul { display: flex; flex-direction: column; gap: 10px; }
.ccp-footer__col a { font-size: 0.9rem; transition: color var(--trans); }
.ccp-footer__col a:hover { color: var(--gold); }
.ccp-footer__bottom {
    border-top: 1px solid rgba(255,255,255,0.08);
    padding: 20px 24px;
    font-size: 0.8rem;
    color: rgba(255,255,255,0.4);
}

/* ── Generic page hero banner ───────────────────────────── */
.ccp-page-hero {
    background: var(--navy-d);
    padding: 100px 0 48px;
    margin-bottom: 0;
}
.ccp-page-hero__title {
    font-family: var(--font-h);
    font-size: clamp(1.8rem, 4vw, 3rem);
    color: var(--white);
    font-weight: 700;
    letter-spacing: 0.01em;
}

/* ── Generic page body ──────────────────────────────────── */
.ccp-page-body { padding-top: 56px; padding-bottom: 80px; min-height: 50vh; }
.ccp-page-body__content { max-width: 820px; }
.ccp-page-body__content p { margin-bottom: 1.2em; color: var(--text); }
.ccp-page-body__content a { color: var(--gold); }
.ccp-page-body__content a:hover { text-decoration: underline; }

/* ── Gutenberg block: headings ──────────────────────────── */
.ccp-page-body__content h1,
.ccp-page-body__content h2,
.ccp-page-body__content h3,
.ccp-page-body__content h4 {
    color: var(--navy);
    margin-top: 2em;
    margin-bottom: 0.6em;
}
.ccp-page-body__content .wp-block-heading {
    background: none !important;
    color: var(--navy) !important;
    padding: 0 !important;
    border: none !important;
    box-shadow: none !important;
}

/* ── Gutenberg block: details / summary (FAQ) ───────────── */
.ccp-page-body__content .wp-block-details,
.ccp-page-body__content details {
    border: 1px solid rgba(26,39,68,0.15);
    border-radius: var(--radius);
    margin-bottom: 12px;
    background: var(--off);
    overflow: hidden;
}
.ccp-page-body__content .wp-block-details summary,
.ccp-page-body__content details > summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 18px 22px;
    cursor: pointer;
    font-family: var(--font-h);
    font-weight: 700;
    font-size: 1rem;
    color: var(--navy);
    list-style: none;
    user-select: none;
    gap: 12px;
}
.ccp-page-body__content .wp-block-details summary::-webkit-details-marker,
.ccp-page-body__content details > summary::-webkit-details-marker { display: none; }
.ccp-page-body__content .wp-block-details summary::after,
.ccp-page-body__content details > summary::after {
    content: '+';
    font-size: 1.4rem;
    font-weight: 300;
    color: var(--gold);
    flex-shrink: 0;
    transition: transform var(--trans);
}
.ccp-page-body__content .wp-block-details[open] summary::after,
.ccp-page-body__content details[open] > summary::after {
    content: '−';
}
.ccp-page-body__content .wp-block-details > *:not(summary),
.ccp-page-body__content details > *:not(summary) {
    padding: 0 22px 18px;
    color: var(--muted);
    font-size: 0.95rem;
    line-height: 1.7;
}

/* ── Gutenberg block: lists ─────────────────────────────── */
.ccp-page-body__content .wp-block-list,
.ccp-page-body__content ul:not([class]),
.ccp-page-body__content ol:not([class]) {
    padding-left: 1.5em;
    margin-bottom: 1.2em;
}
.ccp-page-body__content ul:not([class]) { list-style: disc; }
.ccp-page-body__content ol:not([class]) { list-style: decimal; }
.ccp-page-body__content li { margin-bottom: 0.4em; }

/* ── Gutenberg block: columns (Get in Touch) ────────────── */
.ccp-page-body__content .wp-block-columns {
    display: flex;
    gap: 32px;
    flex-wrap: wrap;
    margin: 32px 0;
}
.ccp-page-body__content .wp-block-column { flex: 1 1 240px; }

/* ── Contact section card ───────────────────────────────── */
.ccp-page-body__content .wp-block-group {
    background: var(--off);
    border-radius: var(--radius);
    padding: 32px;
    margin: 32px 0;
}
.ccp-page-body__content .wp-block-group h2,
.ccp-page-body__content .wp-block-group h3 { margin-top: 0; }

@media (max-width: 640px) {
    .ccp-page-hero { padding: 88px 0 36px; }
    .ccp-page-body__content .wp-block-columns { flex-direction: column; }
}

/* ── WooCommerce notices ────────────────────────────────── */
.woocommerce-message, .woocommerce-error, .woocommerce-info {
    padding: 16px 20px;
    margin-bottom: 24px;
    border-radius: var(--radius);
    border-left: 4px solid var(--gold);
    background: var(--off);
}

/* ── Trust logos (shared: product page + homepage) ──────── */
.ccp-logos__label {
    text-align: center;
    font-family: var(--font-h);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 36px;
}
.ccp-logos__strip {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 24px 48px;
}
.ccp-logos__strip img {
    height: 60px;
    width: auto;
    object-fit: contain;
    filter: grayscale(40%);
    opacity: 0.8;
    transition: filter var(--trans), opacity var(--trans);
}
.ccp-logos__strip img:first-child {
    height: 100px;
}
/* Dailyhunt SVG: has text, needs more width room */
.ccp-logos__strip img[alt="Dailyhunt"] {
    height: 36px;
    filter: none;
    opacity: 1;
}
.ccp-logos__strip img:hover { filter: none; opacity: 1; }

@media (max-width: 640px) {
    .ccp-logos__strip { gap: 20px 32px; }
    .ccp-logos__strip img { height: 44px; }
    .ccp-logos__strip img:first-child { height: 72px; }
}

@media (max-width: 768px) {
    .ccp-footer__inner { grid-template-columns: 1fr; }
    .ccp-footer__cols  { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 480px) {
    .ccp-footer__cols  { grid-template-columns: 1fr; }
}

/* Redeem store */
.ccr-note{margin:0 0 1em;font-weight:600;color:var(--navy)}
.ccr-note--warn{padding:12px 14px;border-left:3px solid var(--gold);background:var(--off);margin:0 0 14px}

/* Gift home and sales pages (plain PHP, same look as the store) */
.ccg-hero{background:var(--navy-d);color:var(--white);padding:150px 16px 80px;text-align:center}
.ccg-hero h1{font-family:var(--font-h);font-weight:700;font-size:clamp(2rem,5vw,3.2rem);line-height:1.15;margin:0 auto 16px;max-width:760px;color:var(--white)}
.ccg-hero p{font-family:var(--font-b);font-weight:300;font-size:1.15rem;line-height:1.5;margin:0 auto 28px;max-width:620px;color:rgba(255,255,255,.88)}
.ccg-price{font-family:var(--font-h);font-weight:700;font-size:1.3rem;color:var(--gold);margin:0 0 24px}
.ccg-actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
.ccg-btn-ghost{background:transparent;border:1px solid var(--gold);color:var(--gold)}
.ccg-section{padding:64px 16px}
.ccg-section--gray{background:var(--off)}
.ccg-section h2{font-family:var(--font-h);font-weight:700;color:var(--navy);text-align:center;margin:0 0 32px;font-size:1.8rem}
.ccg-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px;max-width:960px;margin:0 auto}
.ccg-step{background:var(--white);border:1px solid var(--gray);border-radius:var(--radius);padding:24px}
.ccg-step h3{font-family:var(--font-h);font-weight:700;color:var(--navy);margin:0 0 8px;font-size:1.1rem}
.ccg-step p{margin:0;line-height:1.5;color:var(--text)}
.ccg-faq{max-width:720px;margin:0 auto}
.ccg-faq h3{font-family:var(--font-h);font-weight:700;color:var(--navy);margin:24px 0 6px;font-size:1.05rem}
.ccg-faq p{margin:0;line-height:1.55;color:var(--text)}

/* Brand buttons and notices on cart and checkout */
.ccp-header__nav{display:flex;gap:28px;flex-wrap:wrap}
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce #respond input#submit{background:var(--navy);color:var(--white);font-family:var(--font-h);font-weight:700;letter-spacing:.04em;border-radius:var(--radius);border:0;padding:12px 20px}
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover{background:var(--navy-d);color:var(--white)}
.woocommerce a.checkout-button,.woocommerce #payment #place_order,.woocommerce-page #payment #place_order{background:var(--gold);color:var(--white)}
.woocommerce a.checkout-button:hover,.woocommerce #payment #place_order:hover{background:var(--gold-h);color:var(--white)}
.woocommerce button.button:disabled,.woocommerce button.button:disabled[disabled]{background:var(--gray);color:var(--muted)}
.woocommerce-info::before,.woocommerce-message::before,.woocommerce-error::before{display:none}
.woocommerce-info,.woocommerce-message,.woocommerce-error{padding:14px 18px;border-top-color:var(--gold)}
.woocommerce-cart table.cart td.actions .coupon .input-text{width:170px;height:44px;padding:0 10px;font-family:var(--font-b);border:1px solid #bbb;border-radius:var(--radius)}
.woocommerce form .form-row input.input-text{padding:10px;font-family:var(--font-b)}
.ccr-more{font-family:var(--font-h);font-weight:700;color:var(--gold)}
@media (max-width:600px){
    .ccp-header__nav{flex-wrap:nowrap;gap:14px}
    .ccp-header__nav a{font-size:.68rem;letter-spacing:.06em;white-space:nowrap}
}

/* Buy a Gift form */
.ccg-form{max-width:720px;margin:0 auto}
.ccg-form fieldset{border:1px solid var(--gray);border-radius:var(--radius);padding:20px;margin:0 0 20px;background:var(--white)}
.ccg-form legend{font-family:var(--font-h);font-weight:700;color:var(--navy);padding:0 8px}
.ccg-form label{display:block;font-weight:600;margin:12px 0 4px;color:var(--navy)}
.ccg-form input{width:100%;box-sizing:border-box;padding:11px;font:inherit;font-family:var(--font-b);border:1px solid #bbb;border-radius:var(--radius);background:var(--white);color:var(--text)}
.ccg-points{display:flex;align-items:center;gap:12px;margin-top:4px}
.ccg-points button{width:44px;height:44px;border:1px solid var(--navy);background:var(--white);color:var(--navy);font-size:1.3rem;border-radius:var(--radius);cursor:pointer}
.ccg-points output{font-family:var(--font-h);font-weight:700;font-size:1.25rem;color:var(--navy);min-width:120px;text-align:center}
.ccg-card-head{display:flex;justify-content:space-between;align-items:center}
.ccg-link{background:none;border:0;color:var(--gold-h);font:inherit;font-weight:700;cursor:pointer;padding:8px 0}
.ccg-total{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-h);font-weight:700;font-size:1.3rem;color:var(--navy);margin:8px 0 16px}
.ccg-pay{width:100%;border:0;cursor:pointer}
.ccg-pay:disabled{opacity:.6;cursor:default}
.ccg-error{color:#a12622;font-weight:600;min-height:1.4em;margin:8px 0}
.ccg-center{max-width:620px;margin:0 auto;text-align:center}

/* Common checkout, same look as the store checkout */
.ccg-title-band{background:var(--navy-d);color:var(--white);padding:110px 16px 48px}
.ccg-title-band h1{font-family:var(--font-h);font-weight:700;font-size:2.6rem;margin:0 auto;max-width:var(--max-w);color:var(--white)}
.ccg-checkout{max-width:820px;margin:0;padding:48px 0}
.ccg-wrap{max-width:var(--max-w);margin:0 auto;padding:0 16px}
.ccg-checkout h3{font-family:var(--font-h);font-weight:700;color:var(--navy);font-size:1.2rem;margin:28px 0 12px}
.ccg-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:400px}
.ccg-field{max-width:400px;margin-top:12px}
.ccg-field label,.ccg-row label{display:block;margin-bottom:6px;color:var(--text)}
.ccg-field label b,.ccg-row label b{color:#a00}
.ccg-checkout input{width:100%;box-sizing:border-box;padding:10px;font:inherit;font-family:var(--font-b);border:1px solid #6b5f58;border-radius:var(--radius);color:var(--text);background:var(--white)}
.ccg-card{border:1px solid var(--gray);border-radius:var(--radius);padding:16px;margin-bottom:14px}
.ccg-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 14px}
.ccg-order{width:100%;border-collapse:separate;border-spacing:0;border:1px solid #cfc8d8;border-radius:5px;font-family:var(--font-b)}
.ccg-order th,.ccg-order td{padding:12px;text-align:left;border-top:1px solid #e0dadf}
.ccg-order thead th{border-top:0}
.ccg-order tfoot th,.ccg-order tfoot td{font-weight:700}
.ccg-paybox{background:#ebe9eb;border-radius:5px;padding:16px;margin-top:20px;text-align:right}
.ccg-paybox .ccp-btn{border:0;cursor:pointer;padding:12px 24px}
.ccg-paybox .ccp-btn:disabled{opacity:.6;cursor:default}
.ccg-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;max-width:960px;margin:0 auto}
.ccg-option{background:var(--white);border:1px solid var(--gray);border-radius:var(--radius);padding:28px;text-align:center}
.ccg-option h3{font-family:var(--font-h);font-weight:700;color:var(--navy);margin:0 0 8px}
.ccg-option p{margin:0 0 16px}

/* Festival sales pages */
.ccg-kicker{font-family:var(--font-h);font-weight:700;letter-spacing:.2em;color:var(--gold)!important;font-size:.85rem!important;margin-bottom:12px!important}
.ccg-note{margin:16px auto 0!important;font-size:.95rem!important}
.ccg-masters{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;max-width:960px;margin:0 auto}
.ccg-master{text-align:center}
.ccg-master img{width:100%;height:auto;border-radius:var(--radius);display:block;margin-bottom:10px}
.ccg-master strong{display:block;font-family:var(--font-h);color:var(--navy)}
.ccg-master span{display:block;color:var(--muted);font-size:.92rem}
.ccg-more{margin-top:24px;font-weight:600;color:var(--navy)}
@media (max-width:700px){.ccg-masters{grid-template-columns:repeat(2,1fr);gap:14px}.ccg-hero{padding-top:120px}}
.ccg-logos{padding:36px 16px;text-align:center;background:var(--white)}
.ccg-logos p{font-family:var(--font-h);font-weight:700;color:var(--muted);font-size:.85rem;letter-spacing:.06em;margin:0 0 18px}
.ccg-logos div{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:28px;max-width:860px;margin:0 auto}
.ccg-logos img{height:38px;width:auto;max-width:130px;object-fit:contain}

/* Phone: comfortable tap targets, no input zoom on iPhone */
@media (max-width:768px){
    .ccp-header__nav a{display:inline-flex;align-items:center;min-height:44px}
    .ccg-checkout input,.ccg-form input,.woocommerce form .form-row input.input-text,.woocommerce-cart table.cart td.actions .coupon .input-text,#coupon_code{font-size:16px;min-height:44px}
    .ccg-paybox .ccp-btn,.woocommerce #payment #place_order,.woocommerce a.checkout-button{width:100%;min-height:48px}
    .woocommerce button.button,.woocommerce a.button{min-height:44px}
    .woocommerce table.cart a.remove{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}
    .ccg-actions .ccp-btn,.ccg-option .ccp-btn,.ccg-hero .ccp-btn{width:100%;box-sizing:border-box;text-align:center}
    .ccg-title-band h1{font-size:2rem}
    .ccg-row{max-width:none}
    .ccg-field{max-width:none}
    .ccg-section{padding:48px 16px}
    .ccg-hero p,.ccg-faq p{font-size:1rem}
}
.ccg-hint{margin:10px 0 6px;font-weight:600;color:var(--gold-h)}

/* Terms page */
.ccg-legal{max-width:760px;padding:40px 0 56px;line-height:1.65;color:var(--text)}
.ccg-legal h2{font-family:var(--font-h);font-weight:700;color:var(--navy);font-size:1.25rem;margin:32px 0 10px;scroll-margin-top:90px}
.ccg-legal p{margin:0 0 14px;font-size:1rem}
.ccg-paybox .cf-turnstile{margin-bottom:12px}
