/* Top page mobile layout — desktop styles intentionally remain untouched. */
.mobile-hero-summary,
.mobile-hours-cards,
.mobile-section-link,
.mobile-hours-sheet,
.header-mobile-tagline {
  display: none;
}

/* 2026-09-03: Mobile editorial surfaces and clearer floating actions. */
@media (max-width: 767px) {
  /* Repeated content uses rhythm and separators instead of another row of white boxes. */
  .top-specialty__cards {
    gap: 0 !important;
  }

  .top-specialty-card {
    padding: 20px 0 22px !important;
    overflow: visible !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(26, 139, 190, .24) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .top-specialty-card:last-child {
    border-bottom: 0 !important;
  }

  .top-specialty-card__photo,
  .top-specialty-card__photo img {
    border-radius: 10px !important;
  }

  .top-private-care .top-private-care__cards {
    gap: 0 !important;
  }

  .top-private-care .top-private-care__card {
    padding: 11px 0 !important;
    overflow: visible !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(26, 139, 190, .22) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .top-private-care .top-private-care__card:last-child {
    border-bottom: 0 !important;
  }

  .top-private-care .top-private-care__media,
  .top-private-care .top-private-care__media img {
    overflow: hidden !important;
    border-radius: 10px !important;
  }

  #faq .specialty-15 {
    gap: 0 !important;
  }

  #faq .faq-03 {
    overflow: visible !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(26, 139, 190, .24) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  #faq .faq-04 {
    min-height: 58px !important;
    padding: 12px 2px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  #faq .faq-07 {
    padding: 2px 2px 16px !important;
  }

  /* The footer itself disappears visually; only two tactile controls float above content. */
  .mobile-quick-actions {
    left: 10px !important;
    right: 10px !important;
    bottom: max(7px, env(safe-area-inset-bottom)) !important;
    z-index: 120 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr) !important;
    gap: 9px !important;
    width: auto !important;
    height: 55px !important;
    min-height: 55px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    pointer-events: none;
  }

  .mobile-quick-actions__phone-wrap,
  .mobile-hours-toggle {
    height: 55px !important;
    min-height: 55px !important;
    pointer-events: auto;
  }

  .mobile-quick-actions__phone-wrap a,
  .mobile-hours-toggle {
    box-sizing: border-box !important;
    height: 55px !important;
    min-height: 55px !important;
    transform: translateY(0) !important;
    border-radius: 14px !important;
    box-shadow: 0 9px 24px rgba(3, 72, 111, .23), 0 2px 5px rgba(3, 72, 111, .12), inset 0 1px 0 rgba(255, 255, 255, .72) !important;
  }

  .mobile-quick-actions__phone-wrap a {
    gap: 9px !important;
    justify-content: center !important;
    border: 1px solid #0786c8 !important;
    background: linear-gradient(145deg, #12a6e4 0%, #0577bd 67%, #0467aa 100%) !important;
    color: #fff !important;
  }

  .mobile-quick-actions__phone-wrap a::after {
    content: "電話する";
    position: absolute;
    top: 5px;
    left: 10px;
    padding: 1px 5px;
    border-radius: 4px;
    background: rgba(255, 255, 255, .16);
    color: rgba(255, 255, 255, .92);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .08em;
  }

  .mobile-quick-actions__phone-wrap a svg {
    width: 21px !important;
    height: 21px !important;
    flex: 0 0 21px !important;
  }

  .mobile-quick-actions__phone-copy strong {
    font-size: clamp(14px, 4.15vw, 17px) !important;
    line-height: 1 !important;
    letter-spacing: .015em !important;
    white-space: nowrap !important;
  }

  .mobile-hours-toggle {
    display: grid !important;
    grid-template-columns: 22px minmax(0, 1fr) 22px !important;
    gap: 7px !important;
    align-items: center !important;
    padding: 6px 9px !important;
    border: 1px solid #4aaad1 !important;
    background: linear-gradient(145deg, rgba(255, 255, 255, .99), rgba(225, 246, 254, .98)) !important;
    color: #075f93 !important;
  }

  .mobile-hours-toggle > svg {
    width: 21px !important;
    height: 21px !important;
  }

  .mobile-hours-toggle__copy {
    display: grid;
    min-width: 0;
    gap: 1px;
    text-align: left;
  }

  .mobile-hours-toggle__copy strong {
    font-size: 13px !important;
    line-height: 1.15 !important;
    white-space: nowrap;
  }

  .mobile-hours-toggle__hint {
    color: #397b9d;
    font-size: 8.5px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .02em;
    white-space: nowrap;
  }

  .mobile-hours-toggle__chevron {
    position: relative;
    display: grid;
    width: 22px;
    height: 22px;
    place-items: center;
    border-radius: 50%;
    background: #078dcc;
    transition: transform .22s ease, background .22s ease;
  }

  .mobile-hours-toggle__chevron::after {
    content: "";
    width: 6px;
    height: 6px;
    margin-top: -3px;
    transform: rotate(45deg);
    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;
  }

  .mobile-hours-toggle[aria-expanded="true"] {
    border-color: #087eb6 !important;
    background: linear-gradient(145deg, #e4f7ff, #c9edf9) !important;
    box-shadow: 0 4px 12px rgba(3, 72, 111, .16), inset 0 2px 4px rgba(4, 93, 137, .08) !important;
  }

  .mobile-hours-toggle[aria-expanded="true"] .mobile-hours-toggle__chevron {
    transform: rotate(180deg);
    background: #056da9;
  }

  .mobile-quick-actions__phone-wrap a:active,
  .mobile-hours-toggle:active {
    transform: translateY(2px) scale(.985) !important;
    box-shadow: 0 3px 8px rgba(3, 72, 111, .19), inset 0 2px 4px rgba(3, 72, 111, .12) !important;
  }

  .mobile-quick-actions__bubble {
    top: -22px !important;
    left: 6px !important;
    padding: 2px 7px !important;
    border-color: rgba(37, 144, 190, .45) !important;
    border-radius: 6px !important;
    background: rgba(255, 255, 255, .96) !important;
    color: #075f8f !important;
    font-size: 8.5px !important;
    box-shadow: 0 3px 10px rgba(3, 72, 111, .12) !important;
  }

  .mobile-quick-actions.is-over-site-footer .mobile-quick-actions__phone-wrap a {
    border-color: rgba(255, 255, 255, .72) !important;
    background: linear-gradient(145deg, #087cba, #064d7c) !important;
    color: #fff !important;
    box-shadow: 0 9px 22px rgba(0, 25, 42, .36), inset 0 1px 0 rgba(255, 255, 255, .3) !important;
  }

  .mobile-quick-actions.is-over-site-footer .mobile-hours-toggle {
    border-color: #fff !important;
    background: rgba(255, 255, 255, .96) !important;
    box-shadow: 0 9px 22px rgba(0, 25, 42, .32) !important;
  }

  .mobile-hours-sheet__panel {
    border: 1px solid rgba(102, 190, 224, .65) !important;
    border-bottom: 0 !important;
    border-radius: 22px 22px 0 0 !important;
    background: rgba(248, 253, 255, .94) !important;
    box-shadow: 0 -16px 44px rgba(1, 55, 88, .22) !important;
    backdrop-filter: blur(18px) saturate(1.15);
    -webkit-backdrop-filter: blur(18px) saturate(1.15);
  }
}

@media (max-width: 374px) {
  .mobile-quick-actions {
    left: 7px !important;
    right: 7px !important;
    gap: 6px !important;
  }

  .mobile-hours-toggle {
    grid-template-columns: 19px minmax(0, 1fr) 20px !important;
    gap: 5px !important;
    padding-inline: 7px !important;
  }

  .mobile-hours-toggle__copy strong {
    font-size: 12px !important;
  }

  .mobile-quick-actions__phone-copy strong {
    font-size: 14px !important;
  }
}

/* Final FV framing overrides. */
.hero-05 > .hero-surgery-record {
  isolation:isolate;
  border-color:rgba(255,255,255,.94) !important;
  background:radial-gradient(circle at 32% 22%,rgba(255,255,255,.98),rgba(245,252,255,.87) 52%,rgba(218,242,252,.82) 100%) !important;
  box-shadow:0 16px 38px rgba(4,72,108,.19),inset 0 0 0 5px rgba(255,255,255,.35) !important;
}
.hero-05 > .hero-surgery-record::before {
  position:absolute;
  z-index:-1;
  inset:7px;
  border:1px solid rgba(22,147,199,.2);
  border-radius:inherit;
  content:"";
}
.hero-surgery-record__detail { display:grid !important; gap:2px; }
.hero-surgery-record__period { display:block; padding-top:3px; border-top:1px solid rgba(7,89,149,.15); font-weight:700; letter-spacing:.02em; }

@media (min-width:768px) {
  .hero-05 > .hero-06[data-hero-kind="exterior-wide"] img,
  .hero-05 > .hero-06[data-hero-kind="exterior-sign"] img,
  .hero-05 > .hero-06[data-hero-kind="staff"] img { object-position:center 48% !important; }
  .hero-05 .hero-09 {
    overflow:hidden;
    padding:14px 24px 17px !important;
    border:1px solid rgba(255,255,255,.7) !important;
    border-radius:6px 30px 30px 6px !important;
    background:linear-gradient(100deg,rgba(255,255,255,.88) 0%,rgba(244,251,254,.66) 66%,rgba(236,248,253,.16) 100%) !important;
    box-shadow:0 16px 34px rgba(7,76,111,.11),inset 0 1px 0 rgba(255,255,255,.92) !important;
    -webkit-backdrop-filter:blur(7px) saturate(1.08) !important;
    backdrop-filter:blur(7px) saturate(1.08) !important;
  }
}

@media (max-width:767px) {
  .hero-05 > .hero-06[data-hero-kind="exterior-wide"],
  .hero-05 > .hero-06[data-hero-kind="exterior-sign"],
  .hero-05 > .hero-06[data-hero-kind="staff"] { background:#dcecf3 var(--hero-slide-image) center/cover no-repeat !important; }
  .hero-05 > .hero-06[data-hero-kind="exterior-wide"]::before,
  .hero-05 > .hero-06[data-hero-kind="exterior-sign"]::before,
  .hero-05 > .hero-06[data-hero-kind="staff"]::before {
    position:absolute;
    z-index:0;
    inset:-22px;
    background:var(--hero-slide-image) center/cover no-repeat;
    content:"";
    filter:blur(15px) saturate(.82);
    opacity:.48;
    transform:scale(1.06);
  }
  .hero-05 > .hero-06[data-hero-kind="exterior-wide"] img,
  .hero-05 > .hero-06[data-hero-kind="exterior-sign"] img,
  .hero-05 > .hero-06[data-hero-kind="staff"] img {
    z-index:1 !important;
    object-fit:contain !important;
    object-position:center !important;
    filter:drop-shadow(0 10px 22px rgba(15,66,89,.16));
  }
  .hero-05 > .hero-06[data-hero-kind="staff"] img { object-position:center 39% !important; }
  .hero-05 > .hero-06::after { z-index:2 !important; }
  .hero-05 .hero-09 {
    overflow:hidden !important;
    padding:11px 15px 13px !important;
    border:1px solid rgba(255,255,255,.72) !important;
    border-radius:5px 24px 24px 5px !important;
    background:linear-gradient(105deg,rgba(255,255,255,.91) 0%,rgba(246,252,255,.72) 68%,rgba(234,248,254,.24) 100%) !important;
    box-shadow:0 12px 28px rgba(5,75,110,.13),inset 0 1px 0 rgba(255,255,255,.96) !important;
    -webkit-backdrop-filter:blur(7px) saturate(1.06) !important;
    backdrop-filter:blur(7px) saturate(1.06) !important;
  }
  .hero-05 > .hero-surgery-record { width:146px !important; height:146px !important; min-width:146px !important; padding:17px 12px 13px !important; }
  .hero-05 > .hero-surgery-record > span { max-width:112px !important; font-size:8.5px !important; }
  .hero-05 > .hero-surgery-record > strong { margin-top:3px !important; }
  .hero-05 > .hero-surgery-record > strong > b { font-size:30px !important; }
  .hero-05 > .hero-surgery-record > small.hero-surgery-record__detail { display:grid !important; width:112px !important; margin-top:4px !important; font-size:7.5px !important; line-height:1.3 !important; }
  .hero-surgery-record__breakdown { display:none !important; }
}

/* 2026-09-03: Preserve people/signage in FV and refine its information layers. */
.hero-05 > .hero-surgery-record {
  isolation: isolate;
  border-color: rgba(255,255,255,.94) !important;
  background:
    radial-gradient(circle at 32% 22%, rgba(255,255,255,.98), rgba(245,252,255,.87) 52%, rgba(218,242,252,.82) 100%) !important;
  box-shadow: 0 16px 38px rgba(4,72,108,.19), inset 0 0 0 5px rgba(255,255,255,.35) !important;
}

.hero-05 > .hero-surgery-record::before {
  position: absolute;
  z-index: -1;
  inset: 7px;
  border: 1px solid rgba(22,147,199,.2);
  border-radius: inherit;
  content: "";
}

.hero-surgery-record__detail {
  display: grid !important;
  gap: 2px;
}

.hero-surgery-record__period {
  display: block;
  padding-top: 3px;
  border-top: 1px solid rgba(7,89,149,.15);
  font-weight: 700;
  letter-spacing: .02em;
}

@media (min-width: 768px) {
  .hero-05 > .hero-06[data-hero-kind="exterior-wide"] img { object-position: center 48% !important; }
  .hero-05 > .hero-06[data-hero-kind="exterior-sign"] img { object-position: center 48% !important; }
  .hero-05 > .hero-06[data-hero-kind="staff"] img { object-position: center 48% !important; }

  .hero-05 .hero-09 {
    overflow: hidden;
    padding: 14px 24px 17px !important;
    border: 1px solid rgba(255,255,255,.7) !important;
    border-radius: 6px 30px 30px 6px !important;
    background: linear-gradient(100deg, rgba(255,255,255,.88) 0%, rgba(244,251,254,.66) 66%, rgba(236,248,253,.16) 100%) !important;
    box-shadow: 0 16px 34px rgba(7,76,111,.11), inset 0 1px 0 rgba(255,255,255,.92) !important;
    -webkit-backdrop-filter: blur(7px) saturate(1.08) !important;
    backdrop-filter: blur(7px) saturate(1.08) !important;
  }
}

@media (max-width: 767px) {
  .hero-05 > .hero-06[data-hero-kind="exterior-wide"],
  .hero-05 > .hero-06[data-hero-kind="exterior-sign"],
  .hero-05 > .hero-06[data-hero-kind="staff"] {
    background: #dcecf3 var(--hero-slide-image) center / cover no-repeat !important;
  }

  .hero-05 > .hero-06[data-hero-kind="exterior-wide"]::before,
  .hero-05 > .hero-06[data-hero-kind="exterior-sign"]::before,
  .hero-05 > .hero-06[data-hero-kind="staff"]::before {
    position: absolute;
    z-index: 0;
    inset: -22px;
    background: var(--hero-slide-image) center / cover no-repeat;
    content: "";
    filter: blur(15px) saturate(.82);
    opacity: .48;
    transform: scale(1.06);
  }

  .hero-05 > .hero-06[data-hero-kind="exterior-wide"] img,
  .hero-05 > .hero-06[data-hero-kind="exterior-sign"] img,
  .hero-05 > .hero-06[data-hero-kind="staff"] img {
    z-index: 1 !important;
    object-fit: contain !important;
    object-position: center center !important;
    filter: drop-shadow(0 10px 22px rgba(15,66,89,.16));
  }

  .hero-05 > .hero-06[data-hero-kind="staff"] img {
    object-position: center 39% !important;
  }

  .hero-05 > .hero-06::after {
    z-index: 2 !important;
  }

  .hero-05 .hero-09 {
    overflow: hidden !important;
    padding: 11px 15px 13px !important;
    border: 1px solid rgba(255,255,255,.72) !important;
    border-radius: 5px 24px 24px 5px !important;
    background: linear-gradient(105deg, rgba(255,255,255,.91) 0%, rgba(246,252,255,.72) 68%, rgba(234,248,254,.24) 100%) !important;
    box-shadow: 0 12px 28px rgba(5,75,110,.13), inset 0 1px 0 rgba(255,255,255,.96) !important;
    -webkit-backdrop-filter: blur(7px) saturate(1.06) !important;
    backdrop-filter: blur(7px) saturate(1.06) !important;
  }

  .hero-05 > .hero-surgery-record {
    width: 146px !important;
    height: 146px !important;
    min-width: 146px !important;
    padding: 17px 12px 13px !important;
  }

  .hero-05 > .hero-surgery-record > span {
    max-width: 112px !important;
    font-size: 8.5px !important;
  }

  .hero-05 > .hero-surgery-record > strong {
    margin-top: 3px !important;
  }

  .hero-05 > .hero-surgery-record > strong > b {
    font-size: 30px !important;
  }

  .hero-05 > .hero-surgery-record > small.hero-surgery-record__detail {
    display: grid !important;
    width: 112px !important;
    margin-top: 4px !important;
    font-size: 7.5px !important;
    line-height: 1.3 !important;
  }

  .hero-surgery-record__breakdown {
    display: none !important;
  }
}

@media (max-width: 767px) {
  :root {
    --mobile-gutter: 18px;
    --mobile-ink: #123f55;
    --mobile-muted: #536f7d;
    --mobile-blue: #078bc7;
    --mobile-pale: #eff9fd;
    --mobile-line: #cfe6ef;
  }

  body {
    padding-bottom: calc(88px + env(safe-area-inset-bottom)) !important;
    color: var(--mobile-ink);
    font-size: 16px;
  }

  main {
    padding-top: 0 !important;
  }

  img,
  iframe,
  table {
    max-width: 100%;
  }

  /* Header */
  .header-01,
  .header-05 {
    height: 72px !important;
    min-height: 72px !important;
  }

  .header-01 {
    position: sticky !important;
    top: 0;
    z-index: 1000;
    background: rgba(255, 255, 255, .97) !important;
    box-shadow: 0 1px 0 rgba(24, 91, 120, .1);
    backdrop-filter: blur(12px);
  }

  .header-05 {
    box-sizing: border-box;
    width: 100% !important;
    padding: 0 12px !important;
    gap: 8px !important;
  }

  .header-06 {
    min-width: 0 !important;
    flex: 1 1 auto !important;
  }

  .header-logo-image {
    display: block;
    width: min(100%, 164px) !important;
    height: auto !important;
    max-height: 58px !important;
    object-fit: contain;
    object-position: left center;
  }

  .header-11 {
    display: none !important;
  }

  .header-16 {
    flex: 0 0 auto;
    gap: 7px !important;
  }

  .header-phone {
    min-width: 104px !important;
    height: 44px !important;
    padding: 0 9px !important;
    border-radius: 10px !important;
    font-size: 0 !important;
    box-shadow: none !important;
  }

  .header-phone::before {
    content: "0942-83-5870" !important;
    font-size: 12px !important;
    letter-spacing: 0 !important;
  }

  .header-18 {
    width: 44px !important;
    min-width: 44px !important;
    height: 52px !important;
  }

  .header-menu-label {
    font-size: 9px !important;
    letter-spacing: .08em !important;
  }

  /* First view: image, identity, today's hours and essential routes. */
  .hero-01,
  .hero-02 {
    width: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }

  .hero-05 {
    position: relative !important;
    box-sizing: border-box;
    display: flex !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 238px var(--mobile-gutter) 22px !important;
    flex-direction: column;
    gap: 14px;
    overflow: visible !important;
    background: linear-gradient(180deg, #fff 0%, #f7fcfe 100%) !important;
  }

  .hero-06 {
    position: absolute !important;
    inset: 0 0 auto !important;
    width: 100% !important;
    height: 224px !important;
    min-height: 224px !important;
    overflow: hidden !important;
    border-radius: 0 !important;
  }

  .hero-06 .hero-07,
  .hero-07 {
    width: 100% !important;
    height: 224px !important;
    object-fit: cover !important;
    object-position: 50% 50% !important;
  }

  .hero-08 {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(5, 44, 63, .05) 30%, rgba(5, 44, 63, .68) 100%) !important;
  }

  .hero-09 {
    position: absolute !important;
    z-index: 5 !important;
    top: 118px !important;
    right: var(--mobile-gutter) !important;
    left: var(--mobile-gutter) !important;
    width: auto !important;
    margin: 0 !important;
    color: #fff !important;
    transform: none !important;
  }

  .hero-10,
  .hero-11,
  .hero-12,
  .static-hero-copy-text,
  .static-hero-char {
    color: #fff !important;
    font-size: 28px !important;
    font-weight: 900 !important;
    line-height: 1.28 !important;
    letter-spacing: .04em !important;
    text-shadow: 0 2px 14px rgba(0, 39, 58, .5) !important;
  }

  /* Keep the mobile headline crisp from the first paint. */
  .static-hero-char {
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    animation: none !important;
    will-change: auto !important;
  }

  .static-hero-copy,
  .static-hero-copy-text {
    filter: none !important;
  }

  .hero-10 + .hero-10 {
    margin-top: 1px !important;
  }

  .hero-13 {
    z-index: 6 !important;
    top: 204px !important;
    bottom: auto !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
  }

  .hero-surgery-record,
  .trust-strip--hero,
  .hero-16,
  .hero-20,
  .hero-26 {
    display: none !important;
  }

  .mobile-hero-summary {
    display: block;
    order: 1;
    margin: 0;
  }

  .mobile-hero-summary__eyebrow {
    margin: 0;
    color: var(--mobile-blue);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: .08em;
  }

  .mobile-hero-summary__lead {
    margin: 6px 0 0;
    color: var(--mobile-muted);
    font-size: 15px;
    font-weight: 650;
    line-height: 1.65;
  }

  .mobile-hero-summary__actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 12px;
  }

  .mobile-hero-summary__actions a {
    display: grid;
    min-height: 46px;
    padding: 7px 5px;
    place-items: center;
    border: 1px solid #b9dce9;
    border-radius: 10px;
    background: #fff;
    color: #116789;
    font-size: 13px;
    font-weight: 900;
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
  }

  .mobile-hero-summary__actions a:first-child {
    border-color: var(--mobile-blue);
    background: var(--mobile-blue);
    color: #fff;
  }

  .today-hours {
    position: static !important;
    order: 2;
    box-sizing: border-box;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 14px 15px 12px !important;
    border: 1px solid #bcdfea !important;
    border-radius: 12px !important;
    background: #fff !important;
    box-shadow: 0 9px 22px rgba(20, 91, 124, .09) !important;
    transform: none !important;
  }

  .today-hours__head {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 0 0 10px !important;
    padding: 0 0 9px !important;
    border-bottom: 1px solid #dcecf2;
  }

  .today-hours__label {
    color: var(--mobile-ink) !important;
    font-size: 16px !important;
    font-weight: 900 !important;
  }

  .today-hours__date {
    color: #257696 !important;
    font-size: 13px !important;
    font-weight: 800 !important;
  }

  .today-hours__body {
    display: grid !important;
    gap: 6px !important;
  }

  .today-hours__row {
    display: grid !important;
    grid-template-columns: 46px minmax(0, 1fr) !important;
    align-items: center;
    gap: 9px !important;
    min-height: 35px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
  }

  .today-hours__session {
    display: grid;
    min-height: 30px;
    place-items: center;
    border-radius: 7px !important;
    background: #e7f5fb !important;
    color: #106e94 !important;
    font-size: 13px !important;
    font-weight: 900 !important;
  }

  .today-hours__time {
    color: var(--mobile-ink) !important;
    font-size: 17px !important;
    font-weight: 900 !important;
    line-height: 1.3 !important;
  }

  .today-hours__reception,
  .today-hours__contact {
    display: none !important;
  }

  .today-hours__note,
  .today-hours__closed {
    margin: 5px 0 0 !important;
    color: #4f6d7b !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
  }

  .today-hours__link {
    display: flex !important;
    min-height: 44px;
    margin: 10px 0 0 !important;
    align-items: center;
    justify-content: center;
    border-top: 1px solid #e1edf2;
    border-radius: 9px;
    background: #eef8fc !important;
    color: var(--mobile-blue) !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    text-decoration: none;
  }

  /* The desktop photo rail is decorative and competes with urgent information. */
  .top-gallery {
    display: none !important;
  }

  /* Consistent section rhythm and typography. */
  .top-important-notice,
  .top-news,
  .first-visit-summary,
  .schedule-01,
  .top-specialty,
  .top-private-care,
  .top-symptom-guide,
  .top-contact-feature,
  .top-director,
  .feature-01,
  .top-concept,
  .top-flow,
  #faq,
  .top-column-section,
  .top-access,
  .top-phone-contact,
  .top-recruit-link {
    box-sizing: border-box;
    width: 100%;
  }

  .top-news,
  .schedule-01,
  .top-specialty,
  .top-private-care,
  .top-symptom-guide,
  .top-contact-feature,
  .top-director,
  .feature-01,
  .top-concept,
  .top-flow,
  #faq,
  .top-column-section,
  .top-access,
  .top-phone-contact,
  .top-recruit-link {
    padding-top: 56px !important;
    padding-bottom: 56px !important;
  }

  .news-02,
  .top-news__inner,
  .top-private-care__inner,
  .top-symptom-guide > div,
  .top-contact-feature__inner,
  .top-concept__inner,
  .top-flow__inner,
  .top-column-section__inner,
  .top-phone-contact > div,
  .top-recruit-link > div {
    box-sizing: border-box;
    width: calc(100% - (var(--mobile-gutter) * 2)) !important;
    max-width: none !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }

  .top-unified-head > span,
  .news-04 {
    font-size: 12px !important;
    letter-spacing: .18em !important;
  }

  .top-unified-head h2,
  .feature-03,
  .schedule-03 {
    font-size: 27px !important;
    line-height: 1.35 !important;
    letter-spacing: .02em !important;
  }

  .top-unified-head p,
  .feature-04,
  .news-05 p {
    margin-top: 8px !important;
    color: var(--mobile-muted) !important;
    font-size: 16px !important;
    line-height: 1.75 !important;
  }

  /* Important notice and news become a compact route, not a feed wall. */
  .top-important-notice {
    margin: 22px 0 0 !important;
    padding: 0 var(--mobile-gutter) !important;
  }

  .top-important-notice > .top-important-notice__trigger {
    box-sizing: border-box;
    display: grid !important;
    grid-template-columns: auto 1fr auto;
    gap: 7px 10px !important;
    min-height: 92px;
    padding: 15px !important;
    border-radius: 12px !important;
  }

  .top-important-notice > .top-important-notice__trigger > strong {
    grid-column: 1 / 3;
    grid-row: 1;
    justify-self: start;
  }

  .top-important-notice > .top-important-notice__trigger > time {
    grid-column: 1;
    grid-row: 2;
    align-self: center;
  }

  .top-important-notice > .top-important-notice__trigger > span {
    grid-column: 2;
    grid-row: 2;
  }

  .top-important-notice > .top-important-notice__trigger > b {
    grid-column: 3;
    grid-row: 1 / 3;
    align-self: center;
  }

  .top-important-notice strong,
  .top-important-notice time {
    font-size: 13px !important;
  }

  .top-important-notice > .top-important-notice__trigger > span {
    grid-column: 1 / 3;
    font-size: 15px !important;
    line-height: 1.55 !important;
  }

  .top-news {
    padding-right: var(--mobile-gutter) !important;
    padding-left: var(--mobile-gutter) !important;
  }

  .top-news__inner {
    width: 100% !important;
  }

  .top-news__side {
    display: flex !important;
    align-items: end;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 20px !important;
  }

  .top-news__title {
    margin: 0 !important;
    font-size: 30px !important;
    line-height: 1 !important;
  }

  .top-news__subtitle {
    margin: 0 auto 0 0 !important;
    font-size: 14px !important;
  }

  .top-news__button--news-side {
    min-width: 112px !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 10px 12px !important;
    font-size: 13px !important;
  }

  .top-news__block-head,
  .top-news__block--columns {
    display: none !important;
  }

  .top-notice-list {
    border-top: 1px solid var(--mobile-line);
  }

  .top-notice-row {
    box-sizing: border-box;
    display: grid !important;
    grid-template-columns: auto 1fr auto;
    gap: 7px 10px !important;
    min-height: 96px !important;
    padding: 14px 4px !important;
  }

  .top-notice-row:nth-child(n + 3) {
    display: none !important;
  }

  .top-notice-row__category {
    padding: 4px 7px !important;
    font-size: 11px !important;
  }

  .top-notice-row time {
    align-self: center;
    font-size: 13px !important;
  }

  .top-notice-row strong {
    grid-column: 1 / 3;
    font-size: 15px !important;
    line-height: 1.55 !important;
  }

  /* First visit: retain the useful cutoff, move the checklist to the detail page. */
  .first-visit-summary.first-visit-summary--photo {
    width: calc(100% - (var(--mobile-gutter) * 2)) !important;
    margin: 0 auto 56px !important;
    border-radius: 14px !important;
  }

  .first-visit-summary--photo .first-visit-summary__photo,
  .first-visit-summary--photo .first-visit-summary__photo img {
    height: 176px !important;
    min-height: 176px !important;
  }

  .first-visit-summary--photo .first-visit-summary__photo img {
    object-position: 54% 38% !important;
  }

  .first-visit-summary--photo .first-visit-summary__body {
    padding: 22px 18px !important;
  }

  .first-visit-summary--photo h2 {
    font-size: 25px !important;
    line-height: 1.4 !important;
  }

  .first-visit-summary--photo p.first-visit-summary__lead {
    font-size: 16px !important;
    line-height: 1.7 !important;
  }

  .first-visit-summary__belongings {
    display: none !important;
  }

  .first-visit-summary--photo .first-visit-summary__notice {
    min-height: 0 !important;
    padding: 14px !important;
    border: 1px solid #f0d4d4 !important;
    border-radius: 10px !important;
  }

  .first-visit-summary--photo .first-visit-summary__guide-title strong,
  .first-visit-summary__cutoff,
  .first-visit-summary__cutoff span {
    font-size: 15px !important;
    line-height: 1.55 !important;
  }

  .first-visit-summary--photo .first-visit-summary__button {
    min-height: 48px !important;
    margin-top: 0 !important;
    border-radius: 0 !important;
    font-size: 15px !important;
  }

  /* Clinic hours: replace the compressed weekly matrix with vertical cards. */
  .schedule-01 {
    padding-right: var(--mobile-gutter) !important;
    padding-left: var(--mobile-gutter) !important;
  }

  .schedule-01 .news-02,
  .top-after-column-grid,
  .schedule-02 {
    width: 100% !important;
    max-width: none !important;
  }

  .top-after-column-grid {
    display: block !important;
  }

  .top-quick-access,
  .top-schedule__image,
  .schedule-04,
  .schedule-26,
  .schedule-27 {
    display: none !important;
  }

  .schedule-03 {
    display: flex !important;
    margin: 0 0 22px !important;
    align-items: center;
    gap: 10px;
    color: var(--mobile-ink) !important;
  }

  .mobile-hours-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .mobile-hours-card {
    box-sizing: border-box;
    padding: 16px;
    border: 1px solid var(--mobile-line);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(20, 91, 124, .06);
  }

  .mobile-hours-card h3 {
    margin: 0 0 11px;
    color: #0c6f98;
    font-size: 18px;
    line-height: 1.4;
  }

  .mobile-hours-card > p:not(.mobile-hours-card__note) {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 10px;
    margin: 7px 0 0;
    align-items: baseline;
  }

  .mobile-hours-card > p > span {
    color: #6b838e;
    font-size: 14px;
    font-weight: 800;
  }

  .mobile-hours-card > p > strong {
    color: var(--mobile-ink);
    font-size: 17px;
    line-height: 1.4;
  }

  .mobile-hours-card > p.is-surgery strong {
    color: #087db8;
  }

  .mobile-hours-card > p.is-closed strong {
    color: #778c96;
  }

  .mobile-hours-card--thursday {
    border: 2px solid #42a9cf;
    background: #f5fcff;
  }

  .mobile-hours-card--thursday ol {
    display: grid;
    gap: 9px;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .mobile-hours-card--thursday li {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 0 9px;
    align-items: center;
  }

  .mobile-hours-card--thursday li > span {
    grid-row: 1 / 3;
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 50%;
    background: #1395c7;
    color: #fff;
    font-size: 13px;
    font-weight: 900;
  }

  .mobile-hours-card--thursday li strong {
    font-size: 16px;
  }

  .mobile-hours-card--thursday li small,
  .mobile-hours-card__note {
    color: var(--mobile-muted);
    font-size: 14px !important;
    line-height: 1.5;
  }

  .mobile-hours-card__note {
    margin: 12px 0 0 !important;
    padding-top: 10px;
    border-top: 1px solid #cfe8f2;
  }

  .mobile-hours-reception {
    padding: 17px 16px;
    border-radius: 12px;
    background: #103f55;
    color: #fff;
  }

  .mobile-hours-reception p {
    display: grid;
    gap: 3px;
    margin: 0;
  }

  .mobile-hours-reception p + p {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid rgba(255, 255, 255, .2);
  }

  .mobile-hours-reception__annotation {
    display: block;
    margin-top: 7px;
    padding-top: 7px;
    border-top: 1px dashed rgba(255, 255, 255, .3);
    color: #fff4d4 !important;
    font-size: 12px !important;
    line-height: 1.55 !important;
  }

  .mobile-hours-reception strong {
    font-size: 15px;
  }

  .mobile-hours-reception span,
  .mobile-hours-reception small {
    color: rgba(255, 255, 255, .86);
    font-size: 14px;
    line-height: 1.55;
  }

  .mobile-hours-reception .reception-start-times b {
    color: #fff;
    font-size: 17px;
    font-weight: 850;
  }

  .mobile-hours-reception .reception-start-times small {
    display: inline;
    margin: 0 0 0 .16em;
    padding: 0;
    border: 0;
    color: rgba(255, 255, 255, .78);
    font-size: 11px;
    font-weight: 700;
  }

  .mobile-hours-reception > small {
    display: block;
    margin-top: 14px;
  }

  /* Specialty and service cards: one strong column, with shorter summaries. */
  .top-specialty__cards,
  .top-private-care__grid,
  .top-contact-feature__grid,
  .feature-05 {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  .top-surgery-record {
    margin-top: 24px !important;
    padding: 20px 18px !important;
    border-radius: 14px !important;
  }

  .top-surgery-record__number strong {
    font-size: 58px !important;
  }

  .top-surgery-record__heading small {
    font-size: 14px !important;
    line-height: 1.5 !important;
  }

  .top-surgery-record__message p,
  .top-surgery-record__message small,
  .top-surgery-chart,
  .top-surgery-record__photo {
    display: none !important;
  }

  .top-specialty-card,
  .top-private-care article,
  .top-contact-info {
    box-sizing: border-box;
    width: 100% !important;
    padding: 18px !important;
    border-radius: 14px !important;
  }

  .top-specialty-card h3,
  .top-private-care h3,
  .top-contact-info strong {
    font-size: 20px !important;
    line-height: 1.45 !important;
  }

  .top-specialty-card p,
  .top-specialty-card dd,
  .top-private-care p,
  .top-contact-info p {
    font-size: 16px !important;
    line-height: 1.7 !important;
  }

  .top-specialty-card__photo,
  .top-specialty-card__photo img,
  .top-private-care figure,
  .top-private-care figure img {
    height: 188px !important;
    min-height: 188px !important;
    object-fit: cover !important;
  }

  .top-specialty-card a,
  .top-private-care a {
    min-height: 46px !important;
  }

  .top-specialty-card__data,
  .top-specialty-card__text,
  .top-specialty-card__note {
    display: none !important;
  }

  .top-specialty-card {
    padding: 16px !important;
  }

  .top-specialty-card__photo,
  .top-specialty-card__photo img {
    height: 164px !important;
    min-height: 164px !important;
  }

  #symptom-guide .symptom-guide__grid .symptom-guide__card:nth-child(n + 7) {
    display: none !important;
  }

  #contact-lens-care .contact-support-list,
  #contact-lens-care .top-contact-feature__grid,
  #specialty .top-care-directory {
    display: none !important;
  }

  #contact-lens-care .top-contact-feature__lead {
    font-size: 16px !important;
    line-height: 1.75 !important;
  }

  #contact-lens-care .contact-hours-panel p,
  #contact-lens-care .contact-hours-panel small,
  .first-visit-summary__cutoff-label,
  #access .top-access__info small {
    font-size: 14px !important;
    line-height: 1.55 !important;
  }

  .mobile-section-link {
    display: flex;
    min-height: 48px;
    margin-top: 18px;
    padding: 12px 16px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border-radius: 10px;
    background: var(--mobile-blue);
    color: #fff !important;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
  }

  /* Director summary: trust first, complete history on the dedicated page. */
  .top-director .news-02 {
    width: calc(100% - (var(--mobile-gutter) * 2)) !important;
  }

  .top-director__grid {
    margin-top: 24px !important;
  }

  .top-director__photo--mobile {
    width: 100% !important;
    height: 244px !important;
    margin-top: 16px !important;
    border-radius: 12px !important;
  }

  .top-director__photo--mobile img {
    width: 100% !important;
    height: 244px !important;
    object-fit: cover !important;
    object-position: center 22% !important;
  }

  .top-director__name h2 {
    font-size: 29px !important;
  }

  .top-director__lead,
  .top-director__message {
    margin-top: 14px !important;
    font-size: 16px !important;
    line-height: 1.75 !important;
  }

  .top-director__message p:nth-child(n + 2),
  .top-director__history {
    display: none !important;
  }

  .top-director__link {
    min-height: 48px !important;
    margin-top: 18px !important;
    padding: 12px 14px !important;
    border-radius: 10px !important;
    font-size: 15px !important;
  }

  /* Six features: four full cards, two compact supporting rows. */
  .feature-01 {
    padding-right: var(--mobile-gutter) !important;
    padding-left: var(--mobile-gutter) !important;
  }

  .feature-01 .news-02 {
    width: 100% !important;
  }

  .feature-06 {
    box-sizing: border-box;
    overflow: hidden;
    border: 1px solid var(--mobile-line);
    border-radius: 14px !important;
    background: #fff;
    box-shadow: 0 8px 22px rgba(20, 91, 124, .06);
  }

  .feature-07,
  .feature-08 {
    width: 100% !important;
    height: 172px !important;
    object-fit: cover !important;
  }

  .feature-09,
  .feature-11 {
    margin-right: 16px !important;
    margin-left: 16px !important;
  }

  .feature-09 {
    margin-top: 16px !important;
    font-size: 19px !important;
    line-height: 1.5 !important;
  }

  .feature-11 {
    margin-top: 7px !important;
    margin-bottom: 18px !important;
    font-size: 16px !important;
    line-height: 1.7 !important;
  }

  .feature-06:nth-child(n + 5) {
    display: grid !important;
    grid-template-columns: 1fr;
    min-height: 0 !important;
    padding: 16px;
    box-shadow: none;
  }

  .feature-06:nth-child(n + 5) .feature-07 {
    display: none !important;
  }

  .feature-06:nth-child(n + 5) .feature-09,
  .feature-06:nth-child(n + 5) .feature-11 {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  .feature-06:nth-child(n + 5) .feature-09 {
    margin-top: 0 !important;
    font-size: 17px !important;
  }

  .feature-06:nth-child(n + 5) .feature-11 {
    margin-bottom: 0 !important;
    font-size: 15px !important;
  }

  .feature-12 {
    margin-top: 20px !important;
  }

  .feature-13 {
    min-height: 48px !important;
    font-size: 15px !important;
  }

  /* Secondary content is made scannable instead of showing every paragraph. */
  .top-concept p,
  .top-flow p,
  #faq p,
  .top-column-card h4,
  .top-access p,
  .top-access dd,
  .top-phone-contact p,
  .top-recruit-link p {
    font-size: 16px !important;
    line-height: 1.75 !important;
  }

  .top-concept__photo,
  .top-concept__photo img {
    height: 220px !important;
    object-fit: cover !important;
    object-position: center 25% !important;
  }

  .top-flow__list,
  .flow-03,
  .faq-03 {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  .top-flow li,
  .flow-04,
  .faq-04 {
    box-sizing: border-box;
    padding: 18px !important;
    border-radius: 12px !important;
  }

  .faq-04 {
    min-height: 56px !important;
  }

  .faq-11,
  #access .top-access__info a[href^="tel:"] {
    display: inline-flex !important;
    min-height: 44px !important;
    align-items: center;
  }

  .faq-06,
  .faq-09 {
    font-size: 16px !important;
    line-height: 1.65 !important;
  }

  .top-column-section .top-column-card {
    width: min(82vw, 310px) !important;
  }

  /* The mobile home is a gateway; these full explanations live on detail pages. */
  .top-concept,
  .top-flow,
  .top-column-section,
  .top-phone-contact,
  #access .top-access-payment.payment-section-refresh {
    display: none !important;
  }

  /* The clinic-hours panel is reflowed as cards and remains near the top. */
  .top-access__panel--hours {
    display: block !important;
    box-sizing: border-box;
    width: 100% !important;
    margin: 0 !important;
    padding: 56px var(--mobile-gutter) !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: linear-gradient(180deg, #eef9fd 0%, #f8fcfe 100%) !important;
  }

  .top-access__panel--hours .top-access__hours {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .top-access__panel--hours .top-access__table-wrap,
  .top-access__panel--hours .scroll-hint,
  .top-access__panel--hours .top-hours-summary {
    display: none !important;
  }

  .top-access__panel--hours .mobile-hours-cards {
    margin-top: 24px;
  }

  .top-access__panel--hours .top-access__button {
    display: flex !important;
    width: 100% !important;
    min-height: 48px !important;
    margin: 16px 0 0 !important;
    align-items: center;
    justify-content: center;
    border-radius: 10px !important;
  }

  .top-access__panel--map {
    width: calc(100% - (var(--mobile-gutter) * 2)) !important;
    margin: 0 auto !important;
    padding: 22px 16px !important;
    border-radius: 14px !important;
  }

  .top-access__map-grid {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  .top-access__map,
  .top-access__map iframe {
    width: 100% !important;
    height: 280px !important;
    min-height: 280px !important;
  }

  .top-access__details {
    grid-template-columns: 1fr !important;
  }

  .top-access__details > div {
    padding: 15px !important;
  }

  .top-access__button,
  .top-access__map-button,
  .top-phone-contact a,
  .top-recruit-link a {
    min-height: 48px !important;
    font-size: 15px !important;
  }

  .top-access > .top-access-payment {
    box-sizing: border-box;
    width: calc(100% - (var(--mobile-gutter) * 2)) !important;
    margin: 18px auto 0 !important;
    padding: 20px 16px !important;
    border-radius: 14px !important;
  }

  .top-access-payment__lead,
  .top-access-payment__group p,
  .top-access-payment__note,
  .top-access-payment__unavailable {
    font-size: 15px !important;
    line-height: 1.65 !important;
  }

  /* Bottom actions are the only fixed controls. */
  .mobile-01 {
    display: none !important;
  }

  .mobile-quick-actions {
    position: fixed !important;
    z-index: 1100 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    box-sizing: border-box;
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    min-height: calc(66px + env(safe-area-inset-bottom));
    padding: 7px 10px calc(7px + env(safe-area-inset-bottom)) !important;
    gap: 8px;
    background: rgba(255, 255, 255, .97) !important;
    border-top: 1px solid #d4e7ee;
    box-shadow: 0 -8px 24px rgba(16, 72, 98, .09);
    backdrop-filter: blur(12px);
  }

  .mobile-quick-actions::before {
    display: none !important;
  }

  .mobile-quick-actions a {
    box-sizing: border-box;
    display: grid !important;
    min-width: 0;
    min-height: 52px;
    padding: 6px 8px !important;
    place-content: center;
    border: 1px solid #b9dce9 !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: #17657f !important;
    text-align: center;
    text-decoration: none;
  }

  .mobile-quick-actions a:first-child {
    border-color: var(--mobile-blue) !important;
    background: var(--mobile-blue) !important;
    color: #fff !important;
  }

  .mobile-quick-actions strong {
    font-size: 14px !important;
    line-height: 1.2;
  }

  .mobile-quick-actions span {
    margin-top: 2px;
    font-size: 11px !important;
    line-height: 1.2;
  }

  .site-footer {
    padding-bottom: 18px !important;
  }
}

@media (max-width: 374px) {
  .header-logo-image {
    width: min(100%, 148px) !important;
  }

  .header-phone {
    min-width: 96px !important;
    padding-inline: 6px !important;
  }

  .header-phone::before {
    font-size: 11px !important;
  }

  .mobile-hero-summary__actions a {
    font-size: 12px;
  }
}

.mobile-weekly-table-wrap {
  display: none;
}

@media (max-width: 767px) {
  .top-access__panel--hours .top-access__table-wrap {
    display: none !important;
  }

  .mobile-weekly-table-wrap {
    display: block;
    width: 100%;
    margin-top: 16px;
    overflow: hidden;
    border: 1px solid #cfe4ed;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 7px 18px rgba(19, 83, 111, .06);
  }

  .mobile-weekly-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    color: #244f62;
    font-size: 12px;
  }

  .mobile-weekly-table th,
  .mobile-weekly-table td {
    padding: 10px 6px;
    border-right: 1px solid #dfedf2;
    border-bottom: 1px solid #dfedf2;
    line-height: 1.35;
    text-align: center;
    vertical-align: middle;
  }

  .mobile-weekly-table tr > :last-child {
    border-right: 0;
  }

  .mobile-weekly-table tbody tr:last-child > * {
    border-bottom: 0;
  }

  .mobile-weekly-table thead th {
    background: #eef8fc;
    color: #166985;
    font-weight: 900;
  }

  .mobile-weekly-table thead th:first-child,
  .mobile-weekly-table tbody th {
    width: 55px;
  }

  .mobile-weekly-table tbody th {
    background: #f7fbfd;
    color: #176985;
    font-weight: 900;
  }

  .mobile-weekly-table strong {
    color: #d94c66;
    font-size: 12px;
  }

  .mobile-weekly-table .is-thursday td:nth-child(2) {
    padding-block: 8px;
  }

  .mobile-weekly-table .is-thursday span,
  .mobile-weekly-table .is-thursday small {
    display: block;
  }

  .mobile-weekly-table .is-thursday span {
    font-size: 11px;
    font-weight: 800;
  }

  .mobile-weekly-table .is-thursday small {
    margin-top: 3px;
    color: #5b7885;
    font-size: 10px;
  }
}

/* 2026-09-03: refinement pass — preserve the approved mobile direction. */
@media (max-width: 767px) {
  /* Logo, local-service line, phone and menu share one compact row. */
  .header-01,
  .header-05 {
    height: 66px !important;
    min-height: 66px !important;
  }

  .header-05 {
    padding-inline: 12px !important;
    gap: 2px !important;
  }

  .header-06 {
    display: flex !important;
    height: 58px !important;
    min-width: 0 !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex-direction: row !important;
    gap: 6px;
  }

  .header-logo-image {
    width: 132px !important;
    max-height: 38px !important;
    flex: 0 0 auto;
  }

  .header-mobile-tagline {
    display: block;
    width: 108px;
    max-width: 108px;
    margin: 0 !important;
    color: #3d687b;
    font-size: 8.5px;
    font-weight: 750;
    line-height: 1.4;
    white-space: normal;
  }

  .header-16 {
    gap: 0 !important;
  }

  .header-phone {
    width: 38px !important;
    min-width: 38px !important;
    height: 42px !important;
  }

  .header-phone svg {
    width: 20px;
    height: 20px;
  }

  .header-18 {
    width: 44px !important;
    min-width: 44px !important;
    height: 48px !important;
  }

  .header-01.is-mobile-compact,
  .header-01.is-mobile-compact .header-05 {
    height: 52px !important;
    min-height: 52px !important;
  }

  .header-01.is-mobile-compact {
    background: rgba(255, 255, 255, .72) !important;
    box-shadow: 0 4px 16px rgba(18, 70, 94, .07);
    backdrop-filter: blur(13px) saturate(135%);
    -webkit-backdrop-filter: blur(13px) saturate(135%);
  }

  .header-01.is-mobile-compact .header-06 {
    height: 46px !important;
  }

  .header-01.is-mobile-compact .header-logo-image {
    width: 126px !important;
  }

  .header-01.is-mobile-compact .header-mobile-tagline {
    display: none;
  }

  /* Stronger contrast without turning the surgery record into a large card. */
  .hero-surgery-record {
    min-width: 126px;
    padding: 10px 12px 9px !important;
    gap: 3px;
    border-color: rgba(255, 255, 255, .94) !important;
    background: rgba(255, 255, 255, .9) !important;
    color: #123f55 !important;
    box-shadow: 0 8px 22px rgba(7, 48, 67, .19) !important;
    backdrop-filter: blur(14px) saturate(145%);
    -webkit-backdrop-filter: blur(14px) saturate(145%);
  }

  .hero-surgery-record > span {
    color: #234f63 !important;
    font-size: 9.5px !important;
    letter-spacing: .02em;
  }

  .hero-surgery-record > strong {
    display: flex;
    align-items: baseline;
    gap: 3px;
    color: #075f8a !important;
    line-height: 1 !important;
  }

  .hero-surgery-record > strong > small {
    color: #35677d !important;
    font-size: 9px !important;
    font-style: normal;
    font-weight: 800;
  }

  .hero-surgery-record > strong > b {
    color: #056e9f !important;
    font-size: 31px !important;
    font-weight: 950;
    letter-spacing: -.045em;
  }

  .hero-surgery-record > strong > em {
    color: #174f68;
    font-size: 11px;
    font-style: normal;
    font-weight: 900;
  }

  .hero-surgery-record__detail {
    color: #496b7a !important;
    font-size: 8.5px !important;
    font-weight: 700;
    line-height: 1.4 !important;
  }

  /* The controls float independently instead of sitting on a footer band. */
  .mobile-quick-actions {
    bottom: 4px !important;
    min-height: calc(58px + env(safe-area-inset-bottom)) !important;
    padding: 0 8px env(safe-area-inset-bottom) !important;
    gap: 8px;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    pointer-events: none;
  }

  .mobile-quick-actions__phone-wrap,
  .mobile-quick-actions a,
  .mobile-hours-toggle {
    pointer-events: auto;
  }

  .mobile-quick-actions a,
  .mobile-hours-toggle {
    min-height: 54px !important;
    border-color: rgba(151, 205, 224, .82) !important;
    background: rgba(252, 254, 255, .95) !important;
    box-shadow: 0 7px 18px rgba(10, 70, 96, .16) !important;
    backdrop-filter: blur(11px);
    -webkit-backdrop-filter: blur(11px);
  }

  .mobile-quick-actions__phone-wrap a {
    border-color: #0788c3 !important;
    background: linear-gradient(145deg, #0797d3, #087db5) !important;
    box-shadow: 0 7px 18px rgba(7, 126, 180, .27) !important;
  }

  .mobile-quick-actions__phone-copy {
    display: grid !important;
    margin: 0 !important;
    gap: 1px;
    text-align: left;
  }

  .mobile-quick-actions__phone-copy strong {
    font-size: 13px !important;
    line-height: 1.1;
  }

  .mobile-quick-actions__phone-copy small {
    color: rgba(255, 255, 255, .96);
    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: .015em;
  }

  .mobile-quick-actions__bubble {
    top: -29px;
  }

  /* Restore a genuine weekly table; keep detailed times immediately below it. */
  .top-access__panel--hours .top-access__table-wrap {
    display: block !important;
    width: 100% !important;
    margin: 16px 0 0 !important;
    overflow: visible !important;
    border: 1px solid #cfe4ed;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 7px 18px rgba(19, 83, 111, .06);
  }

  .top-access__panel--hours .top-access__table {
    width: 100% !important;
    min-width: 0 !important;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
  }

  .top-access__table th,
  .top-access__table td {
    box-sizing: border-box;
    min-width: 0 !important;
    padding: 8px 2px !important;
    border-color: #dfedf2 !important;
    text-align: center;
  }

  .top-access__table thead th {
    background: #eef8fc !important;
    color: #166985 !important;
    font-size: 11px !important;
    font-weight: 900;
  }

  .top-access__table thead th:first-child {
    width: 61px;
    font-size: 9.5px !important;
  }

  .top-access__table tbody th {
    width: 61px;
    background: #f7fbfd !important;
    color: #285c71 !important;
    font-size: 12px !important;
  }

  .top-access__table .schedule-cell,
  .top-access__table .schedule-shift {
    display: grid !important;
    width: 100%;
    min-width: 0;
    gap: 2px;
    place-items: center;
  }

  .top-access__table .schedule-cell > b:not(.schedule-shift__surgery) {
    display: none !important;
  }

  .top-access__table .schedule-cell small {
    color: #244f62 !important;
    font-size: 9px !important;
    font-weight: 800;
    line-height: 1.3;
    overflow-wrap: anywhere;
  }

  .top-access__table .schedule-cell--surgery b {
    display: block !important;
    color: #087dae !important;
    font-size: 9px !important;
    line-height: 1.25;
  }

  .top-access__table .schedule-shift b,
  .top-access__table .schedule-shift small {
    font-size: 8px !important;
    line-height: 1.22;
  }

  .top-access__table .schedule-shift b {
    color: #176d8d;
  }

  .top-access__panel--hours .mobile-hours-cards {
    display: none !important;
  }

  .top-access__panel--hours .top-hours-summary {
    display: grid !important;
    gap: 9px;
    margin: 13px 0 0 !important;
    padding: 14px !important;
    border: 1px solid #d4e7ee !important;
    border-radius: 10px !important;
    background: #f8fcfd !important;
  }

  .top-access__panel--hours .top-hours-summary__row,
  .top-access__panel--hours .top-hours-summary__grid {
    display: grid !important;
    gap: 7px !important;
  }

  .top-access__panel--hours .top-hours-summary__label,
  .top-access__panel--hours .top-hours-summary strong {
    color: #155f7b !important;
    font-size: 13px !important;
  }

  .top-access__panel--hours .top-hours-summary span,
  .top-access__panel--hours .top-hours-summary small {
    font-size: 12px !important;
    line-height: 1.5 !important;
  }

  /* A narrower, shorter first-visit card removes the stretched feel. */
  .first-visit-summary.first-visit-summary--photo {
    width: calc(100% - 64px) !important;
    max-width: 320px !important;
    margin: 0 auto 42px !important;
  }

  .first-visit-summary--photo .first-visit-summary__photo,
  .first-visit-summary--photo .first-visit-summary__photo img {
    height: 126px !important;
    min-height: 126px !important;
  }

  .first-visit-summary--photo .first-visit-summary__body {
    padding: 17px 15px !important;
  }

  .first-visit-summary--photo h2 {
    margin-top: 3px !important;
    font-size: 22px !important;
    line-height: 1.35 !important;
  }

  .first-visit-summary--photo p.first-visit-summary__lead {
    margin-top: 8px !important;
    font-size: 14px !important;
    line-height: 1.55 !important;
  }

  .first-visit-summary--photo .first-visit-summary__notice {
    margin-top: 11px !important;
    padding: 11px !important;
  }

  .first-visit-summary--photo .first-visit-summary__guide-title strong,
  .first-visit-summary__cutoff,
  .first-visit-summary__cutoff span {
    font-size: 13px !important;
    line-height: 1.45 !important;
  }

  .first-visit-summary--photo .first-visit-summary__button {
    min-height: 44px !important;
  }

  /* Compress headings, not their readable content. */
  .top-news,
  .schedule-01,
  .top-specialty,
  .top-director,
  .feature-01 {
    padding-top: 44px !important;
    padding-bottom: 44px !important;
  }

  .top-unified-head,
  .news-03,
  .feature-02 > .news-03,
  .top-news__side {
    min-height: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 16px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  .top-unified-head > span,
  .news-04 {
    margin-bottom: 5px !important;
  }

  .top-unified-head h2,
  .feature-03,
  .schedule-03 {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    font-size: 25px !important;
    line-height: 1.28 !important;
  }

  .top-unified-head p,
  .feature-04,
  .news-05 p {
    margin-top: 6px !important;
    line-height: 1.6 !important;
  }

  .top-director__grid,
  .top-specialty__cards,
  .feature-05 {
    margin-top: 18px !important;
  }
}

@media (max-width: 374px) {
  .header-logo-image {
    width: 124px !important;
  }

  .header-mobile-tagline {
    width: 101px;
    max-width: 101px;
    font-size: 8px;
  }

  .mobile-quick-actions__phone-copy small {
    font-size: 10.5px;
  }
}

/* 2026-09-02: upper-page mobile experience and shared today's-hours states. */
.today-hours__body {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.today-hours__row {
  min-width: 0;
}

.today-hours__timeline {
  display: block;
  color: #264f63;
  font-size: 12px;
  line-height: 1.5;
}

.today-hours__timeline b {
  color: #087eae;
}

.today-hours__note,
.today-hours__alert,
.today-hours__thursday {
  grid-column: 1 / -1;
}

.today-hours__alert {
  display: grid;
  gap: 5px;
  padding: 16px;
  border-radius: 10px;
  background: #fff5f5;
  color: #852e37;
  text-align: center;
}

.today-hours__alert strong {
  font-size: 22px;
  line-height: 1.35;
}

.today-hours__alert span,
.today-hours__alert a {
  font-size: 13px;
  line-height: 1.55;
}

.today-hours__alert a {
  color: #9d3340;
  font-weight: 800;
}

.today-hours__alert--regular {
  background: #f2f8fb;
  color: #315c70;
}

.today-hours[data-status="closed"][data-temporary="true"] {
  border-color: #e2a7ad !important;
  background: #fffafa !important;
}

.today-hours[data-status="closed"][data-temporary="true"] .today-hours__label,
.today-hours[data-status="closed"][data-temporary="true"] .today-hours__date {
  color: #a43b46 !important;
}

.today-hours[data-status="closed"][data-temporary="true"] .today-hours__link {
  background: #f8e9eb !important;
  color: #96323d !important;
}

.today-hours__thursday {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(120px, .55fr);
  gap: 12px;
}

.today-hours__thursday .today-hours__note {
  grid-column: 1 / -1;
  margin-top: 0;
}

@media (min-width: 768px) {
  .hero-05 > .today-hours {
    right: auto !important;
    left: 36px !important;
    bottom: 24px !important;
    width: min(560px, calc(100% - 72px)) !important;
    max-width: 560px;
    padding: 16px !important;
  }

  .hero-05 > .today-hours .today-hours__body {
    padding-block: 12px 6px;
  }

  .hero-05 > .today-hours .today-hours__row {
    display: flex;
    gap: 4px;
    align-items: flex-start;
    flex-direction: column;
    margin-top: 0;
    padding: 10px 12px;
    border: 1px solid #d9eaf1;
    border-radius: 10px;
    background: rgba(248, 252, 254, .92);
  }

  .hero-05 > .today-hours .today-hours__session {
    padding: 2px 8px;
    border-radius: 6px;
    background: #e8f6fb;
    color: #087eae;
    font-size: 12px;
  }

  .hero-05 > .today-hours .today-hours__time {
    font-size: 23px;
  }

  .hero-05 > .today-hours .today-hours__reception,
  .hero-05 > .today-hours .today-hours__contact {
    grid-column: auto;
    font-size: 12px;
  }

  .hero-05 > .today-hours .today-hours__contact {
    color: #536f7d;
  }

  .hero-05 > .today-hours .today-hours__thursday .today-hours__reception,
  .hero-05 > .today-hours .today-hours__thursday .today-hours__contact {
    font-size: 12px;
    line-height: 1.45;
  }
}

@media (max-width: 767px) {
  body {
    padding-bottom: calc(70px + env(safe-area-inset-bottom)) !important;
  }

  /* Compact, readable mobile header. */
  .header-01,
  .header-05 {
    height: 78px !important;
    min-height: 78px !important;
    transition: height .24s ease, min-height .24s ease, background-color .24s ease !important;
  }

  .header-01 {
    background: #fff !important;
  }

  .header-05 {
    padding: 0 14px !important;
  }

  .header-06 {
    position: relative;
    display: flex !important;
    min-width: 0;
    height: 64px;
    align-items: flex-start !important;
    justify-content: center;
    flex-direction: column;
  }

  .header-logo-image {
    width: 154px !important;
    max-height: 40px !important;
  }

  .header-mobile-tagline {
    display: block;
    margin: -2px 0 0 47px;
    color: #456d80;
    font-size: 9px;
    font-weight: 700;
    line-height: 1.25;
    white-space: nowrap;
    transition: opacity .18s ease, max-height .18s ease, margin .18s ease;
  }

  .header-contact-cta {
    display: none !important;
  }

  .header-16 {
    gap: 2px !important;
  }

  .header-phone {
    display: grid !important;
    width: 42px !important;
    min-width: 42px !important;
    height: 44px !important;
    padding: 0 !important;
    place-items: center;
    border: 0 !important;
    border-radius: 8px !important;
    background: transparent !important;
    color: #087fba !important;
  }

  .header-phone::before {
    content: none !important;
  }

  .header-phone svg {
    width: 22px;
    height: 22px;
    fill: currentColor;
    stroke: none;
  }

  .header-phone span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
  }

  .header-18 {
    width: 46px !important;
    min-width: 46px !important;
    height: 52px !important;
    color: #087fba !important;
  }

  .header-18 svg {
    width: 25px !important;
    height: 25px !important;
  }

  .header-future-language-slot {
    display: none;
  }

  .header-01.is-mobile-compact,
  .header-01.is-mobile-compact .header-05 {
    height: 60px !important;
    min-height: 60px !important;
  }

  .header-01.is-mobile-compact {
    background: rgba(255, 255, 255, .88) !important;
    box-shadow: 0 5px 20px rgba(18, 70, 94, .09);
    backdrop-filter: blur(16px) saturate(145%);
    -webkit-backdrop-filter: blur(16px) saturate(145%);
  }

  .header-01.is-mobile-compact .header-06 {
    height: 52px;
  }

  .header-01.is-mobile-compact .header-logo-image {
    width: 142px !important;
  }

  .header-01.is-mobile-compact .header-mobile-tagline {
    max-height: 0;
    margin-top: 0;
    opacity: 0;
  }

  /* Photo-led first view with a calm asymmetric lower edge. */
  .hero-01,
  .hero-02 {
    overflow: visible !important;
  }

  .hero-05 {
    display: block !important;
    padding: 0 var(--mobile-gutter) 0 !important;
    background: #f7fcfe !important;
  }

  .hero-06 {
    position: absolute !important;
    inset: 0 0 auto !important;
    width: 100% !important;
    height: clamp(430px, 62svh, 590px) !important;
    min-height: 430px !important;
    border-radius: 0 0 52% 10% / 0 0 7% 3% !important;
    overflow: hidden !important;
  }

  .hero-06 .hero-07,
  .hero-07 {
    height: clamp(430px, 62svh, 590px) !important;
    object-position: 50% 50% !important;
  }

  .hero-08 {
    border-radius: inherit;
    background: linear-gradient(180deg, rgba(4, 37, 54, .04) 18%, rgba(3, 38, 56, .13) 52%, rgba(3, 37, 54, .72) 100%) !important;
  }

  .hero-09 {
    top: calc(clamp(430px, 62svh, 590px) - 255px) !important;
    right: calc(var(--mobile-gutter) + 2px) !important;
    bottom: auto !important;
    left: calc(var(--mobile-gutter) + 2px) !important;
    padding-top: 0;
    pointer-events: none;
  }

  .hero-10,
  .hero-11,
  .hero-12,
  .static-hero-copy-text,
  .static-hero-char {
    font-size: clamp(30px, 8.8vw, 38px) !important;
    line-height: 1.24 !important;
    letter-spacing: .055em !important;
    text-shadow: 0 2px 18px rgba(0, 29, 44, .48) !important;
  }

  .mobile-hero-summary {
    position: relative;
    z-index: 6;
    display: block;
    height: clamp(430px, 62svh, 590px);
    margin: 0 !important;
    pointer-events: none;
  }

  .mobile-hero-summary__lead {
    position: absolute;
    right: 4px;
    bottom: 58px;
    left: 4px;
    max-width: 330px;
    margin: 0 !important;
    color: #fff !important;
    font-size: 14px !important;
    font-weight: 750 !important;
    line-height: 1.65 !important;
    letter-spacing: .02em;
    text-shadow: 0 2px 12px rgba(0, 32, 48, .58);
  }

  .hero-surgery-record {
    position: absolute !important;
    z-index: 7 !important;
    top: 24px !important;
    right: 15px !important;
    display: grid !important;
    width: auto !important;
    min-width: 112px;
    margin: 0 !important;
    padding: 10px 12px !important;
    gap: 1px;
    border: 1px solid rgba(255, 255, 255, .7) !important;
    border-radius: 9px !important;
    background: rgba(255, 255, 255, .75) !important;
    color: #144b65 !important;
    box-shadow: 0 8px 24px rgba(5, 45, 65, .13) !important;
    backdrop-filter: blur(11px) saturate(135%);
    -webkit-backdrop-filter: blur(11px) saturate(135%);
    text-align: left;
  }

  .hero-surgery-record span {
    font-size: 9px !important;
    font-weight: 800;
  }

  .hero-surgery-record strong {
    color: #087eb5 !important;
    font-size: 11px !important;
    line-height: 1;
  }

  .hero-surgery-record strong b {
    font-size: 28px !important;
    letter-spacing: -.04em;
  }

  .hero-surgery-record small {
    font-size: 8px !important;
    line-height: 1.35;
  }

  .hero-13 {
    top: calc(clamp(430px, 62svh, 590px) - 28px) !important;
  }

  .hero-05 > .today-hours {
    position: relative !important;
    z-index: 10;
    inset: auto !important;
    margin: -35px 0 0 !important;
    padding: 13px 13px 11px !important;
    border: 1px solid #b7dbe8 !important;
    border-radius: 12px !important;
    background: rgba(255, 255, 255, .98) !important;
    box-shadow: 0 12px 30px rgba(18, 83, 111, .13) !important;
  }

  .today-hours__head {
    margin-bottom: 9px !important;
    padding-bottom: 8px !important;
  }

  .today-hours__label {
    font-size: 16px !important;
  }

  .today-hours__date {
    padding: 3px 7px !important;
    font-size: 12px !important;
  }

  .today-hours__body {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    padding: 0 !important;
  }

  .today-hours__row {
    display: flex !important;
    min-height: 0 !important;
    padding: 9px 8px !important;
    gap: 3px !important;
    align-items: flex-start !important;
    flex-direction: column;
    border: 1px solid #dcebf1 !important;
    border-radius: 9px !important;
    background: #f9fcfd;
  }

  .today-hours__session {
    display: block !important;
    min-height: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    color: #087eae !important;
    font-size: 12px !important;
    line-height: 1.3;
    text-align: left;
  }

  .today-hours__time {
    font-size: clamp(17px, 4.8vw, 20px) !important;
    line-height: 1.25 !important;
    white-space: nowrap;
  }

  .today-hours__reception,
  .today-hours__contact {
    display: block !important;
    font-size: 11px !important;
    line-height: 1.42 !important;
  }

  .today-hours__contact {
    color: #556f7b !important;
    font-weight: 700 !important;
  }

  .today-hours__note {
    margin: 0 !important;
    font-size: 11px !important;
    line-height: 1.48 !important;
  }

  .today-hours__link {
    min-height: 36px;
    margin-top: 8px !important;
    border-radius: 7px;
    font-size: 12px !important;
  }

  .today-hours__thursday {
    grid-template-columns: minmax(0, 1.55fr) minmax(90px, .65fr);
    gap: 8px;
  }

  .today-hours__timeline {
    font-size: 11px;
    line-height: 1.45;
  }

  .today-hours__alert {
    padding: 12px 10px;
  }

  .today-hours__alert strong {
    font-size: 20px;
  }

  .top-important-notice {
    margin-top: 14px !important;
    padding-inline: var(--mobile-gutter) !important;
  }

  /* Two-action fixed footer and its shared-data hours sheet. */
  .mobile-quick-actions {
    grid-template-columns: 1fr 1fr;
    min-height: calc(58px + env(safe-area-inset-bottom)) !important;
    padding: 5px 8px calc(5px + env(safe-area-inset-bottom)) !important;
    gap: 6px;
    background: rgba(255, 255, 255, .88) !important;
    border-top: 1px solid rgba(139, 196, 218, .62);
    box-shadow: 0 -7px 20px rgba(11, 68, 94, .09);
    backdrop-filter: blur(15px) saturate(140%);
    -webkit-backdrop-filter: blur(15px) saturate(140%);
  }

  .mobile-quick-actions__phone-wrap {
    position: relative;
    display: block !important;
    min-width: 0;
    margin: 0 !important;
    font-size: inherit !important;
  }

  .mobile-quick-actions__bubble {
    position: absolute;
    z-index: 2;
    top: -31px;
    left: 4px;
    width: max-content;
    max-width: calc(200vw - 32px);
    margin: 0 !important;
    padding: 4px 8px;
    border: 1px solid #b6dbe8;
    border-radius: 6px;
    background: rgba(255, 255, 255, .96);
    color: #236c88;
    box-shadow: 0 4px 12px rgba(12, 70, 96, .08);
    font-size: 10px !important;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
  }

  .mobile-quick-actions__bubble::after {
    content: "";
    position: absolute;
    bottom: -4px;
    left: 20px;
    width: 7px;
    height: 7px;
    border-right: 1px solid #b6dbe8;
    border-bottom: 1px solid #b6dbe8;
    background: #fff;
    transform: rotate(45deg);
  }

  .mobile-quick-actions a,
  .mobile-hours-toggle {
    box-sizing: border-box;
    display: flex !important;
    width: 100%;
    min-height: 48px !important;
    padding: 5px 10px !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1px solid #b7dce9 !important;
    border-radius: 8px !important;
    background: rgba(248, 253, 255, .94) !important;
    color: #146c8e !important;
    font: inherit;
    text-decoration: none;
  }

  .mobile-quick-actions__phone-wrap a {
    border-color: #078bc7 !important;
    background: #078bc7 !important;
    color: #fff !important;
  }

  .mobile-quick-actions svg,
  .mobile-hours-toggle svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
  }

  .mobile-quick-actions strong {
    font-size: 14px !important;
  }

  .mobile-hours-sheet {
    position: fixed;
    z-index: 1090;
    inset: 0;
    display: grid;
    align-items: end;
    visibility: hidden;
    pointer-events: none;
  }

  .mobile-hours-sheet__backdrop {
    position: absolute;
    inset: 0;
    border: 0;
    background: rgba(11, 45, 61, .22);
    opacity: 0;
    transition: opacity .25s ease;
  }

  .mobile-hours-sheet__panel {
    position: relative;
    z-index: 1;
    max-height: calc(100svh - 86px);
    padding: 10px 14px calc(76px + env(safe-area-inset-bottom));
    overflow-y: auto;
    border: 1px solid rgba(183, 220, 233, .85);
    border-bottom: 0;
    border-radius: 18px 18px 0 0;
    background: rgba(249, 253, 255, .94);
    box-shadow: 0 -20px 50px rgba(4, 46, 66, .18);
    backdrop-filter: blur(18px) saturate(145%);
    -webkit-backdrop-filter: blur(18px) saturate(145%);
    transform: translateY(105%);
    transition: transform .3s cubic-bezier(.22, .8, .3, 1);
  }

  .mobile-hours-sheet.is-open {
    visibility: visible;
    pointer-events: auto;
  }

  .mobile-hours-sheet.is-open .mobile-hours-sheet__backdrop {
    opacity: 1;
  }

  .mobile-hours-sheet.is-open .mobile-hours-sheet__panel {
    transform: translateY(0);
  }

  .mobile-hours-sheet__grab {
    width: 38px;
    height: 4px;
    margin: 0 auto 5px;
    border-radius: 99px;
    background: #b9d5df;
  }

  .mobile-hours-sheet__close {
    position: absolute;
    z-index: 2;
    top: 12px;
    right: 14px;
    display: grid;
    width: 36px;
    height: 36px;
    padding: 0;
    place-items: center;
    border: 1px solid #c8e1ea;
    border-radius: 8px;
    background: #fff;
    color: #1e647e;
    font-size: 25px;
    line-height: 1;
  }

  .today-hours--sheet {
    position: static !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 14px 0 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
  }

  .today-hours--sheet .today-hours__head {
    padding-right: 43px !important;
  }

  .is-hours-sheet-open {
    overflow: hidden;
  }

  .is-hours-sheet-open .mobile-quick-actions__bubble {
    display: none !important;
  }

  .top-important-notice > .top-important-notice__trigger {
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-rows: auto auto auto;
  }

  .top-important-notice > .top-important-notice__trigger > strong {
    grid-column: 1 !important;
    grid-row: 1 !important;
  }

  .top-important-notice > .top-important-notice__trigger > time {
    grid-column: 1 !important;
    grid-row: 2 !important;
    justify-self: start;
  }

  .top-important-notice > .top-important-notice__trigger > span {
    grid-column: 1 !important;
    grid-row: 3 !important;
  }

  .top-important-notice > .top-important-notice__trigger > b {
    grid-column: 2 !important;
    grid-row: 1 / 4 !important;
  }
}

@media (max-width: 374px) {
  .header-logo-image {
    width: 143px !important;
  }

  .header-mobile-tagline {
    margin-left: 43px;
    font-size: 8.5px;
  }

  .today-hours__time {
    font-size: 17px !important;
  }

  .today-hours__reception,
  .today-hours__contact,
  .today-hours__timeline {
    font-size: 10.5px !important;
  }
}

/* Final cascade for the 2026-09-03 mobile refinement. */
@media (max-width: 767px) {
  .header-01,
  .header-05 {
    height: 66px !important;
    min-height: 66px !important;
  }

  .header-05 {
    padding-inline: 12px !important;
    gap: 2px !important;
  }

  .header-06 {
    display: flex !important;
    height: 58px !important;
    min-width: 0 !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex-direction: row !important;
    gap: 6px !important;
  }

  .header-logo-image {
    width: 132px !important;
    max-height: 38px !important;
    flex: 0 0 auto;
  }

  .header-mobile-tagline {
    display: block;
    width: 108px;
    max-width: 108px;
    margin: 0 !important;
    color: #3d687b;
    font-size: 8.5px;
    font-weight: 750;
    line-height: 1.4;
    white-space: normal;
  }

  .header-phone {
    width: 38px !important;
    min-width: 38px !important;
    height: 42px !important;
  }

  .header-phone svg {
    width: 20px;
    height: 20px;
  }

  .header-18 {
    width: 44px !important;
    min-width: 44px !important;
    height: 48px !important;
  }

  .header-01.is-mobile-compact,
  .header-01.is-mobile-compact .header-05 {
    height: 52px !important;
    min-height: 52px !important;
  }

  .header-01.is-mobile-compact {
    background: rgba(255, 255, 255, .72) !important;
    box-shadow: 0 4px 16px rgba(18, 70, 94, .07) !important;
    backdrop-filter: blur(13px) saturate(135%);
    -webkit-backdrop-filter: blur(13px) saturate(135%);
  }

  .header-01.is-mobile-compact .header-06 {
    height: 46px !important;
  }

  .header-01.is-mobile-compact .header-logo-image {
    width: 126px !important;
  }

  .header-01.is-mobile-compact .header-mobile-tagline {
    display: none;
  }

  .hero-surgery-record {
    min-width: 126px !important;
    padding: 10px 12px 9px !important;
    gap: 3px !important;
    border-color: rgba(255, 255, 255, .94) !important;
    background: rgba(255, 255, 255, .9) !important;
    color: #123f55 !important;
    box-shadow: 0 8px 22px rgba(7, 48, 67, .19) !important;
    backdrop-filter: blur(14px) saturate(145%);
    -webkit-backdrop-filter: blur(14px) saturate(145%);
  }

  .hero-surgery-record > strong {
    display: flex;
    align-items: baseline;
    gap: 3px;
    color: #075f8a !important;
    line-height: 1 !important;
  }

  .hero-surgery-record > strong > b {
    color: #056e9f !important;
    font-size: 31px !important;
  }

  .mobile-quick-actions {
    bottom: 4px !important;
    min-height: calc(58px + env(safe-area-inset-bottom)) !important;
    padding: 0 8px env(safe-area-inset-bottom) !important;
    gap: 8px !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    pointer-events: none;
  }

  .mobile-quick-actions__phone-wrap,
  .mobile-quick-actions a,
  .mobile-hours-toggle {
    pointer-events: auto;
  }

  .mobile-quick-actions a,
  .mobile-hours-toggle {
    min-height: 54px !important;
    box-shadow: 0 7px 18px rgba(10, 70, 96, .16) !important;
  }

  .mobile-quick-actions__phone-wrap a {
    border-color: #0788c3 !important;
    background: linear-gradient(145deg, #0797d3, #087db5) !important;
    box-shadow: 0 7px 18px rgba(7, 126, 180, .27) !important;
  }

  .mobile-quick-actions__phone-copy {
    display: grid !important;
    margin: 0 !important;
    gap: 1px;
    text-align: left;
  }

  .mobile-quick-actions__phone-copy small {
    color: rgba(255, 255, 255, .96) !important;
    font-size: 11px !important;
    font-weight: 800;
    line-height: 1.2;
  }
}

@media (max-width: 374px) {
  .header-logo-image {
    width: 124px !important;
  }

  .header-mobile-tagline {
    width: 101px;
    max-width: 101px;
    margin: 0 !important;
    font-size: 8px;
  }

  .mobile-quick-actions__phone-copy small {
    font-size: 10.5px !important;
  }
}

@media (max-width: 767px) {
  .top-access__panel--hours .top-access__table-wrap {
    display: none !important;
  }

  .top-access__panel--hours .mobile-weekly-table-wrap {
    display: block !important;
  }
}

/* 2026-09-03: keep the desktop today's-hours card clear of the hero trust strip. */
@media (min-width: 1024px) {
  .hero-05 > .today-hours {
    bottom: 72px !important;
    width: min(440px, calc(100% - 72px)) !important;
    max-width: 440px !important;
  }

  .hero-05 > .today-hours .today-hours__timeline {
    font-size: 14px !important;
    font-weight: 750;
    line-height: 1.55 !important;
  }

  .hero-05 > .today-hours .today-hours__timeline b {
    font-size: 14px !important;
  }

  .hero-05 > .today-hours .today-hours__note--thursday {
    font-size: 13px !important;
    line-height: 1.55 !important;
  }
}

/* 2026-09-03: portrait-first mobile hero refinement. */
@media (max-width: 767px) {
  .header-01:not(.is-compact) {
    height: 88px !important;
  }

  .header-01:not(.is-compact) .header-05 {
    height: 88px !important;
    padding: 8px 14px 9px !important;
  }

  .header-01:not(.is-compact) .header-06 {
    width: 200px !important;
    height: 62px !important;
    flex: 0 0 200px !important;
    align-items: flex-start !important;
  }

  .header-01:not(.is-compact) .header-logo-image {
    width: 188px !important;
    max-width: 188px !important;
    height: auto !important;
  }

  .header-01:not(.is-compact) .header-mobile-tagline {
    position: absolute !important;
    top: 61px !important;
    left: 70px !important;
    width: 210px !important;
    max-width: 210px !important;
    margin: 0 !important;
    color: #075995 !important;
    font-size: 9px !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
    letter-spacing: .02em !important;
    white-space: nowrap !important;
  }

  .header-01:not(.is-compact) .header-16 {
    align-self: center !important;
    gap: 4px !important;
  }

  .header-01:not(.is-compact) .header-phone,
  .header-01:not(.is-compact) .header-18 {
    min-width: 44px !important;
    min-height: 48px !important;
  }

  .hero-05 {
    padding: 0 14px calc(var(--mobile-cta-height) + 22px) !important;
    background: #fff !important;
  }

  .hero-05 > .hero-06,
  .hero-05 > .hero-06 img,
  .hero-05 > .mobile-hero-summary {
    height: clamp(420px, 108vw, 455px) !important;
    min-height: 0 !important;
  }

  .hero-05 > .hero-06 {
    overflow: hidden !important;
    border-radius: 0 0 52% 8% / 0 0 4.5% 2.5% !important;
  }

  .hero-05 > .hero-06 img {
    object-position: 53% 50% !important;
  }

  .hero-05 > .hero-06::after {
    background:
      linear-gradient(135deg, rgba(255, 255, 255, .62) 0%, rgba(255, 255, 255, .28) 37%, rgba(255, 255, 255, 0) 68%),
      linear-gradient(180deg, rgba(220, 244, 255, .08) 35%, rgba(7, 69, 103, .08) 100%) !important;
  }

  .hero-09 {
    top: clamp(78px, 20vw, 88px) !important;
    left: 18px !important;
    right: 18px !important;
    width: min(340px, calc(100% - 36px)) !important;
    color: #075995 !important;
    text-shadow: 0 1px 9px rgba(255, 255, 255, .98), 0 0 2px rgba(255, 255, 255, .9) !important;
  }

  .hero-09 .hero-10,
  .hero-09 .hero-11,
  .hero-09 .hero-12,
  .hero-09 .static-hero-char {
    display: inline !important;
    padding: 0 !important;
    background: transparent !important;
    color: #075995 !important;
    font-size: clamp(31px, 8.5vw, 36px) !important;
    font-weight: 700 !important;
    line-height: 1.34 !important;
    letter-spacing: .035em !important;
    box-shadow: none !important;
  }

  .hero-09 .hero-10,
  .hero-09 .hero-11 {
    margin-right: .06em !important;
  }

  .hero-05 > .mobile-hero-summary .mobile-hero-summary__lead {
    top: clamp(198px, 51vw, 218px) !important;
    bottom: auto !important;
    left: 18px !important;
    width: min(315px, calc(100% - 36px)) !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    color: #173a4c !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.75 !important;
    letter-spacing: .025em !important;
    text-shadow: 0 1px 7px rgba(255, 255, 255, 1), 0 0 2px rgba(255, 255, 255, .95) !important;
    box-shadow: none !important;
  }

  .hero-05 > .hero-surgery-record {
    top: calc(clamp(420px, 108vw, 455px) - 98px) !important;
    right: auto !important;
    bottom: auto !important;
    left: 18px !important;
    width: 202px !important;
    min-width: 202px !important;
    padding: 10px 14px 11px !important;
    border: 1px solid rgba(255, 255, 255, .86) !important;
    border-radius: 14px !important;
    background: rgba(255, 255, 255, .9) !important;
    box-shadow: 0 7px 20px rgba(5, 69, 103, .18) !important;
    -webkit-backdrop-filter: blur(8px) saturate(1.08) !important;
    backdrop-filter: blur(8px) saturate(1.08) !important;
    text-align: left !important;
  }

  .hero-surgery-record__eyebrow {
    color: #075995 !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    letter-spacing: .02em !important;
  }

  .hero-surgery-record__number {
    display: flex !important;
    align-items: baseline !important;
    justify-content: center !important;
    gap: 4px !important;
    margin-top: 1px !important;
    color: #075995 !important;
    font-size: 14px !important;
    line-height: 1 !important;
  }

  .hero-surgery-record__number strong {
    color: #075995 !important;
    font-size: 35px !important;
    line-height: 1 !important;
    letter-spacing: .025em !important;
  }

  .hero-surgery-record__detail {
    display: none !important;
  }

  .hero-05 > .hero-13.js-hero-dots {
    display: none !important;
  }

  .hero-05 > .today-hours {
    position: relative !important;
    inset: auto !important;
    width: calc(100% - 28px) !important;
    max-width: none !important;
    margin: -7px auto 0 !important;
    padding: 14px 14px 13px !important;
    border: 1.5px solid #1888d1 !important;
    border-radius: 14px !important;
    background: rgba(255, 255, 255, .98) !important;
    box-shadow: 0 8px 24px rgba(5, 87, 132, .13) !important;
  }

  .hero-05 > .today-hours .today-hours__head {
    margin-bottom: 10px !important;
  }

  .hero-05 > .today-hours .today-hours__label {
    color: #075995 !important;
    font-size: 17px !important;
    letter-spacing: .035em !important;
  }

  .hero-05 > .today-hours .today-hours__date {
    padding: 5px 9px !important;
    border-radius: 9px !important;
    background: #eef7fd !important;
    color: #075995 !important;
    font-size: 12px !important;
  }

  .hero-05 > .today-hours .today-hours__session-title {
    font-size: 12px !important;
  }

  .hero-05 > .today-hours .today-hours__time {
    font-size: clamp(20px, 5.8vw, 24px) !important;
    line-height: 1.25 !important;
  }

  .hero-05 > .today-hours .today-hours__timeline,
  .hero-05 > .today-hours .today-hours__timeline b {
    font-size: 12px !important;
    line-height: 1.55 !important;
  }

  .hero-05 > .today-hours .today-hours__note,
  .hero-05 > .today-hours .today-hours__note--thursday {
    font-size: 11px !important;
    line-height: 1.5 !important;
  }

  .mobile-quick-actions {
    bottom: 5px !important;
    height: calc(54px + env(safe-area-inset-bottom)) !important;
    min-height: calc(54px + env(safe-area-inset-bottom)) !important;
    padding: 0 8px env(safe-area-inset-bottom) !important;
    gap: 8px !important;
    align-items: end !important;
  }

  .mobile-quick-actions__phone-wrap {
    height: 48px !important;
  }

  .mobile-quick-actions a,
  .mobile-hours-toggle {
    position: relative;
    min-height: 48px !important;
    height: 48px !important;
    padding: 4px 9px !important;
    overflow: hidden;
    border-width: 1.5px !important;
    border-color: #68b4d2 !important;
    border-radius: 9px !important;
    background: linear-gradient(180deg, rgba(255, 255, 255, .99), rgba(237, 248, 252, .98)) !important;
    color: #075f8f !important;
    box-shadow: 0 5px 13px rgba(4, 76, 110, .2), inset 0 1px 0 #fff, inset 0 -2px 0 rgba(20, 125, 169, .1) !important;
    transform: translateY(-1px);
    transition: transform .14s ease, box-shadow .14s ease, background .14s ease !important;
    cursor: pointer;
    touch-action: manipulation;
  }

  .mobile-quick-actions a::before,
  .mobile-hours-toggle::before {
    content: "";
    position: absolute;
    top: 0;
    right: 10px;
    left: 10px;
    height: 1px;
    background: rgba(255, 255, 255, .78);
    pointer-events: none;
  }

  .mobile-quick-actions a:active,
  .mobile-hours-toggle:active {
    box-shadow: 0 2px 7px rgba(4, 76, 110, .16), inset 0 2px 4px rgba(4, 76, 110, .12) !important;
    transform: translateY(1px) scale(.99);
  }

  .mobile-quick-actions__phone-wrap a {
    border-color: #057eb8 !important;
    background: linear-gradient(180deg, #109ddd 0%, #0578b7 100%) !important;
    color: #fff !important;
    box-shadow: 0 6px 15px rgba(5, 112, 168, .3), inset 0 1px 0 rgba(255, 255, 255, .34), inset 0 -2px 0 rgba(0, 70, 118, .18) !important;
  }

  .mobile-quick-actions svg,
  .mobile-hours-toggle svg {
    width: 19px !important;
    height: 19px !important;
    stroke-width: 2.05 !important;
  }

  .mobile-quick-actions strong {
    font-size: 13px !important;
    letter-spacing: .03em;
  }

  .mobile-quick-actions__phone-copy small {
    font-size: 9.5px !important;
  }

  .mobile-quick-actions__bubble {
    top: -27px !important;
    padding: 3px 7px !important;
    font-size: 9.5px !important;
  }

  .mobile-quick-actions.is-over-site-footer .mobile-quick-actions__phone-wrap a {
    border-color: #fff !important;
    background: rgba(255, 255, 255, .97) !important;
    color: #075f8f !important;
    box-shadow: 0 5px 16px rgba(0, 32, 53, .28), 0 0 0 2px rgba(255, 255, 255, .34), inset 0 -2px 0 rgba(7, 95, 143, .1) !important;
  }

  .mobile-quick-actions.is-over-site-footer .mobile-quick-actions__phone-copy small {
    color: #075f8f !important;
  }

  .mobile-quick-actions.is-over-site-footer .mobile-quick-actions__bubble {
    border-color: rgba(255, 255, 255, .86) !important;
    background: rgba(255, 255, 255, .97) !important;
    color: #075f8f !important;
  }
}

@media (max-width: 374px) {
  .header-01:not(.is-compact) .header-06 {
    width: 188px !important;
    flex-basis: 188px !important;
  }

  .header-01:not(.is-compact) .header-logo-image {
    width: 176px !important;
    max-width: 176px !important;
  }

  .header-01:not(.is-compact) .header-mobile-tagline {
    left: 67px !important;
    width: 195px !important;
    max-width: 195px !important;
    font-size: 8.5px !important;
  }

  .hero-05 > .today-hours {
    padding-inline: 12px !important;
  }
}

/* 2026-09-03: compact, information-first mobile homepage. */
@media (max-width: 767px) {
  .header-01:not(.is-mobile-compact),
  .header-01:not(.is-mobile-compact) .header-05 {
    height: 62px !important;
  }

  .header-01:not(.is-mobile-compact) .header-05 {
    padding: 5px 10px !important;
    gap: 5px !important;
  }

  .header-01:not(.is-mobile-compact) .header-06 {
    display: flex !important;
    width: auto !important;
    min-width: 0 !important;
    height: 52px !important;
    flex: 1 1 auto !important;
    align-items: center !important;
    gap: 5px !important;
  }

  .header-01:not(.is-mobile-compact) .header-logo-image {
    width: clamp(132px, 35vw, 146px) !important;
    max-width: clamp(132px, 35vw, 146px) !important;
    flex: 0 0 auto !important;
  }

  .header-01:not(.is-mobile-compact) .header-mobile-tagline {
    position: static !important;
    display: block !important;
    width: auto !important;
    max-width: 132px !important;
    flex: 1 1 122px !important;
    margin: 0 !important;
    color: #075995 !important;
    font-size: 8.5px !important;
    font-weight: 800 !important;
    line-height: 1.42 !important;
    letter-spacing: 0 !important;
    white-space: normal !important;
  }

  .header-01:not(.is-mobile-compact) .header-16 {
    flex: 0 0 78px !important;
    gap: 2px !important;
  }

  .header-01:not(.is-mobile-compact) .header-phone {
    width: 34px !important;
    min-width: 34px !important;
    min-height: 42px !important;
    padding: 0 !important;
  }

  .header-01:not(.is-mobile-compact) .header-phone svg {
    width: 22px !important;
    height: 22px !important;
  }

  .header-01:not(.is-mobile-compact) .header-18 {
    width: 42px !important;
    min-width: 42px !important;
    min-height: 46px !important;
    border: 1px solid rgba(90, 166, 198, .35) !important;
    border-radius: 8px !important;
    background: rgba(255, 255, 255, .97) !important;
    box-shadow: 0 3px 12px rgba(4, 78, 113, .1) !important;
  }

  .header-01.is-mobile-compact,
  .header-01.is-mobile-compact .header-05 {
    height: 46px !important;
  }

  .header-01.is-mobile-compact {
    border-bottom-color: rgba(170, 214, 231, .34) !important;
    background: rgba(255, 255, 255, .48) !important;
    box-shadow: 0 3px 13px rgba(19, 91, 122, .06) !important;
    -webkit-backdrop-filter: blur(11px) saturate(1.1) !important;
    backdrop-filter: blur(11px) saturate(1.1) !important;
  }

  .header-01.is-mobile-compact .header-05 {
    padding: 2px 9px !important;
  }

  .header-01.is-mobile-compact .header-06 {
    width: auto !important;
    height: 42px !important;
    flex: 1 1 auto !important;
  }

  .header-01.is-mobile-compact .header-logo-image {
    width: 124px !important;
    max-width: 124px !important;
  }

  .header-01.is-mobile-compact .header-mobile-tagline {
    display: none !important;
  }

  .header-01.is-mobile-compact .header-16 {
    gap: 3px !important;
  }

  .header-01.is-mobile-compact .header-phone {
    min-width: 34px !important;
    min-height: 38px !important;
    border-radius: 8px !important;
    background: rgba(255, 255, 255, .78) !important;
  }

  .header-01.is-mobile-compact .header-18 {
    min-width: 42px !important;
    min-height: 40px !important;
    border: 1px solid rgba(79, 157, 192, .38) !important;
    border-radius: 8px !important;
    background: rgba(255, 255, 255, .96) !important;
    box-shadow: 0 3px 12px rgba(4, 75, 108, .12) !important;
  }

  .hero-05 {
    padding-bottom: calc(var(--mobile-cta-height) + 14px) !important;
  }

  .hero-05 > .hero-06,
  .hero-05 > .hero-06 img,
  .hero-05 > .mobile-hero-summary {
    height: clamp(368px, 96vw, 405px) !important;
  }

  .hero-05 > .hero-06 img {
    object-position: 54% 52% !important;
  }

  .hero-05 > .hero-06::after {
    background: linear-gradient(135deg, rgba(238, 249, 255, .22), rgba(255, 255, 255, 0) 58%), linear-gradient(180deg, rgba(2, 79, 120, 0) 62%, rgba(4, 54, 78, .22) 100%) !important;
  }

  .hero-09 {
    top: clamp(47px, 13vw, 56px) !important;
    left: 15px !important;
    right: auto !important;
    box-sizing: border-box;
    width: min(325px, calc(100% - 30px)) !important;
    padding: 8px 10px 9px !important;
    border-left: 3px solid #078ac7;
    border-radius: 0 7px 7px 0;
    background: rgba(255, 255, 255, .78) !important;
    box-shadow: 0 5px 18px rgba(6, 66, 96, .08) !important;
    -webkit-backdrop-filter: blur(3px) !important;
    backdrop-filter: blur(3px) !important;
    text-shadow: none !important;
  }

  .hero-09 .hero-10,
  .hero-09 .hero-11,
  .hero-09 .hero-12,
  .hero-09 .static-hero-char {
    color: #075995 !important;
    font-size: clamp(28px, 7.8vw, 33px) !important;
    line-height: 1.28 !important;
    letter-spacing: .025em !important;
    text-shadow: none !important;
  }

  .hero-05 > .mobile-hero-summary .mobile-hero-summary__lead {
    top: clamp(157px, 42vw, 175px) !important;
    left: 15px !important;
    box-sizing: border-box;
    width: auto !important;
    max-width: calc(100% - 30px) !important;
    padding: 6px 9px !important;
    border-radius: 5px !important;
    background: rgba(255, 255, 255, .82) !important;
    color: #173a4c !important;
    font-size: 11.5px !important;
    line-height: 1.45 !important;
    letter-spacing: 0 !important;
    white-space: nowrap;
    text-shadow: none !important;
    -webkit-backdrop-filter: blur(2px) !important;
    backdrop-filter: blur(2px) !important;
  }

  .hero-05 > .hero-surgery-record {
    top: calc(clamp(368px, 96vw, 405px) - 76px) !important;
    left: 15px !important;
    width: 184px !important;
    min-width: 184px !important;
    padding: 8px 11px 9px !important;
    border-radius: 11px !important;
  }

  .hero-surgery-record__number strong {
    font-size: 31px !important;
  }

  .hero-05 > .today-hours {
    width: calc(100% - 24px) !important;
    margin-top: -6px !important;
    padding: 10px 11px 9px !important;
    border-radius: 12px !important;
  }

  .hero-05 > .today-hours .today-hours__head {
    margin-bottom: 6px !important;
    padding-bottom: 6px !important;
  }

  .hero-05 > .today-hours .today-hours__label {
    font-size: 15px !important;
  }

  .hero-05 > .today-hours .today-hours__date {
    padding: 4px 7px !important;
    font-size: 10.5px !important;
  }

  .hero-05 > .today-hours .today-hours__row {
    gap: 7px !important;
  }

  .hero-05 > .today-hours .today-hours__session {
    padding: 8px !important;
  }

  .hero-05 > .today-hours .today-hours__session-title {
    font-size: 11px !important;
  }

  .hero-05 > .today-hours .today-hours__time {
    font-size: clamp(19px, 5.4vw, 22px) !important;
  }

  .hero-05 > .today-hours .today-hours__timeline,
  .hero-05 > .today-hours .today-hours__timeline b {
    font-size: 10.5px !important;
    line-height: 1.45 !important;
  }

  .hero-05 > .today-hours .today-hours__note,
  .hero-05 > .today-hours .today-hours__note--thursday {
    margin-top: 5px !important;
    font-size: 9.5px !important;
    line-height: 1.4 !important;
    white-space: nowrap;
  }

  .hero-05 > .today-hours .today-hours__link {
    min-height: 34px !important;
    margin-top: 6px !important;
    font-size: 12px !important;
  }

  .top-news,
  .schedule-01,
  .top-specialty,
  .top-private-care,
  .top-symptom-guide,
  .top-contact-feature,
  .top-director,
  .feature-01,
  .top-access,
  .top-recruit-link {
    padding-top: 34px !important;
    padding-bottom: 34px !important;
  }

  .top-unified-head,
  .news-03 {
    margin-bottom: 14px !important;
  }

  .top-unified-head h2,
  .feature-03,
  .schedule-03 {
    font-size: 24px !important;
    line-height: 1.28 !important;
  }

  .top-unified-head p,
  .feature-04,
  .news-05 p {
    margin-top: 5px !important;
    font-size: 14px !important;
    line-height: 1.55 !important;
  }

  .first-visit-summary {
    grid-template-columns: 40% 60% !important;
    grid-template-areas: "photo body" "button button" !important;
    width: calc(100% - 28px) !important;
    margin: 18px auto 24px !important;
    overflow: hidden;
    border-radius: 13px !important;
  }

  .first-visit-summary__photo {
    grid-area: photo !important;
    height: 214px !important;
  }

  .first-visit-summary__photo img {
    width: 100% !important;
    height: 214px !important;
    object-fit: cover !important;
    object-position: 48% center !important;
  }

  .first-visit-summary__body {
    grid-area: body !important;
    box-sizing: border-box;
    height: 214px !important;
    padding: 12px 11px !important;
    justify-content: flex-start !important;
  }

  .first-visit-summary__eyebrow,
  .first-visit-summary__belongings,
  .first-visit-summary__cutoff-label {
    display: none !important;
  }

  .first-visit-summary__body h2 {
    margin: 0 !important;
    font-size: 18px !important;
    line-height: 1.35 !important;
  }

  .first-visit-summary__lead {
    margin: 8px 0 !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
  }

  .first-visit-summary__guide {
    display: block !important;
    height: auto !important;
    margin: 0 !important;
  }

  .first-visit-summary__notice {
    padding: 8px !important;
  }

  .first-visit-summary__guide-title {
    gap: 4px !important;
  }

  .first-visit-summary__guide-title > span {
    display: none !important;
  }

  .first-visit-summary__guide-title strong {
    font-size: 10.5px !important;
    line-height: 1.35 !important;
  }

  .first-visit-summary__guide-title br {
    display: none !important;
  }

  .first-visit-summary__cutoff {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1px !important;
    margin-top: 5px !important;
  }

  .first-visit-summary__cutoff span {
    font-size: 10.5px !important;
    white-space: nowrap;
  }

  .first-visit-summary__button {
    grid-area: button !important;
    min-height: 42px !important;
    height: 42px !important;
    padding: 0 16px !important;
  }

  #contact-lens-care {
    padding: 30px 14px !important;
  }

  #contact-lens-care .top-contact-feature__hero {
    display: flex !important;
    flex-direction: column !important;
    height: auto !important;
  }

  #contact-lens-care .top-contact-feature__intro {
    display: contents !important;
  }

  #contact-lens-care .contact-intro-layout,
  #contact-lens-care .contact-intro-copy {
    display: contents !important;
  }

  #contact-lens-care .top-contact-feature__label {
    order: 1;
    align-self: flex-start;
    margin-bottom: 7px !important;
  }

  #contact-lens-care h2 {
    order: 2;
    margin: 0 !important;
    font-size: 25px !important;
    line-height: 1.25 !important;
  }

  #contact-lens-care h2 br {
    display: none !important;
  }

  #contact-lens-care h3 {
    order: 3;
    margin: 7px 0 12px !important;
    font-size: 14px !important;
  }

  #contact-lens-care .top-contact-feature__photo {
    order: 4 !important;
    width: 100% !important;
    height: 205px !important;
    border-radius: 11px !important;
  }

  #contact-lens-care .top-contact-feature__photo img {
    width: 100% !important;
    height: 205px !important;
    object-fit: cover !important;
    object-position: center 38% !important;
  }

  #contact-lens-care .top-contact-feature__lead {
    order: 5;
    margin: 11px 0 0 !important;
    font-size: 13px !important;
    line-height: 1.55 !important;
  }

  #contact-lens-care .contact-product-visual,
  #contact-lens-care .contact-support-list,
  #contact-lens-care .top-contact-feature__grid {
    display: none !important;
  }

  #contact-lens-care .contact-hours-panel {
    min-height: 0 !important;
    margin: 12px 0 0 !important;
    padding: 9px 10px !important;
  }

  #contact-lens-care .contact-hours-panel__title strong {
    font-size: 11px !important;
    line-height: 1.35 !important;
  }

  #contact-lens-care .contact-hours-panel__title br {
    display: none !important;
  }

  #contact-lens-care .contact-hours-panel > div strong {
    font-size: 21px !important;
  }

  #contact-lens-care .contact-hours-panel p {
    margin-top: 5px !important;
    font-size: 10px !important;
    line-height: 1.4 !important;
  }

  #contact-lens-care .mobile-section-link {
    min-height: 42px !important;
    margin-top: 10px !important;
    padding: 8px 12px !important;
    font-size: 13px !important;
  }

  .top-director {
    padding-top: 28px !important;
    padding-bottom: 28px !important;
  }

  .top-director__word,
  .top-director__decor,
  .top-director__badge,
  .top-director__label {
    display: none !important;
  }

  .top-director .top-unified-head {
    height: auto !important;
    margin-bottom: 10px !important;
    padding: 0 !important;
  }

  .top-director .top-unified-head p {
    display: none !important;
  }

  .top-director__grid {
    height: auto !important;
    margin-top: 8px !important;
  }

  .top-director__name h2 {
    font-size: 25px !important;
  }

  .top-director__photo--mobile,
  .top-director__photo--mobile img {
    height: 215px !important;
  }

  .top-director__photo--mobile {
    margin-top: 9px !important;
  }

  .top-director__lead {
    margin-top: 9px !important;
    font-size: 14px !important;
    line-height: 1.55 !important;
  }

  .top-director__message {
    display: -webkit-box !important;
    max-height: 44px;
    margin-top: 6px !important;
    overflow: hidden;
    font-size: 12px !important;
    line-height: 1.5 !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .top-director__link {
    min-height: 42px !important;
    height: 42px !important;
    margin-top: 10px !important;
    padding: 8px 11px !important;
    font-size: 13px !important;
  }

  .top-access__panel--map {
    padding: 18px 12px !important;
  }

  .top-access__panel--map > h2 {
    margin-bottom: 8px !important;
    font-size: 23px !important;
  }

  .top-access__panel--map > h2 svg {
    width: 23px !important;
    height: 23px !important;
  }

  .top-access__parking-photo {
    height: 128px !important;
    margin-top: 8px !important;
    border-radius: 10px !important;
  }

  .top-access__parking-photo img {
    width: 100% !important;
    height: 128px !important;
    object-fit: cover !important;
    object-position: center 62% !important;
  }

  .top-access__parking-photo figcaption {
    padding: 7px 9px !important;
  }

  .top-access__parking-photo figcaption strong {
    font-size: 13px !important;
  }

  .top-access__parking-photo figcaption span {
    display: none !important;
  }

  .top-access__map-grid {
    gap: 10px !important;
  }

  .top-access__map,
  .top-access__map iframe {
    height: 160px !important;
    min-height: 160px !important;
    border-radius: 9px !important;
  }

  #access .top-access__info dl {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 7px !important;
  }

  #access .top-access__info dl > div {
    box-sizing: border-box;
    min-width: 0;
    padding: 8px !important;
    border-radius: 8px !important;
  }

  #access .top-access__info dl > div:nth-child(3) {
    grid-column: 1 / -1;
  }

  #access .top-access__info dt {
    gap: 4px !important;
    font-size: 10.5px !important;
  }

  #access .top-access__info dt svg {
    width: 14px !important;
    height: 14px !important;
  }

  #access .top-access__info dd,
  #access .top-access__info dd a,
  #access .top-access__info small {
    min-height: 0 !important;
    font-size: 11px !important;
    line-height: 1.4 !important;
  }

  #access .top-access__info a[href^="tel:"] {
    min-height: 0 !important;
    font-size: 14px !important;
    white-space: nowrap;
  }

  #access .top-access__info .top-access__button {
    min-height: 42px !important;
    height: 42px !important;
    margin-top: 9px !important;
    padding: 8px 12px !important;
    font-size: 13px !important;
  }

  .mobile-quick-actions__phone-wrap a {
    gap: 8px !important;
  }

  .mobile-quick-actions__phone-wrap a svg {
    width: 23px !important;
    height: 23px !important;
    flex: 0 0 23px;
  }

  .mobile-quick-actions__phone-copy {
    display: block !important;
  }

  .mobile-quick-actions__phone-copy strong {
    color: inherit !important;
    font-size: clamp(14px, 4vw, 16px) !important;
    line-height: 1 !important;
    letter-spacing: .01em !important;
    white-space: nowrap;
  }
}

@media (max-width: 374px) {
  .header-01:not(.is-mobile-compact) .header-logo-image {
    width: 128px !important;
    max-width: 128px !important;
  }

  .header-01:not(.is-mobile-compact) .header-mobile-tagline {
    max-width: 122px !important;
    font-size: 8px !important;
  }

  .hero-05 > .mobile-hero-summary .mobile-hero-summary__lead {
    font-size: 10.8px !important;
  }
}

@media (max-width: 767px) {
  .header-01:not(.is-mobile-compact),
  .header-01:not(.is-mobile-compact) .header-05 {
    box-sizing: border-box !important;
    height: 58px !important;
    min-height: 58px !important;
  }

  .header-01.is-mobile-compact,
  .header-01.is-mobile-compact .header-05 {
    min-height: 46px !important;
  }

  .header-01:not(.is-mobile-compact) .header-06 {
    height: 48px !important;
  }

  .hero-05 > .today-hours .today-hours__row {
    gap: 2px !important;
    padding: 6px !important;
  }

  .hero-05 > .today-hours .today-hours__session {
    min-height: 0 !important;
    padding: 2px 6px !important;
  }

  .hero-05 > .today-hours .today-hours__link {
    height: 34px !important;
    padding: 6px 10px !important;
  }

  .top-access__panel--map > h2 {
    min-height: 0 !important;
    padding: 6px 10px !important;
  }

  .top-access__map-grid {
    margin-top: 10px !important;
  }

  .top-access__parking-photo,
  .top-access__parking-photo img {
    height: 112px !important;
  }

  .top-access__map,
  .top-access__map iframe {
    height: 144px !important;
    min-height: 144px !important;
  }

  #access .top-access__info dt {
    min-height: 0 !important;
    margin-bottom: 4px !important;
    padding: 0 !important;
  }

  #contact-lens-care .contact-hours-panel__title {
    width: 100% !important;
    min-width: 0 !important;
  }

  #contact-lens-care .contact-hours-panel__title strong {
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
  }

  .mobile-quick-actions__phone-wrap a {
    flex-direction: row !important;
    justify-content: center !important;
    align-items: center !important;
  }
}

/* 2026-09-03: Bright, clean first-view treatment. */
.hero-05 .hero-08 {
  background:
    linear-gradient(90deg, rgba(255, 255, 255, .78) 0%, rgba(242, 251, 255, .50) 31%, rgba(239, 249, 254, .15) 54%, rgba(255, 255, 255, 0) 74%),
    linear-gradient(180deg, rgba(255, 255, 255, .06) 52%, rgba(218, 242, 252, .18) 100%) !important;
}

.hero-05 .hero-09,
.hero-05 .hero-09 .hero-10,
.hero-05 .hero-09 .hero-11,
.hero-05 .hero-09 .hero-12,
.hero-05 .hero-09 .static-hero-copy-text,
.hero-05 .hero-09 .static-hero-char {
  color: #075995 !important;
  text-shadow: 0 1px 0 rgba(255, 255, 255, .95), 0 3px 16px rgba(255, 255, 255, .72) !important;
}

.hero-05 > .hero-surgery-record {
  box-sizing: border-box;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  aspect-ratio: 1 / 1 !important;
  border: 1px solid rgba(255, 255, 255, .88) !important;
  border-left: 1px solid rgba(255, 255, 255, .88) !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, .76) !important;
  box-shadow: 0 10px 30px rgba(20, 88, 119, .15) !important;
  -webkit-backdrop-filter: blur(10px) saturate(1.12) !important;
  backdrop-filter: blur(10px) saturate(1.12) !important;
  text-align: center !important;
}

.hero-05 > .hero-surgery-record > span,
.hero-05 > .hero-surgery-record > strong,
.hero-05 > .hero-surgery-record > strong > b,
.hero-05 > .hero-surgery-record > strong > em,
.hero-05 > .hero-surgery-record > small {
  color: #075995 !important;
  text-shadow: none !important;
}

@media (min-width: 768px) {
  .hero-05 .hero-09 {
    left: clamp(18px, 2.4vw, 36px) !important;
    padding: 8px 14px 12px !important;
    border-left: 0 !important;
    background: linear-gradient(90deg, rgba(255, 255, 255, .48), rgba(255, 255, 255, 0)) !important;
  }

  .hero-05 .hero-09 .static-hero-copy-text,
  .hero-05 .hero-09 .static-hero-char {
    font-size: clamp(2.5rem, 3.7vw, 3.55rem) !important;
  }

  .hero-05 > .hero-surgery-record {
    top: 14% !important;
    right: 145px !important;
    width: 244px !important;
    height: 244px !important;
    min-width: 244px !important;
    padding: 25px 22px !important;
  }

  .hero-05 > .hero-surgery-record > span {
    font-size: 13px !important;
    letter-spacing: .06em !important;
  }

  .hero-05 > .hero-surgery-record > strong {
    margin-top: 5px !important;
    font-size: 20px !important;
  }

  .hero-05 > .hero-surgery-record > strong > b {
    font-size: 56px !important;
  }

  .hero-05 > .hero-surgery-record > small {
    margin-top: 7px !important;
    font-size: 11px !important;
    line-height: 1.5 !important;
  }

  .hero-05 > .trust-strip--hero a {
    color: #0b5d84 !important;
    border-color: rgba(255, 255, 255, .72) !important;
    background: rgba(255, 255, 255, .64) !important;
    box-shadow: 0 7px 20px rgba(19, 91, 122, .10) !important;
    -webkit-backdrop-filter: blur(8px) saturate(1.08) !important;
    backdrop-filter: blur(8px) saturate(1.08) !important;
    text-shadow: none !important;
  }

  .hero-05 > .trust-strip--hero strong,
  .hero-05 > .trust-strip--hero span {
    color: #0b5d84 !important;
    text-shadow: none !important;
  }
}

@media (max-width: 767px) {
  .hero-05 > .hero-06::after {
    background:
      linear-gradient(135deg, rgba(255, 255, 255, .58) 0%, rgba(241, 250, 254, .24) 46%, rgba(255, 255, 255, 0) 68%),
      linear-gradient(180deg, rgba(255, 255, 255, 0) 66%, rgba(212, 239, 250, .20) 100%) !important;
  }

  .hero-05 .hero-09 {
    left: 10px !important;
    width: min(310px, calc(100% - 20px)) !important;
    padding-inline: 9px !important;
    border-left: 0 !important;
    background: rgba(255, 255, 255, .70) !important;
    box-shadow: 0 6px 20px rgba(10, 87, 122, .08) !important;
    -webkit-backdrop-filter: blur(3px) saturate(1.05) !important;
    backdrop-filter: blur(3px) saturate(1.05) !important;
  }

  .hero-05 .hero-09 .hero-10,
  .hero-05 .hero-09 .hero-11,
  .hero-05 .hero-09 .hero-12,
  .hero-05 .hero-09 .static-hero-char {
    font-size: clamp(26px, 7.2vw, 30px) !important;
  }

  .hero-05 > .mobile-hero-summary .mobile-hero-summary__lead {
    background: rgba(255, 255, 255, .74) !important;
    color: #173f55 !important;
  }

  .hero-05 > .hero-surgery-record {
    top: calc(clamp(368px, 96vw, 405px) - 128px) !important;
    right: auto !important;
    bottom: auto !important;
    left: 15px !important;
    width: 128px !important;
    height: 128px !important;
    min-width: 128px !important;
    padding: 13px 9px !important;
    border-radius: 50% !important;
    background: rgba(255, 255, 255, .82) !important;
  }

  .hero-05 > .hero-surgery-record > span {
    max-width: 98px !important;
    font-size: 8.5px !important;
    line-height: 1.35 !important;
    letter-spacing: .02em !important;
  }

  .hero-05 > .hero-surgery-record > strong {
    margin-top: 4px !important;
    font-size: 11px !important;
    white-space: nowrap !important;
  }

  .hero-05 > .hero-surgery-record > strong > b {
    font-size: 28px !important;
  }

  .hero-05 > .hero-surgery-record > small {
    display: none !important;
  }
}

/* 自由診療：スマホでは写真と要点を横にまとめ、各カードの高さを抑える */
@media (max-width: 767px) {
  .top-private-care .top-private-care__cards {
    gap: 10px !important;
  }

  .top-private-care .top-private-care__card {
    display: grid !important;
    grid-template-columns: 41% minmax(0, 1fr) !important;
    align-items: stretch !important;
    min-height: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border-radius: 13px !important;
  }

  .top-private-care .top-private-care__media {
    width: 100% !important;
    height: auto !important;
    min-height: 144px !important;
    aspect-ratio: auto !important;
    border-radius: 0 !important;
  }

  .top-private-care .top-private-care__media img {
    width: 100% !important;
    height: 100% !important;
    min-height: 144px !important;
    object-fit: cover !important;
  }

  .top-private-care .top-private-care__card[data-private-care-slug="orthokeratology"] img {
    object-position: 35% 50% !important;
  }

  .top-private-care .top-private-care__card[data-private-care-slug="rijusea-mini"] img {
    object-position: 36% 50% !important;
  }

  .top-private-care .top-private-care__card[data-private-care-slug="upneeq-mini"] img {
    object-position: 68% 50% !important;
  }

  .top-private-care .top-private-care__tag {
    top: 7px !important;
    left: 7px !important;
    padding: 3px 7px !important;
    font-size: 9px !important;
  }

  .top-private-care .top-private-care__tag--private {
    padding: 5px 9px !important;
    font-size: 10px !important;
  }

  .top-private-care .top-private-care__tag--selected {
    padding: 3px 7px !important;
    font-size: 8px !important;
  }

  .top-private-care .top-private-care__icon {
    top: 7px !important;
    right: 7px !important;
    width: 30px !important;
    height: 30px !important;
  }

  .top-private-care .top-private-care__icon svg {
    width: 18px !important;
    height: 18px !important;
  }

  .top-private-care .top-private-care__body {
    min-width: 0 !important;
    padding: 12px 12px 11px !important;
  }

  .top-private-care .top-private-care__card h3 {
    margin: 0 0 5px !important;
    font-size: 15px !important;
    line-height: 1.35 !important;
  }

  .top-private-care .top-private-care__card p {
    display: -webkit-box !important;
    margin: 0 !important;
    overflow: hidden !important;
    font-size: 12px !important;
    line-height: 1.5 !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .top-private-care .top-private-care__card a {
    min-height: 32px !important;
    margin-top: auto !important;
    padding-top: 6px !important;
    font-size: 12px !important;
  }
}

/* スマホFV：人物の顔を避けてコピーを右下へ置き、写真を縦長に見せる */
@media (max-width: 767px) {
  .hero-05 > .hero-06,
  .hero-05 > .hero-06 img,
  .hero-05 > .mobile-hero-summary {
    height: clamp(520px, 138vw, 590px) !important;
  }

  .hero-05 > .hero-06 img {
    object-position: 52% 50% !important;
  }

  .hero-05 .hero-09 {
    top: calc(clamp(520px, 138vw, 590px) - 250px) !important;
    right: 14px !important;
    left: auto !important;
    width: min(286px, calc(100% - 28px)) !important;
    padding: 8px 10px 9px !important;
    text-align: left !important;
  }

  .hero-05 .hero-09 .hero-10,
  .hero-05 .hero-09 .hero-11,
  .hero-05 .hero-09 .hero-12,
  .hero-05 .hero-09 .static-hero-char {
    font-size: clamp(27px, 7.5vw, 32px) !important;
    line-height: 1.25 !important;
  }

  .hero-05 > .mobile-hero-summary .mobile-hero-summary__lead {
    top: calc(clamp(520px, 138vw, 590px) - 140px) !important;
    right: 14px !important;
    left: auto !important;
    width: min(220px, calc(100% - 164px)) !important;
    max-width: none !important;
    padding: 6px 8px !important;
    font-size: 10.5px !important;
    line-height: 1.45 !important;
    white-space: normal !important;
  }

  .hero-05 > .hero-surgery-record {
    top: calc(clamp(520px, 138vw, 590px) - 138px) !important;
    left: 14px !important;
  }

  .hero-05 > .today-hours {
    width: calc(100% - 20px) !important;
    margin-top: -14px !important;
    padding: 8px 9px 8px !important;
  }

  .hero-05 > .today-hours .today-hours__head {
    margin-bottom: 4px !important;
    padding-bottom: 5px !important;
  }

  .hero-05 > .today-hours .today-hours__label {
    font-size: 14px !important;
  }

  .hero-05 > .today-hours .today-hours__date {
    padding: 3px 6px !important;
    font-size: 10px !important;
  }

  .hero-05 > .today-hours .today-hours__body,
  .hero-05 > .today-hours .today-hours__thursday {
    gap: 5px !important;
  }

  .hero-05 > .today-hours .today-hours__thursday {
    grid-template-columns: minmax(0, 1.8fr) minmax(76px, .62fr) !important;
  }

  .hero-05 > .today-hours .today-hours__row,
  .hero-05 > .today-hours .today-hours__session {
    min-height: 0 !important;
  }

  .hero-05 > .today-hours .today-hours__row {
    gap: 1px !important;
    padding: 5px 6px !important;
  }

  .hero-05 > .today-hours .today-hours__session {
    padding: 0 !important;
    font-size: 10px !important;
    line-height: 1.25 !important;
  }

  .hero-05 > .today-hours .today-hours__time {
    font-size: clamp(17px, 4.8vw, 20px) !important;
    line-height: 1.2 !important;
  }

  .hero-05 > .today-hours .today-hours__timeline,
  .hero-05 > .today-hours .today-hours__timeline b {
    font-size: 10px !important;
    line-height: 1.32 !important;
  }

  .hero-05 > .today-hours .today-hours__reception,
  .hero-05 > .today-hours .today-hours__contact {
    font-size: 9.5px !important;
    line-height: 1.32 !important;
  }

  .hero-05 > .today-hours .today-hours__note,
  .hero-05 > .today-hours .today-hours__note--thursday {
    margin-top: 2px !important;
    font-size: 8.8px !important;
    line-height: 1.35 !important;
    white-space: normal !important;
  }

  .hero-05 > .today-hours .today-hours__link {
    min-height: 30px !important;
    height: 30px !important;
    margin-top: 4px !important;
    padding: 4px 8px !important;
    font-size: 11px !important;
  }
}

/* スマホ表示の崩れ修正：初診案内・コンタクト・FAQ */
@media (max-width: 767px) {
  .first-visit-summary.first-visit-summary--photo {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-areas: "photo" "body" "button" !important;
    width: calc(100% - 32px) !important;
    max-width: 430px !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 18px auto 30px !important;
    padding: 0 !important;
    gap: 0 !important;
    overflow: hidden !important;
  }

  .first-visit-summary.first-visit-summary--photo > .first-visit-summary__photo {
    grid-area: photo !important;
    width: 100% !important;
    max-width: none !important;
    height: 150px !important;
    min-height: 150px !important;
    margin: 0 !important;
  }

  .first-visit-summary.first-visit-summary--photo > .first-visit-summary__photo img {
    width: 100% !important;
    height: 150px !important;
    min-height: 150px !important;
    object-fit: cover !important;
    object-position: 52% 38% !important;
  }

  .first-visit-summary.first-visit-summary--photo > .first-visit-summary__body {
    grid-area: body !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 16px !important;
  }

  .first-visit-summary.first-visit-summary--photo h2 {
    font-size: 21px !important;
    line-height: 1.35 !important;
  }

  .first-visit-summary.first-visit-summary--photo p.first-visit-summary__lead {
    display: flex !important;
    align-items: center !important;
    gap: 7px !important;
    margin: 7px 0 10px !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
  }

  .first-visit-summary.first-visit-summary--photo .first-visit-summary__lead > span {
    display: inline-grid !important;
    width: 22px !important;
    height: 22px !important;
    flex: 0 0 22px !important;
    place-items: center !important;
    border: 2px solid #176bc1 !important;
    border-radius: 50% !important;
    color: #176bc1 !important;
  }

  .first-visit-summary.first-visit-summary--photo .first-visit-summary__guide,
  .first-visit-summary.first-visit-summary--photo .first-visit-summary__notice {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
  }

  .first-visit-summary.first-visit-summary--photo .first-visit-summary__notice {
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 11px 12px !important;
  }

  .first-visit-summary.first-visit-summary--photo .first-visit-summary__guide-title {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
  }

  .first-visit-summary.first-visit-summary--photo .first-visit-summary__guide-title > span {
    display: inline-grid !important;
    width: 30px !important;
    height: 30px !important;
    flex: 0 0 30px !important;
    place-items: center !important;
    border-radius: 50% !important;
    background: #d84c4c !important;
    color: #fff !important;
  }

  .first-visit-summary.first-visit-summary--photo .first-visit-summary__guide-title strong {
    font-size: 13px !important;
    line-height: 1.4 !important;
  }

  .first-visit-summary.first-visit-summary--photo .first-visit-summary__cutoff-label {
    display: block !important;
    margin: 7px 0 3px !important;
    font-size: 11px !important;
  }

  .first-visit-summary.first-visit-summary--photo .first-visit-summary__cutoff {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    margin-top: 0 !important;
  }

  .first-visit-summary.first-visit-summary--photo .first-visit-summary__cutoff span {
    font-size: 12px !important;
    line-height: 1.35 !important;
    white-space: nowrap !important;
  }

  .first-visit-summary.first-visit-summary--photo .first-visit-summary__cutoff strong {
    font-size: 18px !important;
  }

  .first-visit-summary.first-visit-summary--photo > .first-visit-summary__button {
    position: static !important;
    grid-area: button !important;
    width: 100% !important;
    min-height: 42px !important;
    height: 42px !important;
    margin: 0 !important;
    border-radius: 0 !important;
  }

  #contact-lens-care .top-contact-feature__inner,
  #contact-lens-care .top-contact-feature__hero,
  #contact-lens-care .top-contact-feature__photo,
  #contact-lens-care .top-contact-feature__lead {
    box-sizing: border-box !important;
    max-width: 100% !important;
  }

  #contact-lens-care h2 {
    width: 100% !important;
    max-width: 100% !important;
    font-size: clamp(22px, 6.4vw, 25px) !important;
    line-height: 1.3 !important;
    letter-spacing: 0 !important;
    overflow-wrap: normal !important;
    word-break: keep-all !important;
  }

  #contact-lens-care h2 br {
    display: block !important;
  }

  #faq .faq-03,
  #faq .faq-04 {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  #faq .faq-04 {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    min-height: 58px !important;
    padding: 12px 14px !important;
  }

  #faq .faq-04 .header-16 {
    position: static !important;
    display: flex !important;
    flex-direction: row !important;
    flex: 1 1 auto !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    background: transparent !important;
  }

  #faq .faq-05 {
    width: 30px !important;
    height: 30px !important;
    flex: 0 0 30px !important;
  }

  #faq .faq-06 {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    color: #163f52 !important;
    font-size: 14px !important;
    line-height: 1.55 !important;
    letter-spacing: 0 !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
    writing-mode: horizontal-tb !important;
  }

  #faq .faq-04 > svg {
    width: 22px !important;
    height: 22px !important;
    flex: 0 0 22px !important;
  }
}

/* Final mobile surface/action overrides. Kept last so older tuning cannot restore card-heavy styling. */
@media (max-width: 767px) {
  .top-specialty__cards,
  .top-private-care .top-private-care__cards,
  #faq .specialty-15 {
    gap: 0 !important;
  }

  .top-specialty-card,
  .top-private-care .top-private-care__card,
  #faq .faq-03 {
    overflow: visible !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(26, 139, 190, .24) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .top-specialty-card {
    padding: 20px 0 22px !important;
  }

  .top-private-care .top-private-care__card {
    padding: 11px 0 !important;
  }

  .top-specialty-card:last-child,
  .top-private-care .top-private-care__card:last-child,
  #faq .faq-03:last-child {
    border-bottom: 0 !important;
  }

  .top-specialty-card__photo,
  .top-specialty-card__photo img,
  .top-private-care .top-private-care__media,
  .top-private-care .top-private-care__media img {
    overflow: hidden !important;
    border-radius: 10px !important;
  }

  #faq .faq-04 {
    min-height: 58px !important;
    padding: 12px 2px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  #faq .faq-07 {
    padding: 2px 2px 16px !important;
  }

  .mobile-quick-actions {
    left: 10px !important;
    right: 10px !important;
    bottom: max(7px, env(safe-area-inset-bottom)) !important;
    z-index: 120 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr) !important;
    gap: 9px !important;
    width: auto !important;
    height: 55px !important;
    min-height: 55px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    pointer-events: none;
  }

  .mobile-quick-actions__phone-wrap,
  .mobile-hours-toggle,
  .mobile-quick-actions__phone-wrap a {
    height: 55px !important;
    min-height: 55px !important;
    pointer-events: auto;
  }

  .mobile-quick-actions__phone-wrap a,
  .mobile-hours-toggle {
    box-sizing: border-box !important;
    transform: none !important;
    border-radius: 14px !important;
    box-shadow: 0 9px 24px rgba(3, 72, 111, .23), 0 2px 5px rgba(3, 72, 111, .12), inset 0 1px 0 rgba(255, 255, 255, .72) !important;
  }

  .mobile-quick-actions__phone-wrap a {
    position: relative;
    gap: 9px !important;
    justify-content: center !important;
    border: 1px solid #0786c8 !important;
    background: linear-gradient(145deg, #12a6e4 0%, #0577bd 67%, #0467aa 100%) !important;
    color: #fff !important;
  }

  .mobile-quick-actions__phone-wrap a::after {
    content: "電話する";
    position: absolute;
    top: 5px;
    left: 10px;
    padding: 1px 5px;
    border-radius: 4px;
    background: rgba(255, 255, 255, .16);
    color: rgba(255, 255, 255, .92);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .08em;
  }

  .mobile-quick-actions__phone-wrap a svg {
    width: 21px !important;
    height: 21px !important;
    flex: 0 0 21px !important;
  }

  .mobile-quick-actions__phone-copy strong {
    font-size: clamp(14px, 4.15vw, 17px) !important;
    line-height: 1 !important;
    letter-spacing: .015em !important;
    white-space: nowrap !important;
  }

  .mobile-hours-toggle {
    display: grid !important;
    grid-template-columns: 22px minmax(0, 1fr) 22px !important;
    gap: 7px !important;
    align-items: center !important;
    padding: 6px 9px !important;
    border: 1px solid #4aaad1 !important;
    background: linear-gradient(145deg, rgba(255, 255, 255, .99), rgba(225, 246, 254, .98)) !important;
    color: #075f93 !important;
  }

  .mobile-hours-toggle > svg {
    width: 21px !important;
    height: 21px !important;
  }

  .mobile-hours-toggle__copy {
    display: grid;
    min-width: 0;
    gap: 1px;
    text-align: left;
  }

  .mobile-hours-toggle__copy strong {
    font-size: 13px !important;
    line-height: 1.15 !important;
    white-space: nowrap;
  }

  .mobile-hours-toggle__hint {
    color: #397b9d;
    font-size: 8.5px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .02em;
    white-space: nowrap;
  }

  .mobile-hours-toggle__chevron {
    position: relative;
    display: grid;
    width: 22px;
    height: 22px;
    place-items: center;
    border-radius: 50%;
    background: #078dcc;
    transition: transform .22s ease, background .22s ease;
  }

  .mobile-hours-toggle__chevron::after {
    content: "";
    width: 6px;
    height: 6px;
    margin-top: -3px;
    transform: rotate(45deg);
    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;
  }

  .mobile-hours-toggle[aria-expanded="true"] {
    border-color: #087eb6 !important;
    background: linear-gradient(145deg, #e4f7ff, #c9edf9) !important;
    box-shadow: 0 4px 12px rgba(3, 72, 111, .16), inset 0 2px 4px rgba(4, 93, 137, .08) !important;
  }

  .mobile-hours-toggle[aria-expanded="true"] .mobile-hours-toggle__chevron {
    transform: rotate(180deg);
    background: #056da9;
  }

  .mobile-quick-actions__phone-wrap a:active,
  .mobile-hours-toggle:active {
    transform: translateY(2px) scale(.985) !important;
    box-shadow: 0 3px 8px rgba(3, 72, 111, .19), inset 0 2px 4px rgba(3, 72, 111, .12) !important;
  }

  .mobile-quick-actions__bubble {
    top: -22px !important;
    left: 6px !important;
    padding: 2px 7px !important;
    border-color: rgba(37, 144, 190, .45) !important;
    border-radius: 6px !important;
    background: rgba(255, 255, 255, .96) !important;
    color: #075f8f !important;
    font-size: 8.5px !important;
    box-shadow: 0 3px 10px rgba(3, 72, 111, .12) !important;
  }

  .mobile-quick-actions.is-over-site-footer .mobile-quick-actions__phone-wrap a {
    border-color: rgba(255, 255, 255, .72) !important;
    background: linear-gradient(145deg, #087cba, #064d7c) !important;
    color: #fff !important;
    box-shadow: 0 9px 22px rgba(0, 25, 42, .36), inset 0 1px 0 rgba(255, 255, 255, .3) !important;
  }

  .mobile-quick-actions.is-over-site-footer .mobile-hours-toggle {
    border-color: #fff !important;
    background: rgba(255, 255, 255, .96) !important;
    box-shadow: 0 9px 22px rgba(0, 25, 42, .32) !important;
  }

  .mobile-hours-sheet__panel {
    border: 1px solid rgba(102, 190, 224, .65) !important;
    border-bottom: 0 !important;
    border-radius: 22px 22px 0 0 !important;
    background: rgba(248, 253, 255, .94) !important;
    box-shadow: 0 -16px 44px rgba(1, 55, 88, .22) !important;
    backdrop-filter: blur(18px) saturate(1.15);
    -webkit-backdrop-filter: blur(18px) saturate(1.15);
  }
}

@media (max-width: 374px) {
  .mobile-quick-actions {
    left: 7px !important;
    right: 7px !important;
    gap: 6px !important;
  }

  .mobile-hours-toggle {
    grid-template-columns: 19px minmax(0, 1fr) 20px !important;
    gap: 5px !important;
    padding-inline: 7px !important;
  }

  .mobile-hours-toggle__copy strong {
    font-size: 12px !important;
  }

  .mobile-quick-actions__phone-copy strong {
    font-size: 14px !important;
  }
}
