/* Smartphone presentation only. app/layout enables this entire stylesheet for
   the stable phone device mode, independently from portrait/landscape width. */
  .hero-review {
    width: 100%;
    min-width: 0;
    overflow-x: clip;
    overflow-wrap: anywhere;
  }
  .hero-review :is(h1, h2, h3, p) { word-break: keep-all; }

  /* Ignore desktop editor offsets without changing the stored coordinates.
     Image crop settings and animation transforms are intentionally preserved. */
  .hero-review [style*="translate:"] {
    translate: none !important;
    scale: 1 !important;
  }
  .hero-review .layout-item:not(.is-editing) { outline: none; }

  .hero-review :is(.layout-item, .page-layout-item, .process-layout-item, .tab-page-item, .before-layout-item) {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    transform: none !important;
  }

  /* MobileImageFrame is selected by the same stable device mode. Repeat its
     slot geometry here so a landscape phone is not dependent on <=700px CSS. */
  .hero-review .hm-image-slot { position: relative; min-width: 0; padding: 0; border: 0; }
  .hero-review .hm-image-slot > img { position: absolute !important; inset: auto !important; left: 0 !important; top: 0 !important; width: 100%; height: 100%; max-width: none !important; max-height: none !important; min-height: 0 !important; flex: none !important; }
  .hero-review .hm-image-slot-before { width: 100%; aspect-ratio: var(--hm-source-ratio, 1672 / 941); }
  .hero-review .hm-image-slot-service { flex: 1 1 0; height: 178px; min-height: 0; }
  .hero-review .hm-image-slot-service > img { height: 100% !important; }
  .hero-review .hm-image-slot-hospital { width: 100%; max-width: 108px; height: 46px; }
  .hero-review .hm-image-slot-clinic { grid-row: 1 / 3; width: 68px; height: 38px; }
  .hero-review .hm-image-slot-news { width: 100%; height: 100%; }
  .hero-review .heer-entry-media > .hm-image-slot-entry { position: absolute; inset: 0; width: 100%; height: 100%; }
  .hero-review[data-hm-edit-mode="select"] .hm-image-slot > img,
  .hero-review[data-hm-edit-mode="move"] .hm-image-slot > img { pointer-events: auto !important; }

  .hero-review > .section-shell {
    min-height: 0;
    padding: 40px 22px 48px;
    scroll-margin-top: 162px;
  }

  /* The opening image/video retains its selected crop; content can grow on
     short screens instead of being clipped by an absolute-height scene. */
  .hero-review .opening-screen {
    height: auto;
    min-height: 100svh;
    padding: 0;
  }
  .opening-screen .heer-entry-media { height: 100%; }
  .opening-screen .hero-content {
    position: relative;
    inset: auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 52px;
    min-height: 100svh;
    padding: max(64px, env(safe-area-inset-top)) 22px max(96px, env(safe-area-inset-bottom));
  }
  .opening-screen .hero-brand { margin: 0; }
  .opening-screen .hero-brand h1 {
    font-size: clamp(72px, 21vw, 110px);
    line-height: 1;
  }
  .opening-screen .hero-brand p {
    margin: 24px 0 0;
    font-size: 14px;
    line-height: 1.65;
    letter-spacing: .16em;
  }
  .opening-screen .language-selector {
    position: relative;
    inset: auto;
    display: grid;
    gap: 24px;
    width: 100%;
    transform: none;
  }
  .opening-screen .language-prompt {
    font-size: 12px;
    line-height: 1.5;
    letter-spacing: .2em;
    white-space: normal;
  }
  .opening-screen .language-list.layout-item {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px 10px;
    max-width: 440px;
    margin: 0 auto;
  }
  .language-list button { min-height: 82px; gap: 10px; }
  .hero-review .flag-disc { width: 48px; height: 48px; flex: 0 0 48px; }
  .language-list strong { font-size: 14px; line-height: 1.35; letter-spacing: 0; }
  .opening-screen .video-controls {
    left: 22px;
    bottom: max(20px, env(safe-area-inset-bottom));
    transform: none;
  }
  .video-controls button { width: 44px; height: 44px; }

  /* Every navigation destination remains visible and usable without hover. */
  .hero-review > .site-header {
    grid-template-columns: minmax(0, 1fr) 44px;
    gap: 0 12px;
    height: auto;
    padding: 6px 16px 0;
  }
  .site-header .header-logo { grid-column: 1; width: 40px; height: 52px; }
  .site-header .globe {
    grid-column: 2;
    grid-row: 1;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
  }
  .site-header .globe img { width: 28px; height: 28px; }
  .site-header nav {
    grid-column: 1 / -1;
    grid-row: 2;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0 8px;
    width: 100%;
    overflow: visible;
    white-space: normal;
  }
  .site-header nav a,
  .site-header nav a.news-image-link {
    display: flex;
    justify-content: center;
    align-items: center;
    min-width: 0;
    min-height: 48px;
    padding: 8px 2px;
    text-align: center;
    font-size: 14px;
    line-height: 1.3;
    letter-spacing: 0;
  }
  .site-header nav a.news-image-link { order: 1; }
  .site-header .news-tab-image { width: 64px; height: auto; }

  .hero-review > .identity-section:not([hidden]) {
    display: flex;
    flex-direction: column;
    gap: 32px;
  }
  .identity-section .identity-mark.page-layout-item {
    order: -1;
    flex: 0 0 auto;
    align-self: center;
    width: 110px !important;
    height: 164px !important;
    margin: 0;
  }
  .identity-copy h1 { margin: 0 0 20px; font-size: 32px; line-height: 1.3; }
  .identity-copy .identity-story-lead { font-size: 23px; line-height: 1.5; }
  .identity-story-body { gap: 18px; }
  .identity-story-body p { font-size: 16px; line-height: 1.8; word-break: keep-all; }
  .identity-benefits.page-layout-item { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 12px; }
  .identity-benefits > span { min-height: 48px; padding: 8px 10px; font-size: 14px; line-height: 1.55; word-break: normal; }

  .hero-review > .why-process:not([hidden]) { display: flex; flex-direction: column; gap: 22px; }
  .why-title h2,
  .process-title h2 { font-size: 29px; line-height: 1.4; margin: 12px 0 0; }
  .why-description.process-layout-item { font-size: 16px; line-height: 1.8; }
  .why-card.process-layout-item { min-height: 0; padding: 26px 24px; }
  .why-card h3 { margin: 18px 0 12px; font-size: 22px; line-height: 1.45; }
  .why-card p { font-size: 16px; line-height: 1.75; }
  .why-card small { font-size: 14px; }
  .why-card.process-layout-item:not(.is-editing):hover { transform: none !important; }
  .process-title.process-layout-item { margin-top: 24px; }
  .process-steps-line { display: none; }
  .process-step.process-layout-item {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    column-gap: 16px;
    padding: 0 0 22px;
    border-bottom: 1px solid var(--line);
    text-align: left;
  }
  .process-step > span { grid-row: 1 / 3; width: 44px; height: 44px; margin: 0; font-size: 14px; }
  .process-step h3 { margin: 0 0 8px; font-size: 18px; line-height: 1.45; }
  .process-step p { grid-column: 2; max-width: none; margin: 0; font-size: 16px; line-height: 1.7; }
  .process-closing.process-layout-item { padding-top: 8px; border-top: 0; font-size: 20px; line-height: 1.6; }

  .section-shell .eyebrow { font-size: 12px; line-height: 1.5; }
  .medical-services .section-heading { margin-bottom: 30px; }
  .medical-services .section-heading h2 { font-size: 30px; line-height: 1.4; }
  .medical-services .section-heading > p:not(.eyebrow) { font-size: 16px; line-height: 1.75; }
  .medical-services .service-grid { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .medical-services .service-card-flip:nth-child(n) { grid-column: 1; min-width: 0; transform: none; }
  .service-card-inner,
  .service-featured .service-card-inner { display: grid; aspect-ratio: auto; min-height: 420px; }
  .service-card-face { position: relative; inset: auto; grid-area: 1 / 1; min-width: 0; height: auto; }
  .service-card-front img { flex: 1 1 0; height: 260px; min-height: 0; }
  .service-front-label,
  .service-featured .service-front-label { min-height: 92px; gap: 12px; padding: 20px; }
  .service-front-label strong,
  .service-featured .service-front-label strong { font-size: 23px; line-height: 1.4; }
  .service-front-label em { font-size: 14px; line-height: 1.5; }
  .service-card-back { padding: 28px 20px; }
  .service-back-content { height: auto; }
  .service-card-back small { font-size: 12px; line-height: 1.5; }
  .service-card-back strong { font-size: 24px; line-height: 1.35; margin: 16px 0; }
  .service-back-list { font-size: 16px; line-height: 1.6; gap: 5px; }
  .service-card-back em { font-size: 14px; line-height: 1.5; margin-top: 20px; }

  /* The original scene remains intact. The same case buttons follow it in
     the document flow, where their labels and tap areas can stay legible. */
  .hero-review > .before-after { overflow: hidden; padding: 0 0 40px; }
  .before-scene.before-layout-item { min-width: 0; }
  .before-reference-image { width: 100%; height: auto; }
  .before-case-hotspots { position: relative; inset: auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 24px 22px 0; }
  .case-hotspot.before-layout-item:not(.is-editing) {
    min-height: 52px;
    padding: 12px 10px;
    border-radius: 12px;
  }
  .case-hotspot:not(.is-editing) span { font-size: 16px; line-height: 1.4; white-space: normal; }
  .hero-review .case-hotspot.before-layout-item:not(.is-editing):is(:hover, :focus-visible) { transform: none !important; }
  .case-hotspot:disabled { opacity: .5; cursor: default; }

  .partner-hero { grid-template-columns: minmax(0, 1fr); gap: 14px; margin-bottom: 22px; }
  .partner-heading h2 { font-size: 30px; line-height: 1.32; }
  .partner-lead { border-left: 0 !important; padding-left: 0 !important; }
  .partner-lead p { max-width: none; font-size: 14px; line-height: 1.7; }
  .partner-lead span { font-size: 11px; line-height: 1.4; }
  .partner-network-grid { gap: 18px; }
  .partner-clinic-row { display: block; }
  .partner-network-panel { border-radius: 10px; overflow: hidden; }
  .partner-network-panel > header { padding: 14px 12px; grid-template-columns: 24px minmax(0, 1fr); gap: 8px; }
  .partner-network-panel > header h3 { font-size: 19px; line-height: 1.35; }
  .partner-network-panel > header small { font-size: 10px; }
  .partner-logo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .partner-hospital-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 10px; }
  .partner-hospital-grid .partner-logo-card {
    display:flex; flex-direction:column; justify-content:center; align-items:center;
    min-width:0; min-height:112px; padding:12px 8px; gap:8px; text-align:center;
  }
  .partner-hospital-grid .partner-logo-card img { width:100%; max-width:108px; height:46px; object-fit:contain; }
  .partner-hospital-grid .partner-logo-card > span { font-size:12px; line-height:1.35; text-align:center; }
  .partner-hospital-grid .partner-logo-card > em { font-size:10px; line-height:1.3; text-align:center; }

  .partner-clinic-accordion { display:block; padding:0 12px 10px; }
  .partner-clinic-group { border:0; border-top:1px solid var(--line); border-radius:0; overflow:visible; background:transparent; }
  .partner-clinic-group:last-child { border-bottom:1px solid var(--line); }
  .partner-clinic-group > summary {
    list-style:none; display:grid; grid-template-columns:minmax(0,1fr) auto 18px; align-items:center; gap:8px;
    min-height:50px; padding:0 2px; cursor:pointer; user-select:none; font-size:14px; line-height:1.25;
  }
  .partner-clinic-group > summary::-webkit-details-marker { display:none; }
  .partner-clinic-group > summary small { font-size:10px; font-variant-numeric:tabular-nums; color:#7b7d80; }
  .partner-clinic-group > summary i { width:8px; height:8px; border-right:1.25px solid currentColor; border-bottom:1.25px solid currentColor; transform:rotate(45deg) translateY(-2px); transition:transform .2s ease; justify-self:center; }
  .partner-clinic-group[open] > summary i { transform:rotate(225deg) translate(-2px,-2px); }
  .partner-clinic-group[open] > summary { border-bottom:0; }
  .partner-clinic-group-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:0; padding:0 0 8px; }
  .partner-clinic-group-grid .partner-logo-card {
    display:grid; grid-template-columns:72px minmax(0,1fr); grid-template-rows:auto auto; align-items:center;
    min-width:0; min-height:70px; padding:10px 0; gap:2px 12px; border:0; border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent); border-radius:0; box-shadow:none; background:transparent; text-align:left;
  }
  .partner-clinic-group-grid .partner-logo-card img { grid-row:1 / 3; width:68px; max-width:68px; height:38px; object-fit:contain; }
  .partner-clinic-group-grid .partner-logo-card > span,
  .partner-clinic-group-grid .partner-card-heer em { font-size:12px; line-height:1.35; text-align:left; }
  .partner-clinic-group-grid .partner-logo-card > em { font-size:9px; line-height:1.3; text-align:left; }

  .partner-summary-below { display:flex; flex-direction:column; align-items:center; gap:10px; min-height:0; padding:28px 16px 6px; text-align:center; }
  .partner-summary-below .partner-count { flex-direction:row; align-items:center; justify-content:center; gap:10px; white-space:normal; text-align:center; }
  .partner-count strong { font-size:48px; line-height:.95; }
  .partner-count sup { font-size:20px; }
  .partner-count span { font-size:12px; line-height:1.2; letter-spacing:.08em; text-align:left; }
  .partner-summary-below .partner-note { max-width:290px; margin:0 auto; font-size:12px; line-height:1.6; text-align:center; }

  .news-section > .section-heading { margin-bottom: 30px; }
  .news-section > .section-heading h2 { font-size: 48px; }
  .news-section .section-heading > p:not(.eyebrow) { font-size: 16px; line-height: 1.75; }
  .news-section .news-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .news-section .news-grid article:nth-child(n) { margin: 0; }
  .news-card-copy { padding: 22px 18px; }
  .news-card-copy p { font-size: 13px; line-height: 1.6; }
  .news-card-copy h3 { font-size: 23px; line-height: 1.45; }
  .news-card-copy button { min-height: 44px; font-size: 14px; }
  .news-section > footer { font-size: 14px; }

  .hero-review > .legal-footer {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
    padding: 32px 22px 120px;
  }
  .legal-footer-links { flex-wrap: wrap; gap: 8px 20px; }
  .legal-footer-links a { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; }
  .legal-footer-contact { justify-items: start; gap: 10px; white-space: normal; font-size: 14px; line-height: 1.6; }
  .legal-footer-contact a { display: inline-flex; align-items: center; min-height: 44px; }
  .legal-footer-pending { grid-column: 1; font-size: 12px; line-height: 1.75; }
  .legal-footer > small { justify-self: start; font-size: 12px; line-height: 1.6; }
  .legal-footer-brand p { font-size: 12px; }
  .hero-review > .heer-contact-dock {
    --contact-size: 48px !important;
    flex-direction: row;
    bottom: max(16px, env(safe-area-inset-bottom));
    gap: 8px;
  }
  .hero-review > .heer-contact-right { right: 12px; }
  .hero-review > .heer-contact-left { left: 12px; }
  .hero-review .heer-contact-main :is(svg, img) { width: 23px; height: 23px; }
  body:has(.case-dialog, .news-detail-dialog) .heer-contact-dock { visibility: hidden; }

  .case-overlay { padding: 12px; }
  .case-dialog.case-dialog-swipe { width: calc(100vw - 24px); max-height: calc(100dvh - 24px); padding: 60px 16px 24px !important; }
  .case-dialog h2 { font-size: 30px !important; }
  .case-dialog header > p:last-child { font-size: 14px; line-height: 1.6; }
  .case-overlay .dialog-x,
  .news-detail-close { width: 44px; height: 44px; top: 10px; right: 10px; }
  .case-swipe-title,
  .case-swipe-instruction,
  .case-swipe-description { font-size: 14px; line-height: 1.6; }
  .case-swipe-pair figcaption { font-size: 12px; }
  .case-swipe-navigation { flex-wrap: wrap; justify-content: center; gap: 0; }
  .case-swipe-navigation button { width: 44px; min-height: 44px; }
  .case-swipe-combined img { height: auto; max-height: 65dvh; }
  .news-detail-dialog { width: 100%; min-width: 0; max-height: calc(100dvh - 28px); }
  .news-detail-visual { padding: 64px 16px 16px; }
  .news-detail-visual img { max-width: 100%; max-height: none; height: auto; }
  .news-detail-copy { padding: 24px 22px 32px; }
  .news-detail-copy h2 { font-size: 28px; line-height: 1.4; }
  .news-detail-body { font-size: 16px; line-height: 1.75; }
