         :root {
             --orange: #e67c33;
             --green: #5d8030;
             --green-d: #44551f;
             --tan: #cb9c3f;
             --text: #292929;
             --bg: #fbfaf6;
             --ink: #3a3a34;
             --line: #e8e4d8;
             --soft: #f2efe6;
             --cream: #faf6ee;
             --cream2: #f3ecdd;
             --paper: #fffdf8;
         }

         * {
             margin: 0;
             padding: 0;
             box-sizing: border-box
         }

         html {
             scroll-behavior: smooth;
             overflow-x: hidden;
         }

         body {
             font-family: "Zen Kaku Gothic New",sans-serif;
             color: var(--text);
             background: var(--bg);
             line-height: 1.5;
             font-size: 18px;
             letter-spacing: .03em;
             font-weight: 400;
             -webkit-font-smoothing: antialiased;
         }
         ul{
            list-style: none;
         }
         .min {
             font-family: "Shippori Mincho",serif
         }

         .maru {
             font-family: "Zen Maru Gothic",sans-serif
         }

         h1,h2,h3 {
             font-family: "Zen Maru Gothic",sans-serif;
             font-weight: 700
         }

         a {
             color: inherit;
             text-decoration: none
         }

         img {
             max-width: 100%;
             display: block
         }
         .forSP{
            display:none;
        }
        span.bold{
            font-weight: 500;
        }
         .wrap {
             max-width: 1180px;
             margin: 0 auto;
             padding: 0 32px
         }

         .tate {
             writing-mode: vertical-rl;
             text-orientation: mixed
         }

         .ph {
             background: linear-gradient(160deg,#eae4d5,#ded3ba);
             position: relative;
             overflow: hidden;
             color: #a99668;
             display: flex;
             align-items: center;
             justify-content: center;
             font-family: "Zen Maru Gothic";
             font-size: 13px;
             letter-spacing: .12em
         }

         .ph::after {
             content: "";
             position: absolute;
             inset: 0;
             background: radial-gradient(circle at 25% 15%,rgba(255,255,255,.45),transparent 55%)
         }

         .ph span {
             position: relative;
             z-index: 1
         }

         .ph.has-photo {
             background-size: cover;
             background-position: center;
             background-repeat: no-repeat;
             /* height: 100vh; */
             width: 100%;
         }

         .ph.has-photo::after {
             display: none
         }

         .ph.has-photo span {
             display: none
         }

         /* スクロールでふわっと表示 */
         .reveal {
             opacity: 0;
             transform: translateY(28px);
             transition: opacity .9s cubic-bezier(.22,.61,.36,1),transform .9s cubic-bezier(.22,.61,.36,1)
         }

         .reveal.in {
             opacity: 1;
             transform: none;
             /* height: 100vh; */
             /* display: flex; */
         }

         .lead-note {
             max-width: 760px;
             margin: 0 auto 8px;
             text-align: center;
             color: #5f5f57;
             font-size: 15.5px;
             line-height: 2.1
         }

         /* ===== Header (案A) ===== */
         header {
             position: sticky;
             top: 0;
             z-index: 60;
             background: rgba(250,246,238,.94);
             backdrop-filter: blur(8px);
             border-bottom: 1px solid var(--line)
         }
         header .wrap{
            width: 1500px;
            max-width: 90%;
         }

         .nav {
             display: flex;
             align-items: center;
             justify-content: space-between;
             height: 75px;
         }

         .logo {
             display: flex;
             align-items: center;
             gap: 12px
         }

         .logo img {
             width: 50px;
             height: auto;
         }

         .logo span {
             font-size: 20px;
             line-height: 1;
         }

         .logo .mark {
             width: 42px;
             height: 42px;
             border-radius: 50%;
             background: var(--green);
             color: #fff;
             display: flex;
             align-items: center;
             justify-content: center;
             font-family: "Zen Maru Gothic";
             font-weight: 700;
             font-size: 20px
         }

         .logo {
             font-family: "Zen Maru Gothic";
             font-size: 19px;
             color: var(--green);
             font-weight: 700;
             letter-spacing: .05em
         }

         .logo small {
             display: block;
             font-size: 11px;
             color: var(--tan);
             letter-spacing: .2em
         }

         .menu {
             display: flex;
             gap: 26px;
             align-items: center;
             font-size: 15px;
             font-weight: 500
         }

         .menu a {
             transition: color .2s
         }

         .menu a:hover {
             color: var(--orange)
         }

         .nav-cta {
             background: #06C755;
             color: #fff;
             padding: 10px 18px 14px;
             border-radius: 30px;
             font-weight: 700;
             font-size: 16px;
             line-height: 1;
             transition: transform .2s;
             font-family: "Zen Maru Gothic";
             display: inline-flex;
             align-items: center;
             gap: 7px;
             white-space: nowrap
         }

         .nav-cta svg {
             width: 17px;
             height: 17px;
             flex: none
         }

         .nav-cta .cta-short {
             display: none
         }

         .nav-cta:hover {
             transform: translateY(-2px)
         }

         .nav-right {
             display: flex;
             align-items: center;
             gap: 26px
         }

         .nav-actions {
             display: flex;
             align-items: center;
             gap: 14px
         }

         .nav-toggle {
             display: none;
             flex-direction: column;
             justify-content: center;
             gap: 5px;
             width: 44px;
             height: 44px;
             padding: 0;
             background: none;
             border: none;
             cursor: pointer
         }

         .nav-toggle span {
             display: block;
             width: 24px;
             height: 2px;
             background: var(--green);
             border-radius: 2px;
             transition: transform .3s,opacity .3s
         }

         body.nav-open .nav-toggle span:nth-child(1) {
             transform: translateY(7px) rotate(45deg)
         }

         body.nav-open .nav-toggle span:nth-child(2) {
             opacity: 0
         }

         body.nav-open .nav-toggle span:nth-child(3) {
             transform: translateY(-7px) rotate(-45deg)
         }

         .nav-overlay {
             position: fixed;
             inset: 0;
             background: rgba(58,58,52,.45);
             opacity: 0;
             visibility: hidden;
             transition: opacity .3s,visibility .3s;
             z-index: 50
         }

         body.nav-open .nav-overlay {
             opacity: 1;
             visibility: visible
         }

         body.nav-open .pagetop {
             opacity: 0;
             visibility: hidden
         }

         /* ===== Hero ===== */
         .hero {
             padding: o;
             position: relative
         }

         .hero-inner {
             display: flex;
             grid-template-columns: auto 1fr;
             gap: 0;
             align-items: stretch;
             min-height: 70vh;
             margin: 0;
             padding: 0;
             width: 100%;
             max-width: 100%;
         }
         .hero-inner-logo{
            max-width: 150px;
            margin: 0 auto 2.5rem;
         }
         .hero-inner-logo img{
            width: 100%;
         }
         .hero-left {
             display: flex;
             align-items: center;
             /* padding: 60px 10em; */
             position: relative;
             justify-content: center;
             width: 40%;
         }

         .hero-left .catch {
             display: flex;
             gap: 34px;
             align-items: flex-start
         }

         .hero h1.tate {
             font-size: clamp(34px,7.6vw,53px);
             line-height: 1.35;
             color: var(--ink);
             letter-spacing: .14em;
             height: auto;
             font-weight: 700
         }

         .hero h1 .o {
             color: var(--orange)
         }

         .hero .sub-tate {
             writing-mode: vertical-rl;
             font-family: "Shippori Mincho";
             font-weight: bold;
             font-size: 17px;
             line-height: 2;
             color: #77776e;
             letter-spacing: .18em;
             height: auto;
             margin-top: 11px;
         }

         .hero-right {
             position: relative;
             width: 60%;
             height: 100vh;
         }

         .hero-right .big-ph {
             position: absolute;
             inset: 0;
             background-position: 0 85%;
             background-size: 100%;
             width: 100%;
             position: relative;
             height: 100vh;
         }

         .hero-meta {
             position: absolute;
             left: -40px;
             bottom: 150px;
             background: var(--bg);
             padding: 24px 28px;
             z-index: 2;
             border-left: 3px solid var(--orange);
             max-width: 310px;
         }

         .hero-meta .en {
             font-family: "Shippori Mincho";
             font-style: italic;
             color: var(--tan);
             font-size: 15px;
             letter-spacing: .1em;
             margin-bottom: 8px;
             font-weight: bold;
         }

         .hero-meta p {
             font-family: "Zen Maru Gothic";
             font-size: 15px;
             color: var(--ink);
             line-height: 1.8
         }
         .hero-meta-tab{
            display: none;
         }

         .scroll-hint {
             position: absolute;
             bottom: 20px;
             left: 32px;
             font-size: 11px;
             letter-spacing: .25em;
             color: var(--tan);
             writing-mode: vertical-rl
         }

         /* ===== 当院の特徴・こだわり band (差し込み) ===== */
         /* hero-meta へ移した特徴・こだわり（端的版） */
         .hero-meta .meta-list {
             list-style: none;
             display: flex;
             flex-direction: column;
             gap: 9px
         }

         .hero-meta .meta-list li {
             font-family: "Zen Maru Gothic";
             font-size: 13.5px;
             color: var(--ink);
             line-height: 1.5;
             position: relative;
             padding-left: 20px
         }

         .hero-meta .meta-list li + li{
            padding-top: 5px;
         }

         .hero-meta .meta-list li::before {
             content: "✓";
             position: absolute;
             left: 0;
             color: var(--orange);
             font-weight: 700
         }

         /* ===== 選ばれる3つの理由（案Cデザイン） ===== */
         .feat {
             background: var(--soft)
         }

         .sec-head {
             text-align: center;
             margin-bottom: 2rem;
         }

         .sec-head .en {
             color: var(--tan);
             font-family: "Zen Maru Gothic";
             letter-spacing: .24em;
             font-size: 15px;
             text-transform: uppercase;
             font-weight: bold;
             margin-bottom: 10px;
         }

         .sec-head h2 {
             font-family: "Zen Maru Gothic";
             font-weight: 700;
             font-size: clamp(26px,3.6vw,36px);
             color: var(--ink);
             margin-top: 0;
             position: relative;
             display: inline-block;
             padding-bottom: 24px;
             letter-spacing: .06em
         }
         .sec-head h2::after {
             content: "";
             position: absolute;
             left: 50%;
             bottom: 0;
             transform: translateX(-50%);
             width: 52px;
             height: 4px;
             background: var(--orange);
             border-radius: 2px
         }
         .fgrid {
             display: grid;
             grid-template-columns: repeat(3,1fr);
             gap: 26px
         }

         .fcard {
             background: var(--cream2);
             border-radius: 10px;
             overflow: hidden;
             box-shadow: 0 8px 24px rgba(0,0,0,.05);
             transition: transform .3s,box-shadow .3s
         }

         .fcard:hover {
             transform: translateY(-6px);
             box-shadow: 0 18px 40px rgba(93,128,48,.14)
         }

         .fcard .top {
            background-image: url(../images/bg-cta.png);
             color: #fff;
             padding: 22px 26px;
             display: flex;
             align-items: center;
             gap: 14px
         }

         .fcard .top .n {
             width: 44px;
             height: 44px;
             border-radius: 50%;
             background: rgba(255,255,255,.2);
             display: flex;
             align-items: center;
             justify-content: center;
             font-family: "Zen Maru Gothic";
             font-size: 20px;
             font-weight: 700;
             flex: none
         }

         .fcard .top h3 {
             font-size: 17.5px;
             line-height: 1.5;
             color: #fff
         }

         .fcard .body {
             padding: 26px
         }

         .fcard .body .ph {
             aspect-ratio: 16/9;
             border-radius: 10px;
             margin-bottom: 18px
         }

         .fcard .body p {
             font-size: 14.5px;
             color: #292929;
             line-height: 1.6;
         }
         p.readmore{
            margin-top: 1rem;
            text-align: right;
            color: var(--tan);
            font-weight: 500;
         }
         p.readmore::before{
            content: ">";
            padding-right: 5px;
         }

         /* ===== reserve row ===== */
         .res-row {
             border-bottom: 1px solid var(--line)
         }

         .res-row .wrap {
             display: flex;
             align-items: center;
             justify-content: space-between;
             padding-top: 26px;
             padding-bottom: 26px
         }

         .res-row .txt {
             font-family: "Zen Maru Gothic";
             font-size: 18px;
             color: var(--ink);
             letter-spacing: .06em
         }

         .res-row .txt span {
             color: var(--tan);
             font-size: 13px;
             display: block;
             font-family: "Shippori Mincho";
             letter-spacing: .14em;
             margin-top: 4px
         }

         .res-row .btn {
             background: var(--orange);
             color: #fff;
             padding: 16px 40px;
             font-family: "Zen Maru Gothic";
             font-size: 16px;
             border-radius: 2px;
             letter-spacing: .06em;
             transition: transform .2s
         }

         .res-row .btn:hover {
             transform: translateY(-2px)
         }

         /* ===== section framing ===== */
         section.blk {
             padding: 100px 0
         }

         .eyebrow {
             display: flex;
             align-items: center;
             gap: 16px;
             margin-bottom: 13px;
             font-weight: bold;
             padding-left: 8px;
         }

         .eyebrow .en {
             font-family: "Shippori Mincho";
             font-style: italic;
             color: var(--tan);
             font-size: 18px;
             letter-spacing: .14em
         }

         .eyebrow .ln {
             flex: 1;
             height: 1px;
             background: var(--line);
             max-width: 80px
         }

         .h2big {
             font-size: clamp(22px,3vw,35px);
             color: var(--ink);
             letter-spacing: .08em;
             line-height: 1.4;
             font-weight: 700;
            margin-bottom: 2rem;
         }
         /* about */
         .about-grid {
             display: grid;
             grid-template-columns: 1fr 1fr;
             gap: 70px;
             align-items: center
         }

         .about-txt .lead {
             font-family: "Shippori Mincho";
             font-size: 22px;
             line-height: 2.2;
             color: var(--green);
             margin: 28px 0 24px;
             letter-spacing: .06em;
             font-weight: 500
         }

         .about-txt p {
             color: #292929;
             font-size: 15px;
             line-height: 2.3;
             margin-bottom: 16px
         }

         .about-visual {
             position: relative
         }

         .about-visual .p1 {
             aspect-ratio: 3/4
         }

         .about-visual .p2 {
             position: absolute;
             right: -30px;
             bottom: -40px;
             width: 56%;
             aspect-ratio: 1/1;
             border: 8px solid var(--bg)
         }

         .about-visual .seal {
             position: absolute;
             top: -24px;
             left: -24px;
             width: 96px;
             height: 96px;
             border-radius: 50%;
             background: var(--green);
             color: #fff;
             font-family: "Zen Maru Gothic",sans-serif;
             display: flex;
             align-items: center;
             justify-content: center;
             font-size: 17px;
             letter-spacing: .1em;
             text-align: center;
             line-height: 1.2;
             transform: rotate(-6deg)
         }

         /* menu */

         .menu-grid {
             display: grid;
             grid-template-columns: 1fr 1fr;
             gap: 0;
         }

         .mcell {
             background: #fff;
             padding: 40px 42px 25px;
             position: relative
         }
         .subpage .mcell{background: var(--cream);}
         .mcell .mhead {
             display: flex;
             justify-content: space-between;
             align-items: center;
             gap: 14px;
             margin-bottom: 16px
         }

         .mcell .mtag {
             flex: none;
             font-family: "Zen Maru Gothic";
             font-weight: 700;
             font-size: 13px;
             color: #fff;
             padding: 6px 16px;
             border-radius: 20px;
             letter-spacing: .06em;
             white-space: nowrap;
             line-height: 1
         }

         .mcell .mtag.red {
             background: #a23c3c
         }

         .mcell .mtag.green {
             background: #8b9a46
         }

         .mcell .mtag.blue {
             background: #3d5a87
         }

         .mcell .mtag.tan {
             background: #fff;
             color: #96702f;
             border: 1.5px solid var(--tan)
         }

         .mcell .mhead h3 {
             font-size: 22px;
             color: var(--ink);
             margin: 0;
             letter-spacing: .04em
         }

         .mcell p {
             font-size: 14px;
             color: #292929;
             line-height: 2;
             margin-bottom: 24px;
             min-height: 96px
         }

         .mcell .foot {
             display: flex;
             align-items: baseline;
             gap: 14px;
             padding-top: 20px;
             border-top: 1px dashed var(--line);
             flex-wrap: wrap
         }

         .mcell .time {
             font-family: "Zen Maru Gothic";
             font-weight: 700;
             font-size: 28px;
             color: var(--green);
             letter-spacing: .01em;
             line-height: 1.2
         }

         .mcell .sep {
             font-size: 22px;
             color: #cabfa6;
             font-weight: 400
         }

         .mcell .price {
             font-family: "Zen Maru Gothic";
             font-weight: 700;
             font-size: 28px;
             color: #7d5a2e;
             line-height: 1.2
         }

         .mcell .price small {
             font-size: 14px;
             font-weight: 500
         }

         /* symptoms ( → 白背景・文字2pt拡大) */
         .sym {
             background: #fff
         }

         .sym .eyebrow .en {
             color: var(--tan)
         }

         .sym .h2big {
             color: var(--ink)
         }

         .sym-cols {
             display: grid;
             grid-template-columns: repeat(4,1fr);
             gap: 10px;
             margin-top: 20px;
         }

         .sym-cols .col {
             background: var(--cream);
             padding: 0
         }

         .sym-cols h4 {
             display: flex;
             align-items: center;
             gap: 9px;
             font-family: "Zen Maru Gothic";
             font-size: 19px;
             color: var(--green);
             margin-bottom: 0;
             letter-spacing: .06em;
             padding-bottom: 14px;
             border-bottom: 1px solid rgba(255,255,255,.28);
             background: var(--green);
             padding: 17px 25px;
             color: #fff;
         }

         .sym-cols h4 svg {
             width: 21px;
             height: 21px;
             flex: none;
             stroke: #eadcc2
         }

         .sym-cols ul {
             list-style: none;
             padding: 20px 10px 25px;
         }
        .sym-cols p{
            padding: 0 20px 25px;
            font-size: 14px;
        }
         .sym-cols li {
             padding: 5px 0;
             position: relative;
             padding-left: 20px;
         }

         .sym-cols li::before {
             content: "-";
             left: 0;
             padding-right: 5px;
         }

         /* staff */
         .staff-grid {
             display: grid;
             grid-template-columns: .85fr 1.15fr;
             gap: 60px;
             align-items: center
         }

         .staff-grid .ph.has-photo {
             background-position: top;
         }

         .staff-ph {
             aspect-ratio: 4/5
         }

         .staff-txt .role {
             font-weight: 500;
             color: var(--tan);
             letter-spacing: .14em;
         }

         .staff-txt h3 {
             font-size: 34px;
             color: var(--ink);
             margin: 8px 0 4px;
             letter-spacing: .06em;
             line-height: 1.5;
         }

         .staff-txt .en {
             color: #9a9a90;
             letter-spacing: .16em;
             margin-bottom: 22px
         }

         .staff-txt .lic {
             display: flex;
             gap: 10px;
             flex-wrap: wrap;
             margin-bottom: 24px
         }

         .staff-txt .lic span {
             border: 2px solid var(--line);
             padding: 6px 16px;
             color: var(--green);
             font-family: "Zen Maru Gothic";
             border-radius: 2px;
             font-weight: bold;
             background: #fff;
         }

         .staff-txt blockquote {
             font-family: "Shippori Mincho";
             font-size: 17px;
             line-height: 1.8;
             color: #292929;
             border-left: 3px solid var(--tan);
             padding-left: 24px;
             letter-spacing: .04em
         }

         /* cta */
         .cta {
             position: relative;
             text-align: center;
             padding: 80px 0;
             overflow: hidden
         }
         .cta-yoko{
            padding: 0;
         }
         .cta-yoko .wrap{
            display: flex;
            padding: 0;
            max-width: 100%;
         }
         .cta-yoko .wrap .left,.cta-yoko .wrap .right{
            width: 50%;
         }
         .cta-yoko .wrap .left{
            padding: 75px;
         }
         .cta-yoko .wrap .right{
            background-image: url(../images/about-inside.jpg);
         }

         .cta .bg-ph {
             position: absolute;
             inset: 0;
         }

         .cta .veil {
             position: absolute;
             inset: 0;
             background-image: url(../images/bg-cta.png);
         }

         .cta .wrap {
             position: relative;
             z-index: 2;
             color: #fff
         }

         .cta .en {
             font-family: "Shippori Mincho";
             font-style: italic;
             letter-spacing: .2em;
             font-size: 18px;
             color: #e6d6ba;
             margin-bottom: 12px;
         }

         f .cta h2 {
             font-size: clamp(28px,4.4vw,44px);
             color: #fff;
             letter-spacing: .08em;
             line-height: 1.5;
             margin-bottom: 22px
         }

         .cta p {
             font-size: 18px;
             color: #eef1e8;
             margin: 25px auto;
             font-weight: bold;
             letter-spacing: 0.2em;
         }

         .cta-actions {
             display: flex;
             gap: 30px;
             align-items: center;
             justify-content: center;
             flex-wrap: wrap;
             margin-bottom: 6px
         }

         .cta .btn {
             background: #06C755;
             color: #fff;
             padding: 20px 44px;
             font-family: "Zen Maru Gothic";
             font-size: 16pt;
             letter-spacing: .06em;
             border-radius: 50px;
             display: inline-flex;
             align-items: center;
             gap: 12px;
             transition: transform .2s;
             font-weight: bold;
         }

         .cta .btn svg {
             width: 24px;
             height: 24px;
             flex: none
         }

         .cta .btn:hover {
             transform: translateY(-3px)
         }

         .qr-card {
             background: #fff;
             border-radius: 16px;
             padding: 14px 14px 12px;
             display: flex;
             flex-direction: column;
             align-items: center;
             gap: 8px;
             box-shadow: 0 12px 28px rgba(0,0,0,.18)
         }

         .qr-card img {
             width: 118px;
             height: 118px;
             display: block;
             border-radius: 6px
         }

         .qr-card span {
             font-family: "Zen Maru Gothic";
             font-size: 12.5px;
             color: #3a3a34;
             line-height: 1.4;
             text-align: center
         }

         .cta .note {
             margin-top: 20px;
             font-size: 18px;
             color: #dfe4d5;
             letter-spacing: .08em;
             font-weight: bold;
         }

         /* access ( + 印カラー変更) */
         .acc-grid {
             display: grid;
             grid-template-columns: 1.1fr .9fr;
             align-items: start
         }

         .map-ph {
             aspect-ratio: 16/11
         }
         #access .map-ph {
            aspect-ratio: unset;   /* 固定比率を解除 */
            align-self: stretch;   /* 右カラムの高さに追従 */
            min-height: 300px;     /* コンテンツが少ない時の最低限の高さ */
        }
         .map-ph iframe{
            height: 100%;
         }

         .itbl {
             width: 100%;
             border-collapse: collapse
         }

         .itbl th {
             text-align: left;
             padding: 18px 15px 18px 0;
             width: auto;
             white-space: nowrap;
             font-family: "Zen Maru Gothic";
             color: var(--green);
             vertical-align: top;
             border-bottom: 1px solid var(--line);
             letter-spacing: .06em
         }

         .itbl td {
             padding: 15px 0;
             border-bottom: 1px solid var(--line);
             color: #292929
         }
         .itbl tr:first-child th,
         .itbl tr:first-child td{
            border-top: 0;
         }
         .itbl tr:last-child th,
         .itbl tr:last-child td{
            border-bottom: 0;
         }

         .hours {
             width: 100%;
             border-collapse: collapse;
         }

         .hours th,.hours td {
             border: 1px solid var(--line);
             padding: 11px 4px;
             text-align: center
         }

         .hours th {
             background: var(--green);
             color: var(--green);
             font-family: "Zen Maru Gothic";
             color: #fff;
         }
         .hours td{
            background: #fff;
         }

         .hours td.open {
             color: var(--orange);
             font-size: 16px;
             line-height: 1
         }

         .hours td.closed {
             color: var(--green);
             font-family: "Zen Maru Gothic";
             font-weight: 700
         }

         .hours-legend {
             display: flex;
             gap: 22px;
             margin-top: 12px;
             font-size: 15px;
         }

         .hours-legend span {
             display: inline-flex;
             align-items: center;
             gap: 7px
         }

         .hours-legend .dot {
             font-size: 15px;
             line-height: 1
         }

         .hours-legend .o {
             color: var(--orange)
         }

         .hours-legend .c {
             color: var(--green);
             font-family: "Zen Maru Gothic";
             font-weight: 700
         }

         /* ===== Footer (案A) ===== */
         footer {
             background: var(--green-d);
             color: #d8dcc9;
             padding: 56px 0 28px
         }

         .foot-grid {
             display: grid;
             grid-template-columns: 1.4fr 1fr 1fr;
             gap: 40px;
             margin-bottom: 40px
         }

         .foot-logo b {
             font-family: "Zen Maru Gothic";
             font-size: 20px;
             color: #fff;
             display: block;
             margin-bottom: 14px
         }

         .foot-grid p {
             line-height: 1.9;
             color: #fff
         }
         .foot-grid ul li{
            font-size: 16px;
            padding-bottom: 5px;
         }
         .foot-col h4 {
             font-family: "Zen Maru Gothic";
             color: #fff;
             margin-bottom: 5px;
             letter-spacing: .08em;
             font-size: 18px;
         }

         .foot-col a {
             display: block;
             padding: 0;
             color: #fff;
             transition: color .2s
         }

         .foot-col a:before {
             content: "-" ;
             padding-right: 5px;
         }

         .foot-col a:hover {
             color: var(--orange)
         }

         /* ===== 公開フェーズ切替：ヘッダー/フッターのリンク先 =====
<body data-nav="internal"> … ① 7月公開（トップのみ）＝ページ内リンク
<body data-nav="pages">    … ② 8月公開（下層あり）＝各ページへのリンク
切替は <body> の data-nav の値を internal ⇔ pages に変えるだけ */
         body[data-nav="internal"] .nav-pages {
             display: none
         }

         body[data-nav="pages"] .nav-internal {
             display: none
         }

         .sns {
             display: flex;
             gap: 12px;
             margin-top: 0
         }

         .sns a {
             width: 50px;
             height: 50px;
             border-radius: 50%;
             background: rgba(255,255,255,.1);
             display: flex;
             align-items: center;
             justify-content: center;
             font-size: 16px;
             transition: background .2s
         }

         .sns a:hover {
             background: var(--orange)
         }

         .foot-cta-row {
             display: flex;
             align-items: center;
             gap: 14px;
             flex-wrap: wrap
         }

         .foot-line-btn {
             background: #06C755;
             color: #fff;
             padding: 11px 20px;
             border-radius: 30px;
             font-weight: 700;
             font-size: 16px;
             font-family: "Zen Maru Gothic";
             transition: transform .2s;
             display: inline-flex;
             align-items: center;
             gap: 9px
         }

         .foot-line-btn svg {
             width: 19px;
             height: 19px;
             flex: none
         }

         .foot-line-btn:hover {
             transform: translateY(-2px)
         }

         .sns a.ig img {
             width: 20px;
             height: 20px;
             display: block
         }

         .copy {
             border-top: 1px solid rgba(255,255,255,.12);
             padding-top: 24px;
             text-align: center;
             font-size: 13px;
             color: #fff;
         }

         /* ===== タブレット（768〜1024px）：PCとスマホの中間 ===== */

         /* ===== 装飾・追加セクション ===== */
         .ornament {
             display: flex;
             align-items: center;
             justify-content: center;
             color: var(--tan);
             margin-bottom: 6px
         }

         .ornament svg {
             width: 44px;
             height: 12px;
             margin-bottom: 1rem;
         }

         /* ヒーロー装飾ブロブ */
         .hero {
             overflow: hidden
         }

         .hero-deco {
             /* position:absolute; */
             /* inset:0; */
             z-index: 0;
             pointer-events: none;
             overflow: hidden
         }

         .hero-deco .b1 {
             position: absolute;
             top: -90px;
             right: -120px;
             width: 440px;
             height: 440px;
             border-radius: 50%;
             background: radial-gradient(circle,rgba(230,124,51,.10),transparent 70%)
         }

         .hero-deco .b2 {
             position: absolute;
             bottom: -140px;
             left: -120px;
             width: 380px;
             height: 380px;
             border-radius: 50%;
             background: radial-gradient(circle,rgba(93,128,48,.08),transparent 70%)
         }

         .hero-deco .dots {
             position: absolute;
             top: 70px;
             left: 44%;
             width: 120px;
             height: 120px;
             background-image: radial-gradient(var(--tan) 1.6px,transparent 1.6px);
             background-size: 16px 16px;
             opacity: .25
         }

         .hero > .wrap {
             /* position: relative; */
             z-index: 1;
             padding: 0;
             height: calc(100vh - 75px);
             margin: 0;
             width: 100%;
             max-width: 100%;
             display: flex;
         }

         /* 3つの理由：淡いパターン */
         .feat {
             position: relative;
             overflow: hidden
         }

         .feat::before {
             content: "";
             position: absolute;
             top: -60px;
             right: -60px;
             width: 220px;
             height: 220px;
             border-radius: 50%;
             background: radial-gradient(circle,rgba(230,124,51,.07),transparent 70%);
             pointer-events: none
         }

         .feat .wrap {
             position: relative;
             z-index: 1
         }

         /* 実績バンド */
         .stats {
             background: var(--green);
             color: #fff;
             position: relative;
             overflow: hidden
         }

         .stats::before {
             content: "";
             position: absolute;
             inset: 0;
             background: radial-gradient(circle at 12% 15%,rgba(255,255,255,.07),transparent 42%),radial-gradient(circle at 88% 85%,rgba(230,124,51,.16),transparent 46%);
             pointer-events: none
         }

         .stats .wrap {
             position: relative;
             z-index: 1;
             padding: 30px 0;
             display: grid;
             grid-template-columns: repeat(4,1fr);
             gap: 20px;
             text-align: center
         }

         .stat {
             border-left: 1px solid rgba(255,255,255,.16)
         }

         .stat:first-child {
             border-left: none
         }

         .stat .num {
             font-family: "Zen Maru Gothic";
             font-weight: 700;
             font-size: clamp(30px,4vw,46px);
             color: #fff;
             line-height: 1;
             letter-spacing: .02em
         }

         .stat .num small {
             font-size: 18px;
             margin-left: 2px
         }

         .stat .lbl {
             font-size: 13.5px;
             color: #e6ecdb;
             margin-top: 12px;
             letter-spacing: .04em
         }

         /* 施術の流れ */
         #flow, #staff.toppage {
             background-color: var(--cream);
         }
         .flow-list {
             display: grid;
             grid-template-columns: repeat(4,1fr);
             gap: 24px;
             margin-top: 8px
         }

         .flow-step {
             background: #fff;
             border: 1px solid var(--line);
             border-radius: 14px;
             padding: 34px 24px 26px;
             position: relative;
             text-align: center
         }

         .flow-step .no {
             position: absolute;
             top: -16px;
             left: 10px;
             transform: translateX(-50%);
             width: 50px;
             height: 50px;
             border-radius: 50%;
             background: var(--orange);
             color: #fff;
             display: flex;
             align-items: center;
             justify-content: center;
             font-family: "Zen Maru Gothic";
             font-weight: 700;
             font-size: 20px;
         }

         .flow-step .ic {
             width: 65px;
             height: 65px;
             margin: 8px auto 16px;
             border-radius: 50%;
             background: var(--soft);
             display: flex;
             align-items: center;
             justify-content: center
         }

         .flow-step .ic svg {
             width: 28px;
             height: 28px;
             stroke: var(--green);
             fill: none;
             stroke-width: 2;
             stroke-linecap: round;
             stroke-linejoin: round
         }

         .flow-step h4 {
             font-family: "Zen Maru Gothic";
             font-size: 20px;
             color: var(--green);
             margin-bottom: 7px;
         }

         .flow-step p {
             font-size: 15px;
             color: #292929;
         }

         .flow-arrow {
             display: none
         }

         /* お客様の声 */
         #voice {
             background: #fff!important;
         }

         .voice-grid {
             display: grid;
             grid-template-columns: repeat(3,1fr);
             gap: 24px
         }

         .voice-card {
             background: var(--cream);
             border: 1px solid var(--line);
             border-radius: 16px;
             padding: 28px 28px 26px;
             box-shadow: 0 8px 22px rgba(93,128,48,.06);
             position: relative
         }

         .voice-card .q {
             font-family: "Shippori Mincho";
             font-size: 44px;
             color: var(--tan);
             line-height: .6;
             opacity: .5
         }

         .voice-card .tag {
             display: inline-block;
             background: #fff;
             color: var(--tan);
             font-family: "Zen Maru Gothic";
             font-weight: bold;
             padding: 4px 12px;
             border-radius: 20px;
             margin: 0 0 12px;
             font-size: 15px;
         }

         .voice-card p {
             color: #292929;
             line-height: 2;
             font-size: 15px;
         }

         .voice-card .who {
             margin-top: 15px;
             display: flex;
             align-items: center;
             gap: 12px;
             border-top: 1px dashed var(--line);
             padding-top: 14px;
             justify-content: end;
         }

         .voice-card .who .av {
             display: none;
         }

         .voice-card .who .nm {
             font-size: 15px;
             color: #5f5f57;
             line-height: 1.5
         }

         .voice-note {
             text-align: center;
             margin-top: 24px;
             color: #8a8a80
         }

         /* お知らせ */
         .news-list {
             max-width: 780px;
             margin: 0 auto
         }

         .news-item {
             display: flex;
             gap: 20px;
             align-items: center;
             padding: 18px 6px;
             border-bottom: 1px solid var(--line)
         }

         .news-item:first-child {
             border-top: 1px solid var(--line)
         }

         .news-item time {
             font-family: "Zen Maru Gothic";
             color: var(--tan);
             white-space: nowrap
         }

         .news-item .cat {
             background: var(--green);
             color: #fff;
             font-size: 11px;
             padding: 3px 11px;
             border-radius: 4px;
             white-space: nowrap;
             font-family: "Zen Maru Gothic"
         }

         .news-item .cat.info {
             background: var(--tan)
         }

         .news-item .cat.camp {
             background: var(--orange)
         }

         .news-item p {
             font-size: 14.5px;
             color: #292929
         }

         /* ページトップ */
         .pagetop {
             position: fixed;
             right: 20px;
             bottom: 20px;
             width: 48px;
             height: 48px;
             border-radius: 50%;
             background: var(--green);
             color: #fff;
             display: flex;
             align-items: center;
             justify-content: center;
             box-shadow: 0 8px 20px rgba(0,0,0,.18);
             opacity: 0;
             visibility: hidden;
             transition: opacity .3s,transform .2s,visibility .3s;
             z-index: 80
         }

         .pagetop.show {
             opacity: 1;
             visibility: visible
         }

         .pagetop:hover {
             transform: translateY(-3px);
             background: var(--green-d)
         }

         .pagetop svg {
             width: 20px;
             height: 20px;
             stroke: #fff;
             fill: none;
             stroke-width: 2;
             stroke-linecap: round;
             stroke-linejoin: round
         }


/* =====================================================
   共通用スタイル
   ===================================================== */
table th,
table td{
    font-size: 16px;
    padding: 15px 0;
    border-top: 1px solid var(--line);
}
table th{
    padding-right: 10px;
    white-space: nowrap;
}
table td{
    padding-left: 10px;
}
/* =====================================================
  トップページ（index.html）
   ===================================================== */
#menu .menu-grid{
    margin-bottom: 1.5rem;
    gap: 50px;
}
#access .acc-grid{
    display: flex;
}
#access .map-ph,#access .box-R{
    width: 50%;
}
/* =====================================================
   下層ページ用スタイル（about / menu / symptoms / staff / faq / access）
   ===================================================== */
.page-hero{padding:120px 0;overflow:hidden;background-size: cover;background-position: center;position: relative;}
.page-hero h1 {font-family: "Zen Maru Gothic";font-weight: 700;font-size: clamp(28px,4vw,35px);color: var(--ink);letter-spacing: .08em;margin: 10px 0 16px;background: #fff;padding: 10px 25px;display: inline-block;margin: auto;}
.page-hero::before{content:"";position:absolute;top:-80px;right:-80px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(230,124,51,.10),transparent 70%);pointer-events:none}
.page-hero .en{font-family:"Shippori Mincho";font-style:italic;color:var(--tan);letter-spacing:.18em;font-size:14px}
.page-hero .crumb{font-size:12.5px;color:#8a8a80;letter-spacing:.04em}
.page-hero .crumb a{color:var(--tan)}
.page-hero .crumb span{margin:0 8px;color:#c9c3b4}
.page-hero .wrap{text-align: left;}
.lead-note{max-width:760px;margin:0 auto 40px;text-align:center;color:#5f5f57;font-size:15.5px;line-height:2.1}
/* トップのヒーロー専用カスタム(height:100vh等)が下層に波及しないようリセット */
body.subpage .reveal.in{height:auto}
body.subpage .ph.has-photo{height:auto;background-position: center;}
body.subpage .h2big{font-size: 30px;}
/* MV */
.page-hero.about{background-image: url(../images/mv-about.jpg);}
.page-hero.mv-menu{background-image: url(../images/mv-menu.jpg);}
.page-hero.symptoms{background-image: url(../images/mv-symptoms.jpg);background-position: center -400px;}
.page-hero.faq{background-image: url(../images/mv-faq.jpg);background-position: center -120px;}
.page-hero.access{background-image: url(../images/mv-access.jpg);background-position: center top;}
/* 余白を少し圧縮 */
.about-grid,.staff-grid, .acc-grid{gap: 44px}


/* 院について */
#inside .ph.has-photo{height: 280px;}
.inside-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.inside-card .ph{aspect-ratio:4/3;border-radius:12px;margin-bottom:16px}
.inside-card figcaption{font-size:14.5px;color:#292929;line-height:2}
.inside-card figcaption b{display:block;font-family:"Zen Maru Gothic";color:var(--green);font-size:17px;margin-bottom:6px}
/* 料金補足 */
.subpage #flow .flow-step{background: #fff;}
.subpage #flow .flow-step .ic, .subpage #flow .flow-step .ic svg{background: #fff;}
.price-notes{max-width:880px;margin:36px auto 0;background:var(--cream);border-radius:14px;padding:40px 30px 30px}
.price-notes h3{font-family:"Zen Maru Gothic";font-size:20px;color:var(--green);margin-bottom:12px;text-align: center;}
.price-notes p{font-size: 15px;}
.price-notes p + p{padding-top: 10px;}
.price-notes ul + h3{margin-top: 2.5rem;}
.price-notes ul{list-style:none;margin-top: 1rem;margin-bottom: 1rem;}
.price-notes ul:last-child{margin-bottom: 0;}
.price-notes li{position:relative;padding-left:18px;font-size:15px;color:#292929;line-height:2}
.price-notes li::before{content:"・";position:absolute;left:0;color:var(--tan)}
/* 症状カード */
#detail .message{font-size: 16px;text-align: center;max-width: 650px;margin: 0 auto 1.5rem;}
/* ===== 症状詳細カード：写真 + テキスト横並び ===== */
#detail .symcard-grid {
    grid-template-columns: 1fr; /* 1列に変更 */
    width: 80%;
    margin: auto;
}
#detail .symcard {
    display: flex;
    flex-direction: row;
    gap: 0;
    padding: 0;           /* 元のpadding を内部要素に移す */
    overflow: hidden;
    align-items: stretch;
}
#detail .symcard h3::before{
    background-size: 30px 30px;
    background-repeat: no-repeat;
    background-position: center;
    width: 30px;
}
#detail .symcard.sym-neck h3::before{
    content: "　";
    background-image: url(../images/i-sym-neck.png);
}
#detail .symcard.sym-sciatica h3::before{
    content: "　";
    background-image: url(../images/i-sym-sciatica.png);
}
.symcard-ph {
    width: 300px;
    flex-shrink: 0;
    overflow: hidden;
    border-radius: 14px 0 0 14px; /* カード左側だけ角丸 */
}
.symcard-ph img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.symcard-body {
    flex: 1;
    padding: 28px 28px 24px;
}

/* スマホ：縦積みに戻す */
.symcard-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.symcard{background:#fff;border:1px solid var(--line);border-radius:14px;padding:30px 30px 26px}
.subpage .symcard{background: #fff;}
.subpage .fcard{background: #fff;}
.symcard h3{font-family:"Zen Maru Gothic";font-size:20px;color:var(--green);margin-bottom:12px;display:flex;align-items:center;gap:10px}
.symcard h3 .dot{width:10px;height:10px;border-radius:50%;background:var(--orange);flex:none}
.symcard .row{display:grid;grid-template-columns:96px 1fr;gap:12px;padding:10px 0;border-top:1px dashed var(--line);font-size:14.5px;line-height:1.95}
.symcard .row:first-of-type{border-top:none}
.symcard .row b{color:var(--tan);font-family:"Zen Maru Gothic";font-weight:700}
.symcard p{font-size: 15px;}
.symcard p + p{padding-top: 1em;}
/* 事例 */
.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.case-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:26px}
.case-card .tag{display:inline-block;background:var(--soft);color:var(--green);font-family:"Zen Maru Gothic";font-size:12px;padding:4px 12px;border-radius:20px;margin-bottom:12px}
.case-card h4{font-family:"Zen Maru Gothic";font-size:16.5px;color:var(--ink);margin-bottom:10px}
.case-card p{font-size:14px;color:#292929;line-height:2}
.case-card .who{font-size:12.5px;color:#8a8a80;margin-top:12px}
/* スタッフ */
.staff-full{display:grid;grid-template-columns:.85fr 1.15fr;gap:60px;align-items:start}
body.subpage .ph.has-photo.staff-ph{aspect-ratio:4/5;height: auto;background-position: top center;}
.prof-table{width:100%;border-collapse:collapse;margin-top:26px}
.prof-table th{text-align:left;padding:14px 15px 14px 0;width:auto;white-space:nowrap;font-family:"Zen Maru Gothic";color:var(--green);font-size:14px;vertical-align:top;border-bottom:1px solid var(--line);vertical-align: middle;}
.prof-table tr:first-child th, .prof-table tr:first-child td{border-top: 1px solid var(--line);}
.prof-table td{padding:14px 0;font-size:14.5px;border-bottom:1px solid var(--line);color:#292929;line-height:1.9}
.prof-table ul{list-style: none;}
/* FAQ アコーディオン */
.faq-cat{margin-bottom:44px}
.faq-cat h3{font-family:"Zen Maru Gothic";font-size:20px;color:var(--green);margin-bottom:16px;padding-left:14px;border-left:4px solid var(--orange)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item:first-of-type{border-top:1px solid var(--line)}
.faq-q{width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:20px 44px 20px 42px;position:relative;font-family:"Zen Maru Gothic";font-weight:700;font-size:16px;color:var(--ink);line-height:1.7}
.faq-q::before{content:"Q";position:absolute;left:4px;top:18px;width:28px;height:28px;border-radius:50%;background:var(--green);color:#fff;font-size:14px;display:flex;align-items:center;justify-content:center}
.faq-q::after{content:"";position:absolute;right:12px;top:26px;width:10px;height:10px;border-right:2px solid var(--tan);border-bottom:2px solid var(--tan);transform:rotate(45deg);transition:transform .3s}
.faq-item.open .faq-q::after{transform:rotate(-135deg);top:32px}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease;padding:0 8px 0 42px;position:relative}
.faq-a::before{content:"A";position:absolute;left:4px;top:2px;width:28px;height:28px;border-radius:50%;background:var(--orange);color:#fff;font-size:14px;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s}
.faq-item.open .faq-a{padding-bottom:22px}
.faq-item.open .faq-a::before{opacity:1}
.faq-a p{font-size:14.5px;color:#292929;line-height:2}
.faq-a p + p{margin-top: 1rem;}
/* アクセス */
#access .small{font-size: 14px;padding-top: 10px;}
.map-embed{aspect-ratio:16/10;border-radius:14px;overflow:hidden;background:var(--soft)}
.map-embed iframe{width:100%;height:100%;border:0;display:block}
.access-list{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:40px}
.access-item{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:26px 24px}
.access-item .ic{width:48px;height:48px;border-radius:50%;background:var(--soft);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.access-item .ic svg{width:24px;height:24px;stroke:var(--green);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.access-item h4{font-family:"Zen Maru Gothic";font-size:16.5px;color:var(--green);margin-bottom:8px}
.access-item p{font-size:14px;color:#292929;line-height:1.95}
.contact-box{max-width:820px;margin:0 auto;background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:36px}
.contact-box .fld{display:grid;grid-template-columns:150px 1fr;gap:16px;align-items:start;padding:14px 0;border-bottom:1px dashed var(--line)}
.contact-box .fld:last-of-type{border-bottom:none}
.contact-box label{font-family:"Zen Maru Gothic";font-size:14px;color:var(--green);padding-top:10px}
.contact-box label .req{color:var(--orange);font-size:11px;margin-left:6px}
.contact-box input,.contact-box textarea{width:100%;font-family:inherit;font-size:15px;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#292929}
.contact-box textarea{min-height:140px;resize:vertical}
.contact-box .submit{display:flex;justify-content:center;margin-top:24px}
.contact-box button{background:var(--green);color:#fff;border:none;padding:16px 46px;border-radius:30px;font-family:"Zen Maru Gothic";font-weight:700;font-size:16px;cursor:pointer;transition:transform .2s,background .2s}
.contact-box button:hover{transform:translateY(-2px);background:var(--green-d)}
.contact-note{text-align:center;font-size:13px;color:#8a8a80;margin-top:14px}


/* 追加コンポーネントのレスポンシブ */


/* ===== タブレット専用の調整（768〜1024px）＝ PCとスマホの中間 ===== */

@media(prefers-reduced-motion:reduce) {
    * {
        transition: none!important;
        scroll-behavior: auto
    }

    .reveal {
        opacity: 1!important;
        transform: none!important
    }
}
/* ===== スマホ：画面下部固定のLINE予約バー ===== */
    .sp-fixed-cta{display:none}
/* ===== ページ内リンクの着地位置を固定ヘッダー分だけ下げる ===== */
    section[id], [id="cta"], [id="access"], [id="top"]{
    scroll-margin-top:90px;   /* PC・タブレット：ヘッダー高さ(76px)＋余白 */
    }
    section:nth-child(odd){background-color: var(--cream);}
    section:nth-child(even){background: #fff;}

