/*
Theme Name:  Big Apple Women's Health
Theme URI:   https://www.bigapplemedicalcare.com/
Author:      Elias Khateeb
Description: Women's health clinic - Bay Ridge, Brooklyn.
Version:     1.0
Requires at least: 5.8
Tested up to: 6.7
License:     All rights reserved
Text Domain: bamc-womens-health
*/

:root {
      --ink: #2b2026;
      --text: #4b3c44;
      --muted: #75636b;
      --rose: #b94e73;
      --rose-deep: #8f3556;
      --rose-mid: #d9829e;
      --rose-soft: #f9dfe8;
      --rose-wash: #fff3f7;
      --white: #ffffff;
      --paper: #fffbfc;
      --line: #efd3dc;
      --line-strong: #dfb4c3;
      --accent: #9f4564;
      --focus: #80304d;
      --shadow: 0 18px 48px rgba(102, 51, 72, .12);
      font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    }

    * {
      box-sizing: border-box;
    }

    html {
      scroll-behavior: smooth;
    }

    body {
      margin: 0;
      color: var(--text);
      background: var(--paper);
      line-height: 1.55;
    }

    a {
      color: inherit;
      text-decoration: none;
    }

    img,
    svg {
      display: block;
    }

    h1,
    h2,
    h3,
    p {
      margin-top: 0;
    }

    h1,
    h2,
    h3 {
      color: var(--ink);
      letter-spacing: 0;
    }

    .skip-link {
      position: absolute;
      left: 16px;
      top: -80px;
      z-index: 99;
      padding: 10px 14px;
      border-radius: 6px;
      color: var(--white);
      background: var(--focus);
      font-weight: 800;
    }

    .skip-link:focus {
      top: 14px;
    }

    a:focus-visible,
    button:focus-visible {
      outline: 3px solid rgba(128, 48, 77, .42);
      outline-offset: 3px;
    }

    .container,
    .header-inner,
    .topbar-inner {
      width: min(1140px, calc(100% - 40px));
      margin: 0 auto;
    }

    .topbar {
      color: #633447;
      background: linear-gradient(90deg, #fff6f9, #fffdfd 46%, #f8dce7);
      border-bottom: 1px solid rgba(223, 180, 195, .72);
      font-size: 13px;
      font-weight: 650;
    }

    .topbar-inner {
      min-height: 36px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
    }

    .topbar strong {
      color: var(--rose-deep);
      font-weight: 850;
    }

    .site-header {
      position: sticky;
      top: 0;
      z-index: 40;
      background: rgba(255, 251, 252, .94);
      border-bottom: 1px solid rgba(239, 211, 220, .86);
      backdrop-filter: blur(16px);
    }

    .header-inner {
      min-height: 118px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 24px;
    }

    .brand {
      display: flex;
      align-items: center;
      min-width: 230px;
    }

    .brand img {
      width: 190px;
      height: auto;
    }

    .brand span {
      display: none;
    }

    .nav {
      display: flex;
      align-items: center;
      gap: 25px;
      color: var(--ink);
      font-size: 13px;
      font-weight: 780;
    }

    .nav a {
      position: relative;
      padding: 30px 0;
    }

    .nav a.active::after {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      bottom: 24px;
      height: 3px;
      border-radius: 999px;
      background: var(--rose);
    }

    .button,
    .phone-button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 9px;
      min-height: 48px;
      padding: 0 20px;
      border-radius: 7px;
      font-size: 15px;
      font-weight: 850;
      line-height: 1;
      white-space: nowrap;
      transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
    }

    .button:hover,
    .phone-button:hover {
      transform: translateY(-1px);
    }

    .button-primary,
    .phone-button {
      color: var(--white);
      background: linear-gradient(135deg, var(--rose-deep), var(--rose));
      box-shadow: 0 14px 28px rgba(143, 53, 86, .22);
    }

    .button-secondary {
      color: var(--rose-deep);
      background: rgba(255, 255, 255, .82);
      border: 1px solid var(--line-strong);
    }

    .button-icon {
      width: 18px;
      height: 18px;
      flex: 0 0 18px;
    }

    .pulse-strip {
      height: 34px;
      overflow: hidden;
      background:
        linear-gradient(90deg, rgba(255, 251, 252, .98), rgba(249, 223, 232, .64), rgba(255, 251, 252, .98));
      border-bottom: 1px solid rgba(239, 211, 220, .74);
    }

    .pulse-inner {
      width: min(1140px, calc(100% - 40px));
      height: 34px;
      margin: 0 auto;
      opacity: .92;
    }

    .pulse-line {
      width: 100%;
      height: 34px;
    }

    .pulse-line path {
      fill: none;
      stroke: var(--rose);
      stroke-width: 2.25;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    .pulse-base {
      opacity: .32;
    }

    .pulse-live,
    .pulse-glow {
      stroke-dasharray: 120 1020;
      stroke-dashoffset: 1140;
      animation: pulseTrace 10.5s linear infinite;
      will-change: stroke-dashoffset;
    }

    .pulse-live {
      filter: drop-shadow(0 0 6px rgba(185, 78, 115, .28));
    }

    .pulse-glow {
      stroke-width: 5;
      opacity: .12;
    }

    @keyframes pulseTrace {
      to {
        stroke-dashoffset: 0;
      }
    }

    .hero {
      position: relative;
      isolation: isolate;
      overflow: hidden;
      background:
        linear-gradient(115deg, #fff9fb 0%, #fffefe 38%, #fff1f6 100%);
    }

    .hero::before {
      content: "";
      position: absolute;
      inset: -18% -8% auto;
      height: 55%;
      background:
        linear-gradient(90deg, rgba(217, 130, 158, .24), rgba(255, 255, 255, .72), rgba(185, 78, 115, .18));
      filter: blur(34px);
      transform: translateX(-10%);
      animation: roseMotion 11s ease-in-out infinite alternate;
      z-index: -1;
    }

    @keyframes roseMotion {
      to {
        transform: translateX(10%);
      }
    }

    .hero-inner {
      min-height: 540px;
      display: grid;
      grid-template-columns: minmax(0, 1fr) 44%;
      align-items: center;
      gap: 52px;
      padding: 64px 0 58px;
    }

    .eyebrow,
    .section-label,
    .item-label {
      color: var(--rose-deep);
      font-size: 13px;
      font-weight: 900;
      text-transform: uppercase;
      letter-spacing: 0;
    }

    .eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      margin-bottom: 18px;
    }

    .eyebrow::before {
      content: "";
      width: 34px;
      height: 2px;
      border-radius: 999px;
      background: var(--rose);
    }

    h1 {
      max-width: 760px;
      margin-bottom: 20px;
      font-size: clamp(42px, 5.3vw, 68px);
      line-height: 1.04;
    }

    .hero-copy {
      max-width: 690px;
      margin-bottom: 28px;
      color: #5c4651;
      font-size: 19px;
      line-height: 1.7;
    }

    .hero-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 13px;
      margin-bottom: 28px;
    }

    .hero-points {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 1px;
      max-width: 770px;
      overflow: hidden;
      border: 1px solid var(--line);
      border-radius: 7px;
      background: var(--line);
    }

    .hero-point {
      min-height: 76px;
      padding: 15px 16px;
      background: rgba(255, 255, 255, .74);
    }

    .hero-point strong {
      display: block;
      margin-bottom: 5px;
      color: var(--ink);
      font-size: 14px;
      font-weight: 850;
      line-height: 1.25;
    }

    .hero-point span {
      display: block;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.45;
    }

    .hero-media {
      position: relative;
      margin: 0;
      min-height: 390px;
      overflow: hidden;
      border-radius: 8px;
      border: 1px solid rgba(223, 180, 195, .82);
      box-shadow: var(--shadow);
      background: var(--white);
    }

    .hero-media img {
      width: 100%;
      height: 100%;
      min-height: 390px;
      object-fit: cover;
      object-position: center 30%;
    }

    .map-link {
      text-decoration: underline;
      text-decoration-thickness: 1px;
      text-underline-offset: 3px;
    }

    .intro {
      padding: 54px 0 44px;
      background: linear-gradient(180deg, var(--paper), var(--rose-wash));
    }

    .intro-grid {
      display: grid;
      grid-template-columns: 34% minmax(0, 1fr);
      gap: 48px;
      align-items: start;
    }

    .intro h2,
    .care h2,
    .visit h2,
    .cta h2 {
      margin-bottom: 16px;
      font-size: clamp(30px, 3.5vw, 45px);
      line-height: 1.1;
    }

    .intro p,
    .section-lead,
    .visit-lead,
    .cta p {
      color: var(--muted);
      font-size: 17px;
      line-height: 1.72;
    }

    .mini-proof {
      display: grid;
      gap: 1px;
      overflow: hidden;
      border: 1px solid var(--line);
      border-radius: 7px;
      background: var(--line);
    }

    .mini-proof div {
      padding: 18px;
      background: rgba(255, 255, 255, .72);
    }

    .mini-proof strong {
      display: block;
      color: var(--ink);
      font-size: 14px;
      font-weight: 850;
    }

    .mini-proof span {
      display: block;
      margin-top: 4px;
      color: var(--muted);
      font-size: 13px;
    }

    .care {
      padding: 56px 0 58px;
      background: var(--white);
    }

    .section-head {
      max-width: 780px;
      margin-bottom: 26px;
    }

    .care-board {
      border-top: 1px solid var(--line-strong);
      border-bottom: 1px solid var(--line-strong);
    }

    .care-item {
      display: grid;
      grid-template-columns: 136px 248px minmax(0, 1fr);
      gap: 26px;
      align-items: start;
      padding: 28px 0;
      border-top: 1px solid var(--line);
      background: var(--white);
    }

    .care-item:first-child {
      border-top: 0;
    }

    .care-item h3 {
      margin-bottom: 10px;
      font-size: 24px;
      line-height: 1.18;
    }

    .care-item p {
      margin-bottom: 0;
      color: #5f4a54;
      font-size: 16px;
      font-weight: 500;
      line-height: 1.72;
    }

    .care-item p + p {
      margin-top: 10px;
    }

    .service-meta {
      display: grid;
      align-content: start;
    }

    .item-label {
      display: block;
      color: var(--accent);
      font-size: 12px;
      font-weight: 900;
      letter-spacing: .05em;
      text-transform: uppercase;
    }

    .service-visual {
      position: relative;
      margin: 0;
      overflow: hidden;
      border-radius: 6px;
      background: var(--rose-wash);
    }

    .service-visual img {
      width: 100%;
      height: 174px;
      object-fit: cover;
    }

    .visit {
      padding: 56px 0;
      background:
        linear-gradient(90deg, #fff8fa, #ffffff 55%, #fff2f6);
    }

    .visit-layout {
      display: grid;
      grid-template-columns: 36% minmax(0, 1fr);
      gap: 46px;
      align-items: start;
    }

    .visit-steps {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 1px;
      overflow: hidden;
      border: 1px solid var(--line);
      border-radius: 8px;
      background: var(--line);
    }

    .visit-step {
      min-height: 210px;
      padding: 22px;
      background: rgba(255, 255, 255, .78);
    }

    .visit-step span {
      display: inline-grid;
      place-items: center;
      width: 34px;
      height: 34px;
      margin-bottom: 18px;
      border-radius: 999px;
      color: var(--white);
      background: var(--rose);
      font-size: 13px;
      font-weight: 900;
    }

    .visit-step h3 {
      margin-bottom: 8px;
      font-size: 19px;
      line-height: 1.25;
    }

    .visit-step p {
      margin-bottom: 0;
      color: var(--muted);
      font-size: 15px;
      line-height: 1.58;
    }

    .compliance-note {
      margin-top: 18px;
      padding: 16px 18px;
      border-left: 3px solid var(--rose);
      color: #5b3544;
      background: rgba(255, 255, 255, .72);
      font-size: 13px;
      line-height: 1.58;
    }

    .cta {
      padding: 48px 0;
      color: var(--white);
      background:
        linear-gradient(120deg, #6f2944 0%, #9b3c60 58%, #bd617f 100%);
    }

    .cta-inner {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 28px;
      align-items: center;
    }

    .cta .section-label,
    .cta h2 {
      color: var(--white);
    }

    .cta h2 {
      margin-bottom: 10px;
    }

    .cta p {
      max-width: 760px;
      margin-bottom: 0;
      color: rgba(255, 255, 255, .86);
    }

    .cta-actions {
      display: grid;
      gap: 12px;
      min-width: 250px;
    }

    .cta .button-secondary {
      color: var(--white);
      background: rgba(255, 255, 255, .12);
      border-color: rgba(255, 255, 255, .34);
    }

    .footer {
      position: relative;
      overflow: hidden;
      padding: 126px 0 62px;
      color: rgba(255, 255, 255, .76);
      background: #2b1822;
    }

    .footer::before {
      content: "";
      position: absolute;
      inset: 0 0 auto;
      height: 116px;
      background: var(--paper);
      clip-path: polygon(0 0, 100% 0, 100% 18%, 0 100%);
    }

    .footer-inner {
      position: relative;
      display: grid;
      grid-template-columns: 1.25fr .85fr 1.2fr 1.55fr;
      gap: 44px;
      align-items: start;
    }

    .footer-brand img {
      width: 230px;
      height: auto;
      margin-bottom: 20px;
    }

    .footer-brand p,
    .footer-contact p {
      margin-bottom: 0;
      color: rgba(255, 255, 255, .76);
      font-size: 15px;
      line-height: 1.6;
    }

    .footer h2 {
      margin-bottom: 20px;
      color: var(--white);
      font-size: 20px;
      line-height: 1.2;
      text-transform: uppercase;
    }

    .footer-links {
      display: grid;
      gap: 10px;
      margin: 0;
      padding: 0;
      list-style: none;
      color: rgba(255, 255, 255, .82);
      font-size: 16px;
    }

    .footer-links a:hover {
      color: var(--rose-soft);
    }

    .footer-contact {
      display: grid;
      gap: 14px;
    }

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

    .footer-contact strong {
      color: var(--white);
    }

    .newsletter-box {
      max-width: 322px;
      padding: 14px;
      background: rgba(255, 255, 255, .07);
    }

    .newsletter-form {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 74px;
      min-height: 44px;
    }

    .newsletter-form label {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip: rect(0 0 0 0);
      white-space: nowrap;
    }

    .newsletter-form input {
      width: 100%;
      min-width: 0;
      border: 0;
      padding: 0 13px;
      color: var(--white);
      background: rgba(255, 255, 255, .1);
      font: inherit;
      font-size: 14px;
    }

    .newsletter-form input::placeholder {
      color: rgba(255, 255, 255, .68);
    }

    .newsletter-form button {
      border: 0;
      color: var(--white);
      background: var(--rose);
      font: inherit;
      font-size: 14px;
      font-weight: 850;
      cursor: pointer;
    }

    .newsletter-form[aria-disabled="true"] input,
    .newsletter-form[aria-disabled="true"] button {
      cursor: not-allowed;
      opacity: .76;
    }

    .newsletter-form[aria-disabled="true"] input {
      color: rgba(255, 255, 255, .84);
      -webkit-text-fill-color: rgba(255, 255, 255, .84);
    }

    .newsletter-preview-note {
      grid-column: 1 / -1;
      margin: 8px 0 0;
      color: rgba(255, 255, 255, .72);
      font-size: 12px;
      line-height: 1.35;
    }

    html.a11y-font-scale-1 body {
      zoom: 1.08;
    }

    html.a11y-font-scale-2 body {
      zoom: 1.16;
    }

    html.a11y-font-scale-3 body {
      zoom: 1.24;
    }

    html.a11y-high-contrast {
      --ink: #13090d;
      --text: #241117;
      --muted: #3a2029;
      --rose: #9b1747;
      --rose-deep: #5d102e;
      --rose-mid: #b32656;
      --rose-soft: #ffd9e5;
      --rose-wash: #fff4f8;
      --paper: #ffffff;
      --line: #9d6378;
      --line-strong: #6f2b45;
      --focus: #31101d;
    }

    html.a11y-high-contrast body,
    html.a11y-high-contrast .site-header,
    html.a11y-high-contrast .topbar,
    html.a11y-high-contrast .hero,
    html.a11y-high-contrast .intro,
    html.a11y-high-contrast .care,
    html.a11y-high-contrast .visit,
    html.a11y-high-contrast .care-item,
    html.a11y-high-contrast .mini-proof div,
    html.a11y-high-contrast .visit-step,
    html.a11y-high-contrast .accessibility-panel,
    html.a11y-high-contrast .accessibility-option,
    html.a11y-high-contrast .accessibility-control {
      color: #13090d !important;
      background: #ffffff !important;
      border-color: #13090d !important;
    }

    html.a11y-high-contrast h1,
    html.a11y-high-contrast h2,
    html.a11y-high-contrast h3,
    html.a11y-high-contrast p,
    html.a11y-high-contrast span,
    html.a11y-high-contrast strong,
    html.a11y-high-contrast a {
      color: #13090d !important;
    }

    html.a11y-high-contrast a {
      text-decoration: underline !important;
      text-decoration-thickness: 2px !important;
      text-underline-offset: 4px !important;
    }

    html.a11y-high-contrast .button-primary,
    html.a11y-high-contrast .phone-button,
    html.a11y-high-contrast .accessibility-toggle,
    html.a11y-high-contrast .accessibility-stepper button,
    html.a11y-high-contrast .newsletter-form button {
      color: #ffffff !important;
      background: #13090d !important;
      box-shadow: none !important;
    }

    html.a11y-high-contrast .footer,
    html.a11y-high-contrast .cta {
      color: #ffffff !important;
      background: #13090d !important;
    }

    html.a11y-high-contrast .footer h2,
    html.a11y-high-contrast .footer p,
    html.a11y-high-contrast .footer a,
    html.a11y-high-contrast .cta h2,
    html.a11y-high-contrast .cta p,
    html.a11y-high-contrast .cta a {
      color: #ffffff !important;
    }

    html.a11y-dark-mode {
      --ink: #fff7fa;
      --text: #f3dce5;
      --muted: #d7b3c0;
      --rose: #f08cad;
      --rose-deep: #ffb0c8;
      --rose-mid: #f4a8c2;
      --rose-soft: #4b2635;
      --rose-wash: #2b1720;
      --white: #23171d;
      --paper: #160e13;
      --line: #5b3342;
      --line-strong: #8b5268;
      --accent: #ffadc6;
      --focus: #ffd5e3;
      --shadow: 0 18px 48px rgba(0, 0, 0, .34);
    }

    html.a11y-dark-mode body,
    html.a11y-dark-mode .site-header,
    html.a11y-dark-mode .topbar,
    html.a11y-dark-mode .hero,
    html.a11y-dark-mode .intro,
    html.a11y-dark-mode .care,
    html.a11y-dark-mode .visit,
    html.a11y-dark-mode .care-item,
    html.a11y-dark-mode .mini-proof div,
    html.a11y-dark-mode .visit-step,
    html.a11y-dark-mode .accessibility-option,
    html.a11y-dark-mode .accessibility-control,
    html.a11y-dark-mode .newsletter-box {
      color: var(--text) !important;
      background: var(--white) !important;
      border-color: var(--line) !important;
    }

    html.a11y-dark-mode h1,
    html.a11y-dark-mode h2,
    html.a11y-dark-mode h3,
    html.a11y-dark-mode strong {
      color: var(--ink) !important;
    }

    html.a11y-dark-mode p,
    html.a11y-dark-mode span,
    html.a11y-dark-mode a {
      color: var(--text) !important;
    }

    html.a11y-dark-mode .hero-points,
    html.a11y-dark-mode .mini-proof {
      background: #8b5268 !important;
      border-color: #8b5268 !important;
    }

    html.a11y-dark-mode .hero-point,
    html.a11y-dark-mode .mini-proof div {
      background: #35212a !important;
    }

    html.a11y-dark-mode .hero-point strong,
    html.a11y-dark-mode .mini-proof strong {
      color: #fffafd !important;
    }

    html.a11y-dark-mode .hero-point span,
    html.a11y-dark-mode .mini-proof span {
      color: #f7dce7 !important;
    }

    html.a11y-dark-mode .hero .button-primary {
      color: #ffffff !important;
      background: linear-gradient(135deg, #9b1747, #c13a6b) !important;
      box-shadow: 0 14px 28px rgba(193, 58, 107, .26) !important;
    }

    html.a11y-dark-mode .hero .button-secondary {
      color: #fff7fb !important;
      background: #4a2b37 !important;
      border-color: #e69ab6 !important;
      box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08) !important;
    }

    html.a11y-dark-mode .care-board {
      border-color: #8b5268 !important;
    }

    html.a11y-dark-mode .care-item {
      background: #23171d !important;
      border-color: #5b3342 !important;
    }

    html.a11y-dark-mode .care-item h3 {
      color: #fffafd !important;
    }

    html.a11y-dark-mode .care-item p {
      color: #f5dce6 !important;
      font-weight: 520;
    }

    html.a11y-dark-mode .care-item .item-label {
      color: #ffb6ce !important;
    }

    html.a11y-dark-mode .hero::before,
    html.a11y-reduce-motion .hero::before {
      animation: none !important;
    }

    html.a11y-dark-mode .footer::before {
      background: var(--paper) !important;
    }

    html.a11y-readable-font body,
    html.a11y-readable-font body * {
      font-family: Arial, Verdana, Tahoma, sans-serif !important;
    }

    html.a11y-readable-font p,
    html.a11y-readable-font li,
    html.a11y-readable-font a,
    html.a11y-readable-font button,
    html.a11y-readable-font input {
      font-weight: 600;
    }

    html.a11y-text-spacing body,
    html.a11y-text-spacing p,
    html.a11y-text-spacing li,
    html.a11y-text-spacing a,
    html.a11y-text-spacing button,
    html.a11y-text-spacing input,
    html.a11y-text-spacing span {
      letter-spacing: .035em !important;
      word-spacing: .13em !important;
      line-height: 1.88 !important;
    }

    html.a11y-text-spacing h1,
    html.a11y-text-spacing h2,
    html.a11y-text-spacing h3 {
      line-height: 1.28 !important;
    }

    html.a11y-underline-links a {
      text-decoration: underline;
      text-decoration-thickness: 1.5px;
      text-underline-offset: 4px;
    }

    html.a11y-focus-highlight a,
    html.a11y-focus-highlight button,
    html.a11y-focus-highlight input,
    html.a11y-focus-highlight [tabindex] {
      outline: 2px solid rgba(255, 191, 71, .7) !important;
      outline-offset: 2px !important;
    }

    html.a11y-focus-highlight a:focus,
    html.a11y-focus-highlight button:focus,
    html.a11y-focus-highlight input:focus,
    html.a11y-focus-highlight [tabindex]:focus {
      outline: 4px solid #ffbf47 !important;
      outline-offset: 4px !important;
      box-shadow: 0 0 0 7px rgba(49, 16, 29, .24) !important;
    }

    html.a11y-reduce-motion *,
    html.a11y-reduce-motion *::before,
    html.a11y-reduce-motion *::after {
      animation-duration: .01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: .01ms !important;
      scroll-behavior: auto !important;
    }

    html.a11y-reduce-motion .pulse-live,
    html.a11y-reduce-motion .pulse-glow {
      stroke-dasharray: none !important;
      stroke-dashoffset: 0 !important;
      animation: none !important;
    }

    .accessibility-widget {
      position: fixed;
      right: 18px;
      bottom: 18px;
      z-index: 90;
      display: grid;
      justify-items: end;
      gap: 10px;
      color: var(--ink);
      font-size: 15px;
    }

    .accessibility-toggle {
      display: inline-grid;
      place-items: center;
      width: 62px;
      height: 62px;
      border: 0;
      border-radius: 999px;
      color: var(--white);
      background: linear-gradient(135deg, var(--rose-deep), var(--rose));
      box-shadow: 0 16px 34px rgba(143, 53, 86, .28);
      cursor: pointer;
    }

    .accessibility-toggle svg {
      width: 31px;
      height: 31px;
    }

    .accessibility-panel {
      width: min(372px, calc(100vw - 34px));
      max-height: min(650px, calc(100vh - 104px));
      overflow: auto;
      padding: 16px;
      border: 1px solid var(--line-strong);
      border-radius: 8px;
      background: rgba(255, 251, 252, .98);
      box-shadow: 0 22px 58px rgba(67, 32, 45, .24);
      backdrop-filter: blur(14px);
      opacity: 0;
      pointer-events: none;
      transform: translateY(10px);
      transition: opacity .18s ease, transform .18s ease;
    }

    .accessibility-panel[hidden] {
      display: none;
    }

    html.a11y-dark-mode .accessibility-panel {
      background: rgba(35, 23, 29, .98);
    }

    .accessibility-widget.is-open .accessibility-panel {
      opacity: 1;
      pointer-events: auto;
      transform: translateY(0);
    }

    .accessibility-heading {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 14px;
      padding-bottom: 12px;
      border-bottom: 1px solid var(--line);
    }

    .accessibility-panel h2 {
      margin: 0;
      font-size: 18px;
      line-height: 1.2;
    }

    .accessibility-panel p {
      margin: 5px 0 0;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.45;
    }

    .accessibility-close {
      display: inline-grid;
      place-items: center;
      width: 34px;
      height: 34px;
      border: 1px solid var(--line);
      border-radius: 999px;
      color: var(--ink);
      background: var(--white);
      font: inherit;
      font-size: 20px;
      line-height: 1;
      cursor: pointer;
    }

    .accessibility-groups {
      display: grid;
      gap: 12px;
      margin-top: 14px;
    }

    .accessibility-group {
      display: grid;
      gap: 8px;
    }

    .accessibility-group-title {
      color: var(--rose-deep);
      font-size: 12px;
      font-weight: 900;
      letter-spacing: .06em;
      text-transform: uppercase;
    }

    .accessibility-control,
    .accessibility-option {
      width: 100%;
      border: 1px solid var(--line);
      border-radius: 7px;
      color: var(--ink);
      background: var(--white);
    }

    .accessibility-control {
      display: grid;
      gap: 9px;
      padding: 11px;
    }

    .accessibility-control-label {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      font-weight: 850;
    }

    .accessibility-value {
      color: var(--rose-deep);
      font-size: 12px;
      font-weight: 900;
    }

    .accessibility-stepper {
      display: grid;
      grid-template-columns: 42px 1fr 42px;
      gap: 8px;
      align-items: center;
    }

    .accessibility-stepper button {
      min-height: 38px;
      border: 0;
      border-radius: 6px;
      color: var(--white);
      background: var(--rose-deep);
      font: inherit;
      font-size: 20px;
      font-weight: 900;
      cursor: pointer;
    }

    .accessibility-stepper button:disabled {
      opacity: .42;
      cursor: not-allowed;
    }

    .accessibility-meter {
      min-height: 38px;
      display: grid;
      place-items: center;
      border-radius: 6px;
      color: var(--text);
      background: var(--rose-wash);
      font-size: 13px;
      font-weight: 850;
    }

    .accessibility-options {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px;
    }

    .accessibility-option {
      position: relative;
      min-height: 54px;
      padding: 9px 46px 9px 10px;
      text-align: left;
      font: inherit;
      font-size: 13px;
      font-weight: 850;
      cursor: pointer;
    }

    .accessibility-option span {
      display: block;
      margin-top: 3px;
      color: var(--muted);
      font-size: 11px;
      font-weight: 750;
    }

    .accessibility-option[aria-pressed="true"] {
      color: var(--white);
      background: var(--rose-deep);
      border-color: var(--rose-deep);
    }

    .accessibility-option[aria-pressed="true"]::after {
      content: "On";
      position: absolute;
      right: 10px;
      top: 10px;
      min-width: 26px;
      border-radius: 999px;
      padding: 3px 6px;
      color: var(--rose-deep);
      background: rgba(255, 255, 255, .92);
      font-size: 10px;
      font-weight: 900;
      text-align: center;
      line-height: 1;
    }

    .accessibility-option[aria-pressed="true"] span {
      color: rgba(255, 255, 255, .82);
    }

    html.a11y-high-contrast .accessibility-option[aria-pressed="true"],
    html.a11y-high-contrast .accessibility-option[aria-pressed="true"] span {
      color: #ffffff !important;
      background: #13090d !important;
      border-color: #13090d !important;
    }

    html.a11y-dark-mode .accessibility-option[aria-pressed="true"] {
      color: #fffafd !important;
      background: #7f2347 !important;
      border-color: #d98aa7 !important;
    }

    html.a11y-dark-mode .accessibility-option[aria-pressed="true"] span {
      color: #fff0f6 !important;
    }

    html.a11y-dark-mode .accessibility-option[aria-pressed="true"]::after {
      color: #7f2347 !important;
      background: #fff0f6 !important;
    }

    .accessibility-reset {
      width: 100%;
      min-height: 40px;
      border: 0;
      border-radius: 7px;
      color: var(--rose-deep);
      background: var(--rose-wash);
      font: inherit;
      font-weight: 900;
      cursor: pointer;
    }

    .accessibility-reading-guide {
      position: fixed;
      left: 0;
      right: 0;
      top: 0;
      z-index: 89;
      display: none;
      height: 34px;
      pointer-events: none;
      border-top: 1px solid rgba(143, 53, 86, .5);
      border-bottom: 1px solid rgba(143, 53, 86, .5);
      background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0) 0%,
        rgba(185, 78, 115, .045) 42%,
        rgba(185, 78, 115, .065) 58%,
        rgba(255, 255, 255, 0) 100%
      );
      box-shadow: none;
      transform: translateY(var(--reading-guide-y, 120px));
    }

    html.a11y-reading-guide .accessibility-reading-guide {
      display: block;
    }

    html.a11y-dark-mode .accessibility-reading-guide {
      border-color: rgba(255, 182, 206, .56);
      background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0) 0%,
        rgba(255, 182, 206, .06) 42%,
        rgba(255, 182, 206, .085) 58%,
        rgba(255, 255, 255, 0) 100%
      );
    }

    @media (prefers-reduced-motion: reduce) {
      *,
      *::before,
      *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
      }
    }

    @media (max-width: 1050px) {
      .nav {
        display: none;
      }

      .hero-inner,
      .intro-grid,
      .visit-layout,
      .cta-inner,
      .footer-inner {
        grid-template-columns: 1fr;
      }

      .hero-media {
        min-height: 340px;
      }

      .hero-media img {
        min-height: 340px;
      }

      .care-item {
        grid-template-columns: 104px 196px minmax(0, 1fr);
        gap: 20px;
      }

      .footer {
        padding-top: 118px;
      }
    }

    @media (max-width: 760px) {
      .container,
      .header-inner,
      .topbar-inner,
      .pulse-inner {
        width: min(100% - 28px, 1140px);
      }

      .topbar-inner {
        grid-template-columns: 1fr;
        display: grid;
        gap: 6px;
      }

      .header-inner {
        min-height: 96px;
      }

      .brand {
        min-width: 0;
      }

      .brand img {
        width: 142px;
      }

      .brand span {
        display: none;
      }

      .phone-button {
        min-height: 42px;
        padding: 0 13px;
        font-size: 13px;
      }

      .hero-inner {
        min-height: auto;
        grid-template-columns: 1fr;
        gap: 30px;
        padding: 48px 0;
      }

      h1 {
        font-size: 40px;
      }

      .hero-copy,
      .intro p,
      .section-lead,
      .visit-lead,
      .cta p {
        font-size: 16px;
      }

      .hero-actions,
      .cta-actions {
        align-items: stretch;
      }

      .button {
        width: 100%;
      }

      .hero-points,
      .care-item,
      .visit-steps {
        grid-template-columns: 1fr;
      }

      .care-item {
        gap: 12px;
        padding: 24px 0;
      }

      .service-meta {
        display: flex;
        align-items: baseline;
        justify-content: space-between;
      }

      .service-visual img {
        height: 220px;
      }

      .intro,
      .care,
      .visit,
      .cta {
        padding: 42px 0;
      }

      .footer {
        padding-top: 98px;
      }

      .footer::before {
        height: 94px;
      }

      .footer-brand img {
        width: 190px;
      }

      .newsletter-box {
        max-width: none;
        padding: 14px;
      }

      .accessibility-widget {
        right: 14px;
        bottom: 14px;
      }

      .accessibility-toggle {
        width: 54px;
        height: 54px;
      }
    }