/* Shared Fertility With Delia visual system, based on the approved homepage. */
:root {
    --paper:#edf3f2;
    --white:#ffffff;
    --ink:#2c2c2c;
    --muted:#465b60;
    --teal:#456875;
    --gold:#e4b424;
    --brand-ocean:#5a7f8c;
    --brand-coastal:#8dbab6;
    --line:#bfd6d3;
    --sage:#d6f3f4;
    --font-primary:'Lato',Arial,sans-serif;
    --font-heading:'Playfair Display',Georgia,serif;
    --font-size-sm:1rem;
    --color-gray-600:#465b60;
    --color-white:#ffffff;
    --color-primary:#456875
}

/* Legacy layout utilities read the same typography, palette and spacing tokens. */
:root {
    --color-primary-dark:var(--ink);
    --color-primary-light:var(--sage);
    --color-secondary:var(--gold);
    --color-accent:#9d6f16;
    --gradient-gold:linear-gradient(135deg, #d4b575, var(--gold));
    --gradient-gold-90:linear-gradient(90deg, #d4b575, var(--gold));
    --gradient-teal:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    --color-dark:var(--ink);
    --color-gray-900:var(--ink);
    --color-gray-800:#2f484c;
    --color-gray-700:var(--muted);
    --color-gray-500:var(--muted);
    --color-gray-400:#9ba9a1;
    --color-gray-300:var(--line);
    --color-gray-200:var(--sage);
    --color-gray-100:var(--paper);
    --color-success:#1e6c4c;
    --color-warning:#8b660d;
    --color-error:#a83333;
    --color-info:var(--teal);
    --font-size-xs:1rem;
    --font-size-base:1rem;
    --font-size-lg:1.125rem;
    --font-size-xl:1.25rem;
    --font-size-2xl:1.5rem;
    --font-size-3xl:1.875rem;
    --font-size-4xl:2.25rem;
    --font-size-5xl:3rem;
    --font-size-6xl:3.75rem;
    --font-weight-normal:400;
    --font-weight-medium:500;
    --font-weight-semibold:600;
    --font-weight-bold:700;
    --font-weight-extrabold:800;
    --line-height-tight:1.25;
    --line-height-normal:1.5;
    --line-height-relaxed:1.75;
    --space-xs:0.25rem;
    --space-sm:0.5rem;
    --space-md:1rem;
    --space-lg:1.5rem;
    --space-xl:2rem;
    --space-2xl:3rem;
    --space-3xl:4rem;
    --space-4xl:6rem;
    --space-5xl:8rem;
    --container-max-width:1240px;
    --container-padding:var(--space-lg);
    --content-max-width:65ch;
    --radius-sm:0.25rem;
    --radius-md:0.5rem;
    --radius-lg:0.75rem;
    --radius-xl:1rem;
    --radius-2xl:1.5rem;
    --radius-full:9999px;
    --shadow-sm:0 1px 2px 0 rgba(0, 0, 0, 0.05);
    --shadow-md:0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    --shadow-lg:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    --shadow-xl:0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
    --shadow-2xl:0 25px 50px -12px rgba(0, 0, 0, 0.25);
    --transition-fast:150ms ease-in-out;
    --transition-base:250ms ease-in-out;
    --transition-slow:350ms ease-in-out;
    --z-dropdown:1000;
    --z-sticky:1020;
    --z-fixed:1030;
    --z-modal-backdrop:1040;
    --z-modal:1050;
    --z-popover:1060;
    --z-tooltip:1070;
    --color-text:var(--ink);
    --color-text-light:var(--muted);
    --font-size-md:1rem;
}
/* Clear inherited template effects before applying the approved shared components. */
body {
    overflow-x:visible
}
.container {max-width:none;padding-inline:0}
.main-nav a {font-weight:400;padding-inline:0;border-radius:0;color:inherit}
.main-nav a::after {width:auto}
.menu-toggle {font-weight:400}
.site-page .footer-section a,.site-page .footer-bottom a {color:inherit}
.site-page .services-pills {max-width:none;margin:0;gap:0;justify-content:stretch}
.site-page .service-pill,.site-page .service-pill:hover {
    color:inherit;background:none;border:0;border-top:1px solid #597073;
    border-radius:0;box-shadow:none;transform:none;letter-spacing:0;font-weight:400
}
.site-page .service-pill:last-child {border-bottom:1px solid #597073}
.site-page .service-area-card {width:auto;min-width:0;text-align:left}
.site-page .service-area-card img,.site-page .service-area-card img:hover {
    border-radius:0;box-shadow:none;transform:none
}
.site-page .service-area-card p {color:var(--ink);font-weight:400}
h1,h2,h3,h4,h5,h6 {
    color:inherit;
    font-weight:700
}
.btn,.btn:hover,.card,.card:hover {
    box-shadow:none
}
.btn::before {
    content:none;
    display:none
}
#heroVideoBtn::before {
    position:static;
    transform:none;
    background:transparent;
    flex-shrink:0
}
.btn-secondary:hover {
    background:transparent;
    transform:none
}
.card {
    border-radius:0
}
.card:hover {
    transform:none
}
body.home-page .hero {
    max-height:none
}
body.home-page .hero::before {
    display:none
}
body.home-page .hero-inner {
    display:block;
    position:static;
    z-index:auto
}
body.home-page .hero-text {
    display:block;
    flex:initial;
    padding:0
}
body.home-page .hero h1 {
    background:none;
    -webkit-text-fill-color:currentColor
}
body.home-page :where(.hero p) {
    font-size:inherit;
    color:inherit;
    margin-bottom:0;
    line-height:inherit
}

*,*::before,*::after {
    box-sizing:border-box
}
html {
    font-size:16px;
    scroll-behavior:smooth;
    scroll-padding-top:110px
}
body {
    margin:0;
    color:var(--ink);
    background:var(--paper);
    font-family:var(--font-primary);
    font-size:17px;
    line-height:1.7;
    -webkit-font-smoothing:antialiased
}
img {
    display:block;
    max-width:100%;
    height:auto
}
a {
    color:inherit;
    text-decoration:none
}
button,input,textarea {
    font:inherit
}
button,a,input,textarea {
    -webkit-tap-highlight-color:transparent
}
button {
    cursor:pointer
}
h1,h2,h3,p {
    margin:0
}
h1,h2,h3 {
    font-family:var(--font-heading);
    font-weight:700;
    line-height:1.15;
    letter-spacing:-.035em;
    text-wrap:balance
}
h2 {
    font-size:clamp(36px,3.5vw,54px)
}
h3 {
    font-size:28px
}
p+p {
    margin-top:20px
}
ul {
    margin:0;
    padding:0
}
p {
    text-wrap:pretty
}
strong {
    font-weight:600
}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible {
    outline:3px solid #9d6f16;
    outline-offset:5px
}
::selection {
    background:#bfd6d3;
    color:#2c2c2c
}
[hidden] {
    display:none!important
}
.sr-only {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0
}
.skip-link {
    position:fixed;
    left:20px;
    top:10px;
    z-index:10000;
    padding:12px 20px;
    background:var(--white);
    transform:translateY(-150%)
}
.skip-link:focus {
    transform:none
}
.container {
    width:min(1240px,calc(100% - 104px));
    margin-inline:auto
}
.section,.pt-section {
    padding-block:100px
}
.text-center {
    text-align:center
}
.mb-xl,.mb-2xl {
    margin-bottom:46px
}
.mt-xl,.mt-2xl {
    margin-top:46px
}
.mt-lg {
    margin-top:28px
}
.grid {
    display:grid;
    gap:32px
}
.grid-3 {
    grid-template-columns:repeat(3,minmax(0,1fr))
}
.grid-2 {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:80px
}
.intro-eyebrow,.pt-kicker,.blog-category,.speaking-venues-label,.speaking-topics-label {
    font-family:var(--font-primary);
    display:block;
    font-size:16px;
    line-height:1.5;
    letter-spacing:.1em;
    text-transform:uppercase;
    font-weight:500;
    margin-bottom:24px;
    color:var(--teal)
}
/* A compact, legible navigation with a quiet appointment prompt. */
.site-header {
    position:sticky;
    top:0;
    z-index:80;
    background:var(--paper);
    border-bottom:1px solid var(--line);
    transition:box-shadow .25s
}
.site-header.is-scrolled {
    box-shadow:0 5px 25px #2c2c2c0b
}
.site-header .container {
    width:min(1360px,calc(100% - 80px))
}
.header-container {
    height:98px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px
}
.logo-img {
    width:112px;
    max-height:64px
}
.site-logo {
    flex-shrink:0
}
.main-nav ul {
    list-style:none;
    display:flex;
    gap:24px;
    align-items:center
}
.main-nav a {
    font-size:16px;
    white-space:nowrap;
    position:relative;
    padding-block:10px
}
.main-nav a::after {
    content:'';
    position:absolute;
    height:1px;
    background:var(--teal);
    left:0;
    right:0;
    bottom:3px;
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .25s
}
.main-nav a:hover::after {
    transform:scaleX(1)
}
.btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:16px;
    min-height:54px;
    padding:14px 24px;
    border:1px solid var(--teal);
    border-radius:0;
    font-family:var(--font-primary);
    font-size:16px;
    font-weight:500;
    line-height:1.4;
    text-align:center;
    transition:background .22s,color .22s,transform .22s
}
.btn-primary {
    color:var(--white);
    background:var(--teal)
}
.btn-primary::after {
    content:'↗';
    font-size:22px;
    line-height:1
}
.btn-primary:hover {
    background:var(--ink);
    border-color:var(--ink);
    transform:translateY(-2px)
}
.btn-secondary {
    background:transparent;
    border-color:transparent;
    color:var(--ink);
    padding-inline:0
}
#heroVideoBtn::before {
    content:'▷';
    display:grid;
    place-items:center;
    width:40px;
    height:40px;
    border:1px solid #8c9a94;
    border-radius:50%;
    font-size:22px
}
.btn-secondary:hover {
    color:var(--teal)
}
.header-cta {
    font-size:16px;
    padding:12px 18px;
    min-height:48px
}
.menu-toggle {
    display:none
}
/* Hero uses an existing, unaltered portrait. Its crop changes with the viewport. */
body.home-page .hero {
    position:relative;
    isolation:isolate;
    min-height:690px;
    display:flex;
    align-items:center;
    background:var(--paper);
    overflow:hidden
}
body.home-page .hero-media {
    position:absolute;
    z-index:-2;
    right:0;
    top:0;
    width:51%;
    height:100%;
    overflow:hidden
}
body.home-page .hero-media > .hero-bg-img {
    position:absolute;
    inset:auto;
    top:0;
    left:0;
    width:100%;
    max-width:none;
    height:135%;
    object-fit:cover;
    object-position:75% 0%;
    transform-origin:75% 12%;
    z-index:0
}
body.home-page .hero::after {
    content:'';
    position:absolute;
    z-index:-1;
    inset:0;
    background:linear-gradient(90deg,var(--paper) 0%,var(--paper) 47%,rgba(237,243,242,.6) 52%,transparent 64%);
    pointer-events:none
}
body.home-page .hero-inner {
    width:min(1240px,calc(100% - 104px));
    margin-inline:auto;
    padding-block:66px
}
body.home-page .hero-text {
    width:52%;
    max-width:620px
}
body.home-page .hero h1 {
    margin:0 0 28px;
    max-width:600px
}
body.home-page .hero-title {
    display:block;
    font-size:clamp(64px,6.3vw,92px);
    line-height:1.02;
    letter-spacing:-.055em;
    max-width:540px
}
body.home-page .hero-role {
    display:block;
    font-family:var(--font-primary);
    font-size:20px;
    line-height:1.5;
    letter-spacing:0;
    margin-top:26px;
    font-weight:400
}
body.home-page .hero-subtitle {
    font-size:16px;
    font-weight:600;
    letter-spacing:.1em;
    text-transform:uppercase;
    padding-top:24px;
    margin-bottom:20px;
    border-top:1px solid #8dbab6;
    width:fit-content
}
body.home-page .hero-content>p:not(.hero-subtitle) {
    font-size:18px;
    line-height:1.75;
    max-width:510px
}
body.home-page .hero .btn-group {
    display:flex;
    align-items:center;
    gap:20px;
    flex-wrap:wrap;
    margin-top:30px
}
body.home-page .hero .btn {
    padding-inline:20px
}
body.home-page .hero .btn-secondary {
    padding-inline:0
}
/* Press is still, clear and fully available at every viewport width. */
#media {
    background:var(--white);
    padding-block:34px 44px;
    border-bottom:1px solid var(--line)
}
#media .container>div {
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin:0 0 25px
}
#media h2 {
    font-family:var(--font-primary);
    font-size:17px;
    letter-spacing:0;
    font-weight:500
}
#media .media-label {
    font-size:16px;
    color:var(--muted)
}
.media-marquee-wrapper {
    width:min(1240px,calc(100% - 104px));
    margin:auto
}
.media-marquee-track {
    display:grid;
    grid-template-columns:repeat(8,minmax(0,1fr));
    gap:30px;
    align-items:center
}
.media-logo-img {
    width:100%;
    height:52px;
    object-fit:contain;
    filter:grayscale(1);
    mix-blend-mode:multiply;
    opacity:.85
}
.media-logo-img[aria-hidden] {
    display:none
}
/* A generous split introduction sets the reading pace. */
.intro-split {
    display:grid;
    grid-template-columns:.85fr 1.15fr;
    width:min(1240px,calc(100% - 104px));
    margin:110px auto;
    gap:90px;
    align-items:center
}
.intro-split-image {
    position:relative
}
.intro-split-image::before {
    content:'';
    position:absolute;
    inset:28px -25px -28px 25px;
    border:1px solid #8dbab6;
    z-index:-1
}
.intro-split-image img {
    width:100%;
    height:600px;
    object-fit:cover;
    object-position:40% 50%;
    border-radius:210px 210px 0 0
}
.intro-split-content h2 {
    font-size:clamp(34px,3.1vw,47px);
    margin-bottom:30px
}
.intro-split-content p {
    font-size:18px;
    color:var(--muted)
}
/* Editorial resources, separated by typography and rules rather than nested boxes. */
.pt-section {
    background:var(--sage);
    border-block:1px solid var(--line)
}
.pt-head {
    max-width:790px;
    margin:0 auto 50px;
    text-align:center
}
.pt-kicker {
    margin-bottom:16px
}
.pt-logo {
    width:230px;
    height:46px;
    object-fit:contain;
    margin:0 auto 25px
}
.pt-head h2 {
    margin-bottom:20px
}
.pt-lede {
    font-size:18px;
    color:var(--muted)
}
.pt-list {
    list-style:none;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:34px
}
.pt-card {
    display:flex;
    height:100%;
    flex-direction:column
}
.pt-img {
    display:block;
    overflow:hidden;
    margin-bottom:24px
}
.pt-img img {
    width:100%;
    height:210px;
    object-fit:cover;
    transition:transform .6s
}
.pt-card:hover img {
    transform:scale(1.035)
}
.pt-card-body {
    display:flex;
    flex-direction:column;
    flex:1
}
.pt-date {
    font-size:16px;
    color:var(--muted);
    margin-bottom:12px
}
.pt-card h3 {
    font-size:28px;
    line-height:1.25;
    margin-bottom:18px
}
.pt-card p {
    font-size:16px;
    line-height:1.75;
    color:var(--muted);
    margin-bottom:24px
}
.pt-more {
    font-size:16px;
    font-weight:500;
    display:flex;
    justify-content:space-between;
    padding-block:15px;
    border-block:1px solid #bcc7bc;
    margin-top:auto
}
.pt-more span {
    font-size:22px
}
.pt-foot {
    text-align:center;
    margin-top:50px
}
#about {
    background:var(--paper)
}
.about-layout {
    display:grid;
    grid-template-columns:1.12fr .88fr;
    gap:90px;
    align-items:start
}
.about-text h2 {
    font-size:clamp(36px,3.3vw,48px);
    margin-bottom:30px
}
.about-text p {
    color:var(--muted);
    font-size:18px
}
.about-text .btn {
    margin-top:32px
}
.about-photos {
    padding-top:52px
}
.about-photo-main {
    width:100%;
    height:450px;
    object-fit:cover;
    object-position:center top
}
.about-photo-row {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
    margin:20px 0 0 -35px
}
.about-photo-row img {
    width:100%;
    height:210px;
    object-fit:cover
}
.stories-section {
    padding:0 0 100px
}
.stories-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:24px
}
.story-card {
    aspect-ratio:9/16;
    background:var(--sage)
}
.story-card iframe {
    width:100%;
    height:100%;
    display:block;
    border:0
}
/* Specialisations are a scan-friendly index; every original label remains. */
.services-section {
    background:var(--ink);
    color:var(--white)
}
.services-section .container {
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    gap:80px
}
.services-section .text-center {
    text-align:left
}
.services-section h2 {
    font-size:clamp(38px,4vw,58px)
}
.services-section .intro-eyebrow {
    color:#bfd6d3
}
.services-pills {
    display:grid;
    grid-template-columns:1fr;
    counter-reset:service
}
.service-pill {
    display:grid;
    grid-template-columns:32px 1fr;
    gap:12px;
    font-size:18px;
    padding:17px 0;
    border-top:1px solid #597073;
    counter-increment:service
}
.service-pill::before {
    content:counter(service,decimal-leading-zero);
    color:#e4b424;
    font-size:16px;
    padding-top:2px
}
.service-pill:last-child {
    border-bottom:1px solid #597073
}
.service-areas-section {
    background:var(--white)
}
.service-areas-section h2 {
    max-width:780px;
    margin-inline:auto
}
.service-areas-grid {
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:34px 24px
}
.service-area-card {
    grid-column:span 2
}
.service-area-card:nth-last-child(-n+2) {
    grid-column:span 3
}
.service-area-card img {
    width:100%;
    height:245px;
    object-fit:cover
}
.service-area-card p {
    font-family:var(--font-heading);
    font-size:26px;
    line-height:1.3;
    padding-top:18px
}
.stats-section {
    background:var(--sage);
    padding-block:80px
}
.stats-layout {
    position:relative
}
.stats-content {
    position:relative;
    z-index:1
}
.stats-heading {
    text-align:center;
    margin-bottom:56px
}
.stats-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr))
}
.stat-card {
    padding:0 34px;
    border-right:1px solid #b7c3b5;
    text-align:center
}
.stat-card:last-child {
    border:0
}
.stat-number {
    font-family:var(--font-heading);
    font-size:clamp(70px,6vw,90px);
    line-height:1;
    margin-bottom:24px;
    letter-spacing:-.06em
}
.stat-label {
    font-size:17px;
    line-height:1.6;
    max-width:290px;
    margin:auto
}
.stats-pineapple {
    position:absolute;
    width:90px;
    top:-35px;
    right:-20px;
    transform:rotate(14deg);
    opacity:.6;
    pointer-events:none
}
/* An image-led speaking feature provides a new pace in the long page. */
.speaking-section {
    display:grid;
    grid-template-columns:1fr 1fr;
    background:#eae7dd
}
.speaking-image-col {
    min-height:100%;
    position:relative
}
.speaking-img {
    position:absolute;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:50% 35%
}
.speaking-content-col {
    padding:85px clamp(40px,5vw,86px)
}
.speaking-heading {
    font-size:clamp(48px,4.7vw,70px);
    margin-bottom:30px
}
.speaking-body {
    font-size:18px;
    color:var(--muted)
}
.speaking-venues {
    margin-top:32px
}
.speaking-venues-label,.speaking-topics-label {
    margin-bottom:15px;
    font-size:16px
}
.speaking-venues-logos {
    display:flex;
    gap:26px;
    align-items:center
}
.speaking-venue-badge {
    background:var(--white);
    padding:15px;
    width:165px;
    min-height:76px;
    display:grid;
    place-items:center
}
.speaking-venue-logo {
    height:50px;
    object-fit:contain;
    width:100%;
    mix-blend-mode:multiply
}
.speaking-topics {
    margin:30px 0
}
.speaking-topics-list {
    padding-left:20px
}
.speaking-topics-list li {
    padding:5px 0;
    font-size:16px
}
.watch-section {
    background:var(--white)
}
.watch-section h2 {
    margin-bottom:20px
}
.watch-subtitle {
    font-size:18px;
    max-width:740px;
    margin:auto;
    color:var(--muted)
}
.watch-videos-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:34px
}
.watch-video-wrapper {
    aspect-ratio:16/9;
    background:var(--sage)
}
.watch-video-wrapper iframe {
    width:100%;
    height:100%;
    display:block;
    border:0
}
.watch-video-label {
    margin-top:18px;
    font-size:16px;
    line-height:1.6
}
.watch-instagram-title {
    font-size:36px
}
.instagram-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:20px
}
.instagram-embed {
    height:360px;
    position:relative;
    background:var(--paper);
    overflow:hidden;
    border:1px solid var(--line)
}
.instagram-embed iframe {
    width:100%;
    height:100%;
    border:0
}
.ig-overlay {
    position:absolute;
    inset:0
}
.ig-overlay:focus-visible {
    outline-offset:-5px
}
.memberships-grid {
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:28px
}
.membership-item {
    height:120px;
    padding:15px;
    display:grid;
    place-items:center;
    background:var(--white)
}
.membership-item img {
    width:100%;
    height:90px;
    object-fit:contain
}
.section:has(.memberships-grid) {
    padding-block:75px
}
.section:has(.memberships-grid) h2 {
    font-size:40px;
    margin-bottom:18px
}
.section:has(.memberships-grid) .text-center>p {
    max-width:760px;
    margin:auto
}
#blogs {
    background:var(--sage)
}
#blogs .text-center:first-child {
    display:grid;
    grid-template-columns:.7fr 1fr;
    gap:40px;
    text-align:left;
    align-items:end
}
#blogs h2 {
    font-size:64px
}
#blogs .text-center:first-child p {
    font-size:18px;
    max-width:560px;
    color:var(--muted);
    justify-self:end
}
.blog-post {
    background:transparent;
    min-width:0
}
.blog-post-image {
    width:100%;
    height:245px;
    object-fit:cover
}
.blog-post-content {
    padding-top:25px
}
.blog-category {
    margin-bottom:16px;
    letter-spacing:.06em
}
.blog-post h3 {
    font-size:28px;
    line-height:1.25;
    margin-bottom:20px
}
.blog-post h3 a:hover {
    text-decoration:underline;
    text-decoration-thickness:1px;
    text-underline-offset:5px
}
.blog-meta {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    font-size:16px;
    color:var(--muted);
    padding-block:15px;
    border-block:1px solid #bdc7b9;
    margin-bottom:18px
}
.blog-post-content>p {
    font-size:17px;
    color:var(--muted)
}
#faq .container {
    display:grid;
    grid-template-columns:.6fr 1.4fr;
    gap:80px
}
#faq .text-center {
    text-align:left
}
#faq h2 {
    font-size:64px;
    margin-bottom:25px
}
#faq .text-center>p {
    color:var(--muted);
    font-size:18px;
    max-width:260px
}
.faq-item {
    border-top:1px solid #bfc9bd
}
.faq-item:last-child {
    border-bottom:1px solid #bfc9bd
}
.faq-question {
    background:none;
    border:0;
    padding:26px 0;
    display:flex;
    gap:30px;
    justify-content:space-between;
    align-items:center;
    width:100%;
    font-family:var(--font-primary);
    font-size:19px;
    font-weight:400;
    color:var(--ink);
    text-align:left;
    line-height:1.5
}
.faq-icon {
    font-size:28px;
    font-weight:300;
    flex-shrink:0;
    line-height:1;
    transition:transform .25s
}
.faq-question[aria-expanded=true] .faq-icon {
    transform:rotate(45deg)
}
.faq-answer {
    padding:0 36px 26px 0;
    font-size:17px;
    color:var(--muted)
}
html:not(.js-enhanced) .faq-answer[hidden] {
    display:block!important
}
#contact {
    background:#e7e9e0;
    border-top:1px solid var(--line)
}
#contact .text-center {
    max-width:820px;
    margin:0 auto 60px
}
#contact h2 {
    font-size:clamp(54px,6vw,80px);
    margin-bottom:25px
}
#contact .text-center>p {
    font-size:19px;
    color:var(--muted)
}
.form-group {
    margin-bottom:26px
}
.form-label {
    display:block;
    font-size:16px;
    margin-bottom:10px
}
.form-input,.form-textarea {
    width:100%;
    background:#f7f7ef;
    border:1px solid #a7b5a6;
    padding:16px;
    color:var(--ink);
    border-radius:0;
    font-size:17px;
    min-height:58px
}
.form-textarea {
    height:156px;
    resize:vertical
}
.form-input::placeholder,.form-textarea::placeholder {
    color:#586a62;
    opacity:1
}
.contact-form>.btn {
    width:100%
}
.card {
    padding:34px;
    background:var(--paper);
    border:1px solid #c1cabd
}
.card h3 {
    font-size:32px;
    margin-bottom:25px
}
.card>p {
    margin-bottom:24px
}
.contact-info-list {
    list-style:none
}
.contact-info-list li {
    display:flex;
    gap:16px;
    align-items:flex-start;
    margin-bottom:22px
}
.contact-icon {
    display:none
}
.contact-info-list a {
    overflow-wrap:anywhere;
    text-decoration:underline;
    text-underline-offset:4px
}
.map-placeholder {
    display:block;
    padding:20px;
    border-block:1px solid var(--line);
    background:var(--sage)
}
.map-placeholder p {
    font-size:16px!important
}
.contact-info-list+ .map-placeholder {
    margin-top:24px
}
.site-footer {
    background:var(--ink);
    color:#eef0e8;
    padding:75px 0 28px
}
.footer-content {
    display:grid;
    grid-template-columns:1.15fr 1fr .8fr;
    gap:55px
}
.footer-section h3 {
    font-family:var(--font-primary);
    font-size:17px;
    letter-spacing:.04em;
    margin-bottom:24px
}
.footer-section p,.footer-section li {
    font-size:16px;
    line-height:1.8
}
.footer-section ul {
    list-style:none
}
.footer-section li {
    margin-bottom:12px
}
.footer-section a:hover {
    text-decoration:underline;
    text-underline-offset:4px
}
.footer-section a {
    overflow-wrap:anywhere
}
.footer-logos-row {
    display:flex;
    gap:25px;
    align-items:center;
    flex-wrap:wrap;
    margin-top:30px
}
.footer-logo-img {
    width:105px
}
.footer-gr-logo {
    width:105px;
    background:#edf3f2;
    padding:8px
}
.footer-dp-logo {
    width:100px;
    background:#edf3f2;
    padding:8px
}
.footer-bottom {
    border-top:1px solid #597073;
    padding-top:28px;
    margin-top:55px;
    display:flex;
    gap:25px;
    justify-content:space-between;
    align-items:flex-start
}
.footer-bottom p {
    font-size:16px;
    flex-shrink:0
}
.footer-links {
    display:flex;
    flex-wrap:wrap;
    gap:15px 22px;
    justify-content:flex-end;
    font-size:16px
}
.footer-links a:hover {
    text-decoration:underline
}
#videoModal {
    padding:65px 0
}
#videoModalClose {
    min-width:44px;
    min-height:44px
}
#videoModal iframe {
    background:#111
}
body.menu-open {
    overflow:hidden
}
@media(min-width:1700px) {
    body.home-page .hero {
        min-height:760px
    }
    body.home-page .hero-media {
        width:53%
    }
    body.home-page .hero-title {
        font-size:98px
    }
}
@media(max-width:1250px) {
    .main-nav ul {
        gap:17px
    }
    .header-container {
        gap:22px
    }
    .site-header .container {
        width:calc(100% - 48px)
    }
    .logo-img {
        width:95px
    }
    .header-cta {
        padding-inline:14px
    }
    body.home-page .hero-text {
        width:52%
    }
    body.home-page .hero-title {
        font-size:70px
    }
    body.home-page .hero .btn-group {
        gap:12px
    }
    body.home-page .hero .btn-secondary {
        font-size:16px
    }
    .container,body.home-page .hero-inner,.intro-split,.media-marquee-wrapper {
        width:calc(100% - 80px)
    }
    .intro-split,.about-layout {
        gap:60px
    }
    .intro-split-image img {
        height:590px
    }
    .services-section .container {
        gap:50px
    }
    .footer-content {
        gap:35px
    }
}
@media(max-width:1100px) {
    .header-container {
        height:85px
    }
    .site-header .container {
        width:calc(100% - 48px)
    }
    .logo-img {
        width:100px
    }
    .header-cta {
        margin-left:auto
    }
    .menu-toggle {
        display:flex;
        align-items:center;
        justify-content:center;
        background:none;
        color:var(--ink);
        border:1px solid var(--teal);
        min-height:48px;
        padding:10px 18px;
        font-size:16px;
        order:3
    }
    .main-nav {
        position:absolute;
        top:85px;
        left:0;
        right:0;
        background:var(--paper);
        padding:25px 40px 40px;
        border-bottom:1px solid var(--line);
        max-height:calc(100dvh - 85px);
        overflow-y:auto;
        box-shadow:0 20px 25px #2c2c2c12;
        display:none
    }
    .main-nav.active {
        display:block
    }
    .main-nav ul {
        display:block
    }
    .main-nav li {
        border-bottom:1px solid var(--line)
    }
    .main-nav a {
        display:block;
        padding:18px 0;
        font-family:var(--font-heading);
        font-size:28px
    }
    .main-nav a::after {
        display:none
    }
    html:not(.js-enhanced) .main-nav {
        display:block;
        position:static;
        box-shadow:none;
        max-height:none
    }
    html:not(.js-enhanced) .header-container {
        height:auto;
        flex-wrap:wrap;
        padding-block:20px
    }
    html:not(.js-enhanced) .main-nav {
        order:5;
        width:100%
    }
    html:not(.js-enhanced) .menu-toggle {
        display:none
    }
    body.home-page .hero {
        min-height:680px
    }
    body.home-page .hero-title {
        font-size:64px
    }
    body.home-page .hero-content>p:not(.hero-subtitle) {
        font-size:17px
    }
    body.home-page .hero-role {
        font-size:18px
    }
    body.home-page .hero-text {
        width:54%
    }
    body.home-page .hero-media {
        width:50%;
    }
    body.home-page .hero .btn-group {
        display:grid;
        justify-items:start;
        gap:10px
    }
    .media-marquee-track {
        grid-template-columns:repeat(4,1fr);
        gap:25px 40px
    }
    .media-logo-img {
        height:46px
    }
    .intro-split {
        gap:50px;
        margin-block:85px;
        grid-template-columns:.85fr 1fr
    }
    .intro-split-image img {
        height:540px
    }
    .intro-split-content h2 {
        font-size:36px
    }
    .intro-split-content p,.about-text p {
        font-size:17px
    }
    .section,.pt-section {
        padding-block:80px
    }
    .pt-list {
        gap:22px
    }
    .pt-img img {
        height:180px
    }
    .pt-card h3,.blog-post h3 {
        font-size:25px
    }
    .about-layout {
        gap:45px
    }
    .about-text h2 {
        font-size:38px
    }
    .about-photo-main {
        height:410px
    }
    .about-photo-row {
        margin-left:0;
        gap:14px
    }
    .about-photo-row img {
        height:170px
    }
    .stories-section {
        padding-top:0
    }
    .stories-grid {
        gap:16px
    }
    .services-section .container {
        grid-template-columns:.85fr 1.15fr;
        gap:40px
    }
    .services-section h2 {
        font-size:42px
    }
    .service-pill {
        font-size:17px
    }
    .speaking-content-col {
        padding:65px 35px
    }
    .speaking-heading {
        font-size:48px
    }
    .speaking-body {
        font-size:17px
    }
    .speaking-venues-logos {
        gap:14px
    }
    .speaking-venue-badge {
        width:145px
    }
    .speaking-cta {
        padding:14px 17px
    }
    .instagram-grid {
        grid-template-columns:repeat(2,1fr)
    }
    .instagram-embed {
        height:400px
    }
    .memberships-grid {
        grid-template-columns:repeat(3,1fr)
    }
    .grid-2 {
        gap:40px
    }
    .card {
        padding:26px
    }
    .footer-content {
        grid-template-columns:1fr 1fr;
        gap:40px
    }
    .footer-section:first-child {
        grid-column:span 2;
        max-width:850px
    }
    .footer-bottom {
        display:block
    }
    .footer-links {
        justify-content:flex-start;
        margin-top:22px
    }
    #faq .container {
        gap:45px;
        grid-template-columns:.55fr 1.45fr
    }
    #faq h2 {
        font-size:54px
    }
}
@media(max-width:760px) {
    html {
        scroll-padding-top:85px
    }
    .container,body.home-page .hero-inner,.intro-split,.media-marquee-wrapper {
        width:calc(100% - 44px)
    }
    .section,.pt-section {
        padding-block:64px
    }
    .site-header .container {
        width:calc(100% - 36px)
    }
    .header-container {
        height:78px;
        gap:14px
    }
    .logo-img {
        width:92px;
        height:56px
    }
    .header-cta {
        font-size:16px;
        padding:10px 14px;
        min-height:46px;
        max-width:180px
    }
    .header-cta::after {
        display:none
    }
    .menu-toggle {
        min-height:46px;
        padding:10px 12px
    }
    .main-nav {
        top:78px;
        padding:16px 24px 30px;
        max-height:calc(100dvh - 78px)
    }
    .main-nav a {
        font-size:28px;
        padding:17px 0
    }
    body.home-page .hero {
        display:flex;
        flex-direction:column;
        min-height:0;
        align-items:stretch;
        overflow:hidden
    }
    body.home-page .hero::after {
        display:none
    }
    body.home-page .hero-inner {
        padding:44px 0 36px
    }
    body.home-page .hero-text {
        width:100%;
        max-width:620px
    }
    body.home-page .hero h1 {
        margin-bottom:22px
    }
    body.home-page .hero-title {
        font-size:clamp(55px,11vw,80px);
        max-width:520px;
        line-height:1.02
    }
    body.home-page .hero-role {
        font-size:18px;
        margin-top:22px;
        max-width:360px
    }
    body.home-page .hero-subtitle {
        padding-top:20px;
        margin-bottom:16px
    }
    body.home-page .hero-content>p:not(.hero-subtitle) {
        font-size:17px;
        max-width:600px
    }
    body.home-page .hero .btn-group {
        display:flex;
        gap:10px 24px;
        margin-top:25px;
        align-items:center
    }
    body.home-page .hero .btn-primary {
        width:auto
    }
    body.home-page .hero .btn {
        min-height:52px
    }
    body.home-page .hero-media {
        position:relative;
        order:2;
        width:100%;
        height:410px;
        z-index:0
    }
    body.home-page .hero-inner {
        order:1
    }
    body.home-page .hero-title {
        max-width:420px
    }
    #media {
        padding-block:28px 34px
    }
    #media .container>div {
        margin-bottom:28px
    }
    #media h2 {
        font-size:16px
    }
    .media-marquee-track {
        grid-template-columns:repeat(4,1fr);
        gap:24px 22px
    }
    .media-logo-img {
        height:38px
    }
    .intro-split {
        grid-template-columns:1fr;
        gap:54px;
        margin:70px auto
    }
    .intro-split-image {
        max-width:500px;
        width:calc(100% - 20px);
        margin-right:auto
    }
    .intro-split-image::before {
        inset:20px -20px -20px 20px
    }
    .intro-split-image img {
        height:430px;
        object-position:center 36%;
        border-radius:200px 200px 0 0
    }
    .intro-split-content h2 {
        font-size:38px;
        margin-bottom:25px
    }
    .intro-eyebrow {
        margin-bottom:20px;
        letter-spacing:.06em
    }
    .intro-split-content p {
        font-size:17px
    }
    .pt-head {
        margin-bottom:36px
    }
    .pt-logo {
        width:210px;
        height:42px;
        margin-bottom:22px
    }
    .pt-head h2 {
        font-size:38px
    }
    .pt-list {
        grid-template-columns:1fr;
        gap:40px
    }
    .pt-card {
        display:grid;
        grid-template-columns:1fr;
        gap:0
    }
    .pt-img {
        margin-bottom:22px
    }
    .pt-img img {
        height:auto;
        aspect-ratio:1.9;
        object-fit:cover
    }
    .pt-card h3 {
        font-size:30px;
        max-width:580px
    }
    .pt-card p {
        font-size:17px
    }
    .pt-more {
        margin-top:6px
    }
    .pt-foot {
        margin-top:36px
    }
    .about-layout {
        grid-template-columns:1fr;
        gap:40px
    }
    .about-text h2 {
        font-size:38px
    }
    .about-photos {
        padding-top:0
    }
    .about-photo-main {
        height:480px;
        object-position:center 22%
    }
    .about-photo-row {
        margin-top:16px;
        gap:16px
    }
    .about-photo-row img {
        height:220px
    }
    .stories-section {
        padding-top:0
    }
    .stories-grid {
        grid-template-columns:1fr 1fr;
        gap:14px
    }
    .services-section .container {
        grid-template-columns:1fr;
        gap:30px
    }
    .services-section .mb-2xl {
        margin-bottom:0
    }
    .services-section h2 {
        font-size:44px;
        max-width:530px
    }
    .service-pill {
        font-size:17px;
        padding-block:18px
    }
    .service-areas-section h2 {
        font-size:38px
    }
    .service-areas-grid {
        grid-template-columns:1fr 1fr;
        gap:28px 18px
    }
    .service-area-card,.service-area-card:nth-last-child(-n+2) {
        grid-column:span 1
    }
    .service-area-card:last-child {
        grid-column:span 2
    }
    .service-area-card img {
        height:210px
    }
    .service-area-card:last-child img {
        height:280px
    }
    .service-area-card p {
        font-size:24px
    }
    .stats-heading {
        font-size:42px;
        margin-bottom:36px
    }
    .stats-grid {
        grid-template-columns:1fr
    }
    .stat-card {
        padding:30px 0;
        border:0;
        border-bottom:1px solid #8dbab6
    }
    .stat-number {
        font-size:82px;
        margin-bottom:18px
    }
    .stat-label {
        max-width:330px
    }
    .stats-pineapple {
        width:65px;
        right:0;
        top:-20px;
        opacity:.28
    }
    .speaking-section {
        grid-template-columns:minmax(0,1fr)
    }
    .speaking-image-col {
        height:470px
    }
    .speaking-img {
        object-position:50% 30%
    }
    .speaking-content-col {
        padding:55px 24px 64px
    }
    .speaking-heading {
        font-size:54px
    }
    .speaking-heading br {
        display:none
    }
    .speaking-venues-logos {
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:20px
    }
    .speaking-venue-badge {
        width:100%;
        max-width:160px
    }
    .speaking-body {
        font-size:17px
    }
    .speaking-topics-list {
        padding-left:20px
    }
    .speaking-topics-list li {
        padding-block:7px
    }
    .watch-section h2 {
        font-size:46px
    }
    .watch-videos-grid {
        grid-template-columns:1fr;
        gap:36px
    }
    .watch-instagram-title {
        font-size:34px
    }
    .instagram-grid {
        gap:16px
    }
    .instagram-embed {
        height:320px
    }
    .memberships-grid {
        grid-template-columns:repeat(3,1fr);
        gap:15px
    }
    .membership-item {
        height:100px;
        padding:12px
    }
    .membership-item img {
        height:75px
    }
    .section:has(.memberships-grid) h2 {
        font-size:36px
    }
    .section:has(.memberships-grid) {
        padding-block:60px
    }
    .grid-3 {
        grid-template-columns:1fr;
        gap:45px
    }
    #blogs .text-center:first-child {
        display:block
    }
    #blogs h2 {
        font-size:54px;
        margin-bottom:20px
    }
    #blogs .text-center:first-child p {
        font-size:17px
    }
    .blog-post-image {
        height:260px
    }
    .blog-post h3 {
        font-size:30px
    }
    .blog-post-content {
        padding-top:20px
    }
    .blog-meta {
        padding-block:14px
    }
    #faq .container {
        grid-template-columns:1fr;
        gap:0
    }
    #faq .text-center {
        margin-bottom:35px
    }
    #faq h2 {
        font-size:54px;
        margin-bottom:16px
    }
    #faq .text-center>p {
        max-width:420px
    }
    .faq-question {
        font-size:18px;
        padding-block:23px;
        gap:25px
    }
    .faq-answer {
        padding-right:0;
        font-size:17px
    }
    .grid-2 {
        grid-template-columns:1fr;
        gap:45px
    }
    #contact h2 {
        font-size:55px
    }
    #contact .text-center {
        margin-bottom:38px
    }
    #contact .text-center>p {
        font-size:18px
    }
    .card {
        padding:26px
    }
    .card h3 {
        font-size:30px
    }
    .footer-content {
        grid-template-columns:1fr;
        gap:42px
    }
    .footer-section:first-child {
        grid-column:span 1
    }
    .site-footer {
        padding-top:56px
    }
    .footer-links {
        gap:15px 22px
    }
    .footer-bottom {
        margin-top:40px
    }
    .mb-xl,.mb-2xl {
        margin-bottom:34px
    }
}
@media(max-width:420px) {
    .header-cta {
        display:none
    }
    .menu-toggle {
        margin-left:auto
    }
    body.home-page .hero-title {
        font-size:57px;
        max-width:340px
    }
    body.home-page .hero .btn-group {
        display:grid;
        gap:12px;
        justify-items:stretch
    }
    body.home-page .hero .btn-secondary {
        justify-content:flex-start
    }
    body.home-page .hero-media {
        height:340px;
    }
    body.home-page .hero-role {
        font-size:17px
    }
    .media-marquee-track {
        grid-template-columns:repeat(2,1fr);
        gap:24px 40px
    }
    .media-logo-img {
        height:43px
    }
    .intro-split-content h2,.about-text h2 {
        font-size:35px
    }
    .intro-split-image img {
        height:360px
    }
    .service-areas-grid {
        grid-template-columns:1fr;
        gap:30px
    }
    .service-area-card,.service-area-card:last-child,.service-area-card:nth-last-child(-n+2) {
        grid-column:auto
    }
    .service-area-card img,.service-area-card:last-child img {
        height:230px
    }
    .service-area-card p {
        font-size:27px
    }
    .about-photo-main {
        height:390px
    }
    .about-photo-row img {
        height:175px
    }
    .stories-grid {
        gap:12px
    }
    .instagram-grid {
        grid-template-columns:1fr
    }
    .instagram-embed {
        height:420px
    }
    .memberships-grid {
        grid-template-columns:1fr 1fr;
        gap:15px
    }
    .membership-item {
        height:110px
    }
    .speaking-image-col {
        height:380px
    }
    .speaking-heading {
        font-size:49px
    }
    .speaking-cta {
        width:100%;
        padding-inline:14px
    }
    .pt-card h3,.blog-post h3 {
        font-size:28px
    }
    .blog-post-image {
        height:220px
    }
    .card {
        padding:24px
    }
    .footer-logos-row {
        gap:20px
    }
    .footer-gr-logo,.footer-dp-logo {
        width:90px
    }
}
@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto
    }
    *,*::before,*::after {
        animation:none!important;
        transition:none!important
    }
    .pt-card:hover img,.btn-primary:hover {
        transform:none
    }
}
/* Keep keyboard indicators clear on dark sections and the video usable in landscape. */
.services-section :focus-visible,.site-footer :focus-visible {
    outline-color:#f2d28c
}
#videoModal>div {
    width:min(860px,92vw,calc((100dvh - 150px) * 1.77778))!important
}

/* Local search results use native links and remain readable without motion. */
.site-search-results {
    margin-top:32px;
    padding-top:24px;
    border-top:1px solid var(--line)
}
.site-search-results h2 {
    font-size:clamp(26px,3vw,36px);
    margin-bottom:16px
}
.site-search-results ul {
    list-style:none
}
.site-search-results li {
    padding:20px 0;
    border-bottom:1px solid var(--line)
}
.site-search-results a {
    color:var(--ink);
    font-size:18px;
    font-weight:500;
    text-decoration:underline;
    text-underline-offset:4px
}
.site-search-results p {
    font-size:16px;
    margin-top:8px
}

/* Identity verified in Fertility With Delia Figma, landing page v3. */
.site-header {background:var(--white)}
body.home-page .hero-title {color:var(--brand-ocean)}
.btn-primary {background:var(--gold);border-color:var(--gold);color:var(--ink)}
.btn-primary:hover {background:var(--teal);border-color:var(--teal);color:var(--white)}
.btn-primary:focus-visible {outline-color:var(--teal)}
