@charset "UTF-8";
/* ==========================================================================
   swift-en.css — shared stylesheet for the English section (/en/).
   The Japanese pages carry their CSS inline, page by page. The English pages
   do not: they all load this one file. Keep it that way — 11 pages sharing a
   stylesheet is the only reason the English section stays editable.
   Design tokens are copied from the Japanese pages so both halves of the site
   look like one clinic. Typography is not: Yu Mincho renders Latin text badly,
   so English body copy uses a Latin sans stack.
   ========================================================================== */

:root{
  --swift-navy:#0b2f5b;
  --swift-navy-soft:#16406f;
  --swift-gold:#ac9367;
  --swift-gold-soft:#c9b48f;
  --swift-white:#ffffff;
  --swift-bg:#f7f6f3;
  --swift-text:#2f3033;
  --swift-muted:#686d75;
  --swift-line:rgba(11,47,91,.12);
  --swift-display:"Playfair Display",Georgia,"Times New Roman",serif;
  --swift-body:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif;
  --swift-header-h:70px;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  font-family:var(--swift-body);
  color:var(--swift-text);
  background:var(--swift-white);
  line-height:1.75;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  padding-top:var(--swift-header-h);
}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
table{border-collapse:collapse;width:100%;}
:focus-visible{outline:2px solid var(--swift-gold);outline-offset:2px;}

.swift-container{width:100%;max-width:1120px;margin:0 auto;padding:0 24px;}
.swift-narrow{max-width:860px;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* ============ HEADER ============ */
.swift-header{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  height:var(--swift-header-h);
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--swift-line);
}
.swift-header__inner{
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  height:100%;max-width:1400px;margin:0 auto;padding:0 24px;
}
.swift-logo{flex-shrink:0;}
.swift-logo img{max-height:36px;max-width:100%;width:auto;height:auto;}
.swift-header__right{display:flex;align-items:center;gap:12px;flex-shrink:0;}

.swift-nav__list{display:flex;align-items:center;gap:18px;list-style:none;}
.swift-nav__list > li > a{
  font-size:13px;letter-spacing:.04em;color:var(--swift-navy);
  white-space:nowrap;padding:6px 0;border-bottom:1px solid transparent;
  transition:border-color .2s,color .2s;
}
.swift-nav__list > li > a:hover{border-bottom-color:var(--swift-gold);}

.swift-btn{
  display:inline-flex;align-items:center;justify-content:center;
  font-size:13px;letter-spacing:.06em;white-space:nowrap;
  padding:11px 22px;border-radius:2px;transition:opacity .2s,background .2s;
}
.swift-btn--navy{background:var(--swift-navy);color:#fff;}
.swift-btn--navy:hover{background:var(--swift-navy-soft);}
.swift-btn--gold{background:var(--swift-gold);color:#fff;}
.swift-btn--gold:hover{opacity:.88;}
.swift-btn--ghost{border:1px solid var(--swift-navy);color:var(--swift-navy);}
.swift-btn--ghost:hover{background:var(--swift-navy);color:#fff;}

/* language switch — the only way a Japanese reader finds the English side */
.swift-lang{
  display:inline-flex;align-items:center;font-size:12px;letter-spacing:.08em;
  border:1px solid var(--swift-line);border-radius:2px;overflow:hidden;
}
.swift-lang a{padding:6px 11px;color:var(--swift-muted);transition:background .2s,color .2s;}
.swift-lang a[aria-current="true"]{background:var(--swift-navy);color:#fff;}
.swift-lang a:not([aria-current="true"]):hover{background:rgba(11,47,91,.06);color:var(--swift-navy);}

.swift-hamburger{
  display:none;width:34px;height:26px;background:none;border:0;cursor:pointer;
  position:relative;flex-shrink:0;
}
.swift-hamburger span{
  position:absolute;left:3px;right:3px;height:1.5px;background:var(--swift-navy);
  transition:transform .28s,opacity .2s;
}
.swift-hamburger span:nth-child(1){top:4px;}
.swift-hamburger span:nth-child(2){top:12px;}
.swift-hamburger span:nth-child(3){top:20px;}
.swift-hamburger.is-open span:nth-child(1){transform:translateY(8px) rotate(45deg);}
.swift-hamburger.is-open span:nth-child(2){opacity:0;}
.swift-hamburger.is-open span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}

/* ============ PAGE HERO ============ */
.swift-hero{
  background:linear-gradient(160deg,var(--swift-navy) 0%,#123a68 55%,#1b4c85 100%);
  color:#fff;padding:74px 0 66px;
}
.swift-hero__inner{max-width:1120px;margin:0 auto;padding:0 24px;}
.swift-hero__eyebrow{
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--swift-gold-soft);margin-bottom:16px;
}
.swift-hero h1{
  font-family:var(--swift-display);font-weight:600;
  font-size:clamp(28px,4.4vw,46px);line-height:1.25;letter-spacing:.005em;
}
.swift-hero__lead{
  margin-top:20px;max-width:720px;font-size:16px;line-height:1.85;
  color:rgba(255,255,255,.88);
}
.swift-hero__meta{
  display:flex;flex-wrap:wrap;gap:10px;margin-top:26px;
}
.swift-hero__meta span{
  font-size:12px;letter-spacing:.04em;padding:6px 13px;
  border:1px solid rgba(255,255,255,.34);border-radius:999px;
  color:rgba(255,255,255,.92);
}

/* ============ BREADCRUMB ============ */
.swift-crumb{border-bottom:1px solid var(--swift-line);background:#fff;}
.swift-crumb ol{
  display:flex;flex-wrap:wrap;gap:8px;list-style:none;
  max-width:1120px;margin:0 auto;padding:12px 24px;
  font-size:12px;color:var(--swift-muted);
}
.swift-crumb li+li::before{content:"/";margin-right:8px;color:var(--swift-line);}
.swift-crumb a:hover{color:var(--swift-navy);text-decoration:underline;}

/* ============ ANSWER BLOCK ============ */
/* Direct answer + fact pairs, sitting immediately under the hero so both a
   reader in a hurry and an answer engine get the point without scrolling. */
.swift-answer{
  background:var(--swift-bg);
  border-bottom:1px solid var(--swift-line);
  padding:34px 0;
}
.swift-answer__lead{
  font-size:17px;line-height:1.8;color:var(--swift-text);
}
.swift-answer__lead strong{color:var(--swift-navy);}
.swift-answer__facts{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:1px;margin-top:24px;
}
/* Hairlines are drawn per cell rather than by letting a container background
   show through the gaps: the last row is rarely full, and a grid background
   paints the leftover columns as a solid grey block. */
.swift-answer__facts > div{
  background:#fff;padding:15px 17px;
  box-shadow:0 0 0 1px var(--swift-line);
}
.swift-answer__facts dt{
  font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--swift-gold);margin-bottom:5px;
}
.swift-answer__facts dd{
  font-size:15px;line-height:1.55;color:var(--swift-navy);font-weight:600;
}

/* ============ SECTIONS ============ */
.swift-section{padding:72px 0;}
.swift-section--tint{background:var(--swift-bg);}
.swift-head{margin-bottom:34px;}
.swift-head__eyebrow{
  display:block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--swift-gold);margin-bottom:10px;
}
.swift-head h2{
  font-family:var(--swift-display);font-weight:600;
  font-size:clamp(23px,3vw,32px);line-height:1.35;color:var(--swift-navy);
}
.swift-head p{margin-top:14px;color:var(--swift-muted);max-width:760px;}

.swift-prose > * + *{margin-top:18px;}
.swift-prose h3{
  font-family:var(--swift-display);font-size:20px;font-weight:600;
  color:var(--swift-navy);margin-top:34px;line-height:1.4;
}
.swift-prose ul,.swift-prose ol{padding-left:1.25em;}
.swift-prose li+li{margin-top:8px;}
.swift-prose strong{color:var(--swift-navy);}
.swift-prose a{color:var(--swift-navy);text-decoration:underline;text-underline-offset:3px;}

/* ============ CARDS ============ */
.swift-grid{display:grid;gap:20px;}
.swift-grid--2{grid-template-columns:repeat(2,minmax(0,1fr));}
.swift-grid--3{grid-template-columns:repeat(3,minmax(0,1fr));}
.swift-grid--4{grid-template-columns:repeat(4,minmax(0,1fr));}

.swift-card{
  display:flex;flex-direction:column;gap:9px;
  background:#fff;border:1px solid var(--swift-line);border-radius:3px;
  padding:24px 22px;transition:transform .22s,box-shadow .22s,border-color .22s;
}
a.swift-card:hover{
  transform:translateY(-3px);border-color:var(--swift-gold-soft);
  box-shadow:0 10px 26px rgba(11,47,91,.09);
}
.swift-card__label{
  font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--swift-gold);
}
.swift-card__title{
  font-family:var(--swift-display);font-size:19px;font-weight:600;
  color:var(--swift-navy);line-height:1.35;
}
.swift-card__text{font-size:14px;color:var(--swift-muted);line-height:1.75;}
.swift-card__price{margin-top:auto;padding-top:12px;font-size:14px;color:var(--swift-navy);}
.swift-card__price strong{font-size:19px;letter-spacing:.01em;}

/* ============ PRICE TABLE ============ */
.swift-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.swift-table{min-width:520px;font-size:14px;}
.swift-table caption{
  text-align:left;font-family:var(--swift-display);font-size:19px;font-weight:600;
  color:var(--swift-navy);padding-bottom:12px;
}
.swift-table th,.swift-table td{
  padding:13px 16px;border-bottom:1px solid var(--swift-line);text-align:left;vertical-align:top;
}
.swift-table thead th{
  background:var(--swift-navy);color:#fff;font-weight:500;
  font-size:12px;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;
}
.swift-table tbody tr:nth-child(even){background:rgba(11,47,91,.025);}
.swift-table td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;}
.swift-table th.num{text-align:right;}

/* ============ STEPS ============ */
.swift-steps{list-style:none;counter-reset:step;display:grid;gap:16px;}
.swift-steps li{
  position:relative;padding:20px 22px 20px 62px;
  background:#fff;border:1px solid var(--swift-line);border-radius:3px;
}
.swift-steps li::before{
  counter-increment:step;content:counter(step);
  position:absolute;left:20px;top:20px;
  width:28px;height:28px;border-radius:50%;
  background:var(--swift-navy);color:#fff;
  font-size:13px;display:grid;place-items:center;
}
.swift-steps b{display:block;color:var(--swift-navy);font-weight:600;margin-bottom:3px;}
.swift-steps span{font-size:14px;color:var(--swift-muted);}

/* ============ FAQ ============ */
.swift-faq{border-top:1px solid var(--swift-line);}
.swift-faq details{border-bottom:1px solid var(--swift-line);}
.swift-faq summary{
  cursor:pointer;list-style:none;padding:20px 40px 20px 0;position:relative;
  font-weight:600;color:var(--swift-navy);line-height:1.6;
}
.swift-faq summary::-webkit-details-marker{display:none;}
.swift-faq summary::after{
  content:"";position:absolute;right:8px;top:27px;
  width:9px;height:9px;border-right:1.5px solid var(--swift-gold);
  border-bottom:1.5px solid var(--swift-gold);
  transform:rotate(45deg);transition:transform .22s;
}
.swift-faq details[open] summary::after{transform:rotate(-135deg);}
.swift-faq__a{padding:0 0 22px;color:var(--swift-muted);font-size:15px;}
.swift-faq__a > * + *{margin-top:12px;}

/* ============ NOTES / DISCLAIMER ============ */
.swift-note{
  background:var(--swift-bg);border-left:3px solid var(--swift-gold);
  padding:20px 22px;font-size:13.5px;color:var(--swift-muted);line-height:1.8;
}
.swift-note h3{
  font-size:14px;color:var(--swift-navy);margin-bottom:8px;
  letter-spacing:.04em;text-transform:uppercase;
}
.swift-note ul{padding-left:1.15em;}
.swift-note li+li{margin-top:6px;}

/* ============ CTA ============ */
.swift-cta{background:var(--swift-navy);color:#fff;padding:64px 0;text-align:center;}
.swift-cta h2{
  font-family:var(--swift-display);font-weight:600;
  font-size:clamp(22px,3vw,30px);line-height:1.4;
}
.swift-cta p{margin-top:16px;color:rgba(255,255,255,.85);}
.swift-cta__btns{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:28px;}
.swift-cta .swift-btn--ghost{border-color:rgba(255,255,255,.6);color:#fff;}
.swift-cta .swift-btn--ghost:hover{background:#fff;color:var(--swift-navy);}

/* ============ CLINIC INFO ============ */
.swift-info{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:34px;align-items:start;}
.swift-info dl{display:grid;grid-template-columns:126px minmax(0,1fr);gap:0;font-size:14.5px;}
.swift-info dt{
  padding:13px 0;border-top:1px solid var(--swift-line);
  color:var(--swift-navy);font-weight:600;font-size:12px;
  letter-spacing:.08em;text-transform:uppercase;
}
.swift-info dd{padding:13px 0;border-top:1px solid var(--swift-line);color:var(--swift-text);}
.swift-info iframe{width:100%;height:340px;border:0;border-radius:3px;}

/* ============ FOOTER ============ */
.swift-footer{background:#0a2748;color:rgba(255,255,255,.8);padding:56px 0 28px;font-size:14px;}
.swift-footer a:hover{color:#fff;text-decoration:underline;}
.swift-footer__top{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:34px;}
.swift-footer__h{
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--swift-gold-soft);margin-bottom:14px;
}
.swift-footer ul{list-style:none;display:grid;gap:9px;}
.swift-footer__addr{line-height:1.9;font-style:normal;}
.swift-footer__bottom{
  margin-top:44px;padding-top:20px;border-top:1px solid rgba(255,255,255,.14);
  display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;
  font-size:12px;color:rgba(255,255,255,.6);
}

/* ============ RESPONSIVE ============ */
@media (max-width:1000px){
  .swift-grid--4{grid-template-columns:repeat(2,minmax(0,1fr));}
  .swift-grid--3{grid-template-columns:repeat(2,minmax(0,1fr));}
  .swift-info{grid-template-columns:1fr;}
}
@media (max-width:1220px){
  :root{--swift-header-h:62px;}
  .swift-hamburger{display:block;}
  .swift-nav{
    position:fixed;
    /* bottom に頼らないこと。
       .swift-header が backdrop-filter を持つため、この nav の position:fixed の
       包含ブロックはビューポートではなく「高さ62pxのヘッダーの箱」になる。
       inset の top/bottom ペアで高さを作ると 62-62-0 = 0px になり、
       ドロワーが padding だけの帯になってメニューが1項目も見えなくなる。
       高さはビューポート基準で明示する（日本語版 swift-lp.css:440 と同じ方式）。 */
    inset:var(--swift-header-h) 0 auto auto;width:min(320px,84vw);
    height:calc(100vh - var(--swift-header-h));   /* 古いブラウザ向けフォールバック */
    height:calc(100dvh - var(--swift-header-h));  /* モバイルのURLバー伸縮に追従 */
    background:#fff;border-left:1px solid var(--swift-line);
    transform:translateX(100%);transition:transform .3s ease;
    overflow-y:auto;padding:22px;z-index:999;
  }
  .swift-nav.is-open{transform:translateX(0);}
  .swift-nav__list{flex-direction:column;align-items:stretch;gap:0;}
  .swift-nav__list > li{border-bottom:1px solid var(--swift-line);}
  .swift-nav__list > li > a{display:block;padding:15px 4px;font-size:15px;}
  .swift-nav-overlay{
    position:fixed;inset:var(--swift-header-h) 0 0 0;background:rgba(11,47,91,.34);
    opacity:0;pointer-events:none;transition:opacity .3s;z-index:998;
  }
  .swift-nav-overlay.is-open{opacity:1;pointer-events:auto;}
  .swift-header__right .swift-btn{padding:9px 15px;font-size:12px;}
  .swift-section{padding:54px 0;}
  .swift-hero{padding:52px 0 46px;}
  .swift-footer__top{grid-template-columns:1fr;gap:30px;}
}
@media (max-width:560px){
  .swift-grid--4,.swift-grid--3,.swift-grid--2{grid-template-columns:1fr;}
  .swift-container{padding:0 18px;}
  .swift-info dl{grid-template-columns:1fr;}
  .swift-info dt{padding-bottom:0;border-top:1px solid var(--swift-line);}
  .swift-info dd{padding-top:4px;border-top:0;}
  .swift-cta__btns .swift-btn{width:100%;}
}

/* ============ MOBILE TAP TARGETS ============ */
/* The English pages load only this stylesheet, so the fixes made in
   swift-addons.css for the Japanese side never reached them. Measured at
   390px: footer links 19px tall, nav links 16px, the hamburger 26px.
   Type sizes stay as they are; only the hit areas grow. */
@media (max-width:1220px){
  .swift-footer ul a,
  .swift-footer__addr a,
  .swift-crumb a{
    display:inline-block;
    padding-top:7px;
    padding-bottom:7px;
  }
  .swift-nav__list > li > a{padding-top:15px;padding-bottom:15px;}
  .swift-hamburger{width:34px;height:34px;}
  .swift-hamburger span{left:5px;right:5px;}
  .swift-hamburger span:nth-child(1){top:9px;}
  .swift-hamburger span:nth-child(2){top:17px;}
  .swift-hamburger span:nth-child(3){top:25px;}
  .swift-logo{display:inline-flex;align-items:center;min-height:42px;}
  .swift-lang a{padding-top:9px;padding-bottom:9px;}
  .swift-faq__a a{display:inline-block;padding:4px 0;}
}


/* === swift: table total row (tfoot) === */
/* .swift-table はカード化せず横スクロールするので、強調のみ。 */
.swift-table tfoot td{
  border-top:2px solid var(--swift-navy,#0b2f5b);
  background:rgba(11,47,91,.04);
  font-size:14.5px;
}
.swift-table tfoot td.num{color:var(--swift-gold-ink);font-size:16px;}


/* === swift: page footer meta (last updated) === */
/* Mirrors .swift-lp-meta on the Japanese side. */
.swift-meta{
  margin:34px 0 6px;
  padding-top:18px;
  border-top:1px solid var(--swift-line,rgba(11,47,91,.12));
}
.swift-meta p{
  margin:0;
  font-size:12.5px;
  line-height:1.9;
  color:#8a8f97;
}
.swift-meta time{color:#686d75;font-variant-numeric:lining-nums tabular-nums;}


/* === swift: fixed booking bar === */
/* 日本語版 .swift-cta-bar の移植。英語は LINE ＋ 予約の2本立て。
   問診票は日本語のみなので、常設バーからは送らない。 */
.swift-cta-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:1200;
  display:flex;gap:1px;
  background:rgba(11,47,91,.18);
  padding-bottom:env(safe-area-inset-bottom);
  box-shadow:0 -6px 22px rgba(11,47,91,.16);
}
.swift-cta-bar__item{
  flex:1 1 0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:3px;
  min-height:56px;padding:8px 6px;
  background:#fff;color:var(--swift-navy);
  font-size:13px;letter-spacing:.04em;text-decoration:none;
  transition:background .2s ease,color .2s ease;
}
.swift-cta-bar__item small{
  font-family:var(--swift-display);
  font-size:10px;letter-spacing:.18em;color:var(--swift-gold);
}
.swift-cta-bar__item:hover{background:#f4f2ee;}
.swift-cta-bar__item--main{
  flex:1.35 1 0;background:var(--swift-navy);color:#fff;
}
.swift-cta-bar__item--main small{color:var(--swift-gold-soft);}
.swift-cta-bar__item--main:hover{background:#08233f;}

/* バーの下に本文が隠れないようにする */
body{padding-bottom:56px;}

/* 821px 以上では右下に浮かせる（英語のドロワーが820pxなのでそこに揃える） */
@media (min-width:821px){
  .swift-cta-bar{
    left:auto;right:24px;bottom:24px;width:auto;
    gap:10px;background:transparent;box-shadow:none;
  }
  .swift-cta-bar__item{
    flex:0 0 auto;min-height:0;padding:12px 22px;
    border-radius:3px;white-space:nowrap;
    box-shadow:0 8px 24px rgba(11,47,91,.20);
  }
  .swift-cta-bar__item--main{flex:0 0 auto;}
  body{padding-bottom:0;}
}

/* ドロワーを開いている間はバーを退避させる */
/* バーは z-index:1200、ドロワーは 999。そのままだとドロワーの最下段
   （Access）がバーに隠れて押せない。オーバーレイとバーは body 直下の
   兄弟なので、一般兄弟結合子で JS を触らずに退避できる。 */
.swift-nav-overlay.is-open ~ .swift-cta-bar{
  transform:translateY(115%);
  opacity:0;
  pointer-events:none;
}
.swift-cta-bar{
  transition:transform .3s ease,opacity .25s ease;
}

@media print{ .swift-cta-bar{display:none;} }

/* ============ NAV SUBMENU (Other) ============
   英語ページは swift-nav.js を読んでおらず、インラインJSはハンバーガーの開閉だけ。
   そのためドロワー側は JS を使わず常時展開にする（JSが無くても到達できる形）。
   PC用のホバー演出は @media (min-width:1201px) の中だけに書くこと。
   日本語側で :hover の transform が詳細度でドロワーのリセットに勝ち、
   サブメニューが左にずれるバグを踏んでいる。打ち消しを重ねない。 */
.swift-nav__has-sub{position:relative;}
.swift-nav__has-sub > span{
  font-size:13px;letter-spacing:.04em;color:var(--swift-navy);
  white-space:nowrap;padding:6px 0;cursor:default;
  display:inline-flex;align-items:center;gap:6px;
  border-bottom:1px solid transparent;transition:border-color .2s,color .2s;
}
.swift-nav__has-sub > span::after{
  content:"";width:5px;height:5px;
  border-right:1px solid currentColor;border-bottom:1px solid currentColor;
  transform:rotate(45deg);margin-top:-3px;
}
.swift-nav__sub{list-style:none;}
.swift-nav__sub a{color:var(--swift-navy);letter-spacing:.04em;white-space:nowrap;}

@media (min-width:1221px){
  /* PCナビと横幅を奪い合うのはこの帯だけ。ここでロゴを縮ませないようにする。
     ドロワー時はナビが画面外なので、ロゴは従来どおり縮んでよい。 */
  .swift-logo{flex-shrink:0;}
  .swift-nav__sub{
    position:absolute;top:100%;left:50%;transform:translateX(-50%);
    min-width:212px;background:#fff;padding:16px 20px;
    box-shadow:0 14px 34px rgba(11,47,91,.14);
    display:none;z-index:1001;
  }
  /* 親と子の隙間でホバーが切れないよう橋を渡す */
  .swift-nav__sub::before{content:"";position:absolute;top:-14px;left:0;right:0;height:14px;}
  .swift-nav__has-sub:hover .swift-nav__sub{display:block;}
  .swift-nav__has-sub:hover > span{border-bottom-color:var(--swift-gold);}
  .swift-nav__sub li + li{margin-top:11px;}
  .swift-nav__sub a{display:block;font-size:13px;padding:2px 0;}
  .swift-nav__sub a:hover{color:var(--swift-gold);}
  /* The long Other list is easier to scan in two columns on desktop. */
  .swift-nav__list > .swift-nav__has-sub:last-child .swift-nav__sub{
    grid-template-columns:repeat(2,minmax(172px,1fr));
    column-gap:24px;min-width:408px;
  }
  .swift-nav__list > .swift-nav__has-sub:last-child:hover .swift-nav__sub{
    display:grid;
  }
  .swift-nav__list > .swift-nav__has-sub:last-child .swift-nav__sub li + li{
    margin-top:0;
  }
  .swift-nav__list > .swift-nav__has-sub:last-child .swift-nav__sub li{
    margin-bottom:11px;
  }
}

@media (max-width:1220px){
  /* ドロワー時はナビが画面外なので、ロゴは右ブロックに合わせて縮んでよい。
     0pxまで潰れるのはPCナビと幅を奪い合う帯だけの現象。 */
  .swift-logo{flex-shrink:1;}
  /* ドロワー内は静的に置いて常時展開する */
  .swift-nav__has-sub > span{
    display:block;padding:15px 4px;font-size:12px;
    letter-spacing:.14em;text-transform:uppercase;color:var(--swift-gold);
  }
  .swift-nav__has-sub > span::after{display:none;}
  .swift-nav__sub{padding:0 0 10px 14px;}
  .swift-nav__sub a{display:block;padding:11px 4px;font-size:14px;}
}


/* === swift: product photo inside a card (.swift-card__thumb) === */
/* 製剤写真は 924x600 と 600x390 の2系統。どちらも 1.54:1 なので比率を固定し、
   contain で切らずに収める。薬の写真をトリミングしない。 */
.swift-card__thumb{
  display:block;margin:-6px 0 4px;
  background:var(--swift-bg);
  border:1px solid var(--swift-line);border-radius:3px;
  overflow:hidden;
}
.swift-card__thumb img{
  width:100%;height:auto;aspect-ratio:77/50;object-fit:contain;
  background:#fff;
}
/* 写真が無い製剤のカードでも高さが揃うようにする（枠だけ出す） */
.swift-card__thumb--empty{
  aspect-ratio:77/50;
  display:flex;align-items:center;justify-content:center;
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--swift-muted);text-align:center;padding:0 16px;
}


/* === swift: clinical case photo (.swift-case) === */
/* 術前術後写真。figcaption に 施術内容 / 費用 / 主なリスク・副作用 を必ず持たせる。
   日本語側 lp-shiwa の case-card / case-cap / case-area / case-detail / case-risk と同じ部品。 */
.swift-case{
  margin:0;max-width:620px;
  background:#fff;
  border:1px solid var(--swift-line);border-radius:4px;
  overflow:hidden;
}
.swift-case img{display:block;width:100%;height:auto;}
.swift-case figcaption{padding:16px 18px;border-top:1px solid var(--swift-line);}
.swift-case__area{
  margin:0 0 7px;
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--swift-gold);
}
.swift-case__detail{margin:0;font-size:13.5px;line-height:1.8;color:var(--swift-text);}
.swift-case__risk{margin:9px 0 0;font-size:12.5px;line-height:1.8;color:var(--swift-muted);}
/* 図版の下に置く但し書き。figure の外に出す（キャプションではなくページ側の注記なので）。 */
.swift-case-note{
  max-width:620px;margin:12px 0 0;
  font-size:12px;line-height:1.8;color:var(--swift-muted);
}
/* 2026-09-28 言語ボタン4つ */
@media (max-width:480px){html:not([lang="zh-Hans"]) .swift-header a[hreflang="zh-Hans"]:not([aria-current]),html[lang="zh-Hans"] .swift-header a[hreflang="zh-Hant"]:not([aria-current]){display:none}}
