/*
 Theme Name:   GeneratePress Child
 Theme URI:    https://generatepress.com
 Description:  Child theme for GeneratePress — The Mind & Psychiatry Clinic
 Author:       TMAPC
 Template:     generatepress
 Version:      1.0.0
 Text Domain:  generatepress-child
*/

/* poppins-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 400;
  src: url('fonts/poppins-v24-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* poppins-500 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 500;
  src: url('fonts/poppins-v24-latin-500.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* poppins-600 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  src: url('fonts/poppins-v24-latin-600.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* poppins-700 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  src: url('fonts/poppins-v24-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* playfair-display-500 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 500;
  src: url('fonts/playfair-display-v40-latin-500.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* playfair-display-700 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  src: url('fonts/playfair-display-v40-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* === Non-palette custom properties (single source of truth) === */
:root {
    --gold-hover: #E2C773;
    --muted-grey: #9a9a9a;
}

/* === Global Typography (centralized font assignments) === */
body,
body.flavor-developer-kit {
    font-family: "Poppins", Helvetica, Arial, Lucida, sans-serif;
    font-weight: 400;
}

h1, h2 {
    font-family: "Playfair Display", Georgia, "Times New Roman", serif;
}

h1 {
    font-weight: 500;
}

h2 {
    font-weight: 700;
}

h3, h4, h5, h6 {
    font-family: "Poppins", Helvetica, Arial, Lucida, sans-serif;
    font-weight: 700;
}


/*
 * TABLE OF CONTENTS
 * -----------------
 * 1.  Custom Properties (:root)          — L1
 * 2.  Global Resets                       — L8
 * 3.  Navigation & Dropdowns             — L16
 * 4.  Header Alignment & Mobile Submenu  — L184
 * 5.  Header Polish                      — L297
 * 6.  Responsive (Global)                — L362
 * 7.  Testimonial Carousel               — L388
 * 8.  Condition Cards (Homepage)         — L454
 * 9.  About Page                         — L489
 * 10. Interior Pages — Cosmetic Polish   — L554
 * 11. Footer                             — L608
 * 12. Blog Archive — Card Grid           — L622
 * 13. Single Post — Reading Experience   — L791
 * 14. Similar Articles                   — L951
 * 15. Blog Card Fixes                    — L1101
 * 16. News Archive                       — L1193
 * 17. News Cards — Editorial Redesign    — L1276
 * 18. CPTSD Cards                        — L1476
 * 19. Misc (H2 centering, Sources, etc.) — L1604
 * 20. Contact Page Icons                 — L1622
 * 21. Full-Width Header Fix              — L1714
 * 22. Utility Classes                    — L1820
 *
 * NOTE: ~146 !important declarations are used throughout.
 * Most override Gutenberg inline styles or WP nav block CSS.
 * Do not remove without testing — the site will break.
 */



/* === FIX: Prevent horizontal scroll from 100vw elements === */
html, body {
    overflow-x: hidden;
}

/* === GP Premium Additional CSS === */
/* Mind & Psychiatry Clinic - Custom Styles */

/* Navigation dropdown */
ul.wp-block-navigation__submenu-container.wp-block-navigation-submenu {
    background-color: var(--primary) !important;
    border: none !important;
    border-top: 2px solid var(--accent) !important;
    min-width: 220px;
    padding: 0.5rem 0;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}
.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    color: var(--base-3) !important;
    padding: 0.5rem 1.25rem;
    font-size: 0.85rem;
    display: block;
}
.wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
    color: var(--accent) !important;
    background-color: rgba(0,0,0,0.15);
}

/* Header logo */
.header-logo {
  max-width: 300px;   /* set to whatever size looks right in the header */
  height: auto;
  width: 100%;        /* lets it scale down on narrow screens */
}

/* Header spacing */
.site-header-cta-buttons {
    gap: 0.5rem;
    display: flex;
}

/* Hide CTA buttons on mobile, show in overlay menu */
@media (max-width: 768px) {
    /* Mobile header logo size */
    /* Clinic name visible on mobile */
	.site-header-logo img {
		height: 40px !important;
		width: auto !important;
	}
    .site-header-cta-buttons {
        display: none !important;
    }
}

/* CTA buttons inside mobile overlay */
.wp-block-navigation__responsive-container.is-menu-open .mobile-menu-ctas {
    display: flex !important;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1rem 2rem 0;
}
.wp-block-navigation__responsive-container:not(.is-menu-open) .mobile-menu-ctas {
    display: none;
}

/* Style the mobile overlay menu - only when overlay is open */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
    padding-top: 1rem;
}

/* Mobile overlay background */
.wp-block-navigation__responsive-container.is-menu-open {
    background-color: var(--primary) !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    color: var(--base-3) !important;
    font-size: 1rem;
    padding: 0.5rem 0;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover {
    color: var(--accent) !important;
}
/* Mobile submenu items */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
    background-color: transparent !important;
    padding-left: 1rem;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    font-size: 0.9rem;
    padding: 0.35rem 0;
}
/* Mobile close button color */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
    color: var(--base-3);
}
/* Submenu toggle arrow in mobile */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon svg path {
    stroke: var(--base-3);
}

/* Gold separator used in conditions cards */
.wp-block-separator.has-accent-2-color {
    border-color: var(--accent-2);
    width: 60px;
}

/* Details/accordion styling */
.wp-block-details {
    border: 1px solid var(--accent-2);
    border-radius: 0;
    padding: 1rem 1.25rem;
    margin-bottom: 0.75rem;
}
.wp-block-details summary {
    font-family: "Playfair Display", serif;
    font-size: 1.1rem;
    font-weight: 500;
    color: var(--secondary);
    cursor: pointer;
}
.wp-block-details summary:hover {
    color: var(--accent);
}

/* Quote block styling for testimonials */
.wp-block-quote {
    border-left: 4px solid var(--accent);
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.5rem;
    background: var(--base);
    font-family: "Playfair Display", Georgia, "Times New Roman", serif;
}
.wp-block-quote cite {
    font-style: normal;
    font-weight: 600;
    color: var(--secondary);
    font-size: 0.9rem;
}

/* Cover block overlay */
.wp-block-cover .wp-block-cover__inner-container {
    max-width: 900px;
    margin: 0 auto;
}

/* Buttons hover */
.wp-block-button__link {
    transition: opacity 0.2s ease;
}
.wp-block-button__link:hover {
    opacity: 0.9;
}

/* Blog post cards */
.wp-block-latest-posts__post-title {
    font-family: "Playfair Display", serif;
    color: var(--secondary);
    font-weight: 600;
}
.wp-block-latest-posts__post-excerpt {
    color: var(--contrast-2);
    font-size: 0.875rem;
}

/* Social links in footer */
.wp-block-social-links .wp-social-link {
    transition: opacity 0.2s ease;
}
.wp-block-social-links .wp-social-link:hover {
    opacity: 0.7;
}

/* Remove default GP footer bar since we have custom footer element */
.site-footer .footer-bar {
    display: none;
}

/* Page content area - remove default padding when using full-width blocks */
.page .site-content .entry-content > .alignfull {
    margin-left: calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
    max-width: 100vw;
    width: 100vw;
}

/* === HEADER ALIGNMENT & MOBILE SUBMENU === */

/* All header elements vertically centered */
.site-main-header .wp-block-columns {
    align-items: center !important;
    margin-bottom: 0 !important;
    margin-top: 0 !important;
}
.site-main-header .wp-block-column {
    display: flex !important;
    align-items: center !important;
}
.site-main-header .wp-block-column > .wp-block-group {
    align-items: center !important;
}
.site-main-header .wp-block-navigation {
    display: flex;
    align-items: center;
}
@media (min-width: 769px) {
    .site-main-header .wp-block-navigation__responsive-container {
        display: flex !important;
        align-items: center !important;
    }
}
.site-main-header .wp-block-navigation .wp-block-navigation__container {
    align-items: center;
    gap: 1.75rem !important;
}
.site-main-header .wp-block-navigation-item {
    display: flex;
    align-items: center;
}
@media (min-width: 769px) {
    .site-main-header .site-header-cta-buttons,
    .site-main-header .site-header-cta-buttons .wp-block-buttons {
        display: flex !important;
        align-items: center !important;
    }
}

/* Mobile submenu toggle arrow - make visible */
.wp-block-navigation-submenu__toggle {
    background: none !important;
    border: none !important;
    padding: 0.35rem !important;
    cursor: pointer;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    margin-left: 0.35rem;
    min-width: 20px;
    min-height: 20px;
}
.wp-block-navigation-submenu__toggle svg {
    width: 12px !important;
    height: 12px !important;
    min-width: 12px;
    flex-shrink: 0;
}
.wp-block-navigation-submenu__toggle svg path {
    stroke: var(--base-3);
    stroke-width: 1.5;
}

/* Mobile overlay - collapse submenu by default */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
    display: none !important;
    overflow: hidden;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu[data-wp-context] .wp-block-navigation__submenu-container {
    display: none !important;
}
/* Show submenu when toggled open */
.wp-block-navigation__responsive-container.is-menu-open .has-child.open-on-hover-click[aria-expanded="true"] > .wp-block-navigation__submenu-container,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle[aria-expanded="true"] + .wp-block-navigation__submenu-container {
    display: block !important;
}

/* Services + chevron on same line in mobile menu */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    column-gap: 0.25rem;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu > .wp-block-navigation-item__content {
    width: auto !important;
    flex: none !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu > .wp-block-navigation-submenu__toggle {
    flex: none !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu > .wp-block-navigation__submenu-container {
    flex-basis: 100% !important;
    width: 100% !important;
}

/* Mobile submenu toggle chevron rotation */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle svg {
    transition: transform 0.2s ease;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle[aria-expanded="true"] svg {
    transform: rotate(180deg);
}

/* Mobile: show toggle button next to Services */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle {
    display: inline-flex !important;
    vertical-align: middle;
}

/* === HEADER POLISH === */

/* Gold accent underline beneath header */
.site-main-header {
    border-bottom: 2px solid var(--accent);
}

/* Nav link polish - letter spacing and transitions */
.wp-block-navigation .wp-block-navigation-item__content {
    letter-spacing: 0.04em;
    transition: color 0.2s ease;
    position: relative;
}

/* Gold underline hover effect on nav links */
.wp-block-navigation .wp-block-navigation-item__content::after {
    content: "";
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 0;
    height: 2px;
    background-color: var(--accent);
    transition: width 0.25s ease;
}
.wp-block-navigation .wp-block-navigation-item__content:hover::after {
    width: 100%;
}

/* Nav link hover color */
.wp-block-navigation .wp-block-navigation-item__content:hover {
    color: var(--accent-2) !important; /* Override inline color from block editor */
}

/* CTA button vertical alignment with nav */
.site-header-cta-buttons .wp-block-buttons {
    display: flex;
    align-items: center;
}

/* CTA button polish */
.site-header-cta-buttons .wp-block-button__link {
    letter-spacing: 0.08em;
    transition: background-color 0.2s ease;
    white-space: nowrap;
}

/* Gold button hover */
.site-header-cta-buttons .wp-block-button:first-child .wp-block-button__link:hover {
    background-color: var(--accent) !important;
    filter: brightness(1.15);
}

/* Light gold button hover */
.site-header-cta-buttons .wp-block-button:last-child .wp-block-button__link:hover {
    background-color: var(--gold-hover) !important; /* Gold Hover - defined in color-palette.md */
}

/* Header logo - horizontal logo image */
.site-header-logo img {
    border-radius: 0 !important;
    object-fit: contain;
    height: 53px !important;
    width: auto !important;
    max-width: none !important;
}

/* === RESPONSIVE === */

/* Tablet (768px) */
@media (max-width: 768px) {
    .wp-block-cover h1 {
        font-size: 1.5rem;
    }
    .wp-block-cover h2 {
        font-size: 1.75rem;
    }
}

/* Mobile (480px) */
@media (max-width: 480px) {
    .wp-block-cover h1 {
        font-size: 1.25rem;
    }
    .wp-block-buttons {
        flex-direction: column;
        align-items: stretch;
    }
    .wp-block-button {
        width: 100%;
    }
}

/* === Testimonial Carousel === */
.testimonial-section .testimonial-slider {
    position: relative;
    max-width: 100%;
    overflow: hidden;
}
.testimonial-slider-track {
    display: flex;
    will-change: transform;
}
.testimonial-slide {
    flex: 0 0 100%;
    box-sizing: border-box;
    padding: 0 0.5rem;
}
/* Override default quote block styles inside carousel */
.testimonial-slide .wp-block-quote {
    border-left: 4px solid var(--accent);
    padding: 1.5rem 2rem;
    margin: 0;
    background: var(--base);
    min-height: 180px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.testimonial-slide .wp-block-quote h4 {
    margin-top: 0;
    margin-bottom: 0.75rem;
}
.testimonial-slide .wp-block-quote p {
    margin: 0;
    line-height: 1.6;
}
/* Dots navigation */
.testimonial-dots {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 1.5rem;
    padding: 0.5rem 0;
}
.testimonial-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 2px solid var(--accent);
    background: transparent;
    cursor: pointer;
    padding: 0;
    transition: background-color 0.3s ease;
}
.testimonial-dot.is-active {
    background: var(--accent);
}
.testimonial-dot:hover {
    background: var(--accent-2);
}
/* Responsive */
@media (max-width: 768px) {
    .testimonial-slide .wp-block-quote {
        padding: 1.25rem 1.5rem;
        min-height: 150px;
    }
}

/* === Condition Cards === */
.condition-card {
    border: 1px solid var(--accent-2);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    position: relative;
    cursor: pointer;
}
.condition-card:hover {
    border-color: var(--accent);
    box-shadow: 0 2px 12px rgba(9, 46, 71, 0.08);
}
.condition-card .wp-block-separator {
    width: 40px;
    margin-left: auto;
    margin-right: auto;
}
.condition-card p a {
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--accent);
    text-decoration: none;
    transition: color 0.2s ease;
}
.condition-card p a::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
}
.condition-card p a:hover {
    color: var(--primary);
}

/* === About Page === */

/* Hero separator - narrow gold line */
.about-hero-sep.wp-block-separator {
    max-width: 80px;
    border-bottom-width: 2px;
    opacity: 1;
}

/* Section separators - centered narrow gold line */
.about-section-sep.wp-block-separator {
    max-width: 60px;
    margin-left: auto;
    margin-right: auto;
    border-bottom-width: 2px;
    opacity: 1;
}

/* Team photo gold ring */
.about-team-photo img {
    border: 3px solid var(--accent) !important; /* Gold ring around team photos */
    box-shadow: 0 4px 20px rgba(9, 46, 71, 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.about-team-photo img:hover {
    transform: scale(1.03);
    box-shadow: 0 8px 30px rgba(9, 46, 71, 0.15);
}

/* Team card hover lift */
.about-team-card {
    text-align: left;
    transition: transform 0.3s ease;
}
.about-team-card:hover {
    transform: translateY(-4px);
}

/* CTA section subtle top border */
.about-cta-section {
    border-top: 3px solid var(--accent);
}

/* Ethos diamond markers */
.about-ethos-item {
    align-items: baseline;
}

/* Tablet: stack CTA buttons vertically (769px-1024px) */
@media (max-width: 1024px) and (min-width: 769px) {
    .site-header-cta-buttons .wp-block-buttons {
        flex-direction: column !important;
        gap: 0.35rem !important;
    }
    .site-header-cta-buttons .wp-block-button {
        width: 100% !important;
    }
    .site-header-cta-buttons .wp-block-button__link {
        font-size: 0.65rem !important;
        padding: 0.4rem 0.9rem !important;
        display: block !important;
        text-align: center !important;
    }
}

/* === Interior Pages — Cosmetic Polish === */

/* Consistent body text line-height on all interior pages */
.page:not(.home) .entry-content .wp-block-group p {
    line-height: 1.8;
}

/* Consistent list line-height */
.page:not(.home) .entry-content .wp-block-group ul {
    line-height: 1.8;
}

/* Interior page section headings — gold underline accent */
.page:not(.home) .entry-content > .wp-block-group h2.wp-block-heading {
    padding-bottom: 0.75rem;
    border-bottom: 2px solid var(--accent);
    display: inline-block;
}
/* Center-aligned headings need block display */
.page:not(.home) .entry-content > .wp-block-group h2.has-text-align-center {
    display: block;
    border-bottom: none;
}
.page:not(.home) .entry-content > .wp-block-group h2.has-text-align-center::after {
    content: "";
    display: block;
    width: 60px;
    height: 2px;
    background: var(--accent);
    margin: 0.75rem auto 0;
}

/* Fees page — treatment bundle highlight box */
/* Fees page (ID:38 = /fees/) */
.page-id-38 .wp-block-group[style*="border-left"] {
    background: var(--base);
    transition: box-shadow 0.2s ease;
}
/* Fees page (ID:38 = /fees/) */
.page-id-38 .wp-block-group[style*="border-left"]:hover {
    box-shadow: 0 4px 20px rgba(9, 46, 71, 0.08);
}

/* Fees page — mobile: reduce inner padding on bundle boxes & remove bullet indent */
@media (max-width: 768px) {
    .page-id-38 .wp-block-group[style*="border-left"] {
        padding-left: 0rem !important;
        padding-right: 0rem !important;
    }
    .page-id-38 .wp-block-group[style*="border-left"] .wp-block-group__inner-container {
        padding: 15px !important;
    }
    .page-id-38 .wp-block-group[style*="border-left"] ul {
        padding-left: 1.2em;
        margin-left: 0;
    }
}

/* Contact page — contact card styling */
/* Contact page (ID:42 = /contact/) */
.page-id-42 .wp-block-group.has-base-background-color {
    border: 1px solid var(--accent-2);
    transition: box-shadow 0.3s ease;
}
/* Contact page (ID:42 = /contact/) */
.page-id-42 .wp-block-group.has-base-background-color:hover {
    box-shadow: 0 4px 20px rgba(9, 46, 71, 0.08);
}

/* === Footer Button Hover States === */
.site-footer .wp-block-button__link[style*="background-color:#BF993B"]:hover {
    background-color: var(--gold-hover) !important;
}
.site-footer .wp-block-button__link[style*="background-color:#DDCFAF"]:hover {
    background-color: var(--gold-hover) !important;
    color: var(--contrast) !important;
}

/* Footer separator opacity */
.site-footer .wp-block-separator.is-style-wide {
    opacity: 0.4;
}

/* ======================================
   BLOG ARCHIVE — CARD GRID REDESIGN
   ====================================== */

/* Card container */
.blog .inside-content,
.archive .inside-content {
    background: transparent;
}

/* Each post card */
.blog article.post,
.archive article.post {
    background: var(--base-3);
    border-radius: 4px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(9, 46, 71, 0.06);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    margin-bottom: 2rem;
    border: 1px solid var(--accent-2);
}
.blog article.post:hover,
.archive article.post:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 30px rgba(9, 46, 71, 0.12);
    border-color: var(--accent);
}

/* Featured image — consistent aspect ratio */
.blog .post-image,
.archive .post-image {
    overflow: hidden;
    position: relative;
}
.blog .post-image img,
.archive .post-image img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}
.blog article.post:hover .post-image img,
.archive article.post:hover .post-image img {
    transform: scale(1.05);
}

/* Card content padding */
.blog .inside-article,
.archive .inside-article {
    padding: 0;
}
.blog .entry-header,
.archive .entry-header {
    padding: 1.25rem 1.5rem 0;
}
.blog .entry-summary,
.archive .entry-summary {
    padding: 0 1.5rem;
    color: var(--contrast-2);
    font-size: 0.875rem;
    line-height: 1.7;
}

/* Post title */
.blog .entry-title,
.archive .entry-title {
    font-size: 1.2rem;
    font-weight: 600;
    line-height: 1.35;
    margin-bottom: 0.5rem;
}
.blog .entry-title a,
.archive .entry-title a {
    color: var(--secondary);
    text-decoration: none;
    transition: color 0.2s ease;
}
.blog .entry-title a:hover,
.archive .entry-title a:hover {
    color: var(--accent);
}

/* Post meta */
.blog .entry-meta,
.archive .entry-meta {
    padding: 0 1.5rem;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--contrast-2);
    margin-bottom: 0.5rem;
}
.blog .entry-meta a,
.archive .entry-meta a {
    color: var(--accent);
    text-decoration: none;
    font-weight: 600;
}

/* READ MORE button */
.blog footer.entry-meta,
.archive footer.entry-meta {
    padding: 0 1.5rem 1.5rem;
}
.blog .read-more,
.archive .read-more {
    display: inline-block;
    background-color: transparent;
    color: var(--accent) !important;
    border: 2px solid var(--accent);
    padding: 0.5rem 1.25rem;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease;
    border-radius: 2px;
}
.blog .read-more:hover,
.archive .read-more:hover {
    background-color: var(--accent);
    color: var(--base-3) !important;
}

/* Remove default GP column padding */
.blog .generate-columns .inside-article,
.archive .generate-columns .inside-article {
    padding: 0;
    border: none;
}

/* Tablet — 2 columns */
@media (max-width: 768px) {
    .blog .post-image img,
    .archive .post-image img {
        height: 180px;
    }
    .blog .entry-title,
    .archive .entry-title {
        font-size: 1.1rem;
    }
}

/* Mobile — 1 column */
@media (max-width: 480px) {
    .blog .post-image img,
    .archive .post-image img {
        height: 200px;
    }
}

/* ======================================
   SINGLE POST — READING EXPERIENCE
   ====================================== */

/* Single post container */
.single .inside-article {
    max-width: 780px;
    margin: 0 auto;
    padding: 2.5rem 2rem;
}

/* Single post title */
.single .entry-title {
    font-size: 2.25rem;
    font-weight: 600;
    color: var(--secondary);
    line-height: 1.25;
    margin-bottom: 0.75rem;
}

/* Single post meta */
.single .entry-meta {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--contrast-2);
    padding-bottom: 1.5rem;
    margin-bottom: 2rem;
    border-bottom: 1px solid var(--accent-2);
}
.single .entry-meta a {
    color: var(--accent);
    text-decoration: none;
    font-weight: 600;
}

/* Post content typography */
.single .entry-content {
    font-size: 1rem;
    line-height: 1.85;
    color: var(--contrast);
}
.single .entry-content p {
    margin-bottom: 1.5rem;
}
.single .entry-content h2 {
    color: var(--secondary);
    font-size: 1.6rem;
    margin-top: 2.5rem;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--accent);
    display: inline-block;
}
.single .entry-content h3 {
    color: var(--secondary);
    font-size: 1.1rem;
    margin-top: 2rem;
    margin-bottom: 0.75rem;
    padding-left: 0.75rem;
    border-left: 3px solid var(--accent);
}
.single .entry-content ul,
.single .entry-content ol {
    padding-left: 1.5rem;
    margin-bottom: 1.5rem;
}
.single .entry-content li {
    margin-bottom: 0.5rem;
    line-height: 1.7;
}

/* Featured image */
.single .featured-image img {
    width: 100%;
    max-height: 400px;
    object-fit: cover;
}

/* Single Post Hero — hide default title, meta, and featured image */
.single .entry-header {
    display: none;
}
.single .featured-image,
.single .page-header-image-single,
.single .post-image {
    display: none;
}

/* Hide the first H1 in post content (duplicated from hero) */
.single .entry-content > h1:first-child {
    display: none;
}
/* Also handle Divi placeholder wrapper */
.single .entry-content > .wp-block-divi-placeholder:first-child {
    display: none;
}

/* Single post — white body background */
body.single {
    background-color: var(--base-3);
}

/* Single Post Hero — break out of container to full viewport width */
.single-post-hero {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    margin-bottom: 0;
    box-sizing: border-box;
}
.single-post-hero a:hover {
    background-color: var(--gold-hover) !important;
}

/* Single post — remove top padding since hero handles it */
.single .inside-article {
    padding-top: 1.5rem;
}

/* Mobile adjustments for single post hero */
@media (max-width: 768px) {
    .single-post-hero {
        padding: 4rem 1.5rem 3rem !important;
        min-height: 280px !important;
    }
    .single-post-hero h1 {
        font-size: 2rem !important;
    }
}

/* Post navigation */
.single .post-navigation {
    border-top: 1px solid var(--accent-2);
    padding-top: 1.5rem;
    margin-top: 2rem;
}
.single .post-navigation a {
    color: var(--accent);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.single .post-navigation a:hover {
    color: var(--secondary);
}

/* Mobile */
@media (max-width: 768px) {
    .single .entry-title {
        font-size: 1.75rem;
    }
    .single .inside-article {
        padding: 1.5rem 1rem;
    }
}

/* ======================================
   SIMILAR ARTICLES SECTION
   ====================================== */

.similar-articles-section {
    background-color: var(--base);
    padding: 3.5rem 0;
    margin-top: 3rem;
    border-top: 3px solid var(--accent);
}
.similar-articles-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem;
}

/* Heading */
.similar-articles-heading {
    font-family: "Playfair Display", serif;
    font-size: 2rem;
    font-weight: 600;
    color: var(--secondary);
    text-align: center;
    margin-bottom: 2.5rem;
    position: relative;
}
.similar-articles-heading::after {
    content: "";
    display: block;
    width: 60px;
    height: 2px;
    background: var(--accent);
    margin: 0.75rem auto 0;
}

/* 3-column grid */
.similar-articles-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}

/* Card */
.similar-article-card {
    background: var(--base-3);
    border: 1px solid var(--accent-2);
    border-radius: 4px;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.similar-article-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 30px rgba(9, 46, 71, 0.12);
    border-color: var(--accent);
}

/* Card image */
.similar-article-image {
    display: block;
    overflow: hidden;
}
.similar-article-image img {
    width: 100%;
    height: 180px;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}
.similar-article-card:hover .similar-article-image img {
    transform: scale(1.05);
}

/* Card content */
.similar-article-content {
    padding: 1.25rem 1.5rem 1.5rem;
}

/* Meta */
.similar-article-meta {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--contrast-2);
    margin-bottom: 0.5rem;
    font-family: "Poppins", sans-serif;
}

/* Title */
.similar-article-title {
    font-family: "Playfair Display", serif;
    font-size: 1.1rem;
    font-weight: 600;
    line-height: 1.35;
    margin-bottom: 0.5rem;
    text-transform: none;
}
.similar-article-title a {
    color: var(--secondary);
    text-decoration: none;
    transition: color 0.2s ease;
}
.similar-article-title a:hover {
    color: var(--accent);
}

/* Excerpt */
.similar-article-excerpt {
    color: var(--contrast-2);
    font-size: 0.85rem;
    line-height: 1.6;
    margin-bottom: 1rem;
}

/* READ MORE link */
.similar-article-link {
    display: inline-block;
    color: var(--accent);
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: border-color 0.2s ease;
}
.similar-article-link:hover {
    border-bottom-color: var(--accent);
}

/* Tablet: 2 columns */
@media (max-width: 768px) {
    .similar-articles-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.5rem;
    }
    .similar-article-image img {
        height: 160px;
    }
}

/* Mobile: 1 column */
@media (max-width: 480px) {
    .similar-articles-grid {
        grid-template-columns: 1fr;
    }
    .similar-articles-section {
        padding: 2.5rem 0;
    }
}

/* === BLOG CARD FIXES === */

/* Force 3-column grid on desktop */
.blog .generate-columns,
.archive .generate-columns {
    width: 33.3333% !important;
}

/* Image above title — reorder with flexbox */
.blog .inside-article,
.archive .inside-article {
    display: flex;
    flex-direction: column;
}
.blog .post-image,
.archive .post-image {
    order: -1;
}

/* Tablet: 2 columns */
@media (max-width: 768px) {
    .blog .generate-columns,
    .archive .generate-columns {
        width: 50% !important;
    }
}

/* Mobile: 1 column */
@media (max-width: 480px) {
    .blog .generate-columns,
    .archive .generate-columns {
        width: 100% !important;
    }
}

/* News & Articles - consistent image heights */
.wp-block-latest-posts__featured-image {
  width: 100%;
  height: 220px;
  overflow: hidden;
  margin-bottom: 0.75rem;
}
.wp-block-latest-posts__featured-image a {
  display: block;
  width: 100%;
  height: 100%;
}
.wp-block-latest-posts__featured-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media (max-width: 768px) {
  .wp-block-latest-posts__featured-image {
    height: 200px;
  }
}



/* Accreditation row - tighten spacing */
.accreditation-row {
  padding-top: 0.5rem !important;
  padding-bottom: 0.5rem !important;
}
.accreditation-row .wp-block-group {
  gap: 2rem !important;
}
@media (max-width: 1024px) {
  .accreditation-row {
    padding-top: 0.25rem !important;
    padding-bottom: 0 !important;
  }
}

/* Reduce gap between accreditation row and section below */
.accreditation-row + .wp-block-group {
  padding-top: 1.5rem !important;
}
.accreditation-row + .wp-block-group .wp-block-columns {
  margin-top: 0 !important;
}
.accreditation-row + .wp-block-group .wp-block-image {
  margin-bottom: 0 !important;
}
@media (max-width: 1024px) {
  .accreditation-row + .wp-block-group {
    padding-top: 1rem !important;
  }
}

/* === NEWS ARCHIVE — BACKGROUND & SPACING FIX === */

/* White content background matching other pages */
.blog .site-content,
.archive .site-content {
    background-color: var(--base-3);
}

/* Card grid gap — horizontal and vertical spacing */
.blog .generate-columns-container,
.archive .generate-columns-container {
    gap: 2rem;
    padding: 0 2rem 2rem;
}

/* Adjust card width to account for gap */
.blog .generate-columns,
.archive .generate-columns {
    width: calc(33.3333% - 1.4rem) !important;
}

/* Tablet: 2 columns with gap */
@media (max-width: 768px) {
    .blog .generate-columns,
    .archive .generate-columns {
        width: calc(50% - 1rem) !important;
    }
}

/* Mobile: 1 column */
@media (max-width: 480px) {
    .blog .generate-columns,
    .archive .generate-columns {
        width: 100% !important;
    }
    .blog .generate-columns-container,
    .archive .generate-columns-container {
        padding: 0 1rem 1rem;
    }
}


/* Accreditation row - keep all logos on one line */
.accreditation-row .wp-block-group {
  flex-wrap: nowrap !important;
  align-items: center !important;
}
.accreditation-row .wp-block-image {
  flex-shrink: 1;
  min-width: 0;
}
.accreditation-row .wp-block-image img {
  max-height: 70px;
  width: auto;
  height: auto;
}


/* === NEWS ARCHIVE — BODY BACKGROUND FIX === */
/* Match other pages: white body background so no navy shows at edges */
body.blog,
body.archive {
    background-color: var(--base-3) !important;
}


/* === NEWS HERO — BREADCRUMB STYLES === */
.news-hero-breadcrumbs a:hover {
    color: var(--base-3) !important;
}

/* === NEWS HERO — FULL WIDTH BREAKOUT === */
.blog .site-main > .wp-block-cover.alignfull,
.archive .site-main > .wp-block-cover.alignfull {
    margin-left: calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
    max-width: 100vw;
    width: 100vw;
}


/* === NEWS CARDS — TOP SPACING FROM HERO === */
.blog .generate-columns-container,
.archive .generate-columns-container {
    margin-top: 2.5rem;
}


/* ======================================
   NEWS CARDS — EDITORIAL REDESIGN
   ====================================== */

/* Card — refined shadow and border */
.blog article.post,
.archive article.post {
    border: none;
    border-radius: 0;
    box-shadow: 0 1px 3px rgba(9, 46, 71, 0.06);
    transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    position: relative;
    overflow: hidden;
}
.blog article.post::before,
.archive article.post::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--accent), var(--accent-2));
    z-index: 2;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.blog article.post:hover,
.archive article.post:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 40px rgba(9, 46, 71, 0.12), 0 8px 16px rgba(9, 46, 71, 0.06);
}
.blog article.post:hover::before,
.archive article.post:hover::before {
    transform: scaleX(1);
}

/* Image — taller with overlay gradient */
.blog .post-image img,
.archive .post-image img {
    height: 240px;
    transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.blog .post-image,
.archive .post-image {
    position: relative;
}
.blog .post-image::after,
.archive .post-image::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 40%;
    background: linear-gradient(to top, rgba(9, 46, 71, 0.08), transparent);
    pointer-events: none;
    z-index: 1;
}
.blog article.post:hover .post-image img,
.archive article.post:hover .post-image img {
    transform: scale(1.08);
}

/* Header area — more generous spacing */
.blog .entry-header,
.archive .entry-header {
    padding: 1.5rem 1.75rem 0;
}

/* Title — larger, more editorial */
.blog .entry-title,
.archive .entry-title {
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.3;
    margin-bottom: 0.75rem;
    letter-spacing: -0.01em;
}
.blog .entry-title a,
.archive .entry-title a {
    color: var(--primary);
    text-decoration: none;
    transition: color 0.3s ease;
    background-image: linear-gradient(var(--accent), var(--accent));
    background-size: 0% 2px;
    background-position: 0% 100%;
    background-repeat: no-repeat;
    transition: background-size 0.3s ease, color 0.3s ease;
    padding-bottom: 2px;
}
.blog article.post:hover .entry-title a,
.archive article.post:hover .entry-title a {
    color: var(--secondary);
    background-size: 100% 2px;
}

/* Date meta — refined small caps style */
.blog header .entry-meta,
.archive header .entry-meta {
    padding: 0;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--accent);
    font-weight: 600;
    margin-bottom: 0;
    order: -1;
    margin-bottom: 0.6rem;
}

/* Re-order: date above title */
.blog .entry-header,
.archive .entry-header {
    display: flex;
    flex-direction: column;
}

/* Excerpt — refined typography */
.blog .entry-summary,
.archive .entry-summary {
    padding: 0 1.75rem;
    color: var(--contrast-2);
    font-size: 0.9rem;
    line-height: 1.65;
    position: relative;
}
.blog .entry-summary::before,
.archive .entry-summary::before {
    content: "";
    display: block;
    width: 30px;
    height: 1px;
    background: var(--accent-2);
    margin-bottom: 0.75rem;
}

/* Footer meta — hide the default category icon/link, restyle as READ MORE */
.blog footer.entry-meta,
.archive footer.entry-meta {
    padding: 0.75rem 1.75rem 1.75rem;
}
.blog footer.entry-meta .cat-links,
.archive footer.entry-meta .cat-links {
    display: none;
}
.blog footer.entry-meta .read-more-container,
.archive footer.entry-meta .read-more-container {
    display: block;
}

/* READ MORE — elegant link with arrow */
.blog .read-more,
.archive .read-more {
    background-color: transparent;
    border: none;
    color: var(--accent) !important;
    padding: 0;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    text-decoration: none;
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    border-radius: 0;
    transition: color 0.3s ease, gap 0.3s ease;
}
.blog .read-more::after,
.archive .read-more::after {
    content: "2192";
    font-size: 1rem;
    transition: transform 0.3s ease;
}
.blog .read-more:hover,
.archive .read-more:hover {
    background-color: transparent;
    color: var(--primary) !important;
    gap: 0.75rem;
}
.blog .read-more:hover::after,
.archive .read-more:hover::after {
    transform: translateX(3px);
}


/* === NEWS CARDS — VISIBLE BORDER === */
.blog article.post,
.archive article.post {
    border: 1px solid var(--accent-2) !important;
}
.blog article.post:hover,
.archive article.post:hover {
    border-color: var(--accent) !important;
}


/* === CPTSD Symptom Cards (PTSD 3-column) === */
.cptsd-symptom-cards {
    gap: 1.5rem !important;
    margin-top: 2rem !important;
    margin-bottom: 2.5rem !important;
}
.cptsd-card {
    background: var(--base);
    border: 1px solid var(--accent-2);
    border-radius: 8px;
    padding: 2rem 1.5rem !important;
    text-align: center;
    position: relative;
    overflow: hidden;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.cptsd-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--accent), var(--accent-2));
}
.cptsd-card:hover {
    border-color: var(--accent);
    box-shadow: 0 4px 20px rgba(9, 46, 71, 0.08);
}
.cptsd-card h3 {
    font-family: "Playfair Display", serif;
    color: var(--primary) !important;
    font-size: 1.25rem !important;
    font-weight: 600;
    margin-bottom: 1.25rem !important;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--accent-2);
}
.cptsd-card .cptsd-card-item {
    color: var(--contrast);
    font-size: 0.95rem;
    line-height: 1.5;
    margin-bottom: 0.5rem !important;
    padding: 0.35rem 0;
    border-bottom: 1px solid rgba(221, 207, 175, 0.3);
}
.cptsd-card .cptsd-card-item:last-child {
    border-bottom: none;
    margin-bottom: 0 !important;
}

/* === CPTSD DSO Banners (3 horizontal) === */
.cptsd-dso-section {
    margin-top: 2rem !important;
    margin-bottom: 2.5rem !important;
}
.cptsd-dso-card {
    border-radius: 8px;
    padding: 2rem 2.5rem !important;
    margin-bottom: 1.25rem !important;
    border-left: 4px solid var(--accent);
    position: relative;
    overflow: hidden;
}
.cptsd-dso-card .wp-block-columns {
    margin-bottom: 0 !important;
    align-items: center !important;
}
.cptsd-dso-1 {
    background: var(--base);
}
.cptsd-dso-2 {
    background: var(--base-2);
}
.cptsd-dso-3 {
    background: linear-gradient(135deg, var(--base) 0%, var(--base-2) 100%);
}
.cptsd-dso-card h3 {
    font-family: "Playfair Display", serif;
    color: var(--primary) !important;
    font-size: 1.2rem !important;
    font-weight: 600;
    margin: 0 !important;
    line-height: 1.4;
}
.cptsd-dso-card .cptsd-dso-item {
    color: var(--contrast);
    font-size: 0.95rem;
    line-height: 1.5;
    margin-bottom: 0.4rem !important;
    padding-left: 1.25rem;
    position: relative;
}
.cptsd-dso-card .cptsd-dso-item::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--accent);
}
.cptsd-dso-card .cptsd-dso-item:last-child {
    margin-bottom: 0 !important;
}

/* Responsive: stack DSO cards on mobile */
@media (max-width: 768px) {
    .cptsd-dso-card {
        padding: 1.5rem !important;
    }
    .cptsd-dso-card .wp-block-columns {
        flex-direction: column !important;
    }
    .cptsd-dso-card .wp-block-column {
        flex-basis: 100% !important;
    }
    .cptsd-dso-card h3 {
        margin-bottom: 1rem !important;
        text-align: center;
    }
    .cptsd-symptom-cards {
        flex-direction: column !important;
    }
}


/* === Center all H2 headings === */
h2.wp-block-heading {
    text-align: center;
}

/* === Blog post Sources section === */
.entry-content .post-sources,
.entry-content .post-sources p,
.entry-content .post-sources span,
.entry-content .post-sources li {
    font-size: 0.75rem;
    font-weight: 300;
    line-height: 16.8px;
}
.entry-content .post-sources p strong {
    font-weight: 400;
}

/* === Contact Page Icons === */
.contact-info-card .contact-location,
.contact-info-card .contact-phone,
.contact-info-card .contact-email {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
}
.contact-info-card .contact-location::before,
.contact-info-card .contact-phone::before,
.contact-info-card .contact-email::before {
    content: "";
    display: inline-block;
    width: 22px;
    height: 22px;
    min-width: 22px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}
.contact-info-card .contact-location::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23BF993B%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z%27/%3E%3Ccircle cx=%2712%27 cy=%2710%27 r=%273%27/%3E%3C/svg%3E");
}
.contact-info-card .contact-phone::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23BF993B%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z%27/%3E%3C/svg%3E");
}
.contact-info-card .contact-email::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23BF993B%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z%27/%3E%3Cpolyline points=%2722,6 12,13 2,6%27/%3E%3C/svg%3E");
}


/* Blog post sources — gold separators + reduced spacing */
.entry-content .post-sources {
    margin: 0;
    padding: 0;
}
.entry-content .post-sources p {
    margin-top: 0;
    margin-bottom: 0.5rem;
}
.single-post .entry-content > hr.wp-block-separator {
    max-width: 180px;
    margin: 0.75rem auto;
    border-top: 2px solid var(--accent-2);
    opacity: 1;
}


/* Hero Doctify widget box */
.hero-doctify-box {
    display: block;
    width: fit-content;
    margin: 1.5rem auto 0;
    background-color: var(--base-3);
    border: 1px solid var(--accent-2);
    padding: 0.5rem 1.5rem;
}

/* Mobile: remove whitespace between header and hero */
@media (max-width: 768px) {
    .site-main-header + .entry-content > *:first-child,
    .site-content .entry-content > .wp-block-cover:first-child,
    .site-content .entry-content > .alignfull:first-child {
        margin-top: 0 !important;
    }
    .site-content {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }
    .site-main .entry-content {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }
    /* Remove GP default content padding on mobile */
    .separate-containers .inside-article {
        padding-top: 0 !important;
    }
}


/* Right column inner group: stretch to fill column on desktop */
.site-main-header .wp-block-column:last-child > .wp-block-group {
    flex: 1 1 100% !important;
    width: 100% !important;
}
/* Match gap between nav and CTA to nav item spacing */
.site-main-header .wp-block-column:last-child > .wp-block-group {
    gap: 3rem !important;
}


/* === FULL-WIDTH HEADER FIX === */
.site-main-header > .wp-block-group__inner-container,
.site-main-header > .is-layout-flow {
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Mobile: hamburger top-right, logo+name top-left */
@media (max-width: 768px) {
    .site-main-header {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }
    .site-main-header .wp-block-columns {
        display: flex !important;
        align-items: center !important;
        flex-wrap: nowrap !important;
    }
    /* Left column: take remaining space */
    .site-main-header .wp-block-column:first-child {
        flex: 1 1 0% !important;
        min-width: 0 !important;
    }
    /* Right column: shrink to hamburger only */
    .site-main-header .wp-block-column:last-child {
        flex: 0 0 48px !important;
        justify-content: flex-end !important;
        overflow: hidden !important;
    }
    /* Hide everything except hamburger in right column */
    .site-main-header .wp-block-column:last-child > .wp-block-group > *:not(.wp-block-navigation) {
        display: none !important;
    }
    /* Navigation block: just show the hamburger button */
    .site-main-header .wp-block-navigation {
        width: auto !important;
        min-width: 0 !important;
    }
    /* Logo and text sizing */
	.site-main-header .site-header-logo img {
		height: 40px !important;
		width: auto !important;
	}
    .site-main-header .wp-block-column:first-child p {
        font-size: 0.8rem !important;
        line-height: 1.2 !important;
    }
    .site-main-header .wp-block-column:first-child .wp-block-group {
        gap: 0.5rem !important;
    }
}


/* Mobile menu logo at top */
.mobile-menu-logo {
    border-bottom: 1px solid rgba(255,255,255,0.1);
    margin-bottom: 0.5rem;
}
.wp-block-navigation__responsive-container:not(.is-menu-open) .mobile-menu-logo {
    display: none;
}

/* Mobile overlay: close button top-right */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
}

/* Accreditation row - show logos on mobile, smaller */
@media (max-width: 1024px) {
  .accreditation-row .wp-block-group {
    gap: 0.75rem !important;
  }
  .accreditation-row .wp-block-image img {
    max-height: 55px;
  }
  .accreditation-doctify {
    flex-shrink: 1 !important;
    max-width: 160px;
  }
  .accreditation-doctify iframe,
  .accreditation-doctify img {
    max-width: 100% !important;
    height: auto !important;
  }
}
@media (max-width: 480px) {
  .accreditation-row {
    padding-left: 0.5rem !important;
    padding-right: 0.5rem !important;
  }
  .accreditation-row .wp-block-group {
    gap: 1.5rem !important;
  }
  .accreditation-doctify {
    transform: scale(0.75);
    transform-origin: center center;
  }
  .accreditation-row .wp-block-image img {
    max-height: 50px;
  }
}
/* Tablet: prevent logo text wrapping to 3 lines */
@media (min-width: 769px) and (max-width: 1100px) {
    .site-main-header .wp-block-column:first-child {
        flex-basis: 30% !important;
    }
    .site-main-header .wp-block-column:last-child {
        flex-basis: 70% !important;
    }
    .site-main-header .wp-block-column:last-child > .wp-block-group {
        gap: 1.5rem !important;
    }
    .site-main-header .wp-block-navigation {
        gap: 1.5rem !important;
    }
    .site-main-header .wp-block-navigation .wp-block-navigation__container {
        gap: 1.5rem !important;
    }
}


/* ==========================================================================
   UTILITY CLASSES — Reusable patterns for Gutenberg blocks
   Apply via block Advanced > Additional CSS Classes
   ========================================================================== */

/* Hero section — standard interior page hero */
.hero-section {
    padding: 6rem 2rem 4rem;
    min-height: 350px;
}
/* Hero section — taller variant (Home, ADHD Process) */
.hero-section--tall {
    padding: 8rem 2rem 4rem;
    min-height: 500px;
}

/* Standard content section padding */
.section-padded {
    padding: 4rem 2rem;
}

/* Section heading (Playfair Display) — use on H2 blocks */
.section-heading {
    font-size: 2rem;
    margin-top: 1.5rem;
    margin-bottom: 1rem;
}

/* Sub-heading — use on H3/H4 blocks */
.sub-heading {
    font-size: 1.3rem;
    margin-top: 1.5rem;
    margin-bottom: 0.5rem;
}

/* Gold separator — 50px centered line */
.gold-separator {
    width: 50px;
}

/* CTA button — uppercase with letter-spacing */
.cta-button {
    border-radius: 0;
    padding: 0.9rem 2rem;
    text-transform: uppercase;
    letter-spacing: 2px;
}
/* CTA button — slightly smaller variant */
.cta-button--sm {
    border-radius: 0;
    padding: 0.8rem 1.8rem;
    text-transform: uppercase;
    letter-spacing: 2px;
}

/* Hero title — large Playfair heading */
.hero-title {
    font-size: 3rem;
    letter-spacing: -0.02em;
}
/* Hero title — larger variant (Home) */
.hero-title--lg {
    font-size: 2.8rem;
}

/* Doctify widget in accreditation bar */
.accreditation-doctify {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

/* Gold HR above/below accreditations */
hr.wp-block-separator.accreditation-hr {
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    height: 3px !important;
    min-height: 3px !important;
    opacity: 1 !important;
    background-color: var(--accent) !important;
    box-shadow: -100vw 0 0 var(--accent), 100vw 0 0 var(--accent) !important;
}

/* Hero subtitle — Playfair Display */
.wp-block-cover .has-text-align-center[style*="font-style:italic"][style*="font-size:1.6rem"] {
    font-family: "Playfair Display", Georgia, "Times New Roman", serif;
}

/* News cards — "Read more" link after each excerpt */
.wp-block-latest-posts__post-excerpt::after {
    content: "Read more →";
    display: block;
    margin-top: 0.75rem;
    color: var(--accent);
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
}
.wp-block-latest-posts__list li {
    cursor: pointer;
}

/* "View all articles" link styling */
.wp-block-group a[href="/news/"] {
    text-decoration: none;
    color: var(--accent);
    transition: color 0.2s ease;
}
.wp-block-group a[href="/news/"]:hover {
    color: var(--gold-hover);
}
