/*
 * Easy Way To Live Well block pages (GenerateBlocks). Source: handoff/homepage-design.html.
 * Every rule is scoped to .ew-page (the page wrapper) so nothing affects other pages.
 * Loaded on the front end and inside the block editor (see inc/ew-page.php).
 */

body .ew-page {
    --ink: #27322A;
    --green: #5E7852;
    --green-d: #4C6642;
    --leaf: #F1F1EF;
    --mist: #FBF8F3;
    --line: #E6E3DD;
    --gray: #F1F1EF;
    --char: #33363A;
    --on-dark: #E8E6E2;
    --body: #4E5A4B;
    --gold: #F0B429;
    --white: #FFFFFF;
    overflow-x: clip;
    background: var(--white);
    color: var(--body);
    font-family: "IBM Plex Sans", system-ui, sans-serif;
    font-size: 17px;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}

body .ew-page *,
body .ew-page *::before,
body .ew-page *::after {
    box-sizing: border-box;
}

body .ew-page :where(h1, h2, h3, p, ul, li, figure) {
    margin: 0;
    padding: 0;
}

body .ew-page ul {
    list-style: none;
}

body .ew-page a {
    color: inherit;
    text-decoration: none;
}

body .ew-page img {
    max-width: 100%;
}

body .ew-page .gb-shape {
    display: inline-flex;
}

/* ---------- type ---------- */
body .ew-page .disp,
body .ew-page .card-t,
body .ew-page .here-t,
body .ew-page .pivot-t,
body .ew-page .personal-t,
body .ew-page .step-t,
body .ew-page .book-t {
    font-family: "Fraunces", Georgia, serif;
    font-weight: 500;
    color: var(--ink);
    letter-spacing: -0.015em;
    text-wrap: balance;
}

body .ew-page .disp em,
body .ew-page .pivot-t em {
    font-style: italic;
    font-weight: 400;
    color: var(--green);
}

body .ew-page .eyebrow {
    font-family: "Montserrat", Arial, sans-serif;
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--green);
}

body .ew-page .wrap {
    width: 100%;
    max-width: 1240px;
    margin: 0 auto;
    padding-inline: 32px;
}

body .ew-page .sec {
    padding-block: 112px;
}

/* ---------- buttons ---------- */
body .ew-page .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 56px;
    padding: 18px 32px;
    border: 1.5px solid var(--green);
    border-radius: 999px;
    background: var(--green);
    color: var(--white);
    font-family: "Montserrat", Arial, sans-serif;
    font-weight: 700;
    font-size: 15px;
    text-align: center;
    transition: background 0.2s, border-color 0.2s;
}

body .ew-page .btn:hover,
body .ew-page .btn:focus {
    background: var(--green-d);
    border-color: var(--green-d);
    color: var(--white);
}

body .ew-page .btn-ghost {
    background: var(--white);
    color: var(--green-d);
}

body .ew-page .btn-ghost:hover,
body .ew-page .btn-ghost:focus {
    background: var(--leaf);
    border-color: var(--green);
    color: var(--green-d);
}

body .ew-page .btn-light {
    border-color: var(--white);
    background: var(--white);
    color: var(--char);
}

body .ew-page .btn-light:hover,
body .ew-page .btn-light:focus {
    border-color: var(--gray);
    background: var(--gray);
    color: var(--char);
}

body .ew-page .btn:focus-visible,
body .ew-page .chip:focus-visible {
    outline: 3px solid var(--ink);
    outline-offset: 3px;
}

/* ---------- pill ---------- */
body .ew-page .pill {
    display: flex;
    align-items: center;
    align-self: flex-start;
    gap: 12px;
    max-width: 100%;
    padding: 6px 18px 6px 6px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--white);
    box-shadow: 0 6px 20px rgba(39, 50, 42, 0.06);
    color: var(--ink);
    font-size: 14px;
}

body .ew-page .pill-score {
    display: flex;
    flex: none;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border-radius: 999px;
    background: var(--green);
    color: var(--white);
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

body .ew-page .pill-stars {
    color: var(--gold);
    letter-spacing: 2px;
}

body .ew-page .pill-label {
    min-width: 0;
    line-height: 1.35;
}

/* ---------- 1. hero (v2): photo + dark green gradient; keeps its own green palette ---------- */
body .ew-page .hero {
    --line: #DCE6D6;
    --leaf: #E8F0E3;
    position: relative;
    display: flex;
    align-items: center;
    min-height: 860px;
    overflow: hidden;
    isolation: isolate;
    background: #1C261F;
}

body .ew-page .hero > .hero-bg {
    position: absolute;
    inset: 0;
    z-index: -1;
}

body .ew-page .hero-bg > .hero-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 62% 22%;
}

body .ew-page .hero-bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(28, 38, 31, 0.95) 0%, rgba(28, 38, 31, 0.88) 30%, rgba(28, 38, 31, 0.5) 46%, rgba(28, 38, 31, 0) 62%);
}

body .ew-page .hero-in {
    width: 100%;
    max-width: 1240px;
    margin: 0 auto;
    padding: 104px 32px;
}

body .ew-page .hero-copy {
    display: flex;
    flex-direction: column;
    gap: 26px;
    max-width: 640px;
    min-width: 0;
}

body .ew-page .hero .eyebrow {
    color: #B7D0AB;
}

body .ew-page .hero-title {
    color: var(--white);
    font-size: clamp(40px, 4.9vw, 70px);
    line-height: 1.06;
}

body .ew-page .hero-title em {
    color: #BFD8B3;
}

body .ew-page .lead {
    max-width: 580px;
    color: #E6EEE2;
    font-size: 19px;
    line-height: 1.65;
}

body .ew-page .sub {
    max-width: 580px;
    color: #C9D8C4;
    font-size: 17px;
    line-height: 1.65;
}

body .ew-page .where {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

body .ew-page .where-chip {
    padding: 9px 16px;
    border: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 999px;
    color: var(--white);
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
}

body .ew-page .ctas {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 24px;
}

body .ew-page .hero .btn-light,
body .ew-page .hero .btn-light:hover,
body .ew-page .hero .btn-light:focus {
    color: var(--ink);
}

body .ew-page .tellink,
body .ew-page .tellink:hover,
body .ew-page .tellink:focus {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding-bottom: 3px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.55);
    color: var(--white);
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 14.5px;
    font-weight: 600;
}

body .ew-page .tellink:hover,
body .ew-page .tellink:focus {
    border-color: var(--white);
}

body .ew-page .hq {
    display: flex;
    flex-direction: column;
    gap: 4px;
    max-width: 520px;
    padding: 2px 0 2px 20px;
    border-left: 1px solid rgba(255, 255, 255, 0.45);
}

body .ew-page .hq-quote {
    color: var(--white);
    font-family: "Fraunces", Georgia, serif;
    font-size: 19px;
    font-style: italic;
    line-height: 1.45;
}

body .ew-page .hq-name {
    color: #B7D0AB;
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 12.5px;
    font-weight: 600;
}

body .ew-page .hero > .badge {
    position: absolute;
    right: 32px;
    bottom: 36px;
    display: flex;
    align-items: center;
    gap: 14px;
    max-width: 300px;
    padding: 18px 20px;
    border-radius: 10px;
    background: var(--white);
    box-shadow: 0 18px 40px rgba(39, 50, 42, 0.18);
}

body .ew-page .badge-n {
    color: var(--green);
    font-family: "Fraunces", Georgia, serif;
    font-size: 44px;
    line-height: 1;
}

body .ew-page .badge-t {
    color: var(--ink);
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 12.5px;
    font-weight: 700;
    line-height: 1.35;
}

/* ---------- 2. reviews ---------- */
body .ew-page .topreviews {
    padding-block: 72px 80px;
    border-bottom: 1px solid var(--line);
    background: var(--white);
}

body .ew-page .tr-head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    margin-bottom: 32px;
    text-align: center;
}

body .ew-page .tr-head .pill {
    align-self: center;
}

body .ew-page .tr-head .disp {
    font-size: clamp(30px, 3.2vw, 44px);
    line-height: 1.1;
}

body .ew-page .reviews-widget {
    min-height: 120px;
}

body .ew-page .note {
    margin-top: 24px;
    color: var(--body);
    font-size: 13px;
    text-align: center;
}

/* ---------- shared section headings ---------- */
body .ew-page .head {
    display: flex;
    flex-direction: column;
    gap: 16px;
    max-width: 760px;
    margin-bottom: 56px;
}

body .ew-page .head.center {
    align-items: center;
    margin-inline: auto;
    text-align: center;
}

body .ew-page .head .disp,
body .ew-page .reach-copy .disp,
body .ew-page .issues-copy .disp,
body .ew-page .vid-copy .disp,
body .ew-page .meet-copy .disp {
    font-size: clamp(34px, 3.6vw, 52px);
    line-height: 1.1;
}

body .ew-page .reach-copy .disp,
body .ew-page .issues-copy .disp,
body .ew-page .vid-copy .disp,
body .ew-page .meet-copy .disp {
    margin: 14px 0 20px;
}

/* ---------- client quotes ---------- */
body .ew-page .proof {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    max-width: 820px;
    margin: 64px auto 0;
    text-align: center;
}

body .ew-page .proof-stars {
    color: var(--gold);
    font-size: 16px;
    letter-spacing: 3px;
}

body .ew-page .proof-quote {
    color: var(--ink);
    font-family: "Fraunces", Georgia, serif;
    font-size: clamp(20px, 2vw, 25px);
    font-style: italic;
    line-height: 1.45;
}

body .ew-page .proof-name {
    color: var(--green-d);
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 13px;
    font-weight: 600;
}

body .ew-page .proof-left {
    align-items: flex-start;
    margin: 0;
    text-align: left;
}

body .ew-page .proof-tight {
    margin-top: 44px;
}

body .ew-page .proof-flush {
    margin-top: 0;
}

/* ---------- 3. reach ---------- */
body .ew-page .reach {
    background: var(--mist);
}

body .ew-page .reach-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    align-items: center;
    gap: 72px;
}

body .ew-page .reach-img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 6px;
}

body .ew-page .reach-copy .body {
    max-width: 520px;
}

body .ew-page .reach .proof-quote {
    max-width: 520px;
}

body .ew-page .loc {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-top: 32px;
}

body .ew-page .loc-card,
body .ew-page .online {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 20px 22px;
    border-radius: 10px;
}

body .ew-page .loc-card {
    border: 1px solid var(--line);
    background: var(--white);
}

body .ew-page .online {
    margin-top: 16px;
    background: var(--leaf);
}

body .ew-page .loc-t {
    color: var(--ink);
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.04em;
}

body .ew-page .loc-d {
    font-size: 14.5px;
    line-height: 1.5;
}

/* ---------- 4. you might be here because ---------- */
body .ew-page .here {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}

body .ew-page .here-card {
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 28px 24px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--gray);
}

body .ew-page .here-t {
    font-size: 20px;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: 0;
    text-wrap: wrap;
}

body .ew-page .here-ic {
    display: flex;
    height: 28px;
    line-height: 0;
}

body .ew-page .here-ic svg,
body .ew-page .card-ic svg,
body .ew-page .meet-ic svg {
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
}

body .ew-page .here-ic svg {
    width: 28px;
    height: 28px;
    stroke: var(--green);
    stroke-width: 1.6;
}

body .ew-page .pivot {
    max-width: 820px;
    margin: 56px auto 0;
    text-align: center;
}

body .ew-page .pivot-t {
    font-size: clamp(26px, 2.8vw, 38px);
    line-height: 1.2;
}

body .ew-page .pivot-p {
    margin-top: 20px;
}

/* ---------- 5. method ---------- */
body .ew-page .method {
    background: linear-gradient(180deg, var(--gray), var(--white));
}

body .ew-page .cards {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}

body .ew-page .card {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 32px 26px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--white);
    box-shadow: 0 10px 30px rgba(39, 50, 42, 0.05);
}

body .ew-page .card-ic {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: var(--leaf);
}

body .ew-page .card-ic svg {
    width: 26px;
    height: 26px;
    stroke: var(--green-d);
    stroke-width: 1.6;
}

body .ew-page .card-t {
    font-size: 23px;
    line-height: 1.2;
    letter-spacing: 0;
}

body .ew-page .card-p {
    font-size: 15.5px;
    line-height: 1.6;
}

body .ew-page .personal {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 32px;
    margin-top: 20px;
    padding: 36px 40px;
    border-radius: 12px;
    background: var(--char);
    color: var(--on-dark);
}

body .ew-page .personal-t {
    margin-bottom: 8px;
    color: var(--white);
    font-size: 28px;
    letter-spacing: 0;
}

body .ew-page .personal-p {
    max-width: 760px;
    color: var(--on-dark);
}

/* ---------- 6. issues ---------- */
body .ew-page .issues-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    align-items: start;
    gap: 72px;
}

body .ew-page .btn-row {
    margin-top: 32px;
}

body .ew-page .issues-side {
    display: flex;
    flex-direction: column;
    gap: 36px;
    min-width: 0;
}

body .ew-page .chips {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

body .ew-page .chip {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 12px 20px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--mist);
    color: var(--ink);
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    transition: all 0.2s;
}

body .ew-page .chip:hover,
body .ew-page .chip:focus {
    border-color: var(--green);
    background: var(--leaf);
    color: var(--ink);
}

/* ---------- 7. before and after ---------- */
body .ew-page .shift {
    background: var(--mist);
}

body .ew-page .table {
    max-width: 980px;
    margin: 0 auto;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--white);
}

body .ew-page .trow {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 48px minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    padding: 20px 32px;
    border-top: 1px solid var(--line);
}

body .ew-page .trow:first-child {
    border-top: 0;
}

body .ew-page .thead {
    padding-block: 16px;
    background: var(--char);
}

body .ew-page .th {
    color: var(--on-dark);
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

body .ew-page .from {
    color: var(--body);
}

body .ew-page .to {
    color: var(--ink);
    font-weight: 500;
}

body .ew-page .ar {
    color: var(--green);
    font-size: 20px;
    text-align: center;
}

body .ew-page .after {
    margin-top: 44px;
    text-align: center;
}

/* ---------- 8. video ---------- */
body .ew-page .vid-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    align-items: center;
    gap: 72px;
}

body .ew-page .vbox {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 6px;
    background: var(--ink);
    box-shadow: 0 24px 60px rgba(39, 50, 42, 0.16);
}

body .ew-page .vbox .wp-block-video {
    position: absolute;
    inset: 0;
    margin: 0;
}

body .ew-page .vbox video {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    background: var(--ink);
}

body .ew-page .vcap {
    margin-top: 14px;
    color: var(--green-d);
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 13px;
    font-weight: 600;
}

/* ---------- 9. credentials (client HTML keeps its own inline styles) ---------- */
body .ew-page .creds-wrap {
    background: var(--gray);
    color: var(--body);
}

body .ew-page .creds-wrap h2 {
    color: var(--ink);
    font-family: "Fraunces", Georgia, serif;
    font-weight: 500;
    letter-spacing: -0.015em;
}

body .ew-page .creds-wrap p:first-child {
    color: var(--green);
}

body .ew-page .creds-quote {
    padding-bottom: 88px;
}

/* ---------- 10. steps ---------- */
body .ew-page .steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

body .ew-page .step {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 32px 28px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--mist);
}

body .ew-page .step-no {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--char);
    color: var(--white);
    font-family: "Fraunces", Georgia, serif;
    font-size: 22px;
}

body .ew-page .step-t {
    font-size: 24px;
    line-height: 1.2;
    letter-spacing: 0;
}

body .ew-page .step-small {
    color: var(--char);
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* ---------- 11. meet ---------- */
body .ew-page .meet {
    background: var(--mist);
}

body .ew-page .meet-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
    align-items: center;
    gap: 72px;
}

body .ew-page .meet-img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: 62% center;
    border-radius: 6px;
}

body .ew-page .meet-copy .body + .body {
    margin-top: 14px;
}

body .ew-page .meet-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 24px 0 32px;
}

body .ew-page .meet-li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    color: var(--ink);
    font-weight: 500;
}

body .ew-page .meet-ic {
    display: flex;
    flex: none;
    height: 22px;
    margin-top: 3px;
    line-height: 0;
}

body .ew-page .meet-ic svg {
    width: 22px;
    height: 22px;
    stroke: var(--green);
    stroke-width: 2;
}

/* ---------- 12. faq (core Details blocks) ---------- */
body .ew-page .faq {
    background: var(--gray);
}

body .ew-page .faqs {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: 880px;
    margin: 0 auto;
}

body .ew-page .faqs .ew-faq-item {
    margin: 0;
    padding: 0 28px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--white);
}

body .ew-page .faqs .ew-faq-item summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 44px;
    padding: 22px 0;
    color: var(--ink);
    font-family: "Fraunces", Georgia, serif;
    font-size: 20px;
    font-weight: 500;
    list-style: none;
    cursor: pointer;
}

body .ew-page .faqs .ew-faq-item summary::-webkit-details-marker {
    display: none;
}

body .ew-page .faqs .ew-faq-item summary::after {
    content: "+";
    flex: none;
    color: var(--green);
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 24px;
}

body .ew-page .faqs .ew-faq-item[open] summary::after {
    content: "\2212";
}

body .ew-page .faqs .ew-faq-item p {
    padding-bottom: 24px;
    font-size: 16px;
}

/* ---------- 13. booking ---------- */
body .ew-page .cta {
    background: var(--char);
    color: var(--on-dark);
}

body .ew-page .cta-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    align-items: center;
    gap: 72px;
}

body .ew-page .cta .eyebrow {
    color: #B7D0AB;
}

body .ew-page .cta-copy .disp {
    color: var(--white);
    font-size: clamp(34px, 3.8vw, 54px);
    line-height: 1.08;
}

body .ew-page .cta-copy .disp em {
    color: #CFE0C6;
}

body .ew-page .cta-copy .body {
    max-width: 520px;
    margin-top: 20px;
    color: var(--on-dark);
}

body .ew-page .cta-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 24px 0 0;
    color: var(--white);
    font-weight: 500;
}

body .ew-page .proof-cta {
    align-items: flex-start;
    margin: 36px 0 0;
    padding-top: 28px;
    border-top: 1px solid rgba(255, 255, 255, 0.28);
    text-align: left;
}

body .ew-page .proof-cta .proof-quote {
    color: var(--white);
    font-size: 20px;
}

body .ew-page .proof-cta .proof-name {
    color: #B7D0AB;
}

body .ew-page .book {
    display: flex;
    flex-direction: column;
    gap: 18px;
    min-width: 0;
    padding: 36px;
    border-radius: 14px;
    background: var(--white);
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.18);
    color: var(--body);
}

body .ew-page .book-t {
    font-size: 28px;
    letter-spacing: 0;
}

body .ew-page .cal {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--mist);
}

body .ew-page .ew-calendly {
    display: block;
    width: 100%;
    height: 700px;
    border: 0;
}

body .ew-page .btn-block {
    width: 100%;
}

body .ew-page .book-tel {
    font-size: 15px;
    text-align: center;
}

body .ew-page .book-tel strong {
    color: var(--ink);
}

/* ---------- block editor: the page uses the full editor width, like the front end ---------- */
.block-editor-block-list__layout.is-root-container > .gb-is-root-block:has(> .ew-page) {
    max-width: none;
    margin-right: 0;
    margin-left: 0;
}

.block-editor-block-list__layout.is-root-container:has(> .gb-is-root-block > .ew-page) {
    padding-right: 0;
    padding-left: 0;
}

/* ---------- GeneratePress page container: let sections run edge to edge ---------- */
.ew-page-body .site-content,
.ew-page-body .inside-article,
.ew-page-body .entry-content {
    margin: 0;
    padding: 0;
}

.ew-page-body .site.grid-container,
.ew-page-body .site-content .content-area {
    max-width: none;
    width: 100%;
}

/* ================================================================
   1000px and below
   ================================================================ */
@media (max-width: 1000px) {
    body .ew-page .hero {
        display: block;
        min-height: 0;
    }

    body .ew-page .hero > .hero-bg {
        position: relative;
        inset: auto;
        z-index: auto;
        height: 400px;
    }

    body .ew-page .hero-bg > .hero-img {
        object-position: 58% 12%;
    }

    body .ew-page .hero-bg::after {
        background: linear-gradient(180deg, rgba(28, 38, 31, 0) 55%, #1C261F 100%);
    }

    body .ew-page .hero-in {
        padding: 8px 32px 56px;
    }

    body .ew-page .hero > .badge {
        top: 16px;
        right: auto;
        bottom: auto;
        left: 16px;
        gap: 10px;
        max-width: 240px;
        padding: 12px 14px;
    }

    body .ew-page .badge-n {
        font-size: 32px;
    }

    body .ew-page .vid-grid {
        grid-template-columns: 1fr;
        gap: 36px;
    }

    body .ew-page .here,
    body .ew-page .cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body .ew-page .reach-grid,
    body .ew-page .issues-grid,
    body .ew-page .meet-grid,
    body .ew-page .cta-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    body .ew-page .steps {
        grid-template-columns: 1fr;
    }

    body .ew-page .personal {
        grid-template-columns: 1fr;
    }

    body .ew-page .sec {
        padding-block: 72px;
    }
}

/* ================================================================
   560px and below (phones)
   ================================================================ */
@media (max-width: 560px) {
    body .ew-page .wrap {
        padding-inline: 20px;
    }

    body .ew-page .hero > .hero-bg {
        height: 340px;
    }

    body .ew-page .hero-in {
        padding: 4px 20px 48px;
    }

    body .ew-page .hero-copy {
        gap: 22px;
    }

    body .ew-page .lead {
        font-size: 17.5px;
    }

    body .ew-page .sub {
        font-size: 16px;
    }

    body .ew-page .btn {
        width: 100%;
        padding: 16px 24px;
    }

    body .ew-page .ctas {
        flex-direction: column;
        align-items: stretch;
        gap: 18px;
        width: 100%;
    }

    body .ew-page .tellink {
        align-self: center;
    }

    body .ew-page .hero > .badge {
        max-width: 200px;
    }

    body .ew-page .badge-t {
        font-size: 11px;
    }

    body .ew-page .book {
        padding: 24px 20px;
    }

    body .ew-page .personal {
        padding: 28px 22px;
    }

    body .ew-page .card,
    body .ew-page .step {
        padding: 26px 22px;
    }

    body .ew-page .faqs .ew-faq-item {
        padding: 0 20px;
    }

    body .ew-page .faqs .ew-faq-item summary {
        font-size: 18px;
    }

    body .ew-page .loc,
    body .ew-page .here,
    body .ew-page .cards {
        grid-template-columns: 1fr;
    }

    body .ew-page .trow {
        grid-template-columns: 1fr;
        gap: 4px;
        padding: 18px 20px;
    }

    body .ew-page .ar,
    body .ew-page .th-mid,
    body .ew-page .th-to {
        display: none;
    }
}

/* ================================================================
   Depression page (wrapper .ewd inside .ew-page). Source: handoff-depression/depression-page-design.html
   Shared tokens, fonts, .wrap, .eyebrow, .disp, .btn, .pill and .proof come from the rules above.
   ================================================================ */
body .ew-page .ewd {
    --cream: #FBF8F3;
}

body .ew-page .ewd .pill-stars {
    color: #FFD76A;
}

body .ew-page .ewd .pill {
    box-shadow: none;
}

body .ew-page .ewd .proof {
    margin-top: 60px;
}

body .ew-page .ewd .proof-name {
    color: var(--char);
}

body .ew-page .ewd .ewd-proof-36 {
    margin-top: 36px;
}

body .ew-page .ewd .ewd-proof-left {
    align-items: flex-start;
    margin: 36px 0 0;
    padding-top: 28px;
    border-top: 1px solid var(--line);
    text-align: left;
}

body .ew-page .ewd .ewd-proof-dark {
    border-top-color: rgba(255, 255, 255, 0.25);
}

body .ew-page .ewd .ewd-proof-dark .proof-quote {
    color: var(--white);
    font-size: 20px;
}

body .ew-page .ewd .ewd-proof-dark .proof-name {
    color: #B7D0AB;
}

body .ew-page .ewd .ewd-sec {
    padding-block: 104px;
    background: var(--white);
}

body .ew-page .ewd .ewd-gray {
    background: var(--gray);
}

body .ew-page .ewd .ewd-cream {
    background: var(--cream);
}

body .ew-page .ewd .ewd-head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    max-width: 760px;
    margin: 0 auto 52px;
    text-align: center;
}

body .ew-page .ewd .ewd-head .disp,
body .ew-page .ewd .ewd-two .disp {
    font-size: clamp(32px, 3.5vw, 50px);
    line-height: 1.1;
}

body .ew-page .ewd .ewd-p,
body .ew-page .ewd .ewd-head-p {
    color: var(--body);
}

body .ew-page .ewd .ewd-tlink,
body .ew-page .ewd .ewd-tlink:hover,
body .ew-page .ewd .ewd-tlink:focus {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    border-bottom: 1px solid var(--ink);
    color: var(--ink);
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 14.5px;
    font-weight: 600;
}

/* 1. hero */
body .ew-page .ewd .ewd-hero {
    padding-block: 88px 96px;
    background: var(--cream);
}

body .ew-page .ewd .ewd-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
    align-items: center;
    gap: 72px;
}

body .ew-page .ewd .ewd-hero-copy {
    display: flex;
    flex-direction: column;
    gap: 26px;
    min-width: 0;
}

body .ew-page .ewd .ewd-h1 {
    font-size: clamp(40px, 4.7vw, 66px);
    line-height: 1.06;
}

body .ew-page .ewd .ewd-lead {
    max-width: 580px;
    color: var(--ink);
    font-size: 19px;
    line-height: 1.65;
}

body .ew-page .ewd .ewd-sub {
    max-width: 560px;
    color: var(--body);
    font-size: 17px;
}

body .ew-page .ewd .ewd-where {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

body .ew-page .ewd .ewd-chip {
    padding: 9px 16px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--white);
    color: var(--char);
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
}

body .ew-page .ewd .ewd-ctas {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 24px;
}

body .ew-page .ewd .ewd-hero-img {
    position: relative;
}

body .ew-page .ewd .ewd-hero-photo {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: 50% 50%;
    border-radius: 6px;
}

body .ew-page .ewd .ewd-hero-img > .ewd-float {
    position: absolute;
    left: -28px;
    bottom: 32px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    max-width: 260px;
    padding: 16px 20px;
    border-radius: 10px;
    background: var(--white);
    box-shadow: 0 18px 40px rgba(39, 50, 42, 0.14);
}

body .ew-page .ewd .ewd-float-t {
    color: var(--ink);
    font-family: "Fraunces", Georgia, serif;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.2;
}

body .ew-page .ewd .ewd-float-d {
    color: var(--body);
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 12.5px;
    font-weight: 600;
}

/* 2. reviews and press */
body .ew-page .ewd .ewd-reviews {
    padding-block: 72px 64px;
    border-bottom: 1px solid var(--line);
    background: var(--white);
}

body .ew-page .ewd .ewd-tr-head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    margin-bottom: 32px;
    text-align: center;
}

body .ew-page .ewd .ewd-tr-head .disp {
    font-size: clamp(28px, 3vw, 42px);
    line-height: 1.1;
}

body .ew-page .ewd .ewd-widget {
    min-height: 120px;
    margin-bottom: 24px;
}

body .ew-page .ewd .ewd-rev {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

body .ew-page .ewd .ewd-rc {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 28px;
    border-radius: 12px;
    background: var(--gray);
    color: var(--ink);
}

body .ew-page .ewd .ewd-rc-q {
    color: var(--ink);
    font-family: "Fraunces", Georgia, serif;
    font-size: 18.5px;
    line-height: 1.5;
}

body .ew-page .ewd .ewd-rc-n {
    margin-top: auto;
    color: var(--char);
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 13px;
    font-weight: 600;
}

body .ew-page .ewd .ewd-press {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    margin-top: 48px;
}

body .ew-page .ewd .ewd-press-t {
    color: #8A8D8F;
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-align: center;
    text-transform: uppercase;
}

body .ew-page .ewd .ewd-logos {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 20px 44px;
}

body .ew-page .ewd .ewd-logo {
    width: auto;
    max-width: 130px;
    height: 30px;
    object-fit: contain;
    filter: grayscale(1);
    opacity: 0.7;
}

/* 3. two columns + checklist */
body .ew-page .ewd .ewd-two {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: start;
    gap: 72px;
}

body .ew-page .ewd .ewd-two .disp {
    margin: 14px 0 22px;
}

body .ew-page .ewd .ewd-two-copy .ewd-p + .ewd-p,
body .ew-page .ewd .ewd-aud-copy .ewd-p + .ewd-p {
    margin-top: 16px;
}

body .ew-page .ewd .ewd-check {
    display: flex;
    flex-direction: column;
    gap: 22px;
    padding: 36px 34px;
    border-radius: 12px;
    background: var(--white);
    color: var(--ink);
}

body .ew-page .ewd .ewd-check-t {
    color: var(--ink);
    font-family: "Fraunces", Georgia, serif;
    font-size: 26px;
    font-weight: 500;
    line-height: 1.2;
}

body .ew-page .ewd .ewd-check-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

body .ew-page .ewd .ewd-check-li {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    color: var(--ink);
    font-weight: 500;
}

body .ew-page .ewd .ewd-check-ic {
    display: flex;
    flex: none;
    height: 22px;
    margin-top: 3px;
    line-height: 0;
}

body .ew-page .ewd .ewd-check-ic svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: var(--green);
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* 4. steps */
body .ew-page .ewd .ewd-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

body .ew-page .ewd .ewd-step {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 34px 30px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--cream);
    color: var(--body);
}

body .ew-page .ewd .ewd-no {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-bottom: 6px;
    border-radius: 50%;
    background: var(--char);
    color: var(--white);
    font-family: "Fraunces", Georgia, serif;
    font-size: 22px;
}

body .ew-page .ewd .ewd-step-t {
    color: var(--ink);
    font-family: "Fraunces", Georgia, serif;
    font-size: 24px;
    font-weight: 500;
    line-height: 1.2;
}

body .ew-page .ewd .ewd-closing {
    max-width: 860px;
    margin: 44px auto 0;
    color: var(--ink);
    font-family: "Fraunces", Georgia, serif;
    font-size: clamp(22px, 2.3vw, 30px);
    line-height: 1.35;
    text-align: center;
    text-wrap: balance;
}

/* 5. audio */
body .ew-page .ewd .ewd-aud {
    display: grid;
    grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.3fr);
    align-items: center;
    gap: 64px;
}

body .ew-page .ewd .ewd-aud-img {
    display: flex;
    justify-content: center;
    padding: 28px 20px 12px;
    border-radius: 12px;
    background: var(--white);
}

body .ew-page .ewd .ewd-aud-pic {
    display: block;
    width: 100%;
    max-width: 300px;
    height: auto;
}

body .ew-page .ewd .ewd-aud-copy .disp {
    margin: 14px 0 20px;
    font-size: clamp(32px, 3.5vw, 48px);
    line-height: 1.1;
}

body .ew-page .ewd .ewd-btnrow {
    margin-top: 28px;
}

/* 6. where */
body .ew-page .ewd .ewd-loc {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

body .ew-page .ewd .ewd-loc-card {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 30px 28px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--white);
    color: var(--body);
}

body .ew-page .ewd .ewd-loc-k {
    color: var(--green);
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

body .ew-page .ewd .ewd-loc-t {
    color: var(--ink);
    font-family: "Fraunces", Georgia, serif;
    font-size: 23px;
    font-weight: 500;
    line-height: 1.2;
}

body .ew-page .ewd .ewd-loc-p {
    font-size: 15.5px;
    line-height: 1.55;
}

body .ew-page .ewd .ewd-loc-a,
body .ew-page .ewd .ewd-loc-a:hover {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    min-height: 44px;
    margin-top: -4px;
    border-bottom: 1px solid var(--ink);
    color: var(--ink);
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 13.5px;
    font-weight: 600;
}

/* 7. faq */
body .ew-page .ewd .ewd-faqs {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: 900px;
    margin: 0 auto;
}

body .ew-page .ewd .ewd-faqs .ewd-faq-item {
    margin: 0;
    padding: 0 28px;
    border: 0;
    border-radius: 10px;
    background: var(--white);
    color: var(--body);
}

body .ew-page .ewd .ewd-faqs .ewd-faq-item[open] {
    padding: 0 27px;
    border: 1px solid var(--line);
    background: var(--cream);
}

body .ew-page .ewd .ewd-faqs .ewd-faq-item summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 44px;
    padding: 22px 0;
    color: var(--ink);
    font-family: "Fraunces", Georgia, serif;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.3;
    list-style: none;
    cursor: pointer;
}

body .ew-page .ewd .ewd-faqs .ewd-faq-item summary::-webkit-details-marker {
    display: none;
}

body .ew-page .ewd .ewd-faqs .ewd-faq-item summary::after {
    content: "+";
    flex: none;
    color: var(--green);
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 24px;
}

body .ew-page .ewd .ewd-faqs .ewd-faq-item[open] summary::after {
    content: "\2212";
}

body .ew-page .ewd .ewd-faqs .ewd-faq-item p {
    padding-bottom: 24px;
    font-size: 16px;
}

body .ew-page .ewd .ewd-note {
    max-width: 900px;
    margin: 28px auto 0;
    color: #6B6E70;
    font-size: 14px;
    line-height: 1.6;
    text-align: center;
}

/* 8. blog roll */
body .ew-page .ewd .ewd-blog-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 40px;
}

body .ew-page .ewd .ewd-blog-title .disp {
    margin-top: 12px;
    font-size: clamp(30px, 3.2vw, 44px);
    line-height: 1.1;
}

body .ew-page .ewd .ewd-posts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 40px;
}

body .ew-page .ewd .ewd-post {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

body .ew-page .ewd .ewd-post-img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 373 / 210;
    object-fit: cover;
    border-radius: 0;
}

body .ew-page .ewd .ewd-post-t {
    color: var(--ink);
    font-family: "Fraunces", Georgia, serif;
    font-size: 21px;
    font-weight: 400;
    line-height: 1.4;
}

body .ew-page .ewd .ewd-post:hover .ewd-post-t {
    color: var(--green-d);
}

/* 9. final call to action */
body .ew-page .ewd .ewd-cta {
    background: var(--char);
    color: var(--on-dark);
}

body .ew-page .ewd .ewd-cta-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    align-items: center;
    gap: 72px;
}

body .ew-page .ewd .ewd-cta .eyebrow {
    color: #B7D0AB;
}

body .ew-page .ewd .ewd-cta-copy .disp {
    margin: 14px 0 20px;
    color: var(--white);
    font-size: clamp(32px, 3.8vw, 52px);
    line-height: 1.08;
}

body .ew-page .ewd .ewd-cta-copy .disp em {
    color: #CFE0C6;
}

body .ew-page .ewd .ewd-cta-copy .ewd-p {
    max-width: 560px;
    color: var(--on-dark);
}

body .ew-page .ewd .ewd-cta-copy .ewd-p + .ewd-p {
    margin-top: 14px;
}

body .ew-page .ewd .ewd-book {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 38px;
    border-radius: 14px;
    background: var(--white);
    color: var(--body);
}

body .ew-page .ewd .ewd-book-t {
    color: var(--ink);
    font-family: "Fraunces", Georgia, serif;
    font-size: 28px;
    font-weight: 500;
    line-height: 1.2;
}

body .ew-page .ewd .ewd-row {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: 15.5px;
}

body .ew-page .ewd .ewd-row-k {
    color: var(--char);
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

body .ew-page .ewd .ewd-row-v {
    color: var(--ink);
    font-weight: 500;
    overflow-wrap: anywhere;
}

@media (max-width: 1000px) {
    body .ew-page .ewd .ewd-sec {
        padding-block: 72px;
    }

    body .ew-page .ewd .ewd-hero {
        padding-block: 56px 64px;
    }

    body .ew-page .ewd .ewd-hero-grid,
    body .ew-page .ewd .ewd-two,
    body .ew-page .ewd .ewd-aud,
    body .ew-page .ewd .ewd-cta-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    body .ew-page .ewd .ewd-hero-img > .ewd-float {
        left: 16px;
        bottom: 16px;
    }

    body .ew-page .ewd .ewd-hero-photo {
        aspect-ratio: 4 / 3;
        object-position: 50% 62%;
    }

    body .ew-page .ewd .ewd-rev,
    body .ew-page .ewd .ewd-steps,
    body .ew-page .ewd .ewd-loc {
        grid-template-columns: 1fr;
    }

    body .ew-page .ewd .ewd-posts {
        grid-template-columns: 1fr;
        gap: 36px;
    }

    body .ew-page .ewd .ewd-aud-img {
        padding-top: 20px;
    }
}

@media (max-width: 560px) {
    body .ew-page .ewd .ewd-hero {
        padding-block: 40px 48px;
    }

    body .ew-page .ewd .ewd-hero-copy {
        gap: 22px;
    }

    body .ew-page .ewd .ewd-lead {
        font-size: 17.5px;
    }

    body .ew-page .ewd .ewd-sub {
        font-size: 16px;
    }

    body .ew-page .ewd .ewd-ctas {
        flex-direction: column;
        align-items: stretch;
        gap: 18px;
        width: 100%;
    }

    body .ew-page .ewd .ewd-ctas .ewd-tlink {
        align-self: center;
    }

    body .ew-page .ewd .ewd-hero-img > .ewd-float {
        max-width: 210px;
        padding: 12px 14px;
    }

    body .ew-page .ewd .ewd-float-t {
        font-size: 18px;
    }

    body .ew-page .ewd .ewd-rc,
    body .ew-page .ewd .ewd-step {
        padding: 26px 22px;
    }

    body .ew-page .ewd .ewd-check,
    body .ew-page .ewd .ewd-book {
        padding: 26px 22px;
    }

    body .ew-page .ewd .ewd-faqs .ewd-faq-item {
        padding: 0 20px;
    }

    body .ew-page .ewd .ewd-faqs .ewd-faq-item[open] {
        padding: 0 19px;
    }

    body .ew-page .ewd .ewd-faqs .ewd-faq-item summary {
        font-size: 18px;
    }

    body .ew-page .ewd .ewd-logos {
        gap: 18px 28px;
    }

    body .ew-page .ewd .ewd-logo {
        height: 24px;
    }

    body .ew-page .ewd .ewd-head {
        margin-bottom: 36px;
    }

    body .ew-page .ewd .proof {
        margin-top: 44px;
    }
}
