/*
 Theme Name:  Reclaim Your Path
 Theme URI:    https://www.reclaimyourpath.com
 Description:  Reclaim Your Path Theme
 Author:       Jay Karr
 Author URI:   https://jaykarr.com
 Template:     Divi
 Version:      1.0.3
 */

/* ==========================================================================
   Design Tokens (Global Color, Surface & Button System)
   ========================================================================== */
:root {
    /* Background Surface Shades */
    --ryp-color-bg-light: #EBE8E1;        /* Soft Warm Sand (Primary Page BG) */
    --ryp-color-bg-white: #FFFFFF;        /* Card & Module White BG */
    --ryp-color-bg-dark: #303030;         /* Charcoal Dark Surface BG (production dark band) */
    --ryp-color-bg-darker: #1A1A1A;       /* Deep Ink Surface BG */

    /* Button Color Variants */
    /* Variant 1: Sand CTA (Primary Standard) */
    --ryp-btn-sand-bg: #D3CFB6;
    --ryp-btn-sand-text: #000000;
    --ryp-btn-sand-hover-bg: #000000;
    --ryp-btn-sand-hover-text: #FFFFFF;

    /* Variant 2: White CTA (Dark Surface Primary) */
    --ryp-btn-white-bg: #FFFFFF;
    --ryp-btn-white-text: #000000;
    --ryp-btn-white-hover-bg: #000000;
    --ryp-btn-white-hover-text: #FFFFFF;

    /* Variant 3: Black CTA (Inverted / Action Control) */
    --ryp-btn-black-bg: #000000;
    --ryp-btn-black-text: #FFFFFF;
    --ryp-btn-black-hover-bg: #D3CFB6;
    --ryp-btn-black-hover-text: #000000;

    /* Brand Accent & Border Colors */
    --ryp-color-sand-light: #D8D4BD;
    --ryp-color-sand-border: #C2BEA6;
    --ryp-color-terracotta: #B0763B;
    --ryp-color-moss-focus: #8A9271;

    /* Text & Hierarchy Colors */
    --ryp-color-text-body: #3A3833;
    --ryp-color-text-heading: #2A2824;
    --ryp-color-text-eyebrow: #53524F;
    --ryp-color-text-light: #FFFFFF;

    /* Link Colors */
    --ryp-color-link-light: #000000;
    --ryp-color-link-dark: #D8D4BD;
}

/* Button variant utility classes live AFTER the Universal Button System below,
   so they can override its background/color while inheriting its typography. */

/* Smart Sticky: smooth slide + hide class */
header.et-l--header,
header.et-l--header .et_pb_section--fixed {
    transition: transform 0.3s ease !important;
}

header.et-l--header.ryp-nav-hidden,
header.et-l--header.ryp-nav-hidden .et_pb_section--fixed {
    transform: translateY(-100%) !important;
}

/* Force nav items to single row */
.et-l--header .et_pb_menu__menu nav > ul,
.et-l--header .et_pb_menu nav > ul {
    display: flex !important;
    flex-wrap: nowrap !important;
    white-space: nowrap !important;
}

/* Dropdown submenu: auto-width to fit content */
.et-l--header .et_pb_menu__menu nav ul li ul.sub-menu,
.et-l--header .et_pb_menu nav ul li ul.sub-menu {
    width: auto !important;
    min-width: 0 !important;
    white-space: nowrap !important;
}

/* Global Form Input Styling (White fields matching production) */
.form-container {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.form-container input[type="text"],
.form-container input[type="email"],
.form-container textarea,
.et_pb_contact_form input,
.et_pb_contact_form textarea {
    font-weight: 300 !important;
    font-size: 16px !important;
    margin-bottom: 10px !important;
    padding: 15px !important;
    width: 100% !important;
    max-width: 600px !important;
    border: 1px solid #000000 !important;
    background-color: #ffffff !important;
    color: #000000 !important;
    box-sizing: border-box !important;
}

.form-container input::placeholder,
.form-container textarea::placeholder {
    color: #777777 !important;
    opacity: 1 !important;
}

.form-container button,
.form-container input[type="submit"] {
    background-color: var(--ryp-btn-sand-bg) !important;
    color: var(--ryp-btn-sand-text) !important;
    font-family: 'Open Sans', sans-serif !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    letter-spacing: 3px !important;
    padding: 10px 30px !important;
    line-height: 1.7em !important;
    border: none !important;
    border-radius: 0 !important;
    cursor: pointer !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    transition: background-color 0.2s ease, color 0.2s ease !important;
}

.form-container button:hover,
.form-container input[type="submit"]:hover {
    background-color: #000000 !important;
    color: #ffffff !important;
    text-decoration: none !important;
}

.form-container .name-container {
    display: flex;
    justify-content: space-between;
    width: 100%;
    max-width: 600px;
    gap: 15px;
}

.form-container .name-container input {
    width: 100%;
}

@media (max-width: 767px) {
    .form-container .name-container {
        flex-direction: column;
        gap: 0;
    }
}

/* Universal Button System (Divi, Widgets, Form CTAs) */
#page-container .et_pb_button,
#page-container a.et_pb_button,
#page-container a.et_pb_button:visited,
#page-container .et_pb_more_button,
#page-container .spwidget-button,
#page-container .form-container button,
#page-container .form-container input[type="submit"],
.et_pb_button,
.et_pb_more_button,
.spwidget-button,
.ryp-btn--sand,
.ryp-cta-btn,
.ryp-cta-btn--primary {
    font-family: 'Open Sans', sans-serif !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    letter-spacing: 3px !important;
    text-transform: uppercase !important;
    padding: 10px 30px !important;
    line-height: 1.7em !important;
    background-color: var(--ryp-btn-sand-bg) !important;
    color: var(--ryp-btn-sand-text) !important;
    border: none !important;
    border-radius: 0 !important;
    text-decoration: none !important;
    display: inline-block !important;
    cursor: pointer !important;
    transition: background-color 0.2s ease, color 0.2s ease !important;
}

/* Button Rollover / Hover State (Reverse to Black BG + White Text - matching production) */
#page-container .et_pb_button:hover,
#page-container a.et_pb_button:hover,
#page-container .et_pb_more_button:hover,
#page-container .spwidget-button:hover,
#page-container .form-container button:hover,
#page-container .form-container input[type="submit"]:hover,
.et_pb_button:hover,
.et_pb_more_button:hover,
.spwidget-button:hover,
.ryp-btn--sand:hover,
.ryp-cta-btn:hover,
.ryp-cta-btn--primary:hover,
.ryp-cta-btn:focus-visible,
.ryp-cta-btn--primary:focus-visible {
    background-color: var(--ryp-btn-sand-hover-bg) !important;
    color: var(--ryp-btn-sand-hover-text) !important;
    text-decoration: none !important;
}

/* Button Variant Utility Classes — placed after (and stronger than) the
   Universal Button System so a module-level class can pick its surface variant.
   Apply in Divi via the module's CSS Class field. */
#page-container .ryp-btn--white,
#page-container a.et_pb_button.ryp-btn--white,
.ryp-btn--white {
    background-color: var(--ryp-btn-white-bg) !important;
    color: var(--ryp-btn-white-text) !important;
}
#page-container .ryp-btn--white:hover,
#page-container .ryp-btn--white:focus-visible,
#page-container a.et_pb_button.ryp-btn--white:hover,
#page-container a.et_pb_button.ryp-btn--white:focus-visible,
.ryp-btn--white:hover,
.ryp-btn--white:focus-visible {
    background-color: var(--ryp-btn-white-hover-bg) !important;
    color: var(--ryp-btn-white-hover-text) !important;
}

#page-container .ryp-btn--black,
#page-container a.et_pb_button.ryp-btn--black,
.ryp-btn--black {
    background-color: var(--ryp-btn-black-bg) !important;
    color: var(--ryp-btn-black-text) !important;
}
#page-container .ryp-btn--black:hover,
#page-container .ryp-btn--black:focus-visible,
#page-container a.et_pb_button.ryp-btn--black:hover,
#page-container a.et_pb_button.ryp-btn--black:focus-visible,
.ryp-btn--black:hover,
.ryp-btn--black:focus-visible {
    background-color: var(--ryp-btn-black-hover-bg) !important;
    color: var(--ryp-btn-black-hover-text) !important;
}

/* Exclude all buttons from text link hover underlines and terracotta colors */
.entry-content a.et_pb_button:hover,
.entry-content a.et_pb_more_button:hover,
.entry-content a.spwidget-button:hover,
.entry-content a.ryp-btn--sand:hover,
.entry-content a.ryp-btn--white:hover,
.entry-content a.ryp-btn--black:hover,
#page-container a.et_pb_button:hover,
#page-container a.et_pb_more_button:hover,
#page-container a.spwidget-button:hover,
#page-container a.ryp-btn--sand:hover,
#page-container a.ryp-btn--white:hover,
#page-container a.ryp-btn--black:hover {
    text-decoration: none !important;
    text-decoration-color: transparent !important;
}

/* ==========================================================================
   Scoped Remediation for Mobile Viewport & Form Accessibility
   ========================================================================== */

/* Ensure border-box for forms and fields globally */
form,
iframe,
.form-container,
.form-container input,
.form-container textarea,
.form-container select,
.form-container button {
    box-sizing: border-box !important;
}

/* Remediation for mobile viewport overflow (screen <= 640px) */
@media (max-width: 640px) {
    form,
    iframe,
    .form-container,
    .form-container form,
    .form-container iframe {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    .form-container input,
    .form-container textarea,
    .form-container select,
    .form-container button {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    .form-container .name-container {
        flex-direction: column !important;
        gap: 10px !important;
        width: 100% !important;
        max-width: 100% !important;
    }
    .form-container .name-container input {
        margin-bottom: 10px !important;
        width: 100% !important;
    }
}

/* Accessibility focus ring on keyboard navigation */
.form-container input:focus-visible,
.form-container textarea:focus-visible,
.form-container select:focus-visible,
.form-container button:focus-visible,
.form-container input[type="submit"]:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
button:focus-visible {
    outline: 2px solid transparent !important;
    outline-offset: 2px !important;
    border-color: #8A9271 !important;
    box-shadow: 0 0 0 3px rgba(138, 146, 113, 0.4) !important;
}

/* ==========================================================================
   Content-Area Link Styles (Light Surfaces)
   ==========================================================================
   Default link styling for content areas on light backgrounds.
   Dark-surface overrides below use #page-container to guarantee higher
   specificity, so this rule is intentionally kept at class-level.
*/
.entry-content a:not(.et_pb_button):not(.et_pb_more_button):not(.spwidget-button):not(.ryp-cta-btn):not(.ryp-cta-btn--primary):not(:has(img)),
.et_pb_text_inner a:not(.et_pb_button):not(.et_pb_more_button):not(.spwidget-button):not(.ryp-cta-btn):not(.ryp-cta-btn--primary):not(:has(img)) {
    color: #000000 !important;
    font-weight: inherit !important;
    text-decoration: none;
    transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.entry-content a:not(.et_pb_button):not(.et_pb_more_button):not(.spwidget-button):not(.ryp-cta-btn):not(.ryp-cta-btn--primary):not(:has(img)):hover,
.et_pb_text_inner a:not(.et_pb_button):not(.et_pb_more_button):not(.spwidget-button):not(.ryp-cta-btn):not(.ryp-cta-btn--primary):not(:has(img)):hover {
    color: #B0763B !important;
    text-decoration: underline !important;
    text-decoration-color: #B0763B !important;
}

/* Exclude footer & header from content-area brand link colors —
   must match or exceed specificity of brand rules (0,4,1) */
.et-l--footer .et_pb_text_inner a:not(.et_pb_button):not(.spwidget-button):not(.ryp-cta-btn):not(.ryp-cta-btn--primary):not(:has(img)),
.et-l--footer .et_pb_text_inner a:not(.et_pb_button):not(.spwidget-button):not(.ryp-cta-btn):not(.ryp-cta-btn--primary):not(:has(img)):hover,
.et-l--header .et_pb_text_inner a:not(.et_pb_button):not(.spwidget-button):not(.ryp-cta-btn):not(.ryp-cta-btn--primary):not(:has(img)),
.et-l--header .et_pb_text_inner a:not(.et_pb_button):not(.spwidget-button):not(.ryp-cta-btn):not(.ryp-cta-btn--primary):not(:has(img)):hover {
    color: #333 !important;
    text-decoration: none !important;
    text-decoration-color: initial !important;
}

/* Footer text — body text, paragraphs, and links all dark */
.et-l--footer .et_pb_text_inner,
.et-l--footer .et_pb_text_inner p,
.et-l--footer .et_pb_text_inner a {
    color: #333 !important;
}

/* ==========================================================================
   Navigation Dropdown Fix
   ========================================================================== */
.et-l--header .et_pb_menu__wrap .sub-menu,
.et-l--header .et_pb_fullwidth_menu .sub-menu,
#main-header .et_mobile_menu,
.et-l--header ul.sub-menu {
    background-color: #fff !important;
    min-width: 240px;
    border: none;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.et-l--header .et_pb_menu__wrap .sub-menu li a,
.et-l--header ul.sub-menu li a {
    padding: 10px 20px !important;
    white-space: nowrap;
    background-color: #fff !important;
    width: 100%;
}

/* ==========================================================================
   Navigation Alignment & Bottom Border Correction
   ========================================================================== */
@media only screen and (min-width: 981px) {
    /* Set row to flex layout and stretch columns */
    .et-l--header .et_pb_row_0_tb_header {
        display: flex !important;
        align-items: stretch !important;
        justify-content: space-between !important;
        padding-top: 0px !important;
        padding-bottom: 0px !important;
    }

    /* Reset column widths and margins for flex layout, and add vertical padding */
    .et-l--header .et_pb_column_0_tb_header,
    .et-l--header .et_pb_column_1_tb_header {
        float: none !important;
        margin-right: 0 !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
        padding-top: 25px !important;
        padding-bottom: 25px !important;
        box-sizing: border-box !important;
    }

    /* Column 1 (logo) alignment */
    .et-l--header .et_pb_column_0_tb_header {
        align-items: flex-start !important;
    }

    /* Column 2 (menu) alignment and bottom line */
    .et-l--header .et_pb_column_1_tb_header {
        align-items: flex-end !important;
        border-bottom: 1px solid #000000 !important;
    }

    /* Reset logo margins/padding */
    .et-l--header .et_pb_image_0_tb_header {
        margin-top: 0 !important;
        margin-bottom: 0 !important;
    }
}

/* Global Font Smoothing for crisp, high-premium rendering */
body {
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
}

/* Hero Typography Classes */
.ryp-hero-subtitle {
    font-family: 'Open Sans', sans-serif !important;
    font-weight: 500 !important;
    font-size: 16px !important;
    line-height: 1.4 !important;
    letter-spacing: 4px !important;
    text-transform: uppercase !important;
    color: #53524F !important;
    margin: 0 0 4px !important;
}
.ryp-hero-title {
    font-family: 'Nanum Myeongjo', Georgia, serif !important;
    font-size: 44px !important;
    font-weight: 300 !important;
    line-height: 1.3 !important;
    color: #2A2824 !important;
    letter-spacing: -0.02em !important;
    margin: 0 0 10px !important;
}
.ryp-hero-lead {
    font-family: 'Open Sans', sans-serif !important;
    font-size: 16px !important;
    font-weight: 300 !important;
    line-height: 1.6 !important;
    color: #2A2824 !important;
    margin: 0 0 8px !important;
    max-width: 540px !important;
}
.ryp-hero-body {
    font-family: 'Open Sans', sans-serif !important;
    font-size: 16px !important;
    font-weight: 300 !important;
    line-height: 1.65 !important;
    color: #3A3833 !important;
    margin: 0 !important;
    max-width: 540px !important;
}

/* Global Body Links style */
.et_pb_text a,
.et_pb_text a:visited,
.et_pb_text p a,
.et_pb_text p a:visited {
    color: inherit;
    text-decoration: underline !important;
    text-decoration-color: #C2BEA6 !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 3px !important;
    transition: color 180ms ease, text-decoration-color 180ms ease;
}
.et_pb_text a:hover,
.et_pb_text p a:hover {
    color: #B0763B !important;
    text-decoration-color: #B0763B !important;
}

/* Hero CTAs Alignment and Centering (Desktop) */
@media (min-width: 981px) {
    .ryp-hero-left-ctas {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 28px !important;
        flex-wrap: wrap !important;
        margin-top: -14px !important;
    }

    .ryp-hero-right-cta {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        margin-top: -14px !important;
    }

    .ryp-hero-row,
    div[data-node-id="dbf61c20-d0a6-46b3-aafd-3dec3ee989e4"] {
        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: stretch !important;
    }

    .ryp-hero-row > .et_pb_column,
    div[data-node-id="dbf61c20-d0a6-46b3-aafd-3dec3ee989e4"] > .et_pb_column {
        width: 50% !important;
        max-width: 50% !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: flex-start !important;
    }
}

/* Responsive Stacking & Ordering (Mobile / Tablet) */
@media (max-width: 980px) {
    .ryp-hero-row,
    div[data-node-id="dbf61c20-d0a6-46b3-aafd-3dec3ee989e4"] {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
    }

    .ryp-hero-row > .et_pb_column,
    div[data-node-id="dbf61c20-d0a6-46b3-aafd-3dec3ee989e4"] > .et_pb_column {
        width: 100% !important;
        max-width: 100% !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
    }

    .ryp-hero-left-ctas {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 28px !important;
        flex-wrap: wrap !important;
        margin-top: -14px !important;
    }

    .ryp-hero-right-cta {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        margin-top: -14px !important;
    }
}

/* Global CTA Link Styles
   (.ryp-cta-btn / .ryp-cta-btn--primary are styled by the Universal Button
   System above — one sand button, one hover: black bg + white text.) */
.ryp-cta-link,
.ryp-cta-link:visited {
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
    color: #000000 !important;
    font-family: 'Open Sans', sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
}

.ryp-cta-link:hover {
    color: #B0763B !important;
    text-decoration: underline !important;
}

/* Video Modal & Image Play Hover Effects */
.ryp-hero-1a__btn-video {
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
    color: #53524F !important;
    font-family: 'Open Sans', sans-serif !important;
    font-size: 14px !important;
    line-height: 1 !important;
    font-weight: 400 !important;
    background: none !important;
    border: none !important;
    padding: 0 !important;
    cursor: pointer !important;
    transition: color 180ms ease !important;
}

.ryp-play-icon-wrap {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 34px !important;
    height: 34px !important;
    border: 1px solid #C9C5BC !important;
    border-radius: 50% !important;
    flex-shrink: 0 !important;
    transition: border-color 180ms ease, background-color 180ms ease !important;
}

.ryp-hero-1a__btn-video:hover {
    color: #B0763B !important;
}

.ryp-hero-1a__btn-video:hover .ryp-play-icon-wrap {
    border-color: #B0763B !important;
    background-color: rgba(176, 118, 59, 0.08) !important;
}

.ryp-hero-1a__dialog::backdrop {
    background: rgba(26, 24, 20, 0.82) !important;
    backdrop-filter: blur(4px) !important;
    -webkit-backdrop-filter: blur(4px) !important;
}

.ryp-hero-1a__dialog[open] {
    animation: ryp1aDialogIn 320ms cubic-bezier(0.32, 0.08, 0.24, 1) both !important;
}

@keyframes ryp1aDialogIn {
    from { opacity: 0; transform: scale(0.96) translateY(12px); }
    to { opacity: 1; transform: scale(1) translateY(0); }
}

.ryp-dialog-container {
    position: relative !important;
    background: #1A1A1A !important;
    border-radius: 8px !important;
    overflow: hidden !important;
}

.ryp-hero-1a__dialog-close {
    position: absolute !important;
    top: 12px !important;
    right: 12px !important;
    z-index: 2 !important;
    width: 40px !important;
    height: 40px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(255, 255, 255, 0.12) !important;
    border: none !important;
    border-radius: 50% !important;
    color: #fff !important;
    font-size: 22px !important;
    line-height: 1 !important;
    cursor: pointer !important;
    transition: background-color 180ms ease !important;
}

.ryp-hero-1a__dialog-close:hover {
    background: rgba(255, 255, 255, 0.24) !important;
}

.ryp-hero-1a__dialog-embed {
    position: relative !important;
    width: 100% !important;
    padding-bottom: 56.25% !important;
}

.ryp-hero-1a__dialog-embed iframe {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    border: 0 !important;
}

/* Hero photo trigger styling */
.ryp-hero-image-trigger {
    position: relative !important;
    cursor: pointer !important;
    overflow: hidden !important;
    display: block !important;
    margin: 0 auto !important; /* Center inside column */
    margin-bottom: 0 !important;
}

.ryp-hero-row .et_pb_image {
    margin-bottom: 0 !important;
}

@media (min-width: 981px) {
    .ryp-hero-image-trigger {
        width: 320px !important;
        height: 420px !important;
        border-top-left-radius: 160px !important; /* Perfect arch */
        border-top-right-radius: 160px !important;
    }
}

@media (max-width: 980px) {
    .ryp-hero-image-trigger {
        width: 280px !important;
        height: 365px !important;
        border-top-left-radius: 140px !important; /* Perfect arch */
        border-top-right-radius: 140px !important;
    }
}

.ryp-hero-image-trigger img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    transition: transform 480ms cubic-bezier(.22,.61,.36,1), filter 220ms ease !important;
}

.ryp-hero-image-trigger:hover img {
    transform: scale(1.025) !important;
    filter: brightness(.96) !important;
}

.ryp-hero-image-trigger::before {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    z-index: 2 !important;
    display: grid !important;
    width: 72px !important;
    height: 72px !important;
    place-items: center !important;
    transform: translate(-50%,-50%) !important;
    border: none !important;
    border-radius: 50% !important;
    background: rgba(235, 232, 225, 0.6) !important;
    box-shadow: 0 8px 28px rgba(48, 48, 48, .16) !important;
    transition: background-color 180ms ease, transform 180ms ease !important;
    content: "" !important;
    pointer-events: none !important;
}

.ryp-hero-image-trigger::after {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    z-index: 3 !important;
    width: 0 !important;
    height: 0 !important;
    margin-left: 4px !important;
    border-top: 8px solid transparent !important;
    border-bottom: 8px solid transparent !important;
    border-left: 12px solid #303030 !important;
    transform: translate(-50%,-50%) !important;
    content: "" !important;
    pointer-events: none !important;
    transition: transform 180ms ease !important;
}

.ryp-hero-image-trigger:hover::before {
    transform: translate(-50%,-50%) scale(1.04) !important;
    background: rgba(235, 232, 225, 0.8) !important;
}

.ryp-hero-image-trigger:hover::after {
    transform: translate(-50%,-50%) scale(1.04) !important;
}

@media (max-width: 767px) {
    .ryp-hero-image-trigger::before {
        width: 64px !important;
        height: 64px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ryp-hero-image-trigger img,
    .ryp-hero-image-trigger::before,
    .ryp-hero-image-trigger::after {
        transition: none !important;
    }
}

/* Hide the schema container section to prevent empty white space at the bottom of the page */
div[data-node-id="e881bfad-e75a-4bf5-ad11-b5b9194c27ee"] {
    display: none !important;
}

/* ===========================================================================
   Heading hierarchy and accessible controls
   ========================================================================== */

/*
 * Small labels now use H2 and their associated display headings use H3.
 * These classes preserve the established visual treatment without relying on
 * an invalid H3-to-H2 jump.
 */
#main-content .et_pb_text_inner h2.ryp-eyebrow,
#main-content .et_pb_text_inner > h2:first-child:has(+ h1) {
    color: #53524F !important;
    font-family: 'Open Sans', sans-serif !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    letter-spacing: 4px !important;
    line-height: 1.4 !important;
    margin: 0 0 4px !important;
    text-transform: uppercase !important;
}

#main-content .et_pb_text_inner h3.ryp-section-heading {
    color: #2A2824 !important;
    font-family: 'Nanum Myeongjo', Georgia, serif !important;
    font-size: clamp(26px, 3.2vw, 36px) !important;
    font-weight: 400 !important;
    letter-spacing: -0.02em !important;
    line-height: 1.3 !important;
    margin: 0 0 10px !important;
    text-transform: none !important;
}

/* Page-header eyebrows use the same sans-serif treatment as section labels. */
#main-content .et_pb_text_inner > h2:first-child:has(+ h1) + h1 {
    font-family: 'Nanum Myeongjo', Georgia, serif !important;
    font-weight: 400 !important;
}

/* Ensure the in-page "Find out more" control meets the 44px touch target. */
#main-content a[href="#counseling-services"],
#main-content a[href$="#counseling-services"] {
    align-items: center !important;
    display: inline-flex !important;
    justify-content: center !important;
    min-height: 44px;
}

/* Divi outputs a span for this interactive control; the script adds button semantics. */
.et-l--header .mobile_menu_bar[role="button"] {
    align-items: center;
    cursor: pointer;
    display: inline-flex;
    justify-content: center;
    min-height: 44px;
    min-width: 44px;
}

.et-l--header .mobile_menu_bar[role="button"]:focus-visible,
#main-content a[href="#counseling-services"]:focus-visible,
#main-content a[href$="#counseling-services"]:focus-visible {
    outline: 3px solid #8A9271 !important;
    outline-offset: 3px !important;
}

/* Structured data belongs to crawlers, not the visual layout. Divi gives a
 * standalone Code module its own section, which otherwise creates blank space
 * at the bottom of pages. The JSON-LD remains in the DOM for search engines. */
#main-content .et_pb_section:has(.et_pb_code script[type="application/ld+json"]) {
    display: none !important;
}

/* Do not render Divi's empty trailing rows as blank white bands. */
#main-content .et_pb_section:has(.et-vb-row--no-module):not(:has(.et_pb_module)) {
    display: none !important;
}

/* ==========================================================================
   Dark-Surface Global Styling System
   ==========================================================================
   Clean, universal treatment for dark layouts, split-background modules,
   and dark containers across the site.
*/

/* Usage: add the `ryp-dark-surface` CSS class in Divi (CSS Class field) to any
   section, row, or column whose content sits on a charcoal surface — including
   the dark half of the split-gradient bands. Divi's own `et_pb_bg_layout_dark`
   is honored as an equivalent marker. Everything inside inherits high-contrast
   text, eyebrow, and link treatment automatically. */

/* Container & Body Typography Colors for Dark Surfaces ONLY */
:is(.ryp-dark-surface, .et_pb_bg_layout_dark),
:is(.ryp-dark-surface, .et_pb_bg_layout_dark) :is(.et_pb_text_inner, p, li, h1, h2, h3, h4, h5, h6) {
    color: var(--ryp-color-text-light) !important;
}

:is(.ryp-dark-surface, .et_pb_bg_layout_dark) .ryp-eyebrow {
    color: var(--ryp-color-sand-light) !important;
}

/* Universal High-Contrast Links inside Dark Containers (including any nested <span> tags) */
#page-container :is(.ryp-dark-surface, .et_pb_bg_layout_dark) :is(a, a *, a:link, a:link *, a:visited, a:visited *):not(.et_pb_button):not(.spwidget-button):not(.ryp-cta-btn):not(.ryp-cta-btn--primary) {
    color: var(--ryp-color-link-dark) !important;
    font-weight: inherit !important;
    text-decoration: underline !important;
    text-decoration-color: var(--ryp-color-sand-border) !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 3px !important;
    transition: color 180ms ease, text-decoration-color 180ms ease !important;
}

#page-container :is(.ryp-dark-surface, .et_pb_bg_layout_dark) :is(a:hover, a:hover *):not(.et_pb_button):not(.spwidget-button):not(.ryp-cta-btn):not(.ryp-cta-btn--primary) {
    color: var(--ryp-color-text-light) !important;
    text-decoration-color: var(--ryp-color-text-light) !important;
}

/* Pricing table: use the site's black copy and neutral list marker. */
#main-content .et_pb_pricing_table .et_pb_pricing_heading,
#main-content .et_pb_pricing_table .et_pb_pricing_content_top,
#main-content .et_pb_pricing_table .et_pb_et_price,
#main-content .et_pb_pricing_table .et_pb_pricing_content,
#main-content .et_pb_pricing_table .et_pb_pricing,
#main-content .et_pb_pricing_table .et_pb_pricing li,
#main-content .et_pb_pricing_table .et_pb_pricing li > span,
#main-content .et_pb_pricing_table .et_pb_pricing li > span > span {
	color: #000000 !important;
}

#main-content .et_pb_pricing_table .et_pb_pricing li > span::before {
	border-color: #000000 !important;
}

/* Shared primary-button typography and spacing. */
body a.et_pb_button,
body button.et_pb_button,
body a.ryp-cta-btn,
body a.ryp-cta-btn:visited,
#main-content form button[type="submit"] {
  font-family: 'Open Sans', Arial, sans-serif !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  padding: 10px 30px !important;
  border-radius: 0 !important;
}

body a.ryp-cta-btn:hover,
body a.ryp-cta-btn:focus-visible {
  text-decoration: none !important;
}

/* Contact form uses a custom raw submit element; keep it aligned with the shared CTA system. */
#ryp-contact-form button[type="submit"] {
  font-family: 'Open Sans', Arial, sans-serif !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  padding: 10px 30px !important;
  border-radius: 0 !important;
}

/* KAP fee tables: keep the card grid balanced and readable on phones. */
body.page-id-165 #main-content .et_pb_pricing_tables {
  align-items: stretch;
}

body.page-id-165 #main-content .et_pb_pricing_tables .et_pb_pricing_table {
  box-sizing: border-box;
}

/* The Journey Clinical insurance card has no price. Remove its empty price band. */
body.page-id-165 #main-content .et_pb_pricing_tables_1 .et_pb_pricing_table:last-child .et_pb_pricing_content_top {
  display: none !important;
}

@media (max-width: 767px) {
  body.page-id-165 #main-content .et_pb_pricing_tables {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 16px !important;
    margin: 0 !important;
  }

  body.page-id-165 #main-content .et_pb_pricing_tables .et_pb_pricing_table {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
  }

  body.page-id-165 #main-content .et_pb_pricing_table .et_pb_pricing_heading {
    padding: 20px 20px 16px !important;
  }

  body.page-id-165 #main-content .et_pb_pricing_table .et_pb_pricing_content_top {
    padding: 14px 20px 20px !important;
  }

  body.page-id-165 #main-content .et_pb_pricing_table .et_pb_pricing_content {
    padding: 0 20px 24px !important;
  }

  body.page-id-165 #main-content .et_pb_pricing_table .et_pb_pricing {
    margin: 0 !important;
    padding: 0 !important;
  }

  body.page-id-165 #main-content .et_pb_pricing_table .et_pb_pricing li {
    line-height: 1.55 !important;
    padding-bottom: 12px !important;
  }

  body.page-id-165 #main-content .et_pb_pricing_table .et_pb_pricing li:last-child {
    padding-bottom: 0 !important;
  }
}

/* KAP pricing cards: keep table-body copy at one consistent weight. */
body.page-id-165 #main-content .et_pb_pricing_tables .et_pb_pricing_content strong,
body.page-id-165 #main-content .et_pb_pricing_tables .et_pb_pricing_content b {
  font-weight: inherit !important;
}

/* ==========================================================================
   Waitlist inquiry: align the bespoke form with the site design system.
   Keeps the existing Google Form submission and Mailchimp opt-in behavior.
   ========================================================================== */
body.page-id-733 #ryp-inquiry-page {
  --color-sand-50: #EBE8E1;
  --color-sand-100: #D8D4BD;
  --color-text: #3A3833;
  --color-heading: #2A2824;
  background-color: #EBE8E1 !important;
}

body.page-id-733 .ryp-inquiry-hero,
body.page-id-733 .ryp-inquiry-form-section {
  background-color: #EBE8E1 !important;
}

body.page-id-733 .ryp-inquiry-form-card {
  border-color: #D8D4BD !important;
}

/* The global hero-body reset removed this page's intended space before its CTA. */
body.page-id-733 .ryp-inquiry-hero .ryp-hero-body {
  margin: 0 0 28px !important;
}

body.page-id-733 .ryp-inquiry-hero .ryp-hero-subtitle {
  color: #53524F !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  letter-spacing: 4px !important;
  line-height: 1.4 !important;
}

body.page-id-733 .ryp-inquiry-hero .ryp-hero-cta,
body.page-id-733 .ryp-inquiry-form-card button[type="submit"] {
  align-items: center !important;
  background-color: #D3CFB6 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-sizing: border-box !important;
  color: #000000 !important;
  display: inline-flex !important;
  font-family: 'Open Sans', Arial, sans-serif !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  justify-content: center !important;
  letter-spacing: 3px !important;
  line-height: 1.5 !important;
  min-height: 44px;
  padding: 10px 30px !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
}

body.page-id-733 .ryp-inquiry-hero .ryp-hero-cta:hover,
body.page-id-733 .ryp-inquiry-hero .ryp-hero-cta:focus-visible,
body.page-id-733 .ryp-inquiry-form-card button[type="submit"]:hover,
body.page-id-733 .ryp-inquiry-form-card button[type="submit"]:focus-visible {
  background-color: #000000 !important;
  color: #FFFFFF !important;
}

body.page-id-733 .ryp-inquiry-hero .ryp-hero-cta:focus-visible,
body.page-id-733 .ryp-inquiry-form-card button[type="submit"]:focus-visible {
  outline: 3px solid #8A9271 !important;
  outline-offset: 3px !important;
}

@media (max-width: 767px) {
  body.page-id-733 .ryp-inquiry-form-section {
    padding: 56px 20px 72px !important;
  }

  body.page-id-733 .ryp-inquiry-form-card {
    padding: 32px 24px !important;
  }

  body.page-id-733 .ryp-submit-row {
    align-items: stretch !important;
    flex-direction: column !important;
    gap: 16px !important;
    margin-top: 32px !important;
  }

  body.page-id-733 .ryp-inquiry-form-card button[type="submit"] {
    width: 100% !important;
  }

  body.page-id-733 .ryp-submit-note {
    text-align: center;
  }
}
