@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:#6f7276;
  --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 img{height:36px;width:auto;}
.swift-header__right{display:flex;align-items:center;gap:12px;flex-shrink:0;}

.swift-nav__list{display:flex;align-items:center;gap:26px;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:820px){
  :root{--swift-header-h:62px;}
  .swift-hamburger{display:block;}
  .swift-nav{
    position:fixed;inset:var(--swift-header-h) 0 0 auto;width:min(320px,84vw);
    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:820px){
  .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;}
}
