/*
Theme Name: SWP Psychology
Theme URI: https://scintillawpthemes.com/product/swp-psychology/
Author: scintillawpthemes
Author URI: https://scintillawpthemes.com/
Description: SWP Psychology is a modern, lightweight, and fully customizable WordPress block theme designed for psychologists, therapists, counselors, psychiatrists, mental health clinics, wellness coaches, and healthcare professionals. Built for the WordPress Site Editor, it allows you to create and customize every part of your website using blocks—without writing code. The theme includes professionally designed templates and block patterns for showcasing therapy services, team members, client testimonials, appointment information, FAQs, blog posts, contact pages, and more. Its clean and calming design helps build trust while providing an excellent browsing experience across desktops, tablets, and mobile devices. SWP Psychology is optimized for performance, accessibility, and SEO, helping your website load quickly and reach more potential clients. It supports Global Styles, responsive layouts, translation readiness, and full compatibility with the latest WordPress features. Whether you're creating a private practice website, counseling center, psychology clinic, or wellness business, SWP Psychology provides everything you need to build a professional online presence with ease.
Version: 1.1
Requires at least: 6.0
Requires PHP: 7.4
Tested up to: 7.0                                                                                   
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Text Domain: swp-psychology
Domain Path: /languages
Tags: blog, education, portfolio, one-column, two-columns, custom-colors, custom-menu, custom-logo, sticky-post, threaded-comments, right-sidebar, left-sidebar, grid-layout, custom-background, rtl-language-support, featured-images, wide-blocks, editor-style, full-site-editing, block-patterns, block-styles, template-editing, footer-widgets, custom-header, translation-ready
*/

/* Colors, type, spacing and block defaults live in theme.json.
   This file only carries what theme.json cannot express: positioning,
   pseudo-elements, hover motion and responsive overrides. */

html {
    scroll-behavior: smooth;
}
body {
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
h1, h2, h3, h4, h5 {
    overflow-wrap: break-word;
    word-break: normal;
}
.swp-single-post-template {
    padding: 0 20px !important;
}

/* ============================
   HEADER
   ============================ */
.swp-header-wrap {
    position: sticky;
    top: 0;
    z-index: 60;
}
.swp-header {
    background: rgba(253, 247, 238, 0.92) !important;
}
/* backdrop-filter makes this element the containing block for its fixed-position
   descendants, which traps the mobile overlay menu inside the header box.
   Only blur where the overlay is not used, and drop it while the menu is open. */
@media (min-width: 601px) {
    .swp-header {
        backdrop-filter: blur(14px);
        -webkit-backdrop-filter: blur(14px);
    }
    .swp-header:has(.wp-block-navigation__responsive-container.is-menu-open) {
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }
}
.swp-topbar,
.swp-topbar p,
.swp-topbar a {
    color: rgba(255, 255, 255, .78);
}
.swp-topbar a:hover {
    color: var(--wp--preset--color--white);
}
.swp-topbar-item {
    align-items: center !important;
}
.swp-topbar-item p {
    margin: 0;
    line-height: 1;
}
/* figure keeps a text line-box, which drops the icon a few px below the label */
.swp-topbar-ico {
    display: flex;
    align-items: center;
    line-height: 0;
}
.swp-topbar-ico img {
    display: block;
}
.swp-topbar-ico,
.swp-nav-phone-ico,
.swp-hero-float-ico,
.swp-point-ico,
.swp-award-ico {
    margin: 0 !important;
    flex: none;
}
.swp-topbar-socials {
    gap: 6px !important;
}
.swp-topbar-socials .wp-social-link {
    width: 26px !important;
    height: 26px !important;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, .15);
    background: transparent !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    margin: 0 !important;
    padding: 0 !important;
    transition: background .2s ease, border-color .2s ease;
}
.swp-topbar-socials .wp-social-link:hover {
    background: var(--wp--preset--color--accent) !important;
    border-color: var(--wp--preset--color--accent);
    transform: none;
}
.swp-topbar-socials .wp-social-link svg {
    width: 11px !important;
    height: 11px !important;
    fill: #fff !important;
}

/* Phone chip */
.swp-nav-phone-ico {
    background: var(--wp--preset--color--accent-wash);
    border-radius: 50%;
    display: grid;
    place-items: center;
}
.swp-nav-phone-ico img {
    padding: 10px;
}
.swp-nav-phone-num {
    margin: 0;
    line-height: 1;
    white-space: nowrap;
}

/* Header navigation */
@media (min-width: 1081px) {
    .swp-header-nav > .wp-block-navigation__container {
        flex-wrap: nowrap;
    }
}
.swp-header-nav .wp-block-navigation-item__content {
    padding: 8px 10px;
    border-radius: 999px;
    transition: color .2s ease, background .2s ease;
}
.swp-header-nav > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover,
.swp-header-nav .wp-block-navigation-item__content:focus {
    color: var(--wp--preset--color--accent-deep);
    background: var(--wp--preset--color--accent-wash);
}
.swp-header-nav .wp-block-navigation__submenu-icon {
    margin-left: 2px;
    opacity: .6;
}

/* Dropdown submenu — desktop */
@media (min-width: 1081px) {
    .swp-header-nav .wp-block-navigation__submenu-container {
        background: var(--wp--preset--color--white);
        border: 1px solid var(--wp--custom--rule-soft);
        border-radius: 16px;
        box-shadow: var(--wp--preset--shadow--soft-shadow);
        padding: 8px;
        min-width: 220px;
        margin-top: 10px;
    }
    /* bridge the gap so hover doesn't drop */
    .swp-header-nav .wp-block-navigation__submenu-container::before {
        content: "";
        position: absolute;
        top: -10px;
        left: 0;
        right: 0;
        height: 10px;
        background: transparent;
    }
    .swp-header-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
        display: block;
        padding: 9px 14px;
        border-radius: 10px;
        color: var(--wp--preset--color--body-text);
    }
    .swp-header-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
        background: var(--wp--preset--color--accent-wash);
        color: var(--wp--preset--color--accent-deep);
    }
}

/* Mobile overlay menu */
.swp-header-nav .wp-block-navigation__responsive-container.is-menu-open {
    background: var(--wp--preset--color--light-background);
    padding-top: 80px;
}
.swp-header-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    gap: 0;
}
.swp-header-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
    width: 100%;
    border-bottom: 1px solid var(--wp--custom--rule-soft);
}
.swp-header-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    padding: 14px 4px;
    border-radius: 0;
    font-size: 1.1rem;
    font-weight: 600;
}
.swp-header-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
    position: static;
    background: transparent;
    border: none;
    box-shadow: none;
    padding: 0 0 0 14px;
    margin: 0;
    min-width: 0;
}

/* Header responsive.
   Core switches the navigation to its overlay at 600px, but this menu carries
   eight top-level items — below ~1080px they wrap onto a second row and squeeze
   the phone chip and appointment button. Force the overlay earlier instead. */
@media (max-width: 1080px) {
    .swp-header-nav .wp-block-navigation__responsive-container:not(.is-menu-open) {
        display: none;
    }
    .swp-header-nav .wp-block-navigation__responsive-container-open:not(.always-shown) {
        display: flex;
    }
    /* Logo left, then actions and the hamburger grouped on the right. */
    .swp-header > .wp-block-group {
        justify-content: flex-start !important;
    }
    .swp-header-logo {
        margin-right: auto !important;
    }
    .swp-header-actions {
        order: 2;
    }
    .swp-header-nav {
        order: 3;
    }
}
/* The logo/nav/actions row must never wrap or let its children collapse. */
.swp-header > .wp-block-group {
    flex-wrap: nowrap !important;
    min-width: 0;
}
.swp-header-logo {
    flex: 0 1 auto;
    min-width: 0;
}
.swp-header-logo img {
    max-width: 100%;
    height: auto;
}
.swp-header-actions {
    flex: 0 0 auto;
}
.swp-btn-dark .wp-block-button__link {
    white-space: nowrap;
}
@media (max-width: 900px) {
    .swp-nav-phone {
        display: none !important;
    }
}
@media (max-width: 600px) {
    .swp-header-logo img {
        width: 150px;
    }
    .swp-header-actions {
        gap: 10px !important;
    }
    .swp-btn-dark .wp-block-button__link {
        padding: 10px 18px;
        font-size: 0.85rem;
    }
}
@media (max-width: 420px) {
    .swp-btn-dark {
        display: none;
    }
}
/* Contact topbar carries an address, an email and three social icons — below the
   core mobile breakpoint it cannot fit on one row, matching the pattern's intent
   of hiding it on mobile. */
@media (max-width: 781px) {
    .swp-topbar-socials {
        display: none !important;
    }
}
@media (max-width: 600px) {
    .swp-topbar {
        display: none;
    }
}

/* ============================
   BUTTONS
   ============================ */
.wp-block-button__link {
    transition: transform .25s ease, background .25s ease, color .25s ease, box-shadow .25s ease;
}
.swp-btn-dark .wp-block-button__link:hover {
    background-color: var(--wp--preset--color--navy-deep) !important;
}
.swp-btn-ghost .wp-block-button__link {
    background-color: transparent !important;
    color: var(--wp--preset--color--accent-deep) !important;
    border: 1px solid var(--wp--preset--color--accent) !important;
    box-shadow: none !important;
}
.swp-btn-ghost .wp-block-button__link:hover {
    background-color: var(--wp--preset--color--accent) !important;
    color: var(--wp--preset--color--white) !important;
}

/* ============================
   HERO
   ============================ */
.swp-hero-shell {
    position: relative;
    overflow: hidden;
}
.swp-hero-shell::before {
    content: "";
    position: absolute;
    top: -80px;
    right: -80px;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    background: radial-gradient(circle, var(--wp--preset--color--accent-wash), transparent 70%);
    pointer-events: none;
}
.swp-hero-shell > .wp-block-columns,
.swp-hero-shell > .swp-hero-meta {
    position: relative;
}
.swp-hero-visual {
    position: relative;
}
.swp-hero-img {
    margin: 0;
}
.swp-hero-visual .swp-hero-float {
    position: absolute;
    left: -14px;
    top: 30%;
    width: auto;
    max-width: 260px;
    z-index: 2;
    margin: 0 !important;
}
.swp-hero-float p,
.swp-hero-float h4 {
    margin: 0;
}
.swp-hero-float-ico {
    background: var(--wp--preset--color--accent-wash);
    border-radius: 50%;
    display: grid;
    place-items: center;
}
.swp-hero-float-ico img {
    padding: 9px;
}
.swp-hero-visual .swp-hero-badge {
    position: absolute;
    right: -12px;
    bottom: 30px;
    width: 130px;
    height: 170px;
    z-index: 2;
    margin: 0 !important;
    overflow: hidden;
    border: 6px solid var(--wp--preset--color--white);
    border-radius: 80px;
    background: var(--wp--preset--color--white);
    box-shadow: var(--wp--preset--shadow--medium-shadow);
}
.swp-hero-visual .swp-hero-badge img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 74px;
}
.swp-hero-trust p {
    margin: 0;
}
.swp-hero-meta .wp-block-heading,
.swp-hero-meta p {
    margin: 0;
}

/* ============================
   ABOUT
   ============================ */
.swp-about-visual {
    position: relative;
}
.swp-about-img {
    margin: 0;
}
.swp-about-visual .swp-award {
    position: absolute;
    top: 30px;
    right: -26px;
    width: 148px;
    height: 148px;
    max-width: 148px;
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    z-index: 2;
    margin: 0 !important;
}
.swp-award .wp-block-heading,
.swp-award p {
    margin: 0;
}
.swp-award-ico {
    background: var(--wp--preset--color--accent-wash);
    border-radius: 50%;
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    margin-bottom: 6px !important;
}
.swp-point-ico {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
}
.swp-point-ico img {
    padding: 12px;
}
.swp-about-point {
    align-items: flex-start;
}
.swp-about-point .wp-block-heading,
.swp-about-point p {
    margin: 0;
}
.swp-clients-stack .swp-client-avatar {
    margin: 0 0 0 -12px !important;
    border: 2px solid var(--wp--preset--color--dark-background);
    border-radius: 50%;
    flex: none;
}
.swp-clients-stack .swp-client-avatar:first-child {
    margin-left: 0 !important;
}
.swp-clients-stack .swp-client-avatar img {
    border-radius: 50%;
}
.swp-client-more {
    padding: 0px;
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    text-align: center;
}
.swp-about-footer .wp-block-heading,
.swp-about-footer p {
    margin: 0;
}

/* ============================
   BLOG / POST CARDS
   ============================ */
.swp-blog-head {
    align-items: flex-end;
}
.swp-post-card {
    overflow: hidden;
    transition: transform .3s ease, box-shadow .3s ease;
}
.swp-post-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--wp--preset--shadow--soft-shadow);
}
.swp-post-thumb {
    position: relative;
    overflow: hidden;
    border-radius: 14px;
    background: var(--wp--preset--color--accent-wash);
}
.swp-post-thumb .wp-block-post-featured-image {
    margin: 0;
}
.swp-post-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}
.swp-post-card:hover .swp-post-thumb img {
    transform: scale(1.04);
}
.swp-post-tag {
    position: absolute;
    top: 14px;
    left: 14px;
    z-index: 2;
    margin: 0 !important;
}
.swp-post-body {
    text-align: left;
}
.swp-post-meta,
.swp-post-excerpt {
    margin: 0 !important;
}
.swp-post-more a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.swp-post-card:hover .swp-post-more a {
    color: var(--wp--preset--color--accent) !important;
}
.swp-pagination {
    margin-top: 20px;
}

/* ============================
   NEWSLETTER
   ============================ */
.swp-news-inner {
    position: relative;
    overflow: hidden;
}
.swp-news-inner::before {
    content: "";
    position: absolute;
    right: -80px;
    top: -80px;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(142, 125, 208, .35), transparent 70%);
    pointer-events: none;
}
.swp-news-inner > .wp-block-columns {
    position: relative;
    z-index: 1;
}
.swp-news-inner p,
.swp-news-copy {
    color: var(--wp--preset--color--white);
    max-width: 420px;
}
.swp-news-form {
    margin: 0;
}
.swp-news-form .wp-block-search__inside-wrapper {
    display: flex;
    align-items: center;
    gap: 6px;
    background: var(--wp--preset--color--white);
    border: none !important;
    border-radius: 999px;
    padding: 6px;
    overflow: hidden;
}
.swp-news-form .wp-block-search__input {
    flex: 1 1 auto;
    min-width: 0;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 12px 10px 12px 18px;
    color: var(--wp--preset--color--heading);
}
.swp-news-form .wp-block-search__input::placeholder {
    color: var(--wp--preset--color--muted);
}
.swp-news-form .wp-block-search__input:focus {
    outline: none;
}
.swp-news-form .wp-block-search__button {
    flex: 0 0 auto;
    background: var(--wp--preset--color--accent) !important;
    color: var(--wp--preset--color--white) !important;
    border: none !important;
    border-radius: 999px !important;
    box-shadow: none !important;
    padding: 13px 24px;
    margin: 0 !important;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    transition: background .25s ease;
}
.swp-news-form .wp-block-search__button:hover {
    background: var(--wp--preset--color--accent-deep) !important;
}

/* ============================
   FOOTER
   ============================ */
.swp-footer p,
.swp-footer-about,
.swp-footer-about a,
.swp-subfoot-text,
.swp-subfoot-text a {
    color: var(--wp--preset--color--white);
}
.swp-footer-about a:hover,
.swp-subfoot-text a:hover {
    color: var(--wp--preset--color--accent-soft);
}
.swp-foot-contact {
    align-items: flex-start;
}
.swp-foot-contact p {
    margin: 0;
}
/* match the first line box of the small-size paragraph (root line-height 1.7)
   so the icon optically centers on line one, address rows included */
.swp-foot-ico {
    flex: none;
    align-self: flex-start;
    margin: 0 !important;
    display: flex;
    align-items: center;
    height: calc(var(--wp--preset--font-size--small) * 1.7);
}
.swp-foot-ico img {
    display: block;
}
.swp-foot-nav .wp-block-navigation-item__content {
    color: var(--wp--preset--color--peach-soft);
    padding: 6px 0;
    transition: color .2s ease, padding .2s ease;
}
.swp-foot-nav .wp-block-navigation-item__content:hover {
    color: var(--wp--preset--color--accent-soft);
    padding-left: 5px;
}
.swp-foot-socials {
    gap: 8px !important;
}
.swp-foot-socials .wp-social-link {
    width: 38px !important;
    height: 38px !important;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, .15);
    background: transparent !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    margin: 0 !important;
    padding: 0 !important;
    transition: background .2s ease, border-color .2s ease;
}
.swp-foot-socials .wp-social-link:hover {
    background: var(--wp--preset--color--accent) !important;
    border-color: var(--wp--preset--color--accent);
    transform: none;
}
.swp-foot-socials .wp-social-link svg {
    width: 14px !important;
    height: 14px !important;
    fill: #fff !important;
}

/* ============================
   404 / SEARCH FIELD
   ============================ */
.swp-404-search .wp-block-search__inside-wrapper {
    background: var(--wp--preset--color--white);
    border: 1px solid var(--wp--custom--rule);
    border-radius: 999px;
    padding: 6px;
}
.swp-404-search .wp-block-search__input {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 12px 20px;
}
.swp-404-search .wp-block-search__input:focus {
    outline: none;
}
.swp-404-search .wp-block-search__button {
    background: var(--wp--preset--color--accent) !important;
    color: var(--wp--preset--color--white) !important;
    border: none !important;
    border-radius: 999px !important;
    padding: 12px 24px;
    margin: 0 !important;
    font-weight: 600;
}

/* ============================
   Banner Crumbs
   ============================ */

.swp-crumbs {
    max-width: fit-content;
}

/* ============================
   RESPONSIVE
   ============================ */
@media (max-width: 1024px) {
    .swp-hero-float {
        display: none;
    }
    .swp-hero-meta {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    .swp-about-visual .swp-award {
        right: 10px;
        top: 16px;
        width: 130px;
        height: 130px;
        max-width: 130px;
    }
}
@media (max-width: 768px) {
    .swp-section {
        padding-top: 54px !important;
        padding-bottom: 54px !important;
    }
    .swp-footer {
        padding-top: 54px !important;
    }
    .swp-newsletter {
        padding-bottom: 54px !important;
    }
    .swp-hero-badge {
        display: none;
    }
    .swp-hero-meta {
        grid-template-columns: 1fr 1fr !important;
    }
    .swp-about-visual .swp-award {
        right: -10px;
        top: 12px;
        width: 112px;
        height: 112px;
        max-width: 112px;
        padding: 12px !important;
    }
    .swp-award-ico {
        width: 26px;
        height: 26px;
        margin-bottom: 4px !important;
    }
    .swp-blog-head {
        align-items: flex-start;
    }
    .swp-subfoot {
        justify-content: center;
        text-align: center;
    }
    .footer-columns-parent {
        gap: 32px;
    }
}

/* Tablet footer columns */
@media (min-width: 768px) and (max-width: 1024px) {
    .footer-columns-parent {
        display: flex !important;
        flex-wrap: wrap !important;
    }
    .wp-block-columns:not(.is-not-stacked-on-mobile) > .footer-columns-child {
        flex-basis: 45% !important;
        margin-bottom: 20px !important;
        flex-grow: unset !important;
    }
}
