/* ============================================================
   BLOCKS.CSS — All custom block styles + core block overrides
   Loaded sitewide. Uses CSS custom properties from theme.json
   and :root variables set by the customiser.
   ============================================================ */

/* ── SECTION BLOCK ────────────────────────────────────────── */
.cp-section { position: relative; }
.cp-section > .container,
.cp-section > .container--wide,
.cp-section > .container--text { position: relative; z-index: 1; }
.cp-section.is-full-width { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); width: 100vw; }

/* ── ADVANCED COLUMNS ─────────────────────────────────────── */
.cp-columns { width: 100%; }
.cp-columns > * { min-width: 0; }

/* ── TABS BLOCK ───────────────────────────────────────────── */
.cp-tabs { width: 100%; }
.cp-tabs__nav { scrollbar-width: none; overflow-x: auto; }
.cp-tabs__nav::-webkit-scrollbar { display: none; }
.cp-tabs [role="tabpanel"] { outline: none; }

/* ── GALLERY GRID ─────────────────────────────────────────── */
.cp-gallery-grid figure { margin: 0; }
.cp-gallery-grid img { display: block; }

/* ── POST GRID ────────────────────────────────────────────── */
/* Uses existing .card styles from components.css */

/* ── COUNTER ──────────────────────────────────────────────── */
.stat { display: flex; flex-direction: column; align-items: inherit; }

/* ── BEFORE/AFTER ─────────────────────────────────────────── */
.cp-before-after { touch-action: none; }
.cp-ba-handle { pointer-events: auto; }

/* ── NOTIFICATION BAR ─────────────────────────────────────── */
/* Inline — uses flex layout from render */

/* ── CP/CARD ──────────────────────────────────────────────── */
.cp-card { text-decoration: none; color: inherit; }
.cp-card img { width: 100%; height: 100%; object-fit: cover; display: block;
    transition: transform var(--duration-xl, 1200ms) var(--ease-out, cubic-bezier(.16,1,.3,1)); }
.cp-card:hover img { transform: scale(var(--card-img-hover-zoom, 1.05)); }

/* ── ICON LIST ────────────────────────────────────────────── */
.cp-icon-list { margin: 0; padding: 0; }
.cp-icon-list li { list-style: none; }
.cp-icon-list svg { width: 100%; height: 100%; }

/* ── INFO BOX ─────────────────────────────────────────────── */
.cp-info-box svg { width: 100%; height: 100%; }

/* ── TESTIMONIAL CARD ─────────────────────────────────────── */
.testimonial-card {
    background: rgba(255,255,255,0.02);
    border: 1px solid var(--color-border, rgba(201,169,110,0.15));
    border-radius: var(--radius-lg, 16px);
    padding: var(--space-8, 2rem);
    display: flex; flex-direction: column; gap: var(--space-4, 1rem);
}
.testimonial-card__stars { color: var(--cp-gold, #C9A96E); font-size: 14px; letter-spacing: 2px; }
.testimonial-card__quote {
    font-family: var(--font-display, Georgia, serif);
    font-size: clamp(1rem, 1.8vw, 1.2rem);
    font-style: italic;
    color: var(--color-text, #F7F4EF);
    line-height: 1.65;
    margin: 0;
}
.testimonial-card__author { display: flex; align-items: center; gap: .75rem; margin-top: auto; }
.testimonial-card__avatar {
    width: 40px; height: 40px;
    border-radius: 50%;
    background: rgba(201,169,110,0.12);
    border: 1px solid rgba(201,169,110,0.2);
    display: flex; align-items: center; justify-content: center;
    font-family: var(--font-display); font-size: 1.1rem; color: var(--cp-gold, #C9A96E);
    flex-shrink: 0;
}
.testimonial-card__name { font-size: .875rem; font-weight: 500; color: var(--color-text, #F7F4EF); }
.testimonial-card__detail { font-size: .75rem; color: var(--cp-muted, #6B6860); margin-top: 2px; }

/* ── PRICING TABLE ────────────────────────────────────────── */
.membership-tiers { gap: var(--space-6, 1.5rem); }
.membership-tier { transition: transform var(--duration-base) var(--ease-out), box-shadow var(--duration-base); }
.membership-tier:hover { transform: translateY(-4px); box-shadow: 0 20px 48px rgba(0,0,0,.4); }
.membership-tier--featured { transform: scale(1.02); }
.membership-tier--featured:hover { transform: scale(1.02) translateY(-4px); }
@media (max-width: 768px) {
    .membership-tiers { grid-template-columns: 1fr !important; }
    .membership-tier--featured { transform: none; }
}

/* ── PROGRESS BARS ────────────────────────────────────────── */
.cp-progress-bars { width: 100%; }

/* ── ACCORDION ────────────────────────────────────────────── */
.layout-faq__item { border-bottom: 1px solid var(--color-border, rgba(201,169,110,0.15)); }
.layout-faq__question {
    width: 100%; display: flex; align-items: center; justify-content: space-between;
    padding: var(--space-5, 1.25rem) 0;
    background: none; border: none; cursor: pointer; text-align: left;
    font-family: var(--font-display, Georgia, serif);
    font-size: clamp(1rem, 1.8vw, 1.2rem);
    font-weight: 400; color: var(--color-text, #F7F4EF); line-height: 1.4;
    transition: color var(--duration-fast, 200ms);
}
.layout-faq__question:hover { color: var(--cp-gold, #C9A96E); }
.layout-faq__chevron {
    width: 20px; height: 20px; flex-shrink: 0;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg); margin-top: -4px;
    transition: transform var(--duration-base);
}
.layout-faq__question[aria-expanded="true"] .layout-faq__chevron { transform: rotate(-135deg); margin-top: 4px; }
.layout-faq__answer { overflow: hidden; }
.layout-faq__answer:not([hidden]) { animation: faq-open .3s var(--ease-out) forwards; }
@keyframes faq-open { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
.layout-faq__answer p {
    color: var(--cp-muted-light, #9A9690);
    line-height: 1.8; padding-bottom: var(--space-5, 1.25rem); margin: 0;
}

/* ── LOGO STRIP ───────────────────────────────────────────── */
.press-strip {
    display: flex; align-items: center; justify-content: center;
    flex-wrap: wrap; gap: 2.5rem;
}
.press-strip--scrolling {
    overflow: hidden; flex-wrap: nowrap;
    animation: press-scroll 30s linear infinite;
}
.press-strip--scrolling:hover { animation-play-state: paused; }
.press-strip__item { display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
@keyframes press-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ── COUNTDOWN ────────────────────────────────────────────── */
.cp-countdown { min-height: 60px; }

/* ── BEFORE/AFTER ─────────────────────────────────────────── */
.cp-before-after img { pointer-events: none; }

/* ── TOC ──────────────────────────────────────────────────── */
.cp-toc { max-width: 340px; }
.cp-toc a { outline: none; }

/* ── SOCIAL SHARE BLOCK ───────────────────────────────────── */
.social-share--floating { position: sticky; top: 120px; }

/* ── STYLED TABLE ─────────────────────────────────────────── */
.cp-table-wrap { overflow-x: auto; }

/* ─────────────────────────────────────────────────────────────
   CORE BLOCK OVERRIDES
   Makes native Gutenberg blocks look on-brand without theme.json
   limitations.
   ──────────────────────────────────────────────────────────── */

/* core/paragraph */
.wp-block-paragraph { color: var(--cp-muted-light, #9A9690); line-height: 1.8; max-width: 68ch; }
.wp-block-paragraph.has-background { padding: 1.25em 1.5em; }

/* core/heading */
.wp-block-heading {
    font-family: var(--font-display, Georgia, serif);
    font-weight: 400; line-height: 1.15;
    letter-spacing: -0.01em; color: var(--color-text, #F7F4EF);
}
h1.wp-block-heading { font-size: var(--text-4xl, clamp(2.5rem,5vw,4rem)); }
h2.wp-block-heading { font-size: var(--text-3xl, clamp(2rem,4vw,3rem)); }
h3.wp-block-heading { font-size: var(--text-2xl, clamp(1.5rem,3vw,2rem)); }
h4.wp-block-heading { font-size: var(--text-xl, clamp(1.25rem,2vw,1.5rem)); }
h5.wp-block-heading { font-size: var(--text-lg, clamp(1.1rem,1.6vw,1.25rem)); }
h6.wp-block-heading { font-size: var(--text-base, 1rem); text-transform: uppercase; letter-spacing: 0.1em; }

/* core/image */
.wp-block-image img { border-radius: var(--radius-md, 8px); max-width: 100%; height: auto; display: block; }
.wp-block-image figcaption { font-size: .8125rem; color: var(--cp-muted, #6B6860); text-align: center; margin-top: .5rem; font-style: italic; }
.wp-block-image.is-style-rounded img { border-radius: 9999px; }
.wp-block-image.is-style-shadow img { box-shadow: 0 8px 40px rgba(0,0,0,.5); }
.wp-block-image.is-style-bordered img { border: 1px solid var(--color-border, rgba(201,169,110,0.2)); }

/* core/gallery */
.wp-block-gallery { gap: .75rem; }
.wp-block-gallery img { border-radius: var(--radius-sm, 6px); }
.wp-block-gallery figcaption { font-size: .75rem; }

/* core/button */
.wp-block-button__link {
    border-radius: var(--btn-radius, 9999px) !important;
    font-family: var(--font-body) !important;
    font-size: var(--btn-font-size, .75rem) !important;
    font-weight: 500 !important;
    letter-spacing: var(--btn-letter-spacing, .08em) !important;
    text-transform: uppercase !important;
    padding: var(--btn-padding-v, .875rem) var(--btn-padding-h, 2rem) !important;
    transition: all var(--duration-base, 400ms) var(--ease-out, cubic-bezier(.16,1,.3,1)) !important;
}
.is-style-outline .wp-block-button__link {
    background: transparent !important;
    border: 1px solid var(--cp-gold, #C9A96E) !important;
    color: var(--cp-gold, #C9A96E) !important;
}
.is-style-outline .wp-block-button__link:hover {
    background: rgba(201,169,110,.08) !important;
}
.is-style-ghost .wp-block-button__link {
    background: transparent !important;
    border: 1px solid rgba(247,244,239,.25) !important;
    color: var(--cp-cream, #F7F4EF) !important;
}

/* core/quote */
.wp-block-quote {
    border-left: 2px solid var(--cp-gold, #C9A96E);
    padding: .25rem 0 .25rem 1.5rem;
    margin: 2rem 0;
}
.wp-block-quote p {
    font-family: var(--font-display, Georgia, serif);
    font-size: clamp(1.1rem, 2vw, 1.4rem) !important;
    font-style: italic; color: var(--color-text, #F7F4EF) !important;
    line-height: 1.6; margin: 0 0 1rem !important; max-width: none !important;
}
.wp-block-quote cite { font-size: .875rem; color: var(--cp-muted, #6B6860); font-style: normal; }

/* core/pullquote */
.wp-block-pullquote {
    border-top: 1px solid rgba(201,169,110,.3);
    border-bottom: 1px solid rgba(201,169,110,.3);
    border-left: none; border-right: none;
    padding: 2.5rem 0; margin: 3rem 0; text-align: center;
}
.wp-block-pullquote blockquote { margin: 0; }
.wp-block-pullquote p {
    font-family: var(--font-display, Georgia, serif) !important;
    font-size: clamp(1.5rem, 3vw, 2.5rem) !important;
    font-style: italic; color: var(--color-text, #F7F4EF) !important;
    line-height: 1.4; max-width: 800px; margin: 0 auto !important;
}
.wp-block-pullquote cite { display: block; margin-top: 1rem; font-size: .875rem; color: var(--cp-muted, #6B6860); }

/* core/separator */
.wp-block-separator {
    border: none;
    border-top: 1px solid rgba(201,169,110,.2);
    margin: 2.5rem auto;
}
.wp-block-separator.is-style-wide { width: 100%; }
.wp-block-separator.is-style-dots { border: none; text-align: center; }
.wp-block-separator.is-style-dots::before {
    content: '· · ·'; color: var(--cp-gold, #C9A96E);
    font-size: 1.25rem; letter-spacing: .5em;
}

/* core/list */
.wp-block-list { color: var(--cp-muted-light, #9A9690); line-height: 1.8; padding-left: 1.5rem; }
.wp-block-list li { margin-bottom: .5rem; }
.wp-block-list.is-style-checkmark { list-style: none; padding-left: 0; }
.wp-block-list.is-style-checkmark li { padding-left: 1.75rem; position: relative; }
.wp-block-list.is-style-checkmark li::before { content: '✓'; position: absolute; left: 0; color: var(--cp-gold, #C9A96E); font-weight: 700; }

/* core/code */
.wp-block-code {
    background: rgba(255,255,255,.04) !important;
    border: 1px solid rgba(201,169,110,.15) !important;
    border-radius: 8px; padding: 1.25rem 1.5rem;
    font-size: .875rem; line-height: 1.6;
    color: var(--cp-gold-light, #E8D5B0);
    overflow-x: auto;
}

/* core/table */
.wp-block-table { width: 100%; border-collapse: collapse; font-size: .875rem; }
.wp-block-table th {
    text-align: left; padding: .75rem 1rem;
    font-size: .7rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
    color: var(--cp-gold, #C9A96E);
    border-bottom: 2px solid rgba(201,169,110,.3);
}
.wp-block-table td { padding: .75rem 1rem; color: var(--cp-muted-light, #9A9690); border-bottom: 1px solid rgba(201,169,110,.1); }
.wp-block-table.is-style-stripes tbody tr:nth-child(odd) td { background: rgba(255,255,255,.02); }

/* core/cover */
.wp-block-cover { min-height: 60vh; }
.wp-block-cover__inner-container { z-index: 1; }

/* core/group */
.wp-block-group { position: relative; }

/* core/columns */
.wp-block-columns { gap: var(--space-8, 2rem); }
.wp-block-column { min-width: 0; }

/* core/media-text */
.wp-block-media-text { align-items: center; }
.wp-block-media-text img { border-radius: var(--radius-md, 8px); }

/* core/social-links */
.wp-block-social-links { gap: .5rem; }
.wp-block-social-link { border-radius: 50%; transition: opacity var(--duration-fast); }
.wp-block-social-link:hover { opacity: .75; }

/* core/search */
.wp-block-search__input {
    background: rgba(255,255,255,.05);
    border: 1px solid rgba(201,169,110,.2) !important;
    border-radius: 9999px; color: var(--color-text, #F7F4EF) !important;
    padding: .875rem 1.25rem;
}
.wp-block-search__button {
    background: var(--cp-gold, #C9A96E) !important;
    border-radius: 9999px !important;
    color: #111 !important; border: none !important;
    padding: .875rem 1.5rem !important;
}

/* core/latest-posts */
.wp-block-latest-posts { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 1rem; }
.wp-block-latest-posts li { padding-bottom: 1rem; border-bottom: 1px solid var(--color-border); }
.wp-block-latest-posts a { color: var(--color-text); text-decoration: none; font-family: var(--font-display); font-size: 1.1rem; }
.wp-block-latest-posts a:hover { color: var(--cp-gold); }
.wp-block-latest-posts__post-date { font-size: .75rem; color: var(--cp-muted); margin-top: .25rem; display: block; }

/* core/archives, core/categories */
.wp-block-archives, .wp-block-categories { list-style: none; padding: 0; }
.wp-block-archives a, .wp-block-categories a { color: var(--cp-muted-light); text-decoration: none; }
.wp-block-archives a:hover, .wp-block-categories a:hover { color: var(--cp-gold); }

/* ── CUSTOM BLOCK STYLE VARIATIONS ───────────────────────── */

/* Register variations via PHP but style here */

/* Heading: eyebrow style */
h2.is-style-eyebrow {
    font-family: var(--font-body) !important;
    font-size: var(--text-xs) !important;
    font-weight: 500 !important;
    letter-spacing: .14em !important;
    text-transform: uppercase !important;
    color: var(--cp-gold, #C9A96E) !important;
}

/* Heading: display style */
h2.is-style-display {
    font-family: var(--font-display) !important;
    font-size: var(--text-hero, clamp(3.5rem,9vw,8rem)) !important;
    font-weight: 300 !important;
    line-height: 1 !important;
    letter-spacing: -0.03em !important;
}

/* Paragraph: lead style */
.wp-block-paragraph.is-style-lead {
    font-size: clamp(1.1rem, 2vw, 1.375rem) !important;
    line-height: 1.7 !important;
    color: var(--cp-muted-light, #9A9690) !important;
    font-weight: 300 !important;
}

/* Paragraph: intro style (larger, lighter) */
.wp-block-paragraph.is-style-intro {
    font-family: var(--font-display) !important;
    font-size: clamp(1.25rem, 2.5vw, 1.75rem) !important;
    font-style: italic !important;
    line-height: 1.6 !important;
    color: var(--color-text, #F7F4EF) !important;
    font-weight: 300 !important;
}

/* Image: cinematic (very wide, dark overlay) */
.wp-block-image.is-style-cinematic { position: relative; }
.wp-block-image.is-style-cinematic img { aspect-ratio: 21/9; object-fit: cover; }

/* Image: portrait card */
.wp-block-image.is-style-portrait img { aspect-ratio: 3/4; object-fit: cover; border-radius: 12px; }

/* Group: card style */
.wp-block-group.is-style-card {
    background: rgba(255,255,255,.02) !important;
    border: 1px solid rgba(201,169,110,.15) !important;
    border-radius: 16px !important;
    padding: 2rem !important;
    transition: border-color .3s, transform .3s;
}
.wp-block-group.is-style-card:hover { border-color: rgba(201,169,110,.35); transform: translateY(-4px); }

/* Group: dark section */
.wp-block-group.is-style-dark-section {
    background: rgba(255,255,255,.02) !important;
    border-top: 1px solid rgba(201,169,110,.12) !important;
    border-bottom: 1px solid rgba(201,169,110,.12) !important;
    padding: 5rem 0 !important;
}

/* Group: gold accent (left border) */
.wp-block-group.is-style-gold-accent {
    border-left: 3px solid var(--cp-gold, #C9A96E) !important;
    padding-left: 1.5rem !important;
}

/* Columns: masonry */
.wp-block-columns.is-style-masonry {
    align-items: flex-start;
}

/* Quote: minimal */
.wp-block-quote.is-style-minimal {
    border-left: none; padding: 0;
}
.wp-block-quote.is-style-minimal p {
    font-size: clamp(1.25rem, 2.5vw, 2rem) !important;
    color: var(--color-text, #F7F4EF) !important;
}
.wp-block-quote.is-style-minimal p::before { content: '"'; }
.wp-block-quote.is-style-minimal p::after  { content: '"'; }

/* Separator: gold short */
.wp-block-separator.is-style-gold-short {
    width: 40px; height: 1px; border-top: 1px solid var(--cp-gold, #C9A96E);
    margin: 1.5rem 0;
}

/* List: gold arrows */
.wp-block-list.is-style-arrows { list-style: none; padding-left: 0; }
.wp-block-list.is-style-arrows li { padding-left: 1.5rem; position: relative; }
.wp-block-list.is-style-arrows li::before { content: '→'; position: absolute; left: 0; color: var(--cp-gold, #C9A96E); }

/* ── RESPONSIVE GRID OVERRIDES ────────────────────────────── */
@media (max-width: 768px) {
    .wp-block-columns { flex-direction: column; }
    .cp-tabs__nav { gap: 0; }
    .cp-countdown { gap: 1rem !important; }
    .membership-tiers { grid-template-columns: 1fr !important; }
}

/* ── BLOCK SPACING ────────────────────────────────────────── */
.wp-block-spacer { display: block; }

/* ── EDITOR ALIGNMENT AIDS ────────────────────────────────── */
[data-align="full"] { width: 100vw; margin-left: calc(50% - 50vw); }
[data-align="wide"] { max-width: var(--wp--style--global--wide-size, 1280px); margin-left: auto; margin-right: auto; }
