/* ============================================
   GUTENBERG BLOCK STYLES
   Full styling for all core blocks used in health content
   ============================================ */

/* ── Paragraph ── */
.wp-block-paragraph { margin-bottom: var(--space-4); }
.wp-block-paragraph.has-background { padding: var(--space-5); border-radius: var(--radius-lg); }
.wp-block-paragraph.has-drop-cap:not(:focus)::first-letter {
    float: left;
    font-size: 4.5em;
    line-height: .65;
    font-family: var(--font-heading);
    font-weight: 700;
    color: var(--color-primary);
    margin: .1em .15em -.15em 0;
}

/* ── Headings ── */
.wp-block-heading { scroll-margin-top: calc(var(--header-height) + 1rem); }

/* ── Image ── */
.wp-block-image { margin: var(--space-8) 0; }
.wp-block-image img { border-radius: var(--radius-lg); max-width: 100%; height: auto; }
.wp-block-image figcaption { font-size: var(--text-xs); color: var(--color-text-muted); text-align: center; margin-top: .5rem; font-style: italic; }
.wp-block-image.aligncenter { text-align: center; }
.wp-block-image.alignfull img { border-radius: 0; }

/* ── Gallery ── */
.wp-block-gallery { display: grid; gap: .5rem; margin: var(--space-8) 0; }
.wp-block-gallery .wp-block-image { margin: 0; }
.wp-block-gallery .wp-block-image img { height: 200px; object-fit: cover; }

/* ── Quote ── */
.wp-block-quote {
    border-left: 4px solid var(--color-primary);
    padding: var(--space-4) var(--space-6);
    margin: var(--space-8) 0;
    background: var(--color-bg-alt);
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
    font-style: italic;
    font-size: var(--text-lg);
    line-height: 1.65;
}
.wp-block-quote p { margin-bottom: 0; }
.wp-block-quote cite {
    display: block;
    font-size: var(--text-sm);
    color: var(--color-text-muted);
    font-style: normal;
    margin-top: var(--space-3);
    font-weight: 600;
}
.wp-block-quote cite::before { content: '— '; }

.wp-block-pullquote {
    border-top: 4px solid var(--color-primary);
    border-bottom: 4px solid var(--color-primary);
    padding: var(--space-8) var(--space-6);
    text-align: center;
    margin: var(--space-10) 0;
    background: var(--color-bg-alt);
}
.wp-block-pullquote blockquote { border: none; background: none; padding: 0; font-size: var(--text-xl); }
.wp-block-pullquote cite { color: var(--color-text-muted); font-size: var(--text-sm); }

/* ── Code ── */
.wp-block-code { background: #1e1e1e; color: #d4d4d4; padding: var(--space-6); border-radius: var(--radius-md); overflow-x: auto; font-family: var(--font-mono); font-size: .9em; margin: var(--space-6) 0; }
.wp-block-code code { background: none; color: inherit; padding: 0; }

.wp-block-preformatted { background: var(--color-bg-alt); border: 1px solid var(--color-border); padding: var(--space-5); border-radius: var(--radius-md); overflow-x: auto; font-family: var(--font-mono); font-size: .9em; }

/* ── Lists ── */
.wp-block-list { padding-left: var(--space-6); margin: var(--space-4) 0; }
.wp-block-list li { margin-bottom: var(--space-2); line-height: 1.7; }

/* ── Table ── */
.wp-block-table { margin: var(--space-8) 0; overflow-x: auto; }
.wp-block-table table { width: 100%; border-collapse: collapse; font-size: var(--text-sm); }
.wp-block-table th { background: var(--color-primary); color: #fff; padding: var(--space-3) var(--space-4); text-align: left; font-weight: 600; }
.wp-block-table td { padding: var(--space-3) var(--space-4); border-bottom: 1px solid var(--color-border); }
.wp-block-table tr:nth-child(even) td { background: var(--color-bg-alt); }
.wp-block-table tr:hover td { background: rgba(var(--primary-rgb),.05); }
.wp-block-table figcaption { font-size: var(--text-xs); color: var(--color-text-muted); text-align: center; margin-top: .5rem; }
.wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background: var(--color-bg-alt); }

/* ── Buttons ── */
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: var(--space-3); margin: var(--space-6) 0; }
.wp-block-button .wp-block-button__link {
    display: inline-flex;
    align-items: center;
    padding: var(--space-3) var(--space-6);
    border-radius: var(--radius-full);
    font-weight: 600;
    font-size: var(--text-sm);
    text-decoration: none;
    transition: all var(--transition);
    min-height: 44px;
}
.wp-block-button:not(.is-style-outline) .wp-block-button__link {
    background: var(--color-primary);
    color: #fff;
}
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background: var(--color-primary-dark); color: #fff; }
.wp-block-button.is-style-outline .wp-block-button__link {
    background: transparent;
    border: 2px solid var(--color-primary);
    color: var(--color-primary);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--color-primary); color: #fff; }

/* ── Separator ── */
.wp-block-separator {
    border: none;
    border-top: 1px solid var(--color-border);
    margin: var(--space-10) 0;
}
.wp-block-separator.is-style-wide { max-width: 100%; }
.wp-block-separator.is-style-dots {
    border: none;
    text-align: center;
    line-height: 1;
}
.wp-block-separator.is-style-dots::before {
    content: '···';
    font-size: 1.5rem;
    letter-spacing: .5em;
    color: var(--color-text-light);
}

/* ── Columns ── */
.wp-block-columns {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
    gap: var(--space-6);
    margin: var(--space-8) 0;
}
.wp-block-column { min-width: 0; }

/* ── Media & Text ── */
.wp-block-media-text {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-6);
    align-items: center;
    margin: var(--space-8) 0;
}
@media (max-width: 767px) { .wp-block-media-text { grid-template-columns: 1fr; } }
.wp-block-media-text .wp-block-media-text__media img { border-radius: var(--radius-lg); }
.wp-block-media-text.has-media-on-the-right .wp-block-media-text__content { order: -1; }

/* ── Cover ── */
.wp-block-cover {
    position: relative;
    min-height: 360px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: var(--radius-xl);
    margin: var(--space-8) 0;
}
.wp-block-cover__image-background { object-fit: cover; position: absolute; inset: 0; width: 100%; height: 100%; }
.wp-block-cover__inner-container { position: relative; z-index: 1; text-align: center; padding: var(--space-8); }
.wp-block-cover .wp-block-cover__inner-container p,
.wp-block-cover .wp-block-cover__inner-container h2 { color: #fff; }

/* ── Notice / Callout blocks (core/info, core/warning, core/tip) ── */
.wp-block-group {
    margin: var(--space-6) 0;
}
.wp-block-group.is-style-info,
.wp-block-group.has-background {
    padding: var(--space-5);
    border-radius: var(--radius-lg);
}

/* ── Details / Summary ── */
.wp-block-details { border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: var(--space-4); margin: var(--space-6) 0; }
.wp-block-details summary { font-weight: 600; cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; }
.wp-block-details summary::after { content: '+'; font-size: 1.2rem; }
.wp-block-details[open] summary::after { content: '−'; }

/* ── Search Block ── */
.wp-block-search { display: flex; gap: .5rem; margin: var(--space-6) 0; }
.wp-block-search__input { flex: 1; padding: var(--space-3) var(--space-4); border: 1px solid var(--color-border); border-radius: var(--radius-md); font-family: inherit; font-size: var(--text-sm); outline: none; }
.wp-block-search__input:focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(var(--primary-rgb),.1); }
.wp-block-search__button { padding: var(--space-3) var(--space-5); background: var(--color-primary); color: #fff; border: none; border-radius: var(--radius-md); font-weight: 600; cursor: pointer; }

/* ── Latest Posts Block ── */
.wp-block-latest-posts { list-style: none; padding: 0; margin: var(--space-6) 0; }
.wp-block-latest-posts li { padding: var(--space-3) 0; border-bottom: 1px solid var(--color-border); }
.wp-block-latest-posts li:last-child { border-bottom: none; }
.wp-block-latest-posts a { font-weight: 600; color: var(--color-text); }
.wp-block-latest-posts a:hover { color: var(--color-primary); }
.wp-block-latest-posts__post-date { font-size: var(--text-xs); color: var(--color-text-muted); }

/* ── Categories Block ── */
.wp-block-categories { list-style: none; padding: 0; margin: var(--space-6) 0; }
.wp-block-categories li { padding: var(--space-2) 0; border-bottom: 1px dashed var(--color-border); display: flex; justify-content: space-between; }
.wp-block-categories a { color: var(--color-text); }
.wp-block-categories a:hover { color: var(--color-primary); }

/* ── Tag Cloud ── */
.wp-block-tag-cloud { display: flex; flex-wrap: wrap; gap: .5rem; margin: var(--space-6) 0; }
.wp-block-tag-cloud a {
    padding: .25rem .75rem;
    background: var(--color-bg-alt);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-full);
    font-size: var(--text-xs) !important;
    color: var(--color-text-muted);
    transition: all var(--transition);
}
.wp-block-tag-cloud a:hover { background: var(--color-primary); border-color: var(--color-primary); color: #fff; }

/* ── Embed / Video ── */
.wp-block-embed { margin: var(--space-8) 0; }
.wp-block-embed .wp-block-embed__wrapper { position: relative; padding-top: 56.25%; }
.wp-block-embed iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border-radius: var(--radius-lg); }
.wp-block-embed figcaption { font-size: var(--text-xs); color: var(--color-text-muted); text-align: center; margin-top: .5rem; }

/* ── Audio ── */
.wp-block-audio audio { width: 100%; border-radius: var(--radius-md); margin: var(--space-6) 0; }

/* ── File Download ── */
.wp-block-file {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-4);
    background: var(--color-bg-alt);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    margin: var(--space-6) 0;
    flex-wrap: wrap;
}
.wp-block-file a:not(.wp-block-file__button) { font-weight: 600; color: var(--color-text); }
.wp-block-file__button { padding: var(--space-2) var(--space-4); background: var(--color-primary); color: #fff; border-radius: var(--radius-full); font-size: var(--text-sm); font-weight: 600; white-space: nowrap; }

/* ── Notice Boxes (health-specific utility classes) ── */
.health-notice,
.wp-block-group[class*="notice-"] {
    display: flex;
    gap: var(--space-4);
    padding: var(--space-5);
    border-radius: var(--radius-lg);
    margin: var(--space-8) 0;
    border-left-width: 4px;
    border-left-style: solid;
}
.notice-info    { background: #E3F2FD; border-color: #1565C0; }
.notice-warning { background: #FFF8E1; border-color: #F57F17; }
.notice-success { background: #E8F5E9; border-color: #2E7D32; }
.notice-danger  { background: #FFEBEE; border-color: #B71C1C; }
.notice-tip     { background: #F3E5F5; border-color: #6A1B9A; }

/* ── Read More Link ── */
.more-link {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    color: var(--color-primary);
    font-weight: 600;
    font-size: var(--text-sm);
}
.more-link::after { content: ' →'; }
.more-link:hover { color: var(--color-primary-dark); }

/* ── Sticky post indicator ── */
.sticky .post-card-image::after {
    content: '📌 ' attr(data-sticky-label);
    position: absolute;
    top: .5rem;
    left: .5rem;
    background: var(--color-accent);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    padding: .2rem .5rem;
    border-radius: var(--radius-full);
    text-transform: uppercase;
}

/* ── WordPress core utility classes ── */
.has-primary-color          { color: var(--color-primary) !important; }
.has-primary-background-color { background-color: var(--color-primary) !important; }
.has-accent-color           { color: var(--color-accent) !important; }
.has-accent-background-color{ background-color: var(--color-accent) !important; }
.has-text-align-left   { text-align: left; }
.has-text-align-center { text-align: center; }
.has-text-align-right  { text-align: right; }
.has-small-font-size   { font-size: var(--text-sm) !important; }
.has-normal-font-size  { font-size: var(--text-base) !important; }
.has-large-font-size   { font-size: var(--text-xl) !important; }
.has-x-large-font-size { font-size: var(--text-2xl) !important; }
.has-huge-font-size    { font-size: var(--text-4xl) !important; }

/* ── Dark mode overrides for blocks ── */
@media (prefers-color-scheme: dark) {
    .wp-block-quote    { background: var(--color-bg-alt); }
    .wp-block-pullquote{ background: var(--color-bg-alt); }
    .wp-block-table th { background: var(--color-primary-dark); }
    .wp-block-details  { border-color: var(--color-border); }
    .notice-info       { background: rgba(21,101,192,.15); }
    .notice-warning    { background: rgba(245,127,23,.15); }
    .notice-success    { background: rgba(46,125,50,.15); }
    .notice-danger     { background: rgba(183,28,28,.15); }
    .notice-tip        { background: rgba(106,27,154,.15); }
}
