:root{
    --ivory:#F8F4EE;
    --champagne:#D8C2A6;
    --rose:#D9A7A0;--rose-deep:#BC8077;
    --sage:#A9B7A2;
    --greige:#6F665E;
    --charcoal:#2F2B28;
    --ivory-deep:#EFE8DD;
    --hairline:rgba(111,102,94,.22);
    --serif-jp:"Noto Serif JP",serif;
    --serif-en:"Playfair Display","Cormorant",serif;
    --sans:"Noto Sans JP",sans-serif;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    font-family:var(--sans);
    font-weight:400;
    color:var(--charcoal);
    background:var(--ivory);
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{max-width:100%;display:block;}

  /* ===== パンくず ===== */
  .breadcrumb{
    max-width:880px;margin:0 auto;
    padding:118px clamp(24px,5vw,48px) 0;
    font-size:11px;letter-spacing:.08em;color:var(--greige);
  }
  .breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:2px;}
  .breadcrumb li:not(:first-child)::before{content:"／";margin:0 8px;color:rgba(111,102,94,.4);}
  .breadcrumb a{color:var(--greige);text-decoration:none;border-bottom:1px solid rgba(111,102,94,.3);padding-bottom:1px;transition:color .3s;}
  .breadcrumb a:hover{color:var(--charcoal);}
  .breadcrumb .cur{color:var(--charcoal);}

  /* ===== 下層ヒーロー ===== */
  .page-hero{
    max-width:880px;margin:0 auto;
    padding:44px clamp(24px,5vw,48px) clamp(56px,7vw,84px);
  }
  .page-hero .en{
    font-family:var(--serif-en);font-style:italic;
    font-size:clamp(15px,1.8vw,19px);letter-spacing:.14em;color:var(--rose);
  }
  .page-hero h1{
    font-family:var(--serif-jp);font-weight:500;
    font-size:clamp(27px,4vw,42px);line-height:1.5;letter-spacing:.04em;
    margin-top:14px;
  }
  .page-hero h1 small{
    display:block;font-size:clamp(14px,1.8vw,18px);letter-spacing:.1em;
    color:var(--greige);margin-top:12px;font-weight:400;
  }
  .page-hero .lead{
    margin-top:30px;font-size:14.5px;line-height:2.15;color:var(--greige);
  }
  .tags{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:28px;}
  .tags li{
    font-size:11.5px;letter-spacing:.08em;color:var(--greige);
    border:1px solid var(--hairline);border-radius:4px;padding:6px 13px;background:#fff;
  }

  /* ===== 本文共通 ===== */
  main{display:block;}
  .article{
    max-width:880px;margin:0 auto;
    padding:0 clamp(24px,5vw,48px) clamp(90px,11vw,140px);
  }
  .article p{font-size:14.5px;line-height:2.15;color:#4a443e;}

  /* --- セクション見出し（欧文ラベル＋ローズ罫） --- */
  .sec{margin-top:clamp(76px,10vw,120px);}
  .sec:first-child{margin-top:0;}
  .sec-head .en{
    font-family:var(--serif-en);font-style:italic;
    font-size:13px;letter-spacing:.22em;color:var(--rose);
  }
  .sec-head h2{
    font-family:var(--serif-jp);font-weight:500;
    font-size:clamp(24px,3.2vw,34px);letter-spacing:.06em;line-height:1.55;
    margin-top:10px;
  }
  .sec-head::after{
    content:"";display:block;width:52px;height:2px;background:var(--rose);
    margin-top:18px;
  }
  .sec-lead{margin-top:24px;}

  .sec h3{
    font-family:var(--serif-jp);font-weight:500;
    font-size:clamp(17px,2.2vw,21px);letter-spacing:.06em;
    margin-top:2.6em;
    display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  }
  .sec h3::before{
    content:"";width:22px;height:1px;background:var(--rose);flex-shrink:0;
  }
  .sec h3 .sub{
    font-family:var(--serif-en);font-style:italic;font-weight:400;
    font-size:.68em;letter-spacing:.14em;color:var(--greige);
  }

  /* --- 基本情報・診療内容の定義リスト --- */
  .info-dl,.svc{margin-top:30px;border-top:1px solid var(--hairline);}
  .svc{margin-top:6px;}
  .info-dl .row,.svc .row{
    display:grid;grid-template-columns:minmax(180px,240px) 1fr;gap:18px;
    padding:20px 6px;border-bottom:1px solid var(--hairline);
  }
  .info-dl dt,.svc dt{
    font-family:var(--serif-jp);font-weight:500;font-size:15px;letter-spacing:.04em;line-height:1.75;
  }
  .info-dl dd{font-size:14px;line-height:2;color:#4a443e;}
  .svc dd{font-size:13.5px;line-height:2;color:var(--greige);}
  @media (max-width:600px){
    .info-dl .row,.svc .row{grid-template-columns:1fr;gap:4px;padding:18px 2px;}
  }

  /* --- 3分類ストリップ（診療科） --- */
  .triad{
    margin-top:36px;
    display:flex;
    border-top:1px solid var(--hairline);
    border-bottom:1px solid var(--hairline);
  }
  .triad > div{flex:1;padding:28px 22px;}
  .triad > div + div{border-left:1px solid var(--hairline);}
  .triad b{
    font-family:var(--serif-jp);font-weight:500;font-size:16px;letter-spacing:.06em;
    display:block;line-height:1.7;
  }
  .triad .sub{
    display:block;font-family:var(--serif-en);font-style:italic;
    font-size:11.5px;letter-spacing:.16em;color:var(--rose-deep);margin-top:6px;
  }
  .triad small{
    display:block;font-size:12px;line-height:1.95;color:var(--greige);margin-top:12px;
  }
  @media (max-width:640px){
    .triad{flex-direction:column;}
    .triad > div + div{border-left:0;border-top:1px solid var(--hairline);}
    .triad > div{padding:22px 4px;}
  }

  /* --- 診療時間テーブル --- */
  .tbl-wrap{overflow-x:auto;margin-top:18px;}
  .hours{width:100%;border-collapse:collapse;background:#fff;font-size:13px;min-width:520px;}
  .hours th,.hours td{
    border:1px solid var(--hairline);padding:11px 6px;text-align:center;
    font-weight:400;letter-spacing:.04em;
  }
  .hours thead th{
    background:var(--ivory-deep);
    font-family:var(--serif-jp);font-weight:500;font-size:12.5px;
  }
  .hours tbody th{font-size:12.5px;white-space:nowrap;}
  .hours td.y{color:var(--rose-deep);}
  .hours td.n{color:rgba(111,102,94,.4);}
  .tbl-note{
    margin-top:14px;font-size:12.5px;color:var(--greige);line-height:1.9;
    padding-left:14px;border-left:2px solid var(--champagne);
  }

  /* --- 2分割ストリップ（保険・空港アクセス） --- */
  .duo{
    margin-top:34px;display:flex;
    border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);
  }
  .duo > div{flex:1;padding:28px 24px;}
  .duo > div + div{border-left:1px solid var(--hairline);}
  .duo b{
    font-family:var(--serif-jp);font-weight:500;font-size:15.5px;letter-spacing:.05em;
    display:block;line-height:1.75;
  }
  .duo .min{
    display:block;font-family:var(--serif-jp);font-weight:500;
    font-size:21px;letter-spacing:.06em;color:var(--rose-deep);margin-top:10px;
  }
  .duo p,.duo small{
    display:block;font-size:13px;line-height:2;color:var(--greige);margin-top:10px;
  }
  @media (max-width:640px){
    .duo{flex-direction:column;}
    .duo > div + div{border-left:0;border-top:1px solid var(--hairline);}
    .duo > div{padding:22px 4px;}
  }

  /* --- アクセス --- */
  .addr{margin-top:26px;font-size:15px;line-height:2;}
  .exam-list{list-style:none;margin-top:22px;}
  .exam-list > li{
    padding:14px 2px 14px 22px;position:relative;
    font-size:14px;line-height:1.9;
    border-bottom:1px solid rgba(111,102,94,.14);
  }
  .exam-list > li::before{
    content:"";position:absolute;left:2px;top:26px;
    width:8px;height:1.5px;background:var(--rose);
  }

  /* --- 対応言語ストリップ --- */
  .lang-strip{
    margin-top:30px;display:flex;flex-wrap:wrap;align-items:stretch;
    border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);
  }
  .lang-strip span{padding:16px 28px;font-size:14px;letter-spacing:.1em;color:#4a443e;}
  .lang-strip .lbl{
    font-family:var(--serif-jp);font-weight:500;color:var(--charcoal);
    border-right:1px solid var(--hairline);
  }
  .lang-strip span + span + span{border-left:1px dashed rgba(111,102,94,.18);}

  /* --- 院内紹介グリッド --- */
  .fac-grid{
    margin-top:34px;display:grid;grid-template-columns:repeat(5,1fr);
    border-top:1px solid var(--hairline);border-left:1px solid var(--hairline);
  }
  .fac-grid div{
    border-right:1px solid var(--hairline);border-bottom:1px solid var(--hairline);
    padding:24px 8px;text-align:center;
    font-size:13.5px;letter-spacing:.08em;background:#fff;
  }
  @media (max-width:640px){
    .fac-grid{grid-template-columns:repeat(2,1fr);}
  }

  /* --- 受診の流れ --- */
  .flow{list-style:none;margin-top:14px;}
  .flow li{
    padding:26px 2px;border-bottom:1px solid var(--hairline);
  }
  .flow li:first-child{border-top:1px solid var(--hairline);}
  .flow .stp{
    font-family:var(--serif-en);font-style:italic;
    font-size:12px;letter-spacing:.24em;color:var(--rose-deep);
    display:block;
  }
  .flow b{
    font-family:var(--serif-jp);font-weight:500;font-size:16.5px;letter-spacing:.06em;
    display:block;margin-top:7px;
  }
  .flow p{font-size:13.5px;line-height:2.05;color:var(--greige);margin-top:10px;}

  /* --- お問い合わせボックス --- */
  .contact-box{
    margin-top:34px;background:#fff;
    border:1px solid var(--hairline);border-radius:6px;
    padding:40px clamp(22px,4vw,46px) 42px;
    box-shadow:0 1px 2px rgba(47,43,40,.04);
    text-align:center;
  }
  .sec .contact-box h3{display:block;margin-top:0;}
  .sec .contact-box h3::before{display:none;}
  .contact-box h3{
    font-family:var(--serif-jp);font-weight:500;
    font-size:clamp(17px,2.4vw,21px);letter-spacing:.08em;line-height:1.75;
  }
  .contact-box .cp{margin-top:16px;font-size:13.5px;line-height:2.05;color:var(--greige);}
  .contact-box .mail{
    margin-top:24px;display:inline-flex;align-items:center;gap:10px;
    font-family:var(--serif-en);font-size:17px;letter-spacing:.04em;
    color:var(--charcoal);text-decoration:none;
    border-bottom:1px solid var(--champagne);padding-bottom:4px;
    transition:color .3s;
  }
  .contact-box .mail:hover{color:var(--rose-deep);}
  .contact-box .mail svg{flex-shrink:0;}
  .contact-box .tel{margin-top:16px;font-size:14px;letter-spacing:.1em;color:#4a443e;}

  /* --- クロージング --- */
  .closing{
    background:var(--charcoal);color:rgba(248,244,238,.85);
    padding:clamp(80px,10vw,130px) clamp(24px,5vw,48px);
    text-align:center;
  }
  .closing .en{
    font-family:var(--serif-en);font-style:italic;
    font-size:13px;letter-spacing:.22em;color:var(--rose);
  }
  .closing h2{
    font-family:var(--serif-jp);font-weight:500;color:var(--ivory);
    font-size:clamp(22px,3vw,32px);letter-spacing:.06em;line-height:1.7;
    margin-top:16px;
  }
  .closing h2:first-child{margin-top:0;}
  .closing p{
    max-width:38em;margin:1.6em auto 0;
    font-size:14px;line-height:2.15;color:rgba(248,244,238,.72);
  }
  .closing .btns{
    display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:44px;
  }
  .closing .btns a{
    display:inline-flex;align-items:center;justify-content:center;gap:10px;
    font-size:13.5px;letter-spacing:.14em;text-decoration:none;
    padding:17px 42px;border-radius:999px;transition:all .35s;
  }
  .closing .btn-web{background:var(--ivory);color:var(--charcoal);}
  .closing .btn-web:hover{background:var(--champagne);}
  .closing .btn-tel,.closing .btn-line{border:1px solid rgba(248,244,238,.45);color:var(--ivory);}
  .closing .btn-tel:hover,.closing .btn-line:hover{background:rgba(248,244,238,.12);}
