/* トップ index.html の設計システムを書き出したもの。編集は _build/build.py 経由で行う。 */
    :root{
      --main:#2E8BC0; --main-deep:#1F6E9C; --navy:#12324A; --navy-deep:#0D2436;
      --teal:#71C6B9; --teal-deep:#4FA597; --silver:#D9DEE3;
      --bg:#FFFFFF; --soft:#F6FAFD; --paper:#FAFCFE;
      --ink:#12324A; --body:#415061; --muted:#6E7A86;
      --line:rgba(46,139,192,.18); --line-soft:rgba(46,139,192,.09); --line-white:rgba(255,255,255,.16);
    }
    *{box-sizing:border-box;}
    html{scroll-behavior:smooth;}
    body{margin:0; color:var(--body); font-family:"Zen Kaku Gothic",sans-serif; line-height:1.9; -webkit-font-smoothing:antialiased; font-size:16px; overflow-x:hidden;
      background-color:var(--bg);
      background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='320' height='320'><filter id='g'><feTurbulence type='fractalNoise' baseFrequency='0.02 0.14' numOctaves='3' seed='7' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 0.18 0 0 0 0 0.55 0 0 0 0 0.75 0 0 0 0.03 0'/></filter><rect width='100%25' height='100%25' filter='url(%23g)'/></svg>");
      background-size:320px; background-attachment:fixed;}
    img{max-width:100%; display:block;}
    a{color:inherit; text-decoration:none;}
    .mono{font-family:"Space Grotesk",monospace; letter-spacing:.04em;}
    h1,h2,h3{margin:0; color:var(--ink); font-family:"Shippori Mincho",serif; line-height:1.45; word-break:auto-phrase; text-wrap:balance; font-weight:700;}
    h1,h2,h3,.lead,.btn,summary{word-break:auto-phrase; text-wrap:balance;}
    p{margin:0;}
    .wrap{width:min(1160px,calc(100% - 56px)); margin:0 auto;}
    .eyebrow{font-family:"Space Grotesk",monospace; font-size:12px; letter-spacing:.24em; text-transform:uppercase; color:var(--main); font-weight:700; display:inline-flex; gap:12px; align-items:center;}
    .eyebrow::before{content:""; width:28px; height:2px; background:var(--teal);}
    .mk{color:var(--main);}
    .btn{display:inline-flex; align-items:center; justify-content:center; gap:.5em; font-weight:700; font-size:15px; min-height:54px; padding:14px 30px; border:1.5px solid transparent; border-radius:8px; transition:transform .2s ease, background .2s ease, color .2s ease, box-shadow .2s ease;}
    .btn.primary{background:var(--main); color:#fff; box-shadow:0 14px 30px -16px rgba(46,139,192,.7);}
    .btn.primary:hover{transform:translateY(-2px); background:var(--main-deep);}
    .btn.teal{background:var(--teal-deep); color:#fff;}
    .btn.teal:hover{transform:translateY(-2px); background:#3E8C80;}
    .btn.ghost{background:transparent; color:var(--main); border-color:var(--main);}
    .btn.ghost:hover{background:var(--main); color:#fff;}
    .btn.light{background:transparent; color:#fff; border-color:var(--line-white);}
    .btn.light:hover{background:#fff; color:var(--main);}
    section{position:relative;}

    /* ============================================================
       ZOROYA:HEADER ＝ header-02（上品トップバー＋中央ロゴ＋左右ナビ）
       テンプレ色 --accent#13406B→--main / --ink→--navy にマッピング
       ============================================================ */
    .site-header{position:sticky; top:0; z-index:50; background:rgba(255,255,255,.94); backdrop-filter:blur(12px); border-bottom:1px solid var(--line);}
    .site-header__topbar{background:var(--navy); color:rgba(255,255,255,.85);}
    .site-header__topbar .in{width:min(1280px,calc(100% - 48px)); margin:0 auto; display:flex; justify-content:space-between; align-items:center; padding:8px 0; font-size:12px; letter-spacing:.04em;}
    .site-header__topbar .right{display:flex; gap:18px; align-items:center;}
    .site-header__topbar a{opacity:.85;}
    .site-header__topbar .tel{font-family:"Space Grotesk",monospace; color:#fff; font-weight:700; letter-spacing:.06em;}
    .site-header__main{width:min(1280px,calc(100% - 48px)); margin:0 auto; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:14px 0; gap:24px;}
    .site-header__nav{display:flex; gap:22px;}
    .site-header__nav.is-left{justify-content:flex-end;} .site-header__nav.is-right{justify-content:flex-start;}
    .site-header__nav a{font-size:14px; font-weight:500; color:var(--ink); white-space:nowrap;}
    .site-header__nav a:hover{color:var(--main);}
    .site-header__brand{text-align:center;}
    .site-header__brand img{height:48px; width:auto; margin:0 auto;}
    .site-header__cta{display:none; justify-self:end; background:var(--main); color:#fff; font-weight:700; font-size:13px; padding:12px 20px; border-radius:8px;}
    .site-header__cta:hover{background:var(--main-deep);}
    .site-header__strip{height:5px; background:linear-gradient(90deg,var(--main),var(--teal));}
    /* /ZOROYA:HEADER */

    /* ZOROYA:MAIN */
    /* ============================================================
       HERO ＝ FV：fv-05(Strobe・強)は歯科=静を売るに不適。
       fv-selection ガードレールで fv-15 Aurora（弱・CV）に近傍差し替え。
       淡いオーロラ光＋分割スリットの控えめ演出。in-token 実装。
       ============================================================ */
    .hero{position:relative; width:100vw; left:50%; margin-left:-50vw; min-height:92vh; display:flex; align-items:center; justify-content:flex-start; overflow:hidden; background:linear-gradient(180deg,#FBFDFE 0%,#EFF6FB 100%);}
    .hero-photo{position:absolute; inset:0; z-index:0; overflow:hidden;}
    .hero-photo img{width:100%; height:100%; object-fit:cover; object-position:72% center; animation:heroKb 22s ease-in-out infinite alternate; will-change:transform;}
    @keyframes heroKb{from{transform:scale(1.05)} to{transform:scale(1.16)}}
    .hero-scrim{position:absolute; inset:0; z-index:1; background:linear-gradient(90deg, rgba(248,252,254,.97) 0%, rgba(248,252,254,.92) 28%, rgba(248,252,254,.5) 54%, rgba(248,252,254,0) 80%);}
    .hero-slit{position:absolute; inset:0; z-index:5; display:none; overflow:hidden; pointer-events:none;}
    .hero-slit.is-on{display:flex;}
    .hero-slit .col{position:relative; flex:1; overflow:hidden; will-change:transform,opacity;}
    .hero-slit .col img{position:absolute; top:0; left:0; height:100%; width:100vw; max-width:none; object-fit:cover; object-position:72% center;}
    .hero-aurora{position:absolute; inset:0; overflow:hidden; z-index:2; opacity:.5;}
    .hero-ab{position:absolute; border-radius:50%; filter:blur(80px); opacity:.55; mix-blend-mode:multiply; will-change:transform;}
    .hero-ab.ab1{width:48vw; height:48vw; background:#7FC3E6; left:0%; top:2%;}
    .hero-ab.ab2{width:44vw; height:44vw; background:#8FE0D2; right:2%; top:14%;}
    .hero-ab.ab3{width:40vw; height:40vw; background:#BFD3E2; left:26%; bottom:-12%;}
    .hero-frame{position:absolute; inset:26px; border:1px solid var(--line); z-index:1; pointer-events:none;}
    .hero-frame::before{content:""; position:absolute; left:-1px; top:-1px; width:42px; height:42px; border-top:2px solid var(--teal); border-left:2px solid var(--teal);}
    .hero-frame::after{content:""; position:absolute; right:-1px; bottom:-1px; width:42px; height:42px; border-bottom:2px solid var(--teal); border-right:2px solid var(--teal);}
    .hero-inner{position:relative; z-index:3; max-width:600px; padding:84px 28px 84px max(40px,7vw); display:grid; gap:24px; justify-items:start; text-align:left;}
    .hero .tagcode{font-family:"Space Grotesk",monospace; font-size:11px; letter-spacing:.3em; color:var(--main); display:flex; align-items:center; gap:12px;}
    .hero .tagcode::before,.hero .tagcode::after{content:""; width:34px; height:1px; background:var(--main); opacity:.5;}
    .hero h1{color:var(--ink); font-size:clamp(38px,5.8vw,70px); line-height:1.26; letter-spacing:.01em;}
    .hero h1 .mk{position:relative; color:var(--main); white-space:nowrap;}
    .hero h1 .mk::after{content:""; position:absolute; left:0; right:0; bottom:.02em; height:.1em; background:linear-gradient(90deg,var(--teal),rgba(127,195,230,0)); border-radius:2px; opacity:.6;}
    .hero .lead{color:var(--body); max-width:34em; font-size:16px;}
    .hero .btn-row{display:flex; gap:14px; flex-wrap:wrap; justify-content:flex-start;}
    .hero .trust{display:flex; gap:0; flex-wrap:wrap; justify-content:flex-start; margin-top:8px; border:1px solid var(--line); border-radius:10px; overflow:hidden; background:rgba(255,255,255,.72);}
    .hero .trust .ti{padding:14px 26px; border-right:1px solid var(--line);}
    .hero .trust .ti:last-child{border-right:0;}
    .hero .trust .ti strong{display:block; color:var(--ink); font-size:15px; font-family:"Shippori Mincho",serif;}
    .hero .trust .ti span{font-size:12px; color:var(--muted);}
    .hero-scroll{position:absolute; left:50%; bottom:16px; transform:translateX(-50%); z-index:3; color:var(--main); font-family:"Space Grotesk",monospace; font-size:11px; letter-spacing:.3em; writing-mode:vertical-rl; padding-bottom:30px;}
    .hero-scroll::after{content:""; position:absolute; left:50%; bottom:0; width:1px; height:22px; background:linear-gradient(var(--main),transparent); transform:translateX(-50%);}

    /* ============================================================
       INTRO ＝ intro-10（中央人物＋不安の吹き出し→答えブロック）
       テンプレ --accent#3f72c8→--main / --soft→--soft にマッピング
       ============================================================ */
    .c-intro{padding:116px 0; overflow:hidden;}
    .c-intro__bgimg{position:absolute; inset:0; z-index:0;}
    .c-intro__bgimg img{width:100%; height:100%; object-fit:cover; opacity:.18;}
    .c-intro__bgimg::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(255,255,255,.74),rgba(255,255,255,.92));}
    .c-intro .wrap{position:relative; z-index:1;}
    .c-intro__head{text-align:center; margin-bottom:30px;}
    .c-intro__head h2{font-size:clamp(26px,4.2vw,46px); margin:14px 0 0;}
    .c-intro__stage{position:relative; max-width:780px; margin:30px auto 0; min-height:430px;}
    .c-intro__figure{width:228px; height:228px; border-radius:50%; overflow:hidden; margin:90px auto 0; border:6px solid #fff; box-shadow:0 22px 50px -24px rgba(18,50,74,.5); background:var(--soft);}
    .c-intro__figure img{width:100%; height:100%; object-fit:cover;}
    .c-intro__bbl{position:absolute; background:#fff; border:1px solid var(--line); box-shadow:0 16px 34px -22px rgba(18,50,74,.5); border-radius:18px; padding:16px 24px; font-size:clamp(16px,1.6vw,20px); font-weight:700; color:var(--ink); max-width:14em; word-break:auto-phrase; font-family:"Shippori Mincho",serif;}
    .c-intro__bbl.b1{top:8px; left:0;} .c-intro__bbl.b2{top:0; right:0;} .c-intro__bbl.b3{top:175px; left:-10px;} .c-intro__bbl.b4{top:200px; right:-12px;} .c-intro__bbl.b5{bottom:-6px; left:50%; transform:translateX(-50%);}
    .c-intro__resolve{max-width:640px; margin:48px auto 0; text-align:center;}
    .c-intro__resolve .reb{font-family:"Space Grotesk",monospace; font-size:12px; letter-spacing:.24em; color:var(--main); text-transform:uppercase;}
    .c-intro__resolve .lead{font-family:"Shippori Mincho",serif; font-size:clamp(19px,2.6vw,26px); line-height:1.8; margin:12px 0 14px; word-break:auto-phrase; color:var(--ink);}
    .c-intro__resolve .lead em{font-style:normal; background:linear-gradient(transparent 60%, rgba(113,198,185,.4) 60%);}
    .c-intro__resolve .text{color:var(--muted); font-size:14.5px; word-break:auto-phrase;}
    @media(max-width:720px){
      .c-intro__stage{min-height:0;}
      .c-intro__figure{margin-top:10px; width:170px; height:170px;}
      .c-intro__bbl{position:static!important; transform:none!important; max-width:none; margin:12px 0; display:block;}
      .c-intro__bbl.b1,.c-intro__bbl.b2,.c-intro__bbl.b3,.c-intro__bbl.b4,.c-intro__bbl.b5{inset:auto;}
    }

    /* ============================================================
       CONCEPT BAND（cband・維持。哲学/予防の一文バンド／割当無し）
       ============================================================ */
    .cband{width:100vw; position:relative; left:50%; margin-left:-50vw; background:var(--navy); color:#DCEAF3; padding:104px 0; overflow:hidden;}
    .cband::before{content:""; position:absolute; right:-120px; top:-120px; width:400px; height:400px; border-radius:50%; background:radial-gradient(circle,rgba(113,198,185,.34),transparent 64%); filter:blur(60px); mix-blend-mode:screen;}
    .cband::after{content:""; position:absolute; left:-120px; bottom:-140px; width:360px; height:360px; border-radius:50%; background:radial-gradient(circle,rgba(46,139,192,.5),transparent 64%); filter:blur(60px); mix-blend-mode:screen;}
    .cband .wrap{position:relative; z-index:2;}
    .cband .eyebrow{color:var(--teal);} .cband .eyebrow::before{background:var(--teal);}
    .cband h2{color:#fff; font-weight:700; font-size:clamp(24px,3.6vw,42px); line-height:1.55; margin-top:18px; max-width:22em;}
    .cband h2 .mk{color:var(--teal);}
    .cband p{color:rgba(220,234,243,.84); margin-top:22px; max-width:40em;}
    .cband .stat-row{display:grid; grid-template-columns:repeat(3,1fr); gap:34px; margin-top:54px;}
    .cband .scell{border-top:1px solid var(--line-white); padding-top:22px;}
    .cband .scell b{font-family:"Shippori Mincho",serif; font-weight:800; font-size:clamp(46px,6vw,82px); color:var(--teal); line-height:.9; display:block;}
    .cband .scell span{display:block; margin-top:10px; font-size:14px; color:rgba(220,234,243,.8);}

    /* ============================================================
       REASONS ＝ reasons-05（大判写真＋POINTグラデ帯×特大アウトライン番号・左右交互）
       テンプレ --navy#1F3A93→--main にマッピング
       ============================================================ */
    .c-reasons{padding:116px 0;}
    .c-reasons__head{text-align:center; margin-bottom:60px;}
    .c-reasons__head h2{font-size:clamp(28px,4.4vw,50px); line-height:1.32; margin-top:14px;}
    .c-reasons__row{display:grid; grid-template-columns:1fr 1fr; gap:46px; align-items:center; margin-bottom:70px;}
    .c-reasons__row:last-child{margin-bottom:0;}
    .c-reasons__row.is-rev .c-reasons__pic{order:2;}
    .c-reasons__pic{position:relative; z-index:1;}
    .c-reasons__pic img{width:100%; height:330px; object-fit:cover; border-radius:14px;}
    .c-reasons__bd{position:relative; z-index:2;}
    .c-reasons__band{display:inline-flex; align-items:center; gap:14px; position:relative; z-index:3; margin-left:-100px; background:linear-gradient(90deg,var(--main),rgba(46,139,192,0)); color:#fff; padding:12px 80px 12px 22px; border-radius:4px; box-shadow:0 14px 28px -14px rgba(46,139,192,.55);}
    .c-reasons__row.is-rev .c-reasons__band{margin-left:0; margin-right:-100px;}
    .c-reasons__band .lab{font-family:"Space Grotesk",monospace; font-size:13px; letter-spacing:.16em;}
    .c-reasons__band .bn{position:absolute; right:8px; top:-14px; font-family:"Shippori Mincho",serif; font-weight:700; font-size:56px; color:transparent; -webkit-text-stroke:1.5px rgba(255,255,255,.55); line-height:1;}
    .c-reasons__bd h3{font-family:"Shippori Mincho",serif; font-weight:700; font-size:clamp(20px,2.6vw,28px); margin:22px 0 12px; word-break:auto-phrase;}
    .c-reasons__bd h3 .ac{color:var(--main);}
    .c-reasons__bd p{color:var(--muted); font-size:14.5px; margin:0 0 14px; word-break:auto-phrase;}
    .c-reasons__vs{display:inline-block; font-family:"Space Grotesk",monospace; font-size:11px; letter-spacing:.06em; color:var(--teal-deep); border:1px solid var(--teal); padding:5px 13px; border-radius:6px;}
    @media(max-width:780px){
      .c-reasons__row{grid-template-columns:1fr; gap:24px;}
      .c-reasons__row.is-rev .c-reasons__pic{order:0;}
      .c-reasons__band{margin-left:0!important; margin-right:0!important;}
      .c-reasons__pic img{height:230px;}
    }

    /* ============================================================
       FACILITY（院内ギャラリー・グリッド・維持。gallery 型割当無し）
       ============================================================ */
    .facility{padding:116px 0;}
    .facility .head{margin-bottom:44px;}
    .facility h2.big{font-size:clamp(28px,4vw,46px); font-weight:800; margin-top:12px;}
    .fac-grid{display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:190px; gap:14px;}
    .fac-grid figure{margin:0; overflow:hidden; border-radius:8px; position:relative;}
    .fac-grid img{width:100%; height:100%; object-fit:cover; transition:transform .6s ease;}
    .fac-grid figure:hover img{transform:scale(1.05);}
    .fac-grid figure figcaption{position:absolute; left:0; bottom:0; background:rgba(18,50,74,.78); color:#fff; font-size:11px; padding:6px 12px; border-radius:0 8px 0 0;}
    .fac-grid .big2{grid-column:span 2; grid-row:span 2;}
    .fac-grid .wide{grid-column:span 2;}

    /* ============================================================
       SERVICES ＝ features-02（横スクロール・ピン／ページ唯一の pin）
       テンプレ --accent#C2562C→--main, --bg薄グレー→--soft にマッピング
       ============================================================ */
    .c-feat{background:var(--soft); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
    .c-feat__head{padding:14vh 0 0;}
    .c-feat__head h2{font-family:"Shippori Mincho",serif; font-weight:800; font-size:clamp(30px,5vw,56px); line-height:1.2; margin:16px 0 0; letter-spacing:.01em;}
    .c-feat__head h2 .mk{color:var(--main);}
    .c-feat__pin{height:100vh; display:flex; align-items:center; overflow:hidden;}
    .c-feat__track{display:flex; gap:30px; padding:0 6vw; will-change:transform;}
    .c-feat__card{flex:0 0 min(420px,82vw); background:#fff; border:1px solid var(--line); border-radius:18px; overflow:hidden; box-shadow:0 24px 48px -34px rgba(18,50,74,.45);}
    .c-feat__card .ph{position:relative; aspect-ratio:16/10; overflow:hidden; background:#E6EEF4;}
    .c-feat__card .ph img{width:100%; height:100%; object-fit:cover; display:block;}
    .c-feat__card .ph .n{position:absolute; left:18px; top:14px; font-family:"Shippori Mincho",serif; font-size:52px; font-weight:700; color:#fff; text-shadow:0 2px 14px rgba(0,0,0,.5);}
    .c-feat__card .body{padding:30px 30px 34px;}
    .c-feat__card h3{font-family:"Shippori Mincho",serif; font-weight:700; font-size:24px; margin:0 0 12px;}
    .c-feat__card p{color:var(--muted); font-size:14.5px; margin:0;}
    .c-feat__card .price{display:inline-block; margin-top:18px; font-family:"Shippori Mincho",serif; color:var(--main); font-weight:700; font-size:18px;}
    .c-feat__prog{position:absolute; left:6vw; bottom:6vh; font-family:"Space Grotesk",monospace; font-size:12px; color:var(--muted); letter-spacing:.1em; z-index:5;}
    @media(max-width:820px){
      .c-feat__pin{height:auto; display:block; padding:20px 0 70px;}
      .c-feat__track{flex-direction:column; padding:0 24px;}
      .c-feat__card{flex:none;}
      .c-feat__head{padding:8vh 0 0;}
      .c-feat__prog{display:none;}
    }

    /* ============================================================
       PROCESS ＝ process-01（縦ステップ・スパインのラインドロー）
       テンプレ --accent#1F7A66→--main, --accent2#D98B2B→--teal-deep にマッピング
       ============================================================ */
    .c-proc{padding:116px 0; background:var(--soft); border-top:1px solid var(--line);}
    .c-proc__head{margin-bottom:60px;}
    .c-proc__head h2{font-size:clamp(28px,4.4vw,50px); line-height:1.3; margin:14px 0 0; word-break:auto-phrase;}
    .c-proc__head h2 .mk{color:var(--main);}
    .c-proc__flow{position:relative;}
    .c-proc__spine{position:absolute; left:39px; top:10px; bottom:60px; width:2px; background:var(--line); overflow:hidden;}
    .c-proc__spine i{position:absolute; inset:0; background:linear-gradient(var(--main),var(--teal-deep)); transform:scaleY(0); transform-origin:top;}
    .c-proc__step{position:relative; display:grid; grid-template-columns:80px 1fr; gap:30px; padding-bottom:42px;}
    .c-proc__node{width:80px; height:80px; border-radius:50%; background:#fff; border:2px solid var(--main); display:flex; align-items:center; justify-content:center; font-family:"Space Grotesk",monospace; font-weight:700; font-size:26px; color:var(--main); z-index:2; transform:scale(0); box-shadow:0 10px 24px -12px rgba(46,139,192,.5);}
    .c-proc__step.is-last .c-proc__node{border-color:var(--teal-deep); color:var(--teal-deep);}
    .c-proc__card{background:#fff; border:1px solid var(--line); border-radius:14px; padding:24px 28px; box-shadow:0 14px 30px -26px rgba(18,50,74,.4);}
    .c-proc__card .ph{font-family:"Space Grotesk",monospace; font-size:11px; letter-spacing:.14em; color:var(--teal-deep); text-transform:uppercase;}
    .c-proc__card h3{font-family:"Shippori Mincho",serif; font-size:21px; font-weight:700; margin:6px 0 8px; word-break:auto-phrase;}
    .c-proc__card p{color:var(--muted); font-size:14.5px; margin:0; word-break:auto-phrase;}
    @media(max-width:680px){
      .c-proc__step{grid-template-columns:56px 1fr; gap:18px;}
      .c-proc__node{width:56px; height:56px; font-size:20px;}
      .c-proc__spine{left:27px;}
    }

    /* ============================================================
       VOICE ＝ voice-06（カード上端から写真がはみ出す3カード／ドット地）
       テンプレ --accent#C24A6A→--main, --accent2→--teal-deep にマッピング
       ============================================================ */
    .c-voice{padding:120px 0 130px; position:relative;
      background-image:radial-gradient(rgba(46,139,192,.07) 1.4px,transparent 1.4px); background-size:22px 22px; background-color:var(--soft); border-top:1px solid var(--line);}
    .c-voice__head{margin-bottom:90px;}
    .c-voice__head h2{font-family:"Shippori Mincho",serif; font-weight:800; font-size:clamp(30px,4.6vw,54px); line-height:1.3; margin:16px 0 0; word-break:auto-phrase;}
    .c-voice__head h2 .mk{color:var(--main);}
    .c-voice__grid{display:grid; grid-template-columns:repeat(3,1fr); gap:70px 40px;}
    .c-voice__card{position:relative; background:#fff; border:1px solid var(--line); border-radius:16px; padding:70px 30px 32px; box-shadow:0 18px 40px -28px rgba(18,50,74,.4); overflow:visible;}
    .c-voice__card .pop{position:absolute; top:-48px; left:26px; width:108px; height:108px; border-radius:18px; overflow:hidden; background:#E6EEF4; transform:rotate(-5deg); box-shadow:0 16px 30px -14px rgba(18,50,74,.5); border:4px solid #fff;}
    .c-voice__card:nth-child(2) .pop{transform:rotate(4deg);}
    .c-voice__card:nth-child(3) .pop{transform:rotate(-3deg);}
    .c-voice__card .pop img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
    .c-voice__card .badge{position:absolute; top:-30px; right:18px; font-family:"Space Grotesk",monospace; font-size:11px; letter-spacing:.1em; color:#fff; background:var(--main); padding:5px 12px; border-radius:99px; transform:rotate(3deg);}
    .c-voice__card .q{font-family:"Shippori Mincho",serif; font-size:19px; font-weight:700; line-height:1.6; margin:0 0 16px; word-break:auto-phrase; color:var(--ink);}
    .c-voice__card .q::before{content:"\201C"; color:var(--teal-deep);}
    .c-voice__card p{font-size:14px; color:var(--muted); margin:0 0 20px; word-break:auto-phrase;}
    .c-voice__card .who{font-family:"Space Grotesk",monospace; font-size:12px; color:var(--ink); border-top:1px solid var(--line); padding-top:14px; letter-spacing:.04em;}
    .c-voice__card .who span{color:var(--muted);}
    @media(max-width:880px){
      .c-voice{padding:84px 0 100px;}
      .c-voice__grid{grid-template-columns:1fr; gap:74px;}
      .c-voice__head{margin-bottom:70px;}
    }

    /* ============================================================
       MESSAGE ＝ message-01（sticky ポートレート＋文字点灯＋署名ドロー）
       ============================================================ */
    .c-msg{padding:124px 0;}
    .c-msg__grid{display:grid; grid-template-columns:300px 1fr; gap:60px; align-items:start; margin-top:24px;}
    .c-msg__pcol{position:sticky; top:118px;}
    .c-msg__portrait{aspect-ratio:4/5; border-radius:0; overflow:hidden;}
    .c-msg__portrait img{width:100%; height:100%; object-fit:cover; object-position:center top;}
    .c-msg__pname{margin-top:18px;}
    .c-msg__pname .role{font-size:12px; color:var(--muted); letter-spacing:.04em;}
    .c-msg__pname .nm{font-family:"Shippori Mincho",serif; font-size:22px; font-weight:600; margin-top:4px;}
    .c-msg__body{font-family:"Shippori Mincho",serif; font-size:clamp(19px,2.2vw,26px); line-height:1.95; font-weight:500; max-width:24em; word-break:auto-phrase;}
    .c-msg__body .w{color:rgba(18,50,74,.22); transition:color .1s;}
    .c-msg__sign{margin-top:38px;} .c-msg__sign svg{width:220px; height:78px; overflow:visible;}
    .c-msg__sign path{fill:none; stroke:var(--ink); stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round;}
    @media(max-width:820px){
      .c-msg__grid{grid-template-columns:1fr; gap:32px;}
      .c-msg__pcol{position:static;} .c-msg__pcol{order:-1;} .c-msg__portrait{max-width:260px;}
    }

    /* ============================================================
       NEWS ＝ news-05（中央寄せ NEWS＋タブ＋丸い黒バッジ＋枠線ピル）
       テンプレ --green#4f9a72→--teal-deep, --ink黒→--navy にマッピング
       ============================================================ */
    .c-news{padding:116px 0; background:var(--bg);}
    .c-news .wrap{width:min(820px,calc(100% - 56px));}
    .c-news__ttl{text-align:center; font-family:"Space Grotesk",sans-serif; font-weight:500; letter-spacing:.28em; font-size:clamp(22px,3vw,30px); color:var(--ink);}
    .c-news__tabs{display:flex; gap:34px; justify-content:center; margin:30px 0 36px;}
    .c-news__tab{position:relative; background:none; border:0; font-family:inherit; font-weight:700; font-size:14px; color:var(--muted); cursor:pointer; padding-bottom:8px;}
    .c-news__tab.is-on{color:var(--ink);}
    .c-news__tab.is-on::after{content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--ink);}
    .c-news__list{display:flex; flex-direction:column;}
    .c-news__row{display:grid; grid-template-columns:64px 1fr auto; gap:18px; align-items:center; padding:22px 0; text-decoration:none; color:inherit; border-bottom:1px solid var(--line);}
    .c-news__row:hover .c-news__bd .t{color:var(--main);}
    .c-news__badge{position:relative; width:58px; height:58px; border-radius:50%; background:var(--navy); color:#fff; display:flex; align-items:center; justify-content:center; font-family:"Space Grotesk",monospace; font-size:11px; letter-spacing:.04em;}
    .c-news__badge .pin{position:absolute; right:-4px; bottom:-2px; min-width:22px; height:22px; padding:0 6px; border-radius:11px; background:var(--teal-deep); color:#fff; display:flex; align-items:center; justify-content:center; font-size:10px; border:2px solid #fff; white-space:nowrap;}
    .c-news__bd .t{font-weight:700; font-size:15.5px; word-break:auto-phrase; transition:color .25s ease;}
    .c-news__bd .d{font-family:"Space Grotesk",monospace; font-size:12px; color:var(--muted); margin-top:4px;}
    .c-news__row .ar{color:var(--main); opacity:.6;}
    .c-news__more-wrap{text-align:center; margin-top:36px;}
    .c-news__more{display:inline-block; border:1px solid var(--ink); border-radius:40px; padding:16px 60px; font-weight:700; font-size:14px; text-decoration:none; color:var(--ink); transition:.3s;}
    .c-news__more:hover{background:var(--ink); color:#fff;}
    @media(max-width:680px){ .c-news__row{grid-template-columns:58px 1fr;} .c-news__row .ar{display:none;} }

    /* ============================================================
       FAQ ＝ faq-03（左sticky見出し＋右に番号アコーディオン +→×）
       テンプレ --navy#1f3b86→--main にマッピング
       ============================================================ */
    .c-faq{padding:116px 0; background:var(--soft); border-top:1px solid var(--line);}
    .c-faq__layout{display:grid; grid-template-columns:.8fr 1.2fr; gap:50px; align-items:start;}
    .c-faq__side{position:sticky; top:118px;}
    .c-faq__side h2{font-size:clamp(28px,3.6vw,44px); margin:14px 0 14px; word-break:auto-phrase;}
    .c-faq__side p{color:var(--muted); font-size:14px;}
    .c-faq__acc{border-top:1px solid var(--line);}
    .c-faq__item{border-bottom:1px solid var(--line);}
    .c-faq__q{display:grid; grid-template-columns:48px 1fr 30px; align-items:center; gap:14px; padding:24px 6px; cursor:pointer; width:100%; background:none; border:0; text-align:left; font-family:inherit;}
    .c-faq__q .no{font-family:"Space Grotesk",monospace; font-size:13px; color:var(--main);}
    .c-faq__q .tx{font-weight:700; font-size:16px; color:var(--ink); font-family:"Shippori Mincho",serif;}
    .c-faq__q .ic{position:relative; width:18px; height:18px; justify-self:end;}
    .c-faq__q .ic::before,.c-faq__q .ic::after{content:""; position:absolute; background:var(--main); transition:.3s;}
    .c-faq__q .ic::before{top:8px; left:0; width:18px; height:2px;}
    .c-faq__q .ic::after{top:0; left:8px; width:2px; height:18px;}
    .c-faq__item.is-open .c-faq__q .ic::after{transform:rotate(90deg); opacity:0;}
    .c-faq__a{max-height:0; overflow:hidden; transition:max-height .5s ease;}
    .c-faq__a div{padding:0 6px 26px 62px; color:var(--muted); font-size:14.5px; word-break:auto-phrase;}
    .c-faq__item.is-open .c-faq__a{max-height:340px;}
    @media(max-width:760px){ .c-faq__layout{grid-template-columns:1fr; gap:28px;} .c-faq__side{position:static;} }

    /* ============================================================
       FINAL CTA ＝ cta-01（全幅・背景画像＋動く光・中央寄せ）
       ============================================================ */
    .c-cta{width:100vw; position:relative; left:50%; margin-left:-50vw; min-height:88vh; display:flex; align-items:center; justify-content:center; overflow:hidden; text-align:center; background:var(--navy-deep);}
    .c-cta__bg{position:absolute; inset:0;} .c-cta__bg img{width:100%; height:100%; object-fit:cover; filter:saturate(.9) brightness(.5);}
    .c-cta__ov{position:absolute; inset:0; background:linear-gradient(180deg,rgba(13,36,54,.82),rgba(13,36,54,.66) 50%,rgba(13,36,54,.92));}
    .c-cta__glow{position:absolute; width:54vw; height:54vw; border-radius:50%; filter:blur(92px); mix-blend-mode:screen; opacity:.55; background:radial-gradient(circle,var(--teal),transparent 64%); left:8%; top:8%;}
    .c-cta__glow.g2{background:radial-gradient(circle,var(--main),transparent 64%); right:6%; bottom:4%; left:auto; top:auto;}
    .c-cta__inner{position:relative; z-index:3; width:min(820px,calc(100% - 48px));}
    .c-cta__inner .eyebrow{color:var(--teal); justify-content:center;} .c-cta__inner .eyebrow::before{background:var(--teal);}
    .c-cta__inner h2{color:#fff; font-weight:800; font-size:clamp(28px,5vw,58px); line-height:1.4; margin:22px 0 0; text-shadow:0 4px 40px rgba(0,0,0,.5);}
    .c-cta__inner h2 .mk{color:var(--teal);}
    .c-cta__inner p.lead{color:rgba(255,255,255,.88); font-size:17px; margin:22px auto 0; max-width:32em;}
    .c-cta__btns{display:flex; gap:16px; justify-content:center; flex-wrap:wrap; margin-top:36px;}
    .c-cta__sub{margin-top:22px; font-family:"Space Grotesk",monospace; font-size:12px; letter-spacing:.1em; color:rgba(255,255,255,.6);}
    /* /ZOROYA:MAIN */

    /* ============================================================
       ZOROYA:FOOTER ＝ footer-03（NAP＋サイトマップ列＋コピーライト）
       ※直前に最終CTA があるため footer-03 の CTA帯は持ち込まず情報部のみ採用
       テンプレ --ink#13161D→--navy, --gold→--teal にマッピング
       ============================================================ */
    .site-footer{background:var(--navy); color:rgba(255,255,255,.74); padding:0 0 0;}
    .site-footer__info{width:min(1200px,calc(100% - 56px)); margin:0 auto; display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; padding:58px 0 30px;}
    .site-footer__nap .nm{font-family:"Shippori Mincho",serif; font-weight:700; font-size:24px; color:#fff;}
    .site-footer__nap p{color:rgba(255,255,255,.74); font-size:14px; line-height:1.9; margin:14px 0 0;}
    .site-footer__nap .tel{font-family:"Space Grotesk",monospace; color:#fff; font-weight:700; font-size:18px; letter-spacing:.04em; margin-top:10px;}
    .site-footer__col h4{font-family:"Space Grotesk",monospace; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--teal); margin:0 0 14px;}
    .site-footer__col a{display:block; color:#fff; text-decoration:none; font-size:14px; padding:6px 0; opacity:.85;}
    .site-footer__col a:hover{opacity:1; color:var(--teal);}
    .site-footer__cp{border-top:1px solid var(--line-white);}
    .site-footer__cp .in{width:min(1200px,calc(100% - 56px)); margin:0 auto; padding:20px 0; font-size:12px; color:rgba(255,255,255,.55); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;}
    @media(max-width:820px){ .site-footer__info{grid-template-columns:1fr; gap:30px;} }

    @media (max-width:960px){
      .site-header__main{grid-template-columns:auto 1fr; gap:14px;}
      .site-header__nav{display:none;}
      .site-header__cta{display:inline-flex;}
      .site-header__brand{text-align:left;} .site-header__brand img{margin:0;}
      .fac-grid{grid-template-columns:repeat(2,1fr); grid-auto-rows:170px;}
    }
    @media (max-width:768px){
      body{font-size:15px;}
      .site-header__topbar .in{display:none;} .site-header__cta{display:none;}
      .fac-grid{grid-template-columns:1fr; grid-auto-rows:200px;} .fac-grid .big2,.fac-grid .wide{grid-column:span 1; grid-row:span 1;}
      .btn{width:100%;}
      .hero .trust .ti{border-right:0; border-bottom:1px solid var(--line);}
      .hero-scrim{background:linear-gradient(180deg, rgba(248,252,254,.92) 0%, rgba(248,252,254,.7) 38%, rgba(248,252,254,.86) 100%);}
      .hero-photo img{object-position:62% center;}
    }
    @media (prefers-reduced-motion:reduce){
      .c-msg__portrait{clip-path:none!important;} .c-msg__body .w{color:var(--ink);}
      .c-cta__glow{animation:none!important;}
    }
  
    /* スマホ：見出しのインラインnowrapを解除し文節で折り返す（見切れ防止） */
    @media(max-width:600px){ h1 span[style*="nowrap"]{ white-space:normal !important; word-break:auto-phrase; } }

    /* ============================================================
       共通追加（2026-09-05 サンプル化）：サンプル帯・テキストロゴ・スマホナビ
       ============================================================ */
    .sample-bar{background:var(--navy-deep); color:rgba(255,255,255,.88); font-size:12px; letter-spacing:.02em; position:relative; z-index:60;}
    .sample-bar .in{width:min(1280px,calc(100% - 48px)); margin:0 auto; display:flex; justify-content:space-between; align-items:center; gap:14px; padding:7px 0; flex-wrap:wrap;}
    .sample-bar a{color:#F6B06F; font-weight:700; white-space:nowrap; border-bottom:1px solid rgba(246,176,111,.5);}
    .sample-bar a:hover{color:#fff; border-color:#fff;}
    .tlogo{display:inline-flex; align-items:center; gap:11px; color:var(--ink); line-height:1;}
    .tlogo__mark{width:42px; height:42px; border-radius:11px; background:linear-gradient(135deg,var(--main),var(--teal)); display:grid; place-items:center; color:#fff; flex:none; box-shadow:0 10px 22px -14px rgba(46,139,192,.8);}
    .tlogo__mark svg{width:24px; height:24px;}
    .tlogo__ja{display:block; font-family:"Shippori Mincho",serif; font-weight:700; font-size:19px; letter-spacing:.05em; white-space:nowrap;}
    .tlogo__en{display:block; font-family:"Space Grotesk",monospace; font-size:10px; letter-spacing:.22em; color:var(--main); margin-top:5px; white-space:nowrap;}
    .site-header__topbar a.tel{color:#fff;}
    .site-header__nav a[aria-current="page"]{color:var(--main); border-bottom:2px solid var(--teal); padding-bottom:2px;}
    .site-footer__nap a.tel{display:block; font-family:"Space Grotesk",monospace; color:#fff; font-weight:700; font-size:18px; letter-spacing:.04em; margin-top:10px;}
    .site-header__toggle{display:none; width:44px; height:44px; border:1px solid var(--line); border-radius:10px; background:#fff; flex-direction:column; justify-content:center; align-items:center; gap:5px; cursor:pointer; padding:0; flex:none;}
    .site-header__toggle span{display:block; width:20px; height:2px; background:var(--navy); transition:transform .25s ease, opacity .25s ease;}
    .site-header.is-open .site-header__toggle span:nth-child(1){transform:translateY(7px) rotate(45deg);}
    .site-header.is-open .site-header__toggle span:nth-child(2){opacity:0;}
    .site-header.is-open .site-header__toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
    .site-header__mobile{display:none; border-top:1px solid var(--line); background:#fff;}
    .site-header.is-open .site-header__mobile{display:block;}
    .site-header__mobile-links{display:grid; padding:6px 24px;}
    .site-header__mobile-links a{display:block; padding:13px 0; border-bottom:1px solid var(--line-soft); font-weight:600; color:var(--ink); font-size:15px;}
    .site-header__mobile-links a[aria-current="page"]{color:var(--main);}
    .site-header__mobile-cta{display:grid; gap:10px; padding:16px 24px 20px;}
    @media (max-width:960px){
      .site-header__main{display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 0;}
      .site-header__brand{margin-right:auto;}
      .site-header__toggle{display:flex;}
      .site-header__cta{display:inline-flex;}
    }
    @media (max-width:768px){
      .site-header__cta{display:none;}
      .tlogo__mark{width:36px; height:36px; border-radius:9px;} .tlogo__mark svg{width:20px; height:20px;}
      .tlogo__ja{font-size:17px;} .tlogo__en{font-size:9px;}
      .sample-bar .in{padding:8px 0; gap:6px;}
    }

/* ============================================================
   下層ページ用ユーティリティ（トップのトークンで再定義・2026-09-05）
   ============================================================ */
.page-main{min-height:60vh;}
.page-hero{padding:clamp(64px,9vw,120px) 0 clamp(44px,6vw,72px); border-bottom:1px solid var(--line); background:linear-gradient(135deg,rgba(246,250,253,.9),rgba(255,255,255,.4)); overflow:hidden;}
.page-hero::after{content:""; position:absolute; right:-6vw; top:-10vw; width:38vw; height:38vw; border-radius:50%; background:radial-gradient(circle, rgba(113,198,185,.22), rgba(113,198,185,0) 70%); pointer-events:none;}
.page-hero .section-inner{position:relative; z-index:1;}
.section-inner{width:min(1160px,calc(100% - 56px)); margin:0 auto;}
.page-hero h1{font-size:clamp(30px,4.6vw,52px); margin:.35em 0 .4em; letter-spacing:.02em;}
.page-hero .lead{max-width:40em; color:var(--body); font-size:clamp(15px,1.7vw,18px);}
.page-section{padding:clamp(56px,7.5vw,96px) 0; border-bottom:1px solid var(--line-soft);}
.page-section.is-soft{background:var(--soft);}
.page-section h2{font-size:clamp(24px,3.2vw,38px); margin:.3em 0 .6em;}
.page-section .lead{max-width:44em; margin-bottom:34px; color:var(--body);}
.page-section h3{font-size:clamp(18px,2vw,23px); margin-bottom:10px;}
.page-section p{color:var(--body);}
.page-section ul{margin:12px 0 0; padding-left:1.25em; color:var(--body);}
.page-section li{margin:4px 0;}
.zoroya-sub-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px;}
.zoroya-sub-card{background:var(--paper); border:1px solid var(--line); border-radius:14px; padding:28px 26px; box-shadow:0 22px 44px -36px rgba(18,50,74,.4); position:relative;}
.zoroya-sub-card .no{font-family:"Space Grotesk",monospace; font-size:12px; letter-spacing:.2em; color:var(--main); font-weight:700; display:block; margin-bottom:12px;}
.zoroya-sub-card p,.zoroya-sub-card li{font-size:15px;}
.zoroya-flow{display:grid; gap:14px; counter-reset:flow; margin:0; padding:0;}
.zoroya-flow li{list-style:none; display:grid; grid-template-columns:auto 1fr; gap:18px; align-items:start; background:var(--paper); border:1px solid var(--line); padding:20px 22px; border-radius:12px;}
.zoroya-flow li::before{counter-increment:flow; content:counter(flow,decimal-leading-zero); font-family:"Space Grotesk",monospace; font-weight:700; font-size:22px; color:var(--main); line-height:1.2;}
.zoroya-flow strong{display:block; color:var(--ink); margin-bottom:4px; font-size:17px;}
.zoroya-info{display:grid; grid-template-columns:200px 1fr; border-top:1px solid var(--line); background:var(--paper);}
.zoroya-info dt,.zoroya-info dd{margin:0; padding:16px 18px; border-bottom:1px solid var(--line);}
.zoroya-info dt{font-weight:700; color:var(--ink); background:var(--soft);}
.zoroya-info dd{color:var(--body);}
.zoroya-faq{display:grid; gap:12px;}
.zoroya-faq details{background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:0;}
.zoroya-faq summary{cursor:pointer; font-weight:700; color:var(--ink); padding:18px 52px 18px 22px; position:relative; list-style:none; font-size:16px; line-height:1.6;}
.zoroya-faq summary::-webkit-details-marker{display:none;}
.zoroya-faq summary::before{content:"Q"; font-family:"Space Grotesk",monospace; color:var(--main); margin-right:12px; font-weight:700;}
.zoroya-faq summary::after{content:""; position:absolute; right:22px; top:50%; width:10px; height:10px; border-right:2px solid var(--main); border-bottom:2px solid var(--main); transform:translateY(-70%) rotate(45deg); transition:transform .25s ease;}
.zoroya-faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg);}
.zoroya-faq details p{padding:0 22px 20px 48px; color:var(--body);}
.zoroya-form-slot{background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:clamp(22px,3vw,36px);}
.zoroya-final{padding:clamp(60px,8vw,100px) 0; background:var(--navy); color:#fff; position:relative; overflow:hidden;}
.zoroya-final::before{content:""; position:absolute; left:-10vw; bottom:-20vw; width:50vw; height:50vw; border-radius:50%; background:radial-gradient(circle, rgba(113,198,185,.28), rgba(113,198,185,0) 70%); pointer-events:none;}
.zoroya-final .section-inner{position:relative; z-index:1;}
.zoroya-final .eyebrow{color:var(--teal);}
.zoroya-final h2{color:#fff; font-size:clamp(26px,3.6vw,42px); margin:.3em 0 .5em;}
.zoroya-final p{color:rgba(255,255,255,.8); max-width:40em;}
.zoroya-actions{display:flex; flex-wrap:wrap; gap:14px; margin-top:28px;}

/* 診療メニュー（写真＋本文の左右交互） */
.sub-menu{display:grid; gap:clamp(28px,4vw,56px);}
.sub-menu__row{display:grid; grid-template-columns:5fr 7fr; gap:clamp(24px,4vw,56px); align-items:center; scroll-margin-top:120px;}
.sub-menu__row:nth-child(even) .sub-menu__pic{order:2;}
.sub-menu__pic{border-radius:16px; overflow:hidden; aspect-ratio:4/3; box-shadow:0 30px 60px -40px rgba(18,50,74,.5);}
.sub-menu__pic img{width:100%; height:100%; object-fit:cover;}
.sub-menu__body .no{font-family:"Space Grotesk",monospace; font-size:12px; letter-spacing:.22em; color:var(--main); font-weight:700;}
.sub-menu__body h3{font-size:clamp(22px,2.6vw,30px); margin:8px 0 12px;}
.sub-menu__meta{display:grid; grid-template-columns:auto 1fr; gap:8px 16px; margin-top:18px; padding-top:16px; border-top:1px solid var(--line); font-size:14px;}
.sub-menu__meta dt{color:var(--main); font-weight:700; white-space:nowrap;}
.sub-menu__meta dd{margin:0; color:var(--body);}
.sub-menu__price{display:inline-block; margin-top:14px; padding:8px 14px; border-radius:8px; background:var(--soft); border:1px solid var(--line); color:var(--ink); font-weight:700; font-size:14px;}

/* 院長プロフィール */
.sub-profile{display:grid; grid-template-columns:4fr 8fr; gap:clamp(24px,4vw,56px); align-items:start;}
.sub-profile__pic{border-radius:16px; overflow:hidden; aspect-ratio:4/5; box-shadow:0 30px 60px -40px rgba(18,50,74,.5);}
.sub-profile__pic img{width:100%; height:100%; object-fit:cover;}
.sub-profile__name{font-family:"Shippori Mincho",serif; font-size:clamp(22px,2.6vw,30px); color:var(--ink); font-weight:700;}
.sub-profile__role{font-size:13px; color:var(--main); letter-spacing:.12em; font-weight:700; margin-bottom:14px;}
.sub-profile__body p{margin-bottom:1em;}
.sub-profile__career{margin-top:22px; padding-top:18px; border-top:1px solid var(--line); display:grid; grid-template-columns:auto 1fr; gap:6px 18px; font-size:14px;}
.sub-profile__career dt{font-family:"Space Grotesk",monospace; color:var(--main); font-weight:700;}
.sub-profile__career dd{margin:0; color:var(--body);}

/* 院内ギャラリー */
.sub-gallery{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
.sub-gallery figure{margin:0; border-radius:12px; overflow:hidden; background:var(--paper); border:1px solid var(--line);}
.sub-gallery img{width:100%; aspect-ratio:4/3; object-fit:cover;}
.sub-gallery figcaption{padding:12px 14px; font-size:14px; color:var(--body);}
.sub-gallery figcaption strong{display:block; color:var(--ink); font-size:15px; margin-bottom:2px;}

/* 診療時間表 */
.sub-hours{width:100%; border-collapse:collapse; background:var(--paper); font-size:15px;}
.sub-hours th,.sub-hours td{border:1px solid var(--line); padding:12px 8px; text-align:center;}
.sub-hours th{background:var(--soft); color:var(--ink); font-weight:700;}
.sub-hours td:first-child{text-align:left; white-space:nowrap; color:var(--ink); font-weight:700; padding-left:14px;}
.sub-hours .on{color:var(--main); font-weight:700;}
.sub-hours .off{color:var(--muted);}
.sub-hours-note{font-size:13px; color:var(--muted); margin-top:10px;}

/* 予約フォーム（サンプル・送信されない） */
.sub-form{display:grid; gap:18px;}
.sub-form__row{display:grid; gap:6px;}
.sub-form__row label{font-weight:700; color:var(--ink); font-size:14px;}
.sub-form__row label .req{display:inline-block; margin-left:8px; font-size:11px; color:#fff; background:var(--main); padding:2px 7px; border-radius:4px; vertical-align:middle;}
.sub-form input[type="text"],.sub-form input[type="tel"],.sub-form input[type="email"],.sub-form select,.sub-form textarea{width:100%; font:inherit; font-size:15px; padding:12px 14px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink);}
.sub-form textarea{min-height:140px; resize:vertical;}
.sub-form input:focus,.sub-form select:focus,.sub-form textarea:focus{outline:2px solid var(--teal); outline-offset:1px;}
.sub-form__two{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.sub-form__agree{font-size:14px; color:var(--body); display:flex; gap:10px; align-items:flex-start;}
.sub-form__agree input{margin-top:5px;}
.sub-form__note{font-size:13px; color:var(--muted);}
.sub-form__done{display:none; background:var(--soft); border:1px solid var(--line); border-radius:10px; padding:16px 18px; color:var(--ink); font-weight:700;}
.sub-form.is-done .sub-form__done{display:block;}
.sub-form.is-done .sub-form__submit{display:none;}

/* 条文（プライバシーポリシー） */
.sub-prose{max-width:46em;}
.sub-prose h2{font-size:clamp(20px,2.2vw,26px); margin:2em 0 .6em;}
.sub-prose h2:first-child{margin-top:0;}
.sub-prose p{margin-bottom:1em;}
.sub-prose ul{margin:0 0 1em; padding-left:1.3em;}
.sub-prose .date{font-size:13px; color:var(--muted); margin-top:30px;}

/* アクセス */
.sub-access{display:grid; grid-template-columns:7fr 5fr; gap:clamp(24px,4vw,48px); align-items:start;}
.sub-access__pics{display:grid; gap:12px;}
.sub-access__pics img{width:100%; aspect-ratio:16/10; object-fit:cover; border-radius:12px;}

/* 演出（medi と同型・CSSのみ） */
@keyframes heroRise{from{opacity:0; transform:translateY(22px);} to{opacity:1; transform:none;}}
.page-hero__inner .eyebrow,.page-hero__inner h1,.page-hero__inner .lead{animation:heroRise .9s cubic-bezier(.16,1,.3,1) both;}
.page-hero__inner .eyebrow{animation-delay:.10s;} .page-hero__inner h1{animation-delay:.22s;} .page-hero__inner .lead{animation-delay:.34s;}
.is-reveal{opacity:0; transform:translateY(26px); transition:opacity .9s cubic-bezier(.16,1,.3,1) .06s, transform .9s cubic-bezier(.16,1,.3,1) .06s;}
.is-reveal.is-shown{opacity:1; transform:none;}
@media (prefers-reduced-motion:reduce){
  .page-hero__inner .eyebrow,.page-hero__inner h1,.page-hero__inner .lead{animation:none;}
  .is-reveal{opacity:1; transform:none; transition:none;}
}

@media (max-width:960px){
  .sub-menu__row,.sub-profile,.sub-access{grid-template-columns:1fr;}
  .sub-menu__row:nth-child(even) .sub-menu__pic{order:0;}
  .sub-profile__pic{max-width:420px;}
  .sub-gallery{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:768px){
  .section-inner{width:min(100% - 36px,1160px);}
  .zoroya-sub-grid,.zoroya-info,.sub-form__two,.sub-gallery{grid-template-columns:1fr;}
  .zoroya-info dt{padding-bottom:4px; border-bottom:0;} .zoroya-info dd{padding-top:6px;}
  .sub-hours{font-size:13px;} .sub-hours th,.sub-hours td{padding:10px 4px;}
  .sub-menu__row{scroll-margin-top:90px;}
}
