/*
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, psychotherapists, psychiatrists, life coaches, mental health clinics, wellness centers, and healthcare professionals. It is equally suited to medical and health websites such as doctors, clinics, hospitals, dentists, nutritionists, dietitians, physiotherapy and rehabilitation centers, as well as mindfulness, meditation, yoga, spa, fitness, nonprofit and charity, consulting, coaching, agency, corporate, small business, personal blog, magazine, news, and portfolio sites. Built for Gutenberg and the WordPress Full Site Editor, it lets you create and customize every part of your website using blocks—header, footer, colors, typography, and layout—without writing a single line of code. The theme includes professionally designed templates and block patterns for showcasing therapy and counseling services, team members, client testimonials and reviews, appointment and booking information, FAQs, pricing, blog posts, archives, search results, 404 pages, and contact pages. Its clean, calming, minimal design builds trust and delivers an excellent browsing experience across desktops, laptops, tablets, and mobile devices. SWP Psychology is a fast, SEO friendly, mobile responsive, and accessibility minded theme that loads quickly and helps you reach more potential clients. It supports Global Styles, block patterns, custom block styles, editor styles, wide and full width blocks, custom logo, custom menus, custom colors and backgrounds, featured images, sticky posts, threaded comments, footer widgets, RTL languages, and is fully translation ready and compatible with the latest WordPress features. Whether you are building a private practice website, counseling center, psychology clinic, therapy blog, or wellness business, SWP Psychology gives you everything you need to launch a professional online presence with ease.
Version: 1.3
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, three-columns, four-columns, grid-layout, left-sidebar, right-sidebar, full-width-template, custom-colors, custom-menu, custom-logo, custom-header, custom-background, sticky-post, threaded-comments, rtl-language-support, featured-images, wide-blocks, editor-style, full-site-editing, block-patterns, block-styles, template-editing, footer-widgets, 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;
    }
}
