/*
Theme Name:  RMW Theme
Theme URI:   https://www.robynmerkelwalsh.com
Description: Custom parent theme for Robyn Merkel-Walsh, replicating the look and feel of the live Wix site.
Author:      MKAdvantage
Author URI:  https://www.mkadvantage.com
Version:     1.0.0
License:     GNU General Public License v2 or later
Tags:        one-column, custom-header, custom-menu, custom-logo, full-width-template
Text Domain: rmw
*/

/* ================================================================
   BRAND COLOR PALETTE  (extracted directly from www.robynmerkelwalsh.com Wix CSS)
   --color_0  : #FFFFFF  white
   --color_3  : #ED1C24  brand red (logo)
   --color_4  : #0088CB  blue accent
   --color_11 : #F0FAFF  page background (very light blue)
   --color_12 : #CADDE6  light blue
   --color_13 : #9AAEB8  medium blue-gray
   --color_14 : #515E65  dark blue-gray (nav hover)
   --color_15 : #292F33  primary dark text
   --color_18 : #00E689  accent green (CTAs / active)
   --color_35 : #102B43  deep navy
   --color_44 : #205685  dark blue
================================================================ */

/* ================================================================
   GOOGLE FONTS  (loaded in functions.php via wp_enqueue_style)
   - Libre Baskerville : headings  (matches Wix)
   - Questrial         : body text (matches Wix, proxima-nova substitute)
   - Lulo Clean        : navigation all-caps (self-hosted in /fonts/)
================================================================ */

/* Lulo Clean – font files not available; Squada One (Google Fonts) is used as equivalent. */

/* ----------------------------------------------------------------
   RESET / BASE
---------------------------------------------------------------- */
*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
}

body {
    background-color: #FFFFFF;
    color: #292F33;
    font-family: 'Questrial', Arial, sans-serif;
    font-size: 16px;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: #00E689;
    text-decoration: none;
    transition: color 0.3s ease;
}

a:hover {
    color: #009955;
}

p { margin-bottom: 1em; }
p:last-child { margin-bottom: 0; }

h1, h2, h3, h4, h5, h6 {
    font-family: 'Libre Baskerville', Georgia, serif;
    color: #292F33;
    line-height: 1.3;
    margin-bottom: 0.6em;
}

h1, h2, h3 {
    color: #E21C21;
}

p {
    color: #000000;
}

h1 { font-size: 2.4em; }
h2 { font-size: 2em; }
h3 { font-size: 1.6em; }
h4 { font-size: 1.3em; }
h5 { font-size: 1.1em; }
h6 { font-size: 1em; }

ul, ol { padding-left: 1.5em; }
ul li, ol li { margin-bottom: 0.3em; }

strong, b { font-weight: 700; }
em, i { font-style: italic; }

/* ----------------------------------------------------------------
   LAYOUT WRAPPERS
---------------------------------------------------------------- */
.rmw-container {
    max-width: 980px;
    margin: 0 auto;
    padding: 0 20px;
    width: 100%;
}

.rmw-container-wide {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    width: 100%;
}

.site-wrapper {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.site-main {
    flex: 1 0 auto;
}

/* ----------------------------------------------------------------
   HEADER
---------------------------------------------------------------- */
#site-header {
    background: #FFFFFF;
    width: 100%;
}

.header-inner {
    max-width: 980px;
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 100px;
}

/* Logo */
.site-logo {
    flex-shrink: 0;
}

.site-logo a {
    display: block;
    line-height: 0;
}

.site-logo img {
    width: 160px;
    height: auto;
}

.site-logo .site-name {
    font-family: 'Libre Baskerville', Georgia, serif;
    font-size: 1.4em;
    font-weight: 700;
    color: #292F33;
    line-height: 1.2;
}

/* ----------------------------------------------------------------
   PRIMARY NAVIGATION
---------------------------------------------------------------- */
#site-nav {
    flex: 1;
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

/* Desktop nav */
.nav-primary {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    align-items: stretch;
    height: 50px;
}

.nav-primary > li {
    position: relative;
    display: flex;
    align-items: center;
    border-left: 1px solid rgba(41, 47, 51, 0.18);
}

.nav-primary > li:first-child {
    border-left: none;
}

.nav-primary > li > a {
    display: flex;
    align-items: center;
    height: 50px;
    padding: 0 12px;
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    font-size: 15px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: #292F33;
    white-space: nowrap;
    transition: color 0.3s ease;
}

.nav-primary > li > a:hover,
.nav-primary > li:hover > a {
    color: #515E65;
}

.nav-primary > li.current-menu-item > a,
.nav-primary > li.current-menu-ancestor > a,
.nav-primary > li.current-page-ancestor > a {
    color: rgb(255, 64, 64);
}

/* Dropdown indicator hidden */
.nav-primary > li.menu-item-has-children > a::after {
    content: none;
}

/* Dropdown sub-menu */
.nav-primary .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    list-style: none;
    margin: 0;
    padding: 6px 0;
    background: #F0FAFF;
    border-radius: 5px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
    min-width: 220px;
    z-index: 9999;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease;
    margin-top: 4px;
}

.nav-primary > li:hover .sub-menu {
    opacity: 1;
    visibility: visible;
}

.nav-primary .sub-menu li {
    display: block;
    border-left: none;
}

.nav-primary .sub-menu li a {
    display: block;
    padding: 8px 16px;
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    font-size: 16px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #292F33;
    white-space: nowrap;
    transition: color 0.2s ease, background-color 0.2s ease;
}

.nav-primary .sub-menu li a:hover {
    color: #515E65;
    background-color: rgba(202, 221, 230, 0.4);
}

/* Mobile nav toggle */
.nav-toggle {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 10px;
    flex-direction: column;
    justify-content: space-between;
    width: 36px;
    height: 30px;
}

.nav-toggle span {
    display: block;
    width: 100%;
    height: 3px;
    background: #292F33;
    border-radius: 2px;
    transition: all 0.3s ease;
}

/* Mobile nav open state */
.nav-toggle.open span:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
}
.nav-toggle.open span:nth-child(2) {
    opacity: 0;
}
.nav-toggle.open span:nth-child(3) {
    transform: translateY(-14px) rotate(-45deg);
}

/* ----------------------------------------------------------------
   PAGE MAIN CONTENT
---------------------------------------------------------------- */
.site-main {
    width: 100%;
}

/* For standard pages (non-builder) */
.page-content-wrap {
    max-width: 980px;
    margin: 40px auto;
    padding: 0 20px;
}

/* ----------------------------------------------------------------
   FOOTER
---------------------------------------------------------------- */
#site-footer {
    background-color: #515E65;
    color: #FFFFFF;
    font-family: 'Questrial', Arial, sans-serif;
    font-size: 15px;
    text-align: center;
    line-height: 1.7;
}

.footer-top {
    padding: 40px 20px 30px;
    max-width: 980px;
    margin: 0 auto;
}

.footer-badges {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 25px;
    margin-bottom: 30px;
    flex-wrap: wrap;
    background: #ffffff;
    border-radius: 16px;
    padding: 20px 30px;
    box-shadow: 5px 5px 18px rgba(150, 150, 150, 0.45);
}

.footer-badge {
    height: 150px;
    width: auto;
    display: block;
}

.footer-top p {
    margin-bottom: 0.5em;
    color: #FFFFFF;
}

.footer-top a {
    color: #9AAEB8;
    text-decoration: underline;
}

.footer-top a:hover {
    color: #FFFFFF;
}

.footer-credentials {
    white-space: nowrap;
}

.footer-contact {
    margin-top: 16px;
    font-size: 14px;
    color: rgba(255, 255, 255, 0.8);
}

.footer-contact a {
    color: rgba(255, 255, 255, 0.8);
}

.footer-contact a:hover {
    color: #FFFFFF;
}

.footer-bottom {
    background-color: #1e252a;
    padding: 14px 20px;
    font-size: 13px;
    color: rgba(255, 255, 255, 0.6);
}

.footer-bottom a {
    color: rgba(255, 255, 255, 0.6);
    text-decoration: none;
}

.footer-bottom a:hover {
    color: #FFFFFF;
}

.footer-bottom-inner {
    max-width: 980px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

/* ----------------------------------------------------------------
   SITEORIGIN PAGE BUILDER OVERRIDES
---------------------------------------------------------------- */

/* Make SO builder panels flush with page edges */
.panel-grid {
    margin: 0 !important;
}

/* Panel / row / cell full width */
.so-panel,
.panel-row-style,
.panel-grid-cell {
    width: 100% !important;
}

/* Ensure SO Hero widget headings get correct fonts */
.siteorigin-widget-hero h1,
.siteorigin-widget-hero h2,
.siteorigin-widget-hero h3 {
    font-family: 'Libre Baskerville', Georgia, serif;
}

/* Content area for builder pages: full width, no extra padding */
.builder-page .site-main {
    padding: 0;
}

/* ----------------------------------------------------------------
   BUTTONS
---------------------------------------------------------------- */
.btn,
.button,
input[type="submit"],
button[type="submit"] {
    display: inline-block;
    padding: 10px 24px;
    background: transparent;
    color: #E21C21;
    font-family: 'Questrial', sans-serif;
    font-weight: 400;
    font-size: 14px;
    border-top: 2px solid transparent;
    border-left: 2px solid transparent;
    border-bottom: 2px solid #E21C21;
    border-right: 2px solid #E21C21;
    border-radius: 0;
    cursor: pointer;
    transition: background-color 0.3s ease, color 0.3s ease;
    text-decoration: none;
}

.btn:hover,
.button:hover,
input[type="submit"]:hover,
button[type="submit"]:hover {
    background-color: #E21C21;
    color: #ffffff;
}


/* ----------------------------------------------------------------
   FORMS
---------------------------------------------------------------- */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="search"],
input[type="number"],
textarea,
select {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid #CADDE6;
    border-radius: 4px;
    font-family: 'Questrial', sans-serif;
    font-size: 15px;
    color: #292F33;
    background: #FFFFFF;
    transition: border-color 0.25s ease;
}

input:focus,
textarea:focus,
select:focus {
    outline: none;
    border-color: #00E689;
}

/* ----------------------------------------------------------------
   RESPONSIVE – MOBILE
---------------------------------------------------------------- */
@media (max-width: 900px) {
    .header-inner {
        min-height: 70px;
        padding: 0 16px;
        position: relative;
        justify-content: center;
    }

    /* Center logo in the header bar; burger stays right via absolute */
    .site-logo {
        position: static;
    }

    .site-logo img {
        width: 110px;
    }

    /* Show burger — absolutely positioned so it doesn't shift the logo */
    .nav-toggle {
        display: flex;
        position: absolute;
        right: 16px;
        top: 50%;
        transform: translateY(-50%);
    }

    /* Hide desktop nav */
    #site-nav {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: #FFFFFF;
        box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
        padding: 10px 0;
        z-index: 999;
    }

    #site-header {
        position: relative;
    }

    #site-nav.nav-open {
        display: block;
    }

    .nav-primary {
        flex-direction: column;
        height: auto;
    }

    .nav-primary > li {
        border-left: none;
        border-top: 1px solid rgba(41, 47, 51, 0.1);
    }

    .nav-primary > li > a {
        height: auto;
        padding: 14px 20px;
        font-size: 15px;
    }

    /* Sub-menu: hidden by default on mobile; revealed by .submenu-open (JS) */
    .nav-primary .sub-menu {
        position: static;
        opacity: 0;
        visibility: hidden;
        max-height: 0;
        overflow: hidden;
        box-shadow: none;
        border-radius: 0;
        margin: 0;
        min-width: 0;
        width: 100%;
        background: #E8F5FC;
        padding: 0;
        border-left: 3px solid #E21C21;
        transition: opacity 0.2s ease, max-height 0.3s ease;
    }

    /* Revealed state */
    .nav-primary > li.submenu-open > .sub-menu {
        opacity: 1;
        visibility: visible;
        max-height: 400px;
        padding: 4px 0;
    }

    .nav-primary .sub-menu li a {
        padding: 12px 20px;
        font-size: 14px;
        white-space: normal;
    }

    /* Parent items with children: down-arrow, rotates when open */
    .nav-primary > li.menu-item-has-children > a::after {
        content: ' ▾';
        font-size: 10px;
        opacity: 0.6;
        display: inline-block;
        transition: transform 0.2s ease;
    }

    .nav-primary > li.menu-item-has-children.submenu-open > a::after {
        transform: rotate(180deg);
    }
}

@media (max-width: 480px) {
    h1 { font-size: 1.8em; }
    h2 { font-size: 1.5em; }
    h3 { font-size: 1.3em; }
}

/* ----------------------------------------------------------------
   RMW HERO SECTION  (used in SiteOrigin text widgets on dark rows)
---------------------------------------------------------------- */
.rmw-hero {
    padding: 80px 40px;
    text-align: left;
    max-width: 860px;
    margin: 0 auto;
}

.rmw-hero h1,
.rmw-hero h2,
.rmw-hero h3 {
    color: #E21C21;
    font-family: 'Libre Baskerville', Georgia, serif;
}

.rmw-hero h1 {
    font-size: 2.6em;
    margin-bottom: 0.3em;
}

.rmw-hero h2 {
    font-size: 1.4em;
    font-weight: 400;
    margin-bottom: 1em;
    color: rgba(255, 255, 255, 0.85);
    font-family: 'Questrial', sans-serif;
}

.rmw-hero p {
    color: rgba(255, 255, 255, 0.9);
    font-size: 1.05em;
    max-width: 600px;
    margin-bottom: 1.5em;
}

.rmw-hero a.rmw-btn {
    display: inline-block;
    padding: 14px 36px;
    font-family: 'Questrial', sans-serif;
    font-weight: 700;
    font-size: 15px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: 4px;
    text-decoration: none;
    margin-right: 10px;
    margin-bottom: 10px;
    transition: opacity 0.25s ease;
}

.rmw-hero a.rmw-btn:hover {
    opacity: 0.85;
}

/* ----------------------------------------------------------------
   RMW ANNOUNCEMENT BAR  (red announcement row at top)
---------------------------------------------------------------- */
.rmw-announcement {
    color: #FFFFFF;
    text-align: center;
    font-family: 'Questrial', sans-serif;
    font-size: 15px;
    padding: 8px 20px;
}

.rmw-announcement a {
    color: #FFFFFF;
    text-decoration: underline;
}

.rmw-announcement a:hover {
    color: rgba(255, 255, 255, 0.75);
}

/* ----------------------------------------------------------------
   SITEORIGIN DARK-BACKGROUND ROWS
   Headings are red (#E21C21) site-wide per design spec.
   Keep only p and a overrides for readability on dark rows.
---------------------------------------------------------------- */
.panel-row-style[style*="background-color:#205685"] p,
.panel-row-style[style*="background-color: #205685"] p {
    color: #FFFFFF;
}

.panel-row-style[style*="background-color:#292F33"] p {
    color: #FFFFFF;
}

.panel-row-style[style*="background-color:#102B43"] p {
    color: #FFFFFF;
}

.panel-row-style[style*="background-color:#ED1C24"] p,
.panel-row-style[style*="background-color:#ED1C24"] a {
    color: #FFFFFF;
}

/* ----------------------------------------------------------------
   SITEORIGIN GENERAL WIDGET OVERRIDES
---------------------------------------------------------------- */

/* SO panels full-width stretch wrapper */
.siteorigin-panels-stretch {
    width: 100%;
}

/* SO panel layout – remove default outer margin */
.panel-layout {
    margin: 0 auto;
}

/* Panel row padding defaults */
.panel-row-style {
    width: 100%;
}

/* SO CTA widget */
.siteorigin-widget-cta h3 {
    font-family: 'Libre Baskerville', Georgia, serif;
}

/* Ensure hero section rows have no margin top/bottom gap */
#pg-4446-0,
#pg-4446-1 {
    margin-bottom: 0 !important;
}

/* ----------------------------------------------------------------
   SECTION HEADING STYLE  (used in content sections)
---------------------------------------------------------------- */
.rmw-section-heading {
    font-family: 'Libre Baskerville', Georgia, serif;
    font-size: 2em;
    color: #292F33;
    text-align: center;
    margin-bottom: 0.5em;
}

.rmw-section-divider {
    width: 60px;
    height: 4px;
    background: #9AAEB8;
    margin: 0 auto 2em;
    border-radius: 2px;
}

/* ----------------------------------------------------------------
   CONTACT FORM 7 OVERRIDES
---------------------------------------------------------------- */
.wpcf7-form {
    max-width: 680px;
    margin: 0 auto;
}

.wpcf7-form input,
.wpcf7-form textarea,
.wpcf7-form select {
    border: 1px solid #CADDE6;
    border-radius: 4px;
    padding: 10px 14px;
    font-family: 'Questrial', sans-serif;
    font-size: 15px;
    color: #292F33;
    width: 100%;
    margin-bottom: 12px;
}

.wpcf7-form input[type="submit"] {
    background: #ED1C24;
    color: #FFFFFF;
    font-family: 'Questrial', sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    border: none;
    padding: 14px 36px;
    cursor: pointer;
    border-radius: 4px;
    transition: background-color 0.25s ease;
}

.wpcf7-form input[type="submit"]:hover {
    background: #c81018;
}

/* ----------------------------------------------------------------
   FOOTER NAV LIST
---------------------------------------------------------------- */
.footer-nav-list {
    list-style: none;
    padding: 0;
    margin: 16px 0 0;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 16px;
}

.footer-nav-list li a {
    color: #FFFFFF;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-family: 'Squada One', 'Poppins', sans-serif;
    font-weight: 700;
    text-decoration: none;
}

.footer-nav-list li a:hover {
    color: #FFFFFF;
}

/* ----------------------------------------------------------------
   FOOTER MAP
---------------------------------------------------------------- */
#footer-map {
    width: 100%;
    height: 400px;
    display: block;
    margin: 0;
    padding: 0;
}

/* ----------------------------------------------------------------
   SOCIAL ICONS AREA  (in footer)
---------------------------------------------------------------- */
.footer-social {
    margin-top: 16px;
}

.footer-social a {
    display: inline-block;
    margin: 0 8px;
    color: #9AAEB8;
    font-size: 20px;
    transition: color 0.25s ease;
}

.footer-social a:hover {
    color: #FFFFFF;
}

/* ----------------------------------------------------------------
   TESTIMONIAL CARD STYLES
---------------------------------------------------------------- */
.rmw-testimonial {
    background: #FFFFFF;
    border-left: 4px solid #ED1C24;
    padding: 24px 28px;
    border-radius: 4px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    margin-bottom: 24px;
}

.rmw-testimonial blockquote {
    font-style: italic;
    color: #515E65;
    margin-bottom: 12px;
    font-size: 1.05em;
}

.rmw-testimonial cite {
    font-weight: 700;
    color: #292F33;
    font-style: normal;
}

/* ----------------------------------------------------------------
   SERVICE CARD STYLES
---------------------------------------------------------------- */
.rmw-service-card {
    background: #FFFFFF;
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
    padding: 28px;
    text-align: center;
    transition: box-shadow 0.25s ease;
}

.rmw-service-card:hover {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
}

.rmw-service-card h3 {
    color: #205685;
    margin-bottom: 0.5em;
}

.rmw-service-card .icon {
    width: 64px;
    height: 64px;
    background: #ED1C24;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 16px;
    font-size: 28px;
    color: #FFFFFF;
}

/* ----------------------------------------------------------------
   SERVICES PAGE — 2-COLUMN LAYOUT
---------------------------------------------------------------- */

/* Left column wrapper */
.rmw-services-left {
    position: relative;
    padding: 60px 40px 60px 60px;
    min-height: 520px;
    overflow: hidden;
}

/* Organic gray blob decoration behind the title */
.rmw-services-blob {
    position: absolute;
    top: 30px;
    left: 10px;
    width: 300px;
    height: 380px;
    background: #B0BEC5;
    border-radius: 62% 38% 46% 54% / 60% 44% 56% 40%;
    z-index: 0;
    opacity: 0.75;
}

/* "My Services." heading */
.rmw-services-title {
    font-family: 'Libre Baskerville', Georgia, serif !important;
    color: #E21C21 !important;
    font-size: 3.4em !important;
    line-height: 1.1 !important;
    margin-bottom: 0.6em !important;
    position: relative;
    z-index: 1;
}

/* Intro paragraph */
.rmw-services-intro {
    font-family: Questrial, sans-serif;
    color: #1A1A1A;
    font-size: 0.95em;
    line-height: 1.75;
    position: relative;
    z-index: 1;
    margin-bottom: 1.2em;
}

/* Referral note */
.rmw-services-note {
    font-family: Questrial, sans-serif;
    color: #444444;
    font-size: 0.85em;
    line-height: 1.7;
    position: relative;
    z-index: 1;
}

/* Right column — outer padding */
#pgc-4484-0-1 {
    padding: 40px 50px 40px 20px !important;
}

/* Individual vertical service card */
.rmw-service-card-v {
    background: #FFFFFF;
    border: 1px solid #E0E0E0;
    border-radius: 6px;
    padding: 22px 26px 18px;
    margin-bottom: 14px;
}

.rmw-service-card-v:last-child {
    margin-bottom: 0;
}

/* Card title */
.rmw-card-title {
    font-family: 'Libre Baskerville', Georgia, serif !important;
    color: #1A1A2E !important;
    font-size: 1.05em !important;
    font-weight: 600 !important;
    margin: 0 0 8px 0 !important;
}

/* Thin rule under title */
.rmw-card-rule {
    width: 36px;
    height: 2px;
    background: #1A1A2E;
    margin-bottom: 10px;
}

/* Card description */
.rmw-card-desc {
    font-family: Questrial, sans-serif;
    color: #444444;
    font-size: 0.88em;
    line-height: 1.6;
    margin-bottom: 14px;
}

/* Card footer row: Learn More | line | lips | line */
.rmw-card-footer {
    display: flex;
    align-items: center;
    gap: 10px;
}

.rmw-learn-more {
    font-family: Questrial, sans-serif;
    color: #E21C21 !important;
    font-size: 18px;
    text-decoration: none !important;
    white-space: nowrap;
    flex-shrink: 0;
}

.rmw-learn-more:hover {
    text-decoration: underline !important;
}

.rmw-card-line {
    flex: 1;
    height: 1px;
    background: #CCCCCC;
    display: block;
}

.rmw-card-lips {
    flex-shrink: 0;
    display: flex;
    align-items: center;
}

/* Responsive: stack columns on tablet/mobile */
@media (max-width: 768px) {
    .rmw-services-left {
        padding: 40px 24px;
        min-height: auto;
    }
    .rmw-services-blob {
        width: 200px;
        height: 250px;
    }
    .rmw-services-title {
        font-size: 2.6em !important;
    }
    #pgc-4484-0-1 {
        padding: 20px 24px 40px !important;
    }
}

/* ----------------------------------------------------------------
   ABOUT PAGE STYLES
---------------------------------------------------------------- */
.rmw-bio-image {
    border-radius: 6px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}

/* ----------------------------------------------------------------
   HOME PAGE SLIDER — BLOB SHAPE MASK  (Smart Slider 3, ID #3)
   SVG mask scales with the element so it stays true at any size.
---------------------------------------------------------------- */

/* Lock slider to 375px — prevents responsive mode from expanding it */
#n2-ss-3 {
    max-width: 375px !important;
    width: 375px !important;
    margin: 0 auto;
}

/* Blob SVG mask — viewBox extended to -15 -15 130 130 so the blob
   curves have headroom and never get clipped into flat edges.
   All anchor + control points fit inside the expanded canvas. */
#n2-ss-3 .n2-ss-slide-limiter,
#n2-ss-3 .n2-ss-slide-background {
    overflow: visible !important;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-15 -15 130 130'%3E%3Cpath d='M55 2C85-14 112 4 108 34C104 64 88 84 70 96C52 108 18 108 4 86C-10 64-8 36 6 16C20-4 25 18 55 2Z' fill='white'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-15 -15 130 130'%3E%3Cpath d='M55 2C85-14 112 4 108 34C104 64 88 84 70 96C52 108 18 108 4 86C-10 64-8 36 6 16C20-4 25 18 55 2Z' fill='white'/%3E%3C/svg%3E");
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}

/* Allow parent containers to not clip the blob edges */
#n2-ss-3 .n2-ss-slider-wrapper,
#n2-ss-3 .n2-ss-slides,
#n2-ss-3 .n2-ss-slide {
    overflow: visible !important;
}

/* ----------------------------------------------------------------
   HOME PAGE — ROW 3 "WHY ME?" — background fit + text entrance
   Target #whyme directly (the stretch wrapper, same as #homehero).
   contain keeps the full wave visible; text slide-up via JS provides
   the parallax feel without background-attachment:fixed viewport issues.
---------------------------------------------------------------- */
#whyme {
    min-height: 540px !important;
}

/* Text panel starts hidden below, slides up + fades in on scroll */
#pg-4482-2 .so-panel {
    opacity: 0;
    transform: translateY(50px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}
#pg-4482-2 .so-panel.rmw-in-view {
    opacity: 1;
    transform: translateY(0);
}

/* ----------------------------------------------------------------
   HOME PAGE — ROW 4 "WHY CHOOSE ROBYN?" — vertical card flip-in
   Cards start rotated away (rotateX 90deg from below), flip to face
   on scroll entry. Staggered delays per card.
---------------------------------------------------------------- */

/* Row flex container: 50px inset, 20px gap between cards, equal height */
#pg-4482-3 > .panel-row-style {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    gap: 20px !important;
    padding-left: 50px !important;
    padding-right: 50px !important;
    box-sizing: border-box !important;
}

/* Cells: equal width, full height, no SiteOrigin margin-right */
#pgc-4482-3-0,
#pgc-4482-3-1,
#pgc-4482-3-2 {
    flex: 1 1 0 !important;
    width: auto !important;
    margin-right: 0 !important;
    display: flex !important;
    flex-direction: column !important;
}

/* Cards: fill cell height, title anchored to top */
#panel-4482-3-0-0,
#panel-4482-3-1-0,
#panel-4482-3-2-0 {
    background: #E8E8E8;
    border-radius: 8px;
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    margin: 0 !important;
    opacity: 0;
    transform: perspective(1000px) rotateX(90deg);
    transform-origin: bottom center;
    transition: transform 0.65s cubic-bezier(0.23, 1, 0.32, 1),
                opacity 0.45s ease;
}

/* Chain flex-column through widget wrappers so content starts at top */
#panel-4482-3-0-0 .so-widget-sow-editor,
#panel-4482-3-1-0 .so-widget-sow-editor,
#panel-4482-3-2-0 .so-widget-sow-editor,
#panel-4482-3-0-0 .siteorigin-widget-tinymce,
#panel-4482-3-1-0 .siteorigin-widget-tinymce,
#panel-4482-3-2-0 .siteorigin-widget-tinymce {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
}

/* Stagger each card */
#panel-4482-3-1-0 { transition-delay: 0.15s; }
#panel-4482-3-2-0 { transition-delay: 0.30s; }

/* Flipped-in state */
#panel-4482-3-0-0.rmw-in-view,
#panel-4482-3-1-0.rmw-in-view,
#panel-4482-3-2-0.rmw-in-view {
    opacity: 1;
    transform: perspective(1000px) rotateX(0deg);
}

/* ----------------------------------------------------------------
   HOME PAGE — HERO ROW background swoosh
   Override SiteOrigin's generated background-size:cover so the full
   top and bottom of the swoosh image are visible within the row.
---------------------------------------------------------------- */
#homehero {
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: right center !important;
    min-height: 700px !important;
}

/* ----------------------------------------------------------------
   HOME PAGE — ABOUT ME ROW  (pg-4482-1, left cell)
   Container is fixed-width (matches photo) and centered via margin:auto.
   Diamonds use negative/overflow left values to straddle photo edges,
   so the photo sits on top of both diamonds with each peeking out on
   its respective side.
---------------------------------------------------------------- */

/* Grayscale photo fills the fixed-width container */
#panel-4482-1-0-0 .so-widget-image {
    filter: grayscale(100%);
    max-width: 280px !important;
    width: 280px !important;
    height: auto !important;
    position: relative;
    z-index: 2;
    display: block;
    margin: 0;
}

/* Fixed-width container centered in the column; diamonds overflow it */
#panel-4482-1-0-0 .sow-image-container {
    position: relative;
    display: block;
    width: 280px;
    max-width: 280px;
    margin: 50px auto;
    padding: 0;
    overflow: visible;
}

/* Both diamonds: tall elongated shape via clip-path */
#panel-4482-1-0-0 .sow-image-container::before,
#panel-4482-1-0-0 .sow-image-container::after {
    content: '';
    position: absolute;
    width: 144px;
    height: 360px;
    background: #2D2D2D;
    clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
    z-index: 1;
    top: 50%;
    transform: translateY(-50%);
}

/* Left diamond — overlaps right diamond by 25% (36px of 144px) */
#panel-4482-1-0-0 .sow-image-container::before {
    left: -166px;
}

/* Right diamond — ~60% under photo (86px of 144px) */
#panel-4482-1-0-0 .sow-image-container::after {
    left: -58px;
}

/* ----------------------------------------------------------------
   SINGLE SERVICE PAGE
---------------------------------------------------------------- */

/* Title row */
.rmw-svc-title-wrap {
    padding: 40px 40px 10px;
    max-width: 780px;
    margin: 0 auto;
}

.rmw-svc-title {
    font-family: 'Libre Baskerville', Georgia, serif !important;
    color: #E21C21 !important;
    font-size: 2.2em !important;
    line-height: 1.2 !important;
    margin: 0 !important;
}

/* Hero section wrapper — centers the frame */
.rmw-svc-hero-wrap {
    padding: 40px 40px 30px;
    display: flex;
    justify-content: center;
    background: #FFFFFF;
}

/* Frame: image sits on top of two diamonds via z-index */
.rmw-svc-hero-frame {
    position: relative;
    display: inline-block;
    overflow: visible;
}

/* The service image — on top of both diamonds */
.rmw-svc-hero-img {
    position: relative;
    z-index: 3;
    display: block;
    max-width: 420px;
    width: 100%;
    height: auto;
    box-shadow: 0 4px 18px rgba(0,0,0,0.15);
}

/* Black diamond — peeks out from RIGHT under the image */
.rmw-svc-hero-frame::before {
    content: '';
    position: absolute;
    width: 130px;
    height: 320px;
    background: #1A1A1A;
    clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
    z-index: 2;
    top: 50%;
    transform: translateY(-50%);
    right: -55px;
}

/* Gray diamond — peeks out from RIGHT under the black diamond */
.rmw-svc-hero-frame::after {
    content: '';
    position: absolute;
    width: 130px;
    height: 320px;
    background: #9E9E9E;
    clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
    z-index: 1;
    top: 50%;
    transform: translateY(-50%);
    right: -95px;
}

/* Body text */
.rmw-svc-body-wrap {
    max-width: 780px;
    margin: 0 auto;
    padding: 30px 40px 10px;
    font-family: Questrial, sans-serif;
    color: #333333;
    font-size: 0.97em;
    line-height: 1.75;
}

.rmw-svc-body-wrap p  { margin-bottom: 1em; }
.rmw-svc-body-wrap a  { color: #333333; word-break: break-all; }

.rmw-svc-body-wrap ul {
    padding-left: 1.4em;
    margin-bottom: 1em;
    line-height: 1.8;
}

.rmw-svc-body-wrap li { margin-bottom: 0.25em; }

/* Contact Us button — solid red */
.rmw-svc-contact-wrap {
    text-align: center;
    padding: 24px 40px 50px;
}

.rmw-svc-contact-btn {
    display: inline-block;
    background: #E21C21;
    color: #FFFFFF !important;
    font-family: Questrial, sans-serif;
    font-size: 15px;
    font-weight: 400;
    padding: 13px 44px;
    text-decoration: none !important;
    border-radius: 2px;
    transition: background 0.2s ease;
}

.rmw-svc-contact-btn:hover {
    background: #C01515;
    color: #FFFFFF !important;
}

/* Responsive */
@media (max-width: 768px) {
    .rmw-svc-hero-wrap   { padding: 30px 20px 20px; }
    .rmw-svc-hero-img    { max-width: 100%; }
    .rmw-svc-hero-frame::before { width: 90px; height: 220px; right: -38px; }
    .rmw-svc-hero-frame::after  { width: 90px; height: 220px; right: -66px; }
    .rmw-svc-body-wrap   { padding: 20px 24px; }
}

/* ----------------------------------------------------------------
   CONTACT PAGE
---------------------------------------------------------------- */

/* Why Me? header row */
.rmw-contact-header {
    text-align: center;
    padding: 40px 20px;
}

.rmw-why-me-title {
    font-family: 'Libre Baskerville', Georgia, serif !important;
    color: #E21C21 !important;
    font-size: 2.2em !important;
    margin-bottom: 12px !important;
}

.rmw-why-me-rule {
    width: 60px;
    height: 4px;
    background: #E21C21;
    margin: 0 auto;
    border-radius: 2px;
}

/* 3-column cards */
.rmw-contact-card {
    text-align: center;
    padding: 10px 20px;
}

.rmw-contact-card-title {
    font-family: 'Libre Baskerville', Georgia, serif !important;
    color: #E21C21 !important;
    font-size: 1.1em !important;
    margin-bottom: 12px !important;
}

.rmw-contact-card-body {
    font-family: Questrial, sans-serif;
    color: #333333;
    font-size: 0.95em;
    line-height: 1.7;
}

/* CF7 form section */
.rmw-contact-form-wrap {
    max-width: 620px;
    margin: 0 auto;
    text-align: center;
}

.rmw-contact-form-title {
    font-family: 'Libre Baskerville', Georgia, serif !important;
    color: #E21C21 !important;
    font-size: 1.8em !important;
    margin-bottom: 24px !important;
}

/* CF7 field styling */
.rmw-cf7-wrap p { margin-bottom: 14px; }

.rmw-cf7-wrap label {
    font-family: Questrial, sans-serif;
    font-size: 0.9em;
    color: #444;
    display: block;
    text-align: left;
}

.rmw-cf7-wrap input[type="text"],
.rmw-cf7-wrap input[type="email"],
.rmw-cf7-wrap input[type="tel"],
.rmw-cf7-wrap textarea {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid #CCCCCC;
    border-radius: 3px;
    font-family: Questrial, sans-serif;
    font-size: 0.95em;
    color: #333;
    box-sizing: border-box;
}

.rmw-cf7-wrap textarea { min-height: 130px; resize: vertical; }

.rmw-cf7-wrap input[type="submit"] {
    background: #E21C21;
    color: #FFFFFF;
    border: none;
    padding: 13px 44px;
    font-family: Questrial, sans-serif;
    font-size: 15px;
    border-radius: 2px;
    cursor: pointer;
    transition: background 0.2s ease;
}

.rmw-cf7-wrap input[type="submit"]:hover {
    background: #C01515;
}

/* ----------------------------------------------------------------
   ACCESSIBILITY
---------------------------------------------------------------- */
:focus-visible {
    outline: 3px solid #ED1C24;
    outline-offset: 2px;
}

.screen-reader-text {
    clip: rect(1px, 1px, 1px, 1px);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

/* ----------------------------------------------------------------
   SCHEDULE PAGE
---------------------------------------------------------------- */
.rmw-sched-left {
    padding: 20px 40px 20px 0;
}

.rmw-sched-title {
    font-family: 'Squada One', sans-serif;
    font-size: 2.4rem;
    color: #E21C21;
    margin: 0 0 24px 0;
    line-height: 1.15;
}

.rmw-sched-left p {
    font-size: 1rem;
    color: #000000;
    margin: 0 0 14px 0;
    line-height: 1.65;
}

.rmw-sched-form {
    padding: 20px 0 20px 20px;
}

/* ----------------------------------------------------------------
   ABOUT PAGE
---------------------------------------------------------------- */
.rmw-about-wrap {
    padding: 70px 80px;
    background: #FFFFFF;
}

.rmw-about-inner {
    max-width: 1100px;
    margin: 0 auto;
}

/* --- Photo column (floated right) --- */
.rmw-about-photo-col {
    float: right;
    width: 340px;
    margin: 0 0 40px 55px;
    text-align: center;
}

.rmw-about-photo-group {
    position: relative;
    width: 340px;
    height: 290px;
}

.rmw-about-diamond {
    position: absolute;
    width: 210px;
    height: 210px;
    clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
    top: calc(50% - 105px);
    z-index: 1;
    /* initial (pre-animation) state */
    opacity: 0;
    transition: opacity 0.75s ease, transform 0.75s ease;
}

.rmw-about-diamond-black {
    background: #1a1a1a;
    left: 0;
    transform: translateX(-70px);
}

.rmw-about-diamond-red {
    background: #E21C21;
    right: 0;
    transform: translateX(70px);
    transition-delay: 0.15s;
}

.rmw-about-photo-pos {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 3;
    opacity: 0;
    transition: opacity 0.75s ease 0.35s;
}

.rmw-about-photo {
    display: block;
    width: 215px;
    height: auto;
    border-radius: 2px;
}

/* Animated (visible) state — triggered by JS adding .rmw-about-anim to .rmw-about-photo-col */
.rmw-about-anim .rmw-about-diamond-black {
    opacity: 1;
    transform: translateX(0);
}

.rmw-about-anim .rmw-about-diamond-red {
    opacity: 1;
    transform: translateX(0);
}

.rmw-about-anim .rmw-about-photo-pos {
    opacity: 1;
}

/* --- CTA button beneath photo --- */
.rmw-about-btn-wrap {
    margin-top: 24px;
}

.rmw-about-cta {
    display: inline-block;
    padding: 13px 30px;
    background: transparent;
    color: #E21C21;
    font-family: Questrial, sans-serif;
    font-weight: 400;
    font-size: 14px;
    text-decoration: none;
    border-top: 2px solid transparent;
    border-left: 2px solid transparent;
    border-bottom: 2px solid #E21C21;
    border-right: 2px solid #E21C21;
    transition: background 0.2s ease, color 0.2s ease;
}

.rmw-about-cta:hover {
    background: #E21C21;
    color: #FFFFFF;
}

/* --- Text content --- */
.rmw-about-text {
    overflow: hidden;
}

.rmw-about-cred {
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: #000000;
    margin: 0 0 10px 0;
}

.rmw-about-title {
    font-family: 'Squada One', sans-serif;
    font-size: 3rem;
    color: #E21C21;
    margin: 0 0 28px 0;
    line-height: 1.1;
}

.rmw-about-text p {
    font-size: 0.96rem;
    color: #000000;
    line-height: 1.72;
    margin: 0 0 16px 0;
}

/* Responsive */
@media (max-width: 768px) {
    .rmw-about-wrap {
        padding: 50px 30px;
    }
    .rmw-about-photo-col {
        float: none;
        margin: 0 auto 40px;
    }
    .rmw-about-title {
        font-size: 2.2rem;
    }
}

/* ----------------------------------------------------------------
   TESTIMONIALS PAGE
---------------------------------------------------------------- */
.rmw-test-page {
    padding: 70px 80px;
    background: #FFFFFF;
}

.rmw-test-inner {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 55px;
    max-width: 1100px;
    margin: 0 auto;
}

/* --- Blob group (right column) --- */
.rmw-test-right {
    flex: 0 0 370px;
    position: relative;
    width: 370px;
    height: 370px;
}

.rmw-test-diamond-gray {
    position: absolute;
    width: 220px;
    height: 220px;
    background: #8c8c8c;
    clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
    left: 20px;
    top: calc(50% - 110px);
    z-index: 1;
    opacity: 0;
    transform: translateX(-70px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}

.rmw-test-diamond-red {
    position: absolute;
    width: 220px;
    height: 220px;
    background: #E21C21;
    clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
    right: 20px;
    top: calc(50% - 110px);
    z-index: 2;
    opacity: 0;
    transform: translateX(70px);
    transition: opacity 0.8s ease 0.18s, transform 0.8s ease 0.18s;
}

.rmw-test-img-pos {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 3;
}

.rmw-test-img {
    display: block;
    width: 210px;
    height: auto;
    border-radius: 50%;
    opacity: 0;
    transform: translateY(-50px);
    transition: opacity 0.75s ease 0.38s, transform 0.75s ease 0.38s;
}

/* Animated state */
.rmw-test-anim .rmw-test-diamond-gray {
    opacity: 1;
    transform: translateX(0);
}
.rmw-test-anim .rmw-test-diamond-red {
    opacity: 1;
    transform: translateX(0);
}
.rmw-test-anim .rmw-test-img {
    opacity: 1;
    transform: translateY(0);
}

/* --- Left text column (flex, ~30% narrower than full remaining space) --- */
.rmw-test-left {
    flex: 0 0 42%;
    max-width: 42%;
    min-width: 0;
}

.rmw-test-title {
    font-family: 'Squada One', sans-serif;
    font-size: 3rem;
    color: #E21C21;
    margin: 0 0 14px 0;
    line-height: 1.1;
}

.rmw-test-sub {
    font-size: 0.92rem;
    color: #E21C21;
    line-height: 1.65;
    margin: 0 0 32px 0;
    max-width: 480px;
}

/* --- Testimonial cards --- */
.rmw-test-card {
    background: #cadde6;
    border-radius: 4px;
    padding: 28px 30px 22px;
    margin-bottom: 22px;
    position: relative;
}

.rmw-test-qmark {
    display: block;
    font-size: 2.8rem;
    line-height: 1;
    color: #E21C21;
    font-family: Georgia, serif;
    font-weight: 700;
    margin-bottom: 10px;
}

.rmw-test-body p {
    font-size: 0.9rem;
    color: #000000;
    line-height: 1.7;
    margin: 0 0 12px 0;
}

.rmw-test-attr {
    font-size: 0.82rem;
    color: #333333;
    font-style: italic;
    text-align: right;
    margin: 14px 0 0 0;
    border-top: 1px solid rgba(0,0,0,0.12);
    padding-top: 10px;
}

/* Responsive */
@media (max-width: 768px) {
    .rmw-test-page {
        padding: 50px 30px;
    }
    .rmw-test-inner {
        flex-direction: column-reverse;
    }
    .rmw-test-right {
        flex: 0 0 auto;
        margin: 0 auto 50px;
    }
    .rmw-test-left {
        flex: 1 1 auto;
        max-width: 100%;
    }
}

/* ----------------------------------------------------------------
   PUBLICATIONS PAGE
---------------------------------------------------------------- */

/* --- Row 0: hero flex container — aligns with card grid below --- */
.rmw-pub-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    max-width: 1060px;
    margin: 0 auto;
}

.rmw-pub-title-wrap {
    flex: 1 1 0;
    min-width: 0;
    max-width: 480px;
    padding-right: 20px;
}

.rmw-pub-title {
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 3.2rem;
    color: #E21C21;
    margin: 0 0 20px 0;
    line-height: 1.1;
    font-weight: 700;
}

.rmw-pub-sub {
    font-size: 0.95rem;
    color: #333333;
    line-height: 1.7;
    margin: 0;
    max-width: 480px;
}

/* --- Row 0: blob column (right side, aligns with right card column) --- */
.rmw-pub-blob-col {
    flex: 0 0 480px;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* --- Row 0: blob group --- */
.rmw-pub-blob-group {
    position: relative;
    width: 340px;
    height: 320px;
    margin: 0 auto;
}

.rmw-pub-diamond-black {
    position: absolute;
    width: 210px;
    height: 210px;
    background: #1a1a1a;
    clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
    left: 10px;
    top: calc(50% - 105px);
    z-index: 1;
    opacity: 0;
    transform: translateX(-70px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}

.rmw-pub-diamond-red {
    position: absolute;
    width: 210px;
    height: 210px;
    background: #E21C21;
    clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
    right: 10px;
    top: calc(50% - 105px);
    z-index: 2;
    opacity: 0;
    transform: translateX(70px);
    transition: opacity 0.8s ease 0.18s, transform 0.8s ease 0.18s;
}

.rmw-pub-img-pos {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 3;
}

.rmw-pub-img {
    display: block;
    width: 200px;
    height: auto;
    filter: grayscale(1);
    opacity: 0;
    transform: translateY(60px);
    transition: opacity 0.75s ease 0.38s, transform 0.75s ease 0.38s;
}

/* Animated state */
.rmw-pub-anim .rmw-pub-diamond-black {
    opacity: 1;
    transform: translateX(0);
}
.rmw-pub-anim .rmw-pub-diamond-red {
    opacity: 1;
    transform: translateX(0);
}
.rmw-pub-anim .rmw-pub-img {
    opacity: 1;
    transform: translateY(0);
}

/* --- Row 1: card grid --- */
.rmw-pub-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(280px, 480px));
    gap: 28px;
    justify-content: center;
    max-width: 1060px;
    margin: 0 auto;
}

.rmw-pub-card {
    background: #d4d4d4;
    border: 1px solid #c0c0c0;
    border-radius: 4px;
    padding: 28px 28px 22px;
    display: flex;
    flex-direction: column;
}

.rmw-pub-card-title {
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 1.05rem;
    font-weight: 700;
    color: #E21C21;
    margin: 0 0 12px 0;
    line-height: 1.35;
}

.rmw-pub-card-desc {
    font-size: 0.88rem;
    color: #333333;
    line-height: 1.65;
    margin: 0 0 10px 0;
    flex: 1;
}

.rmw-pub-card-author {
    font-size: 0.78rem;
    color: #666666;
    font-style: italic;
    margin: 0 0 18px 0;
}

.rmw-pub-card-footer {
    border-top: 1px solid #e8e8e8;
    padding-top: 14px;
}

.rmw-pub-learn-more {
    display: inline-block;
    padding: 10px 22px;
    background: transparent;
    color: #E21C21;
    font-family: Questrial, sans-serif;
    font-size: 13px;
    text-decoration: none;
    border-top: 2px solid transparent;
    border-left: 2px solid transparent;
    border-bottom: 2px solid #E21C21;
    border-right: 2px solid #E21C21;
    transition: background 0.2s ease, color 0.2s ease;
}

.rmw-pub-learn-more:hover {
    background: #E21C21;
    color: #FFFFFF;
}

/* Responsive */
@media (max-width: 900px) {
    .rmw-pub-grid {
        grid-template-columns: 1fr;
    }
    .rmw-pub-blob-group {
        margin: 40px auto 0;
    }
}

/* ----------------------------------------------------------------
   PUBLICATION DETAIL PAGES
---------------------------------------------------------------- */

/* Byline row — same 780px rail as title and body */
.rmw-pub-byline-wrap {
    max-width: 780px;
    margin: 0 auto;
    padding: 6px 40px 24px;
}
.rmw-pub-byline {
    font-family: Questrial, sans-serif;
    font-size: 0.9rem;
    color: #555555;
    margin: 0;
}

/* Body image — floated right within .rmw-svc-body-wrap */
.rmw-pub-body-img {
    float: right;
    width: 260px;
    height: auto;
    margin: 0 0 20px 30px;
}

/* Body row: image column (floated right) + text column */
.rmw-pub-img-col {
    float: right;
    width: 280px;
    margin: 0 0 20px 35px;
    text-align: center;
}

.rmw-pub-img-col .rmw-pub-body-img-block {
    display: block;
    width: 100%;
    height: auto;
    margin-bottom: 14px;
}

.rmw-pub-text-col {
    overflow: hidden;
}

/* Solid red action button (Download / Go to Link) */
.rmw-pub-action-btn {
    display: block;
    width: 100%;
    padding: 11px 16px;
    background: #E21C21;
    color: #FFFFFF;
    font-family: Questrial, sans-serif;
    font-size: 13px;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    border: none;
    box-sizing: border-box;
    transition: background 0.2s ease;
}
.rmw-pub-action-btn:hover {
    background: #C01515;
    color: #FFFFFF;
}

/* Insight quote emphasis */
.rmw-pub-quote {
    font-style: italic;
    border-left: 3px solid rgba(255,255,255,0.6);
    padding-left: 14px;
    margin-top: 16px !important;
}

/* Insight row — blue block centered at 50% width, white text, 25px padding */
.rmw-pub-insight {
    max-width: 50%;
    margin: 50px auto;
    padding: 25px;
    background: rgba(101,135,164,0.69);
    color: #FFFFFF;
    font-family: Questrial, sans-serif;
    font-size: 1rem;
    line-height: 1.75;
}
.rmw-pub-insight p {
    color: #FFFFFF;
    margin: 0 0 1em 0;
}
.rmw-pub-insight p:last-child {
    margin-bottom: 0;
}

/* ── Office Forms page ── */
.rmw-forms-wrap {
    max-width: 780px;
    margin: 0 auto;
    padding: 40px 40px 20px;
    font-family: Questrial, sans-serif;
}
.rmw-forms-intro {
    margin-bottom: 30px;
    color: #000;
    font-size: 0.95rem;
    line-height: 1.6;
}
.rmw-forms-section {
    margin-bottom: 40px;
}
.rmw-forms-h2 {
    font-family: Georgia, serif;
    color: #E21C21;
    font-size: 26px;
    font-weight: 400;
    margin-bottom: 10px;
}
.rmw-forms-desc {
    color: #000;
    font-size: 0.9rem;
    line-height: 1.6;
    margin-bottom: 20px;
}
.rmw-forms-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 24px;
}
.rmw-forms-cell {
    flex: 0 0 calc(50% - 12px);
    min-height: 44px;
    display: flex;
    align-items: center;
}
.rmw-forms-btn {
    display: block;
    width: 100%;
    box-sizing: border-box;
    text-align: center;
    padding: 11px 26px;
    background: transparent;
    color: #E21C21;
    font-family: Questrial, sans-serif;
    font-weight: 700;
    font-size: 17px;
    text-decoration: none;
    border-top: 2px solid transparent;
    border-left: 2px solid transparent;
    border-bottom: 2px solid #E21C21;
    border-right: 2px solid #E21C21;
    white-space: nowrap;
}
.rmw-forms-btn:hover {
    background: #E21C21;
    color: #FFFFFF;
}
.rmw-forms-review {
    color: #E21C21;
    font-size: 13px;
    text-decoration: none;
    line-height: 1.4;
}
.rmw-forms-review:hover {
    text-decoration: underline;
}

/* ── New Patients FAQ page ── */
.rmw-np-intro-wrap {
    max-width: 780px;
    margin: 0 auto;
    padding: 30px 40px 10px;
    font-family: Questrial, sans-serif;
    font-size: 0.95rem;
    line-height: 1.7;
    color: #000;
}
.rmw-np-intro-wrap a {
    color: #E21C21;
}
/* Constrain accordion width to match content rail */
.panel-grid-cell .sow-accordion {
    max-width: 780px;
    margin: 20px auto 40px;
    padding: 0 40px;
}

/* ================================================================
   RESPONSIVE — TABLET  (≤ 900px)
   Extends the header/nav block near line 523.
================================================================ */
@media (max-width: 900px) {
    /* Home hero: shorter, background fills the frame */
    #homehero {
        min-height: 380px !important;
        background-size: cover !important;
        background-position: center top !important;
    }

    /* Why Me? row: shorter */
    #whyme {
        min-height: 320px !important;
    }

    /* Row 4 "Why Choose Robyn?" — allow 2-up wrap instead of hard 3 columns */
    #pg-4482-3 > .panel-row-style {
        flex-wrap: wrap !important;
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
    #pgc-4482-3-0,
    #pgc-4482-3-1,
    #pgc-4482-3-2 {
        flex: 1 1 calc(50% - 10px) !important;
        min-width: 200px;
    }

    /* Publications hero blob column: shrink fixed width */
    .rmw-pub-blob-col {
        flex: 0 0 320px;
    }
}

/* ================================================================
   RESPONSIVE — MOBILE  (≤ 780px — SiteOrigin's mobile-width)
================================================================ */
@media (max-width: 780px) {

    /* Prevent ANY element from causing horizontal scroll */
    body,
    .site-wrapper {
        overflow-x: hidden;
    }

    /* ── HOME ROW 0: hero text widget ──
       The SiteOrigin widget has inline style="margin-left:170px; padding:70px 40px 70px 60px"
       which pushes text off-screen on phones. Override with !important. */
    #panel-4482-0-0-0 .siteorigin-widget-tinymce > div {
        margin-left: 0 !important;
        padding: 30px 20px 36px !important;
        max-width: 100% !important;
    }

    /* SmartSlider internal limiter — SmartSlider's own inline CSS locks this at 375px */
    #n2-ss-3 .n2-ss-slide-limiter {
        max-width: 100% !important;
    }

    /* Home hero */
    #homehero {
        min-height: 260px !important;
        background-size: cover !important;
        background-position: center center !important;
    }

    /* Why Me? */
    #whyme {
        min-height: 220px !important;
    }

    /* Disable fixed bg scroll — iOS ignores it anyway, prevents jump */
    #pg-4482-2 > .panel-row-style {
        background-attachment: scroll !important;
    }

    /* Row 4 cards: stack to single column */
    #pg-4482-3 > .panel-row-style {
        flex-direction: column !important;
        flex-wrap: wrap !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
        gap: 14px !important;
    }
    #pgc-4482-3-0,
    #pgc-4482-3-1,
    #pgc-4482-3-2 {
        flex: 1 1 100% !important;
        width: 100% !important;
        min-width: 0;
    }

    /* Home about-me: kill the 80px desktop margins (set by SiteOrigin inline CSS),
       hide diamonds, and let the photo fill the column centered */
    #panel-4482-1-0-0 {
        margin: 20px 0 0 !important;
    }
    #panel-4482-1-0-0 .sow-image-container::before,
    #panel-4482-1-0-0 .sow-image-container::after {
        display: none;
    }
    #panel-4482-1-0-0 .sow-image-container {
        width: auto !important;
        max-width: 100% !important;
        margin: 20px auto;
        text-align: center;
    }
    #panel-4482-1-0-0 .so-widget-image {
        width: auto !important;
        max-width: 100% !important;
        height: auto !important;
        margin: 0 auto;
    }

    /* Slider: allow it to shrink inside its container */
    #n2-ss-3 {
        width: 100% !important;
        max-width: 340px !important;
    }

    /* Hero text section */
    .rmw-hero {
        padding: 40px 20px;
    }
    .rmw-hero h1 { font-size: 1.9em; }

    /* Announcement bar */
    .rmw-announcement {
        font-size: 13px;
        padding: 8px 14px;
    }

    /* Publications hero: stack vertically */
    .rmw-pub-hero {
        flex-direction: column;
        gap: 16px;
    }
    .rmw-pub-title-wrap {
        max-width: 100%;
        padding-right: 0;
    }
    .rmw-pub-blob-col {
        flex: 0 0 auto;
        width: 100%;
    }
    .rmw-pub-blob-group {
        width: 260px;
        height: 240px;
    }

    /* Publications insight box: full-ish width */
    .rmw-pub-insight {
        max-width: 92%;
        margin: 30px auto;
    }

    /* Office forms grid: single column */
    .rmw-forms-cell {
        flex: 0 0 100%;
    }
    .rmw-forms-wrap {
        padding: 24px 20px 16px;
    }

    /* Schedule page */
    .rmw-sched-left {
        padding: 20px 0;
    }
    .rmw-sched-form {
        padding: 20px 0;
    }

    /* New patients */
    .rmw-np-intro-wrap {
        padding: 20px 20px 10px;
    }
    .panel-grid-cell .sow-accordion {
        padding: 0 20px;
    }

    /* Service pages */
    .rmw-svc-title-wrap {
        padding: 24px 20px 8px;
    }
    .rmw-svc-body-wrap {
        padding: 20px;
    }
    .rmw-svc-contact-wrap {
        padding: 16px 20px 36px;
    }

    /* Footer badges: smaller */
    .footer-badge {
        height: 100px;
    }
    .footer-badges {
        gap: 14px;
        padding: 16px;
    }

    /* Footer bottom: stack copyright + links */
    .footer-bottom-inner {
        flex-direction: column;
        text-align: center;
        gap: 6px;
    }
}

/* ================================================================
   RESPONSIVE — SMALL PHONE  (≤ 480px)
================================================================ */
@media (max-width: 480px) {
    h1 { font-size: 1.6em; }
    h2 { font-size: 1.3em; }
    h3 { font-size: 1.15em; }

    #homehero {
        min-height: 200px !important;
    }
    #whyme {
        min-height: 160px !important;
    }

    .rmw-hero {
        padding: 28px 16px;
    }
    .rmw-hero h1 { font-size: 1.6em; }

    /* Footer badges: smaller still */
    .footer-badge {
        height: 78px;
    }

    /* Floating pub images: don't float, stack below */
    .rmw-pub-body-img,
    .rmw-pub-img-col {
        float: none;
        width: 100%;
        margin: 0 0 20px 0;
    }

    /* Publication insight: full bleed */
    .rmw-pub-insight {
        max-width: 100%;
        margin: 20px 0;
    }

    /* Services page: hide blob (it sticks out behind text at this size) */
    .rmw-services-blob {
        display: none;
    }
    .rmw-services-title {
        font-size: 2em !important;
    }
    .rmw-services-left {
        padding: 30px 20px;
    }
    #pgc-4484-0-1 {
        padding: 16px 20px 30px !important;
    }

    /* Single service page title */
    .rmw-svc-title {
        font-size: 1.7em !important;
    }

    /* Schedule page */
    .rmw-sched-title { font-size: 1.8rem; }

    /* About page */
    .rmw-about-title { font-size: 1.8rem; }
    .rmw-about-wrap { padding: 36px 20px; }

    /* Testimonials */
    .rmw-test-page { padding: 36px 20px; }
    .rmw-test-title { font-size: 2rem; }
    .rmw-test-right {
        flex: 0 0 auto;
        width: 100%;
        height: 300px;
    }

    /* Publications */
    .rmw-pub-title { font-size: 2.2rem; }
    .rmw-pub-blob-group {
        width: 220px;
        height: 200px;
    }

    /* Forms buttons: full width for easier tapping */
    .rmw-forms-btn {
        width: 100%;
        text-align: center;
        box-sizing: border-box;
    }

    /* Contact page */
    .rmw-contact-form-wrap {
        padding: 0 16px;
    }
}

