@import url('https://fonts.googleapis.com/css2?family=Klee+One:wght@600&display=swap');

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
.sign-hand{font-family:'Klee One','Shippori Mincho',cursive;font-weight:600;letter-spacing:.1em;font-size:1.4em;color:var(--ink);display:inline-block;}

/* ===== doctor: timeline / stat panel / holidays ===== */
.timeline{max-width:760px;margin:clamp(36px,4vw,52px) auto 0;position:relative;}
.timeline::before{content:"";position:absolute;left:74px;top:8px;bottom:8px;width:2px;background:linear-gradient(var(--gold-soft),color-mix(in oklab,var(--gold) 30%,transparent));}
.tl-row{display:grid;grid-template-columns:64px 1fr;gap:24px;align-items:start;padding:0 0 22px;position:relative;}
.tl-row .tl-time{font-family:'Shippori Mincho',serif;font-weight:600;color:var(--gold);font-size:.96rem;text-align:right;padding-top:2px;}
.tl-row .tl-time.pend{color:var(--ink-faint);}
.tl-row .tl-card{position:relative;background:var(--paper);border:1px solid var(--line-soft);border-radius:14px;padding:16px 20px;margin-left:22px;box-shadow:0 8px 22px color-mix(in oklab,var(--ink) 4%,transparent);}
.tl-row .tl-card::before{content:"";position:absolute;left:-30px;top:18px;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--gold);box-shadow:0 0 0 4px color-mix(in oklab,var(--gold) 16%,transparent);}
.tl-row .tl-card h4{font-family:'Shippori Mincho',serif;font-size:1.02rem;font-weight:600;color:var(--ink);margin-bottom:5px;}
.tl-row .tl-card p{font-size:.86rem;line-height:1.8;color:var(--ink-soft);}
@media (max-width:560px){.timeline::before{left:8px;}.tl-row{grid-template-columns:1fr;gap:4px;}.tl-row .tl-time{text-align:left;padding-left:30px;}.tl-row .tl-card{margin-left:30px;}}

.stat-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,300px));gap:clamp(14px,2vw,22px);justify-content:center;}
.spanel{background:linear-gradient(157deg,var(--paper),color-mix(in oklab,var(--paper) 86%,var(--sage-wash)));border:1px solid var(--line-soft);border-radius:var(--r);padding:clamp(22px,2.6vw,30px) 18px;text-align:center;box-shadow:0 10px 26px color-mix(in oklab,var(--ink) 5%,transparent);}
.spanel .sp-ic{width:46px;height:46px;border-radius:50%;background:var(--sage-wash);color:var(--sage);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;}
.spanel .sp-ic svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
.spanel .sp-label{font-size:.78rem;letter-spacing:.04em;color:var(--ink-soft);margin-bottom:8px;}
.spanel .sp-num{font-family:'Shippori Mincho',serif;font-weight:600;color:var(--gold);line-height:1;}
.spanel .sp-num em{font-size:clamp(2rem,3.2vw,2.6rem);font-style:normal;}
.spanel .sp-num small{font-size:.92rem;color:var(--ink-soft);margin-left:3px;}
.spanel .sp-sub{font-size:.72rem;color:var(--ink-faint);margin-top:8px;}
@media (max-width:860px){.stat-panel{grid-template-columns:1fr 1fr;}}
@media (max-width:460px){.stat-panel{grid-template-columns:1fr;}}

.holiday-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.4vw,24px);max-width:880px;margin:0 auto;}
.hcard{position:relative;overflow:hidden;border-radius:var(--r);padding:clamp(26px,3vw,36px);border:1px solid var(--line-soft);box-shadow:0 12px 30px color-mix(in oklab,var(--ink) 6%,transparent);}
.hcard.full{background:linear-gradient(155deg,#fff,var(--sage-wash));}
.hcard.part{background:linear-gradient(155deg,#fff,color-mix(in oklab,var(--gold) 12%,#fff));}
.hcard .h-badge{display:inline-block;font-size:.7rem;letter-spacing:.08em;font-weight:600;padding:5px 14px;border-radius:999px;margin-bottom:16px;}
.hcard.full .h-badge{background:var(--sage);color:#fff;}
.hcard.part .h-badge{background:var(--gold);color:#fff;}
.hcard .h-num{font-family:'Shippori Mincho',serif;font-weight:600;line-height:1;color:var(--ink);}
.hcard .h-num em{font-size:clamp(2.4rem,5vw,3.4rem);font-style:normal;color:var(--gold);}
.hcard .h-num small{font-size:1rem;margin-left:4px;color:var(--ink-soft);}
.hcard ul{list-style:none;margin-top:18px;display:flex;flex-direction:column;gap:9px;}
.hcard li{position:relative;padding-left:20px;font-size:.86rem;line-height:1.7;color:var(--ink-soft);}
.hcard li::before{content:"";position:absolute;left:2px;top:.62em;width:7px;height:7px;border-radius:50%;background:var(--gold);}
.hcard li b{color:var(--sage-deep);}
@media (max-width:680px){.holiday-grid{grid-template-columns:1fr;}}
:root{
  --bg:#f6f4ec;
  --bg-soft:#efeee3;
  --paper:#fffdf8;
  --ink:#384032;
  --ink-soft:#5b6350;
  --ink-faint:#929a82;
  --sage:#6f8a5f;
  --sage-deep:#52663f;
  --sage-wash:#e7eddd;
  --gold:#b0925a;
  --gold-soft:#cdb583;
  --band:#e9ede0;
  --line:#e2ddcf;
  --line-soft:#ece8dc;
  --r:18px;
  --ease:cubic-bezier(.22,.61,.36,1);
}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{font-family:'Zen Kaku Gothic New',sans-serif;background:var(--bg);color:var(--ink);line-height:1.9;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.serif{font-family:'Shippori Mincho',serif;}
.script{font-family:'Allura',cursive;}
.wrap{max-width:1080px;margin:0 auto;padding:0 32px;}

/* ===== shared bits ===== */
.kicker{font-family:'Allura',cursive;font-size:2rem;color:var(--gold);line-height:1;}
.sec-title{font-family:'Shippori Mincho',serif;font-weight:600;font-size:clamp(1.7rem,3vw,2.3rem);letter-spacing:.06em;color:var(--ink);}
.sec-head{text-align:center;margin-bottom:clamp(40px,5vw,64px);}
.sec-head .sec-title{display:inline-block;position:relative;padding-bottom:18px;}
.sec-head .sec-title::after{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:46px;height:2px;background:var(--gold);}
.em{color:var(--sage);}
.btn-entry{display:inline-flex;align-items:center;gap:12px;background:var(--sage);color:#fff;font-weight:600;letter-spacing:.06em;font-size:1rem;padding:17px 40px;border-radius:999px;box-shadow:0 12px 28px color-mix(in oklab,var(--sage) 34%,transparent);transition:transform .3s var(--ease),box-shadow .3s var(--ease);}
.btn-entry:hover{transform:translateY(-3px);color:#fff;box-shadow:0 18px 38px color-mix(in oklab,var(--sage) 44%,transparent);}
.btn-entry .ic{width:20px;height:16px;flex:none;}
.btn-entry .ar{margin-left:4px;}

/* ===== NAV ===== */
.nav{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px max(20px,calc((100% - 1320px) / 2));transition:background .4s var(--ease),box-shadow .4s var(--ease),padding .4s var(--ease);}
.nav.scrolled{background:color-mix(in oklab,var(--bg) 88%,transparent);backdrop-filter:blur(12px);box-shadow:0 1px 0 var(--line);padding-top:11px;padding-bottom:11px;}
.brand{display:flex;align-items:center;gap:12px;}
.brand .mark{width:42px;height:42px;flex:none;}
.brand .txt b{font-family:'Shippori Mincho',serif;font-size:1.12rem;font-weight:600;letter-spacing:.14em;color:var(--sage-deep);display:block;line-height:1.2;}
.brand .txt span{font-size:.6rem;letter-spacing:.28em;color:var(--gold);text-transform:uppercase;}
/* dark hero: light nav at top, revert when scrolled */
body.dark-top .nav:not(.scrolled) .brand .txt b{color:#fff;}
body.dark-top .nav:not(.scrolled) .brand .txt span{color:var(--gold-soft);}
body.dark-top .nav:not(.scrolled) .brand .mark g{stroke:#eef1e6;}
body.dark-top .nav:not(.scrolled) .nav-links a{color:color-mix(in oklab,#eef1e6 88%,transparent);}
body.dark-top .nav:not(.scrolled) .nav-links a:hover{color:#fff;}
body.dark-top .nav:not(.scrolled) .burger span{background:#eef1e6;}
.nav-right{display:flex;align-items:center;gap:clamp(18px,2.4vw,34px);}
.nav-links{display:flex;gap:clamp(14px,2vw,26px);}
.nav-links a{font-size:.9rem;letter-spacing:.04em;color:var(--ink-soft);transition:color .2s;white-space:nowrap;}
.nav-links a:hover{color:var(--sage);}
.nav-cta{display:inline-flex;align-items:center;gap:8px;background:var(--sage);color:#fff;font-size:.84rem;font-weight:600;letter-spacing:.04em;padding:11px 20px;border-radius:999px;transition:transform .25s var(--ease);white-space:nowrap;flex-shrink:0;}
.nav-cta:hover{transform:translateY(-2px);color:#fff;}
.nav-cta .ic{width:16px;height:13px;}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:7px;}
.burger span{width:24px;height:2px;background:var(--sage-deep);border-radius:2px;transition:.3s;}

/* ===== HERO ===== */
.hero{position:relative;padding:clamp(120px,15vh,160px) 0 0;overflow:hidden;}
.hero-bgline{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.5;}
.hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px);align-items:center;min-height:clamp(440px,58vh,600px);}
.hero-grid > *{min-width:0;}
.hero-copy{padding-bottom:clamp(40px,6vw,80px);}
.hero h1{font-family:'Shippori Mincho',serif;font-weight:600;font-size:clamp(2.2rem,4.4vw,3.5rem);line-height:1.5;letter-spacing:.04em;margin-bottom:28px;}
.hero h1 .l2{color:var(--sage);}
.hero-lead{font-size:1rem;line-height:2;color:var(--ink-soft);margin-bottom:26px;}
.hero-script{font-family:'Allura',cursive;font-size:clamp(1.5rem,2.1vw,2.1rem);color:var(--gold);letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hero-photo{position:relative;align-self:stretch;min-height:clamp(440px,58vh,640px);}
.hero-photo .ph{position:absolute;inset:0;border-radius:20px 20px 20px 120px;overflow:hidden;box-shadow:0 30px 70px color-mix(in oklab,var(--ink) 16%,transparent);}
.hero-photo .ph img{width:100%;height:100%;object-fit:cover;}
.hero-photo .logo-badge{position:absolute;top:28px;right:28px;z-index:3;width:96px;height:96px;border-radius:50%;background:color-mix(in oklab,#fff 82%,transparent);backdrop-filter:blur(4px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:0 8px 22px rgba(0,0,0,.12);}
.hero-photo .logo-badge .mark{width:34px;height:34px;}
.hero-photo .logo-badge b{font-family:'Shippori Mincho',serif;font-size:.56rem;letter-spacing:.16em;color:var(--sage-deep);margin-top:3px;}
.hero-photo .logo-badge span{font-size:.42rem;letter-spacing:.2em;color:var(--gold);}
.hero-photo .swap{position:absolute;left:24px;bottom:24px;z-index:3;font-size:.64rem;letter-spacing:.1em;color:#fff;background:color-mix(in oklab,#000 28%,transparent);padding:6px 13px;border-radius:999px;}
.hero-wave{display:block;width:100%;margin-top:-2px;}

/* ===== INTRO LINE + 5 CARDS ===== */
.lifestyle{padding:clamp(56px,7vw,84px) 0 clamp(60px,8vw,96px);}
.intro-line{text-align:center;font-family:'Shippori Mincho',serif;font-size:clamp(1.05rem,1.9vw,1.4rem);letter-spacing:.05em;color:var(--ink);margin-bottom:clamp(36px,4vw,52px);line-height:1.8;}
.life-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;}
.life-card{display:flex;flex-direction:column;gap:14px;}
.life-card .pic{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:4/3;box-shadow:0 10px 26px color-mix(in oklab,var(--ink) 8%,transparent);}
.life-card .pic img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.life-card:hover .pic img{transform:scale(1.06);}
.life-card .cap{text-align:center;font-size:.86rem;font-weight:500;letter-spacing:.03em;color:var(--ink);}

/* ===== MISSION BAND ===== */
.mission{position:relative;background:var(--band);padding:clamp(64px,8vw,104px) 0;overflow:hidden;}
.mission .rose-deco{position:absolute;right:-40px;top:50%;transform:translateY(-50%);width:clamp(150px,15vw,220px);opacity:.14;pointer-events:none;z-index:0;}
.mission-grid{position:relative;z-index:1;display:grid;grid-template-columns:.92fr 1.4fr;gap:clamp(36px,5vw,72px);align-items:center;}
.mission-intro .kicker{margin-bottom:6px;}
.mission-intro h2{font-family:'Shippori Mincho',serif;font-weight:600;font-size:clamp(1.5rem,2.6vw,2rem);letter-spacing:.06em;margin-bottom:22px;}
.mission-intro p{font-size:.96rem;line-height:2.05;color:var(--ink-soft);}
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:0;}
.value{padding:0 clamp(16px,2vw,28px);text-align:center;}
.value + .value{border-left:1px solid color-mix(in oklab,var(--sage) 24%,transparent);}
.value .vic{width:54px;height:54px;margin:0 auto 16px;color:var(--sage);}
.value h3{font-family:'Shippori Mincho',serif;font-size:1.08rem;font-weight:600;letter-spacing:.04em;margin-bottom:12px;color:var(--ink);}
.value p{font-size:.82rem;line-height:1.85;color:var(--ink-soft);}

/* ===== POINTS ===== */
.points{padding:clamp(64px,8vw,104px) 0;}
.points-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.4vw,30px);}
.point{background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--r);overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s var(--ease);}
.point:hover{transform:translateY(-6px);box-shadow:0 22px 44px color-mix(in oklab,var(--sage) 16%,transparent);}
.point .pic{position:relative;aspect-ratio:16/10;overflow:hidden;background:
  linear-gradient(135deg,var(--sage-wash),#dde6cf);display:flex;align-items:center;justify-content:center;}
.point .pic img{width:100%;height:100%;object-fit:cover;}
.point .pic .ph-ic{width:46px;height:46px;color:color-mix(in oklab,var(--sage) 60%,#fff);}
.point .pic .swap{position:absolute;left:12px;bottom:12px;font-size:.6rem;letter-spacing:.08em;color:var(--sage-deep);background:color-mix(in oklab,#fff 78%,transparent);padding:4px 10px;border-radius:999px;}
.point .body{padding:22px 24px 26px;}
.point .no{font-family:'Shippori Mincho',serif;font-size:.74rem;letter-spacing:.22em;color:var(--gold);font-weight:600;}
.point h3{font-family:'Shippori Mincho',serif;font-size:1.12rem;font-weight:600;line-height:1.55;letter-spacing:.03em;margin:8px 0 12px;color:var(--ink);}
.point p{font-size:.85rem;line-height:1.85;color:var(--ink-soft);}

/* ===== TIMELINE ===== */
.timeline:has(.tl-wrap)::before{display:none;}
.timeline{background:var(--bg-soft);padding:clamp(64px,8vw,100px) 0;overflow:hidden;}
.tl-wrap{position:relative;max-width:1080px;margin:0 auto;padding:0 32px;}
.tl-svg{display:none;}
.tl-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(6,1fr);gap:8px;}
.tl-item{text-align:center;display:flex;flex-direction:column;align-items:center;}
.tl-time{font-family:'Shippori Mincho',serif;font-size:1rem;font-weight:600;color:var(--sage-deep);letter-spacing:.04em;height:26px;position:relative;z-index:2;}
.tl-ic{width:56px;height:56px;margin:20px 0 16px;color:var(--sage);background:var(--bg-soft);border-radius:50%;padding:6px;box-sizing:border-box;position:relative;z-index:2;}
@media (min-width:1025px){.tl-grid::before{content:"";position:absolute;left:9%;right:9%;top:74px;height:2px;background:repeating-linear-gradient(90deg,var(--gold) 0 5px,transparent 5px 11px);z-index:0;}}
.tl-label{font-size:.86rem;font-weight:600;color:var(--ink);margin-bottom:6px;}
.tl-desc{font-size:.74rem;line-height:1.7;color:var(--ink-faint);}

/* ===== VOICES ===== */
.voices{padding:clamp(64px,8vw,104px) 0;}
.voice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.voice{background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--r);padding:26px;box-shadow:0 12px 30px color-mix(in oklab,var(--ink) 6%,transparent);}
.voice-top{display:flex;align-items:center;gap:16px;margin-bottom:18px;}
.voice-av{width:64px;height:64px;border-radius:50%;overflow:hidden;flex:none;border:2px solid var(--sage-wash);background:linear-gradient(135deg,var(--sage-wash),#dde6cf);}
.voice-av img{width:100%;height:100%;object-fit:cover;}
.voice-meta b{font-size:.84rem;color:var(--sage-deep);letter-spacing:.04em;}
.voice-q{font-family:'Shippori Mincho',serif;font-size:1.06rem;font-weight:600;line-height:1.65;letter-spacing:.03em;color:var(--ink);margin-bottom:12px;}
.voice-body{font-size:.82rem;line-height:1.85;color:var(--ink-soft);}
.voice-note{text-align:right;font-size:.68rem;color:var(--ink-faint);margin-top:14px;}

/* ===== CTA ===== */
.cta{position:relative;text-align:center;padding:clamp(72px,10vw,128px) 0;overflow:hidden;background:linear-gradient(160deg,#dfe6d3,#eef1e6);}
.cta .rose-deco{position:absolute;bottom:-10px;width:clamp(150px,16vw,230px);opacity:.55;pointer-events:none;z-index:0;}
.cta .rose-deco.l{left:-20px;}
.cta .rose-deco.r{right:-20px;transform:scaleX(-1);}
.cta-inner{position:relative;z-index:2;}
.cta h2{font-family:'Shippori Mincho',serif;font-weight:600;font-size:clamp(1.5rem,2.8vw,2.15rem);line-height:1.6;letter-spacing:.05em;color:var(--ink);margin-bottom:14px;}
.cta h2 .em{color:var(--sage-deep);}
.cta p{font-size:.95rem;color:var(--ink-soft);margin-bottom:34px;}
.cta-foot-note{display:inline-flex;align-items:center;justify-content:center;width:104px;height:104px;border-radius:50%;background:var(--sage);color:#fff;font-family:'Shippori Mincho',serif;font-size:.86rem;line-height:1.5;position:absolute;right:8%;bottom:18%;z-index:3;box-shadow:0 12px 26px color-mix(in oklab,var(--sage) 40%,transparent);}

/* ===== FOOTER ===== */
.foot{background:var(--sage-deep);color:#eef1e6;padding:clamp(52px,7vw,72px) 0 36px;text-align:center;}
.foot .mark{width:48px;height:48px;margin:0 auto 16px;}
.foot-name{font-family:'Shippori Mincho',serif;font-size:1.2rem;letter-spacing:.12em;margin-bottom:14px;}
.foot-addr{font-size:.86rem;line-height:1.9;color:color-mix(in oklab,#eef1e6 80%,transparent);}
.foot-copy{margin-top:30px;font-size:.7rem;letter-spacing:.14em;color:color-mix(in oklab,#eef1e6 55%,transparent);text-transform:uppercase;}

/* sticky entry */
.sticky{position:fixed;right:24px;bottom:24px;z-index:55;display:inline-flex;align-items:center;gap:10px;background:var(--sage);color:#fff;font-weight:600;letter-spacing:.04em;font-size:.92rem;padding:14px 24px;border-radius:999px;box-shadow:0 14px 30px color-mix(in oklab,var(--sage) 42%,transparent);opacity:0;transform:translateY(18px);pointer-events:none;transition:opacity .5s var(--ease),transform .5s var(--ease);}
.sticky.show{opacity:1;transform:none;pointer-events:auto;}
.sticky:hover{color:#fff;transform:translateY(-3px);}

/* ===== JOBS ===== */
.jobs{padding:clamp(64px,8vw,104px) 0;}
.jobs-intro{text-align:center;max-width:680px;margin:0 auto clamp(36px,4vw,52px);font-size:.96rem;line-height:2;color:var(--ink-soft);}
.jobs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,24px);}
.job{background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--r);padding:38px 22px 28px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;transition:transform .3s var(--ease),box-shadow .3s var(--ease);}
.job:hover{transform:translateY(-6px);box-shadow:0 22px 44px color-mix(in oklab,var(--sage) 16%,transparent);}
.job-ic{width:62px;height:62px;border-radius:50%;background:var(--sage-wash);color:var(--sage);display:flex;align-items:center;justify-content:center;margin-bottom:10px;}
.job-ic svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.job-name{font-family:'Shippori Mincho',serif;font-size:1.22rem;font-weight:600;color:var(--ink);}
.job-type{font-size:.78rem;letter-spacing:.04em;color:var(--ink-faint);min-height:1.2em;}
.job-more{margin-top:12px;font-size:.66rem;letter-spacing:.16em;color:var(--gold);font-weight:600;}
/* featured job (医師) — tasteful emphasis, same size as others */
.jobs-grid:has(.job.featured){grid-template-columns:repeat(4,1fr);max-width:none;}
.job.featured{background:var(--paper);border:1.5px solid var(--sage);box-shadow:0 16px 36px color-mix(in oklab,var(--sage) 18%,transparent);position:relative;}
.job.featured .job-ic{background:var(--sage);color:#fff;}
.job.featured .job-name{color:var(--sage-deep);}
.job.featured .job-more{color:var(--sage-deep);}
.job-badge{position:absolute;top:-11px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:.64rem;letter-spacing:.12em;font-weight:700;color:#fff;background:var(--sage);padding:5px 14px;border-radius:999px;box-shadow:0 6px 14px color-mix(in oklab,var(--sage) 30%,transparent);}
@media (max-width:760px){.jobs-grid:has(.job.featured){grid-template-columns:1fr 1fr;}}
@media (max-width:440px){.jobs-grid:has(.job.featured){grid-template-columns:1fr;}}

/* ===== DIRECTOR MESSAGE ===== */
.director-sec{background:var(--bg-soft);padding:clamp(64px,8vw,104px) 0;}
.director{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(32px,5vw,68px);align-items:start;}
.director-portrait{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:3/4;box-shadow:0 24px 54px color-mix(in oklab,var(--ink) 16%,transparent);}
.director-portrait img{width:100%;height:100%;object-fit:cover;}
.director-portrait .swap{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);font-size:.62rem;letter-spacing:.08em;white-space:nowrap;color:var(--sage-deep);background:color-mix(in oklab,#fff 82%,transparent);padding:6px 14px;border-radius:999px;}
.director-body .kicker{margin-bottom:4px;}
.director-quote{font-family:'Shippori Mincho',serif;font-size:clamp(1.4rem,2.4vw,1.95rem);font-weight:600;line-height:1.6;color:var(--sage);margin:6px 0 24px;}
.director-body p{font-size:.95rem;line-height:2;color:var(--ink-soft);margin-bottom:16px;}
.director-sign{margin-top:24px;padding-top:22px;border-top:1px solid var(--line);font-family:'Shippori Mincho',serif;font-size:1.1rem;letter-spacing:.06em;color:var(--ink);}
.director-sign small{font-size:.74rem;color:var(--ink-faint);margin-right:10px;letter-spacing:.1em;font-family:'Zen Kaku Gothic New';}

/* ===== ENVIRONMENT ===== */
.env{padding:clamp(64px,8vw,104px) 0;}
.env-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,22px);}
.env-pic{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:4/3;box-shadow:0 12px 30px color-mix(in oklab,var(--ink) 8%,transparent);}
.env-pic img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.env-pic:hover img{transform:scale(1.05);}
.env-pic span{position:absolute;left:12px;bottom:12px;font-size:.62rem;letter-spacing:.06em;color:#fff;background:color-mix(in oklab,#000 30%,transparent);padding:5px 11px;border-radius:999px;}

/* ===== REASONS (full alternating) ===== */
.reasons{padding:clamp(64px,8vw,104px) 0;background:var(--bg-soft);}
.reasons-list{display:flex;flex-direction:column;gap:clamp(44px,6vw,80px);}
.reason-full{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,60px);align-items:center;}
.reason-full .r-pic{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;box-shadow:0 20px 44px color-mix(in oklab,var(--ink) 12%,transparent);}
.reason-full .r-pic img{width:100%;height:100%;object-fit:cover;}
.reason-full .r-pic .swap{position:absolute;left:12px;bottom:12px;font-size:.6rem;letter-spacing:.06em;color:#fff;background:color-mix(in oklab,#000 30%,transparent);padding:4px 10px;border-radius:999px;}
.r-num-ov{position:absolute;top:14px;left:20px;z-index:2;font-family:'Shippori Mincho',serif;font-weight:600;line-height:1;color:#fff;font-size:clamp(3.2rem,5vw,4.8rem);letter-spacing:.02em;text-shadow:0 4px 18px rgba(40,40,30,.4);}
.r-num-ov::after{content:"";display:block;width:40px;height:2px;background:var(--gold);margin-top:8px;box-shadow:0 1px 6px rgba(0,0,0,.25);}
.reason-full:nth-child(even) .r-pic{order:2;}
.r-num{font-family:'Shippori Mincho',serif;font-size:clamp(2.4rem,4.4vw,3.4rem);font-weight:600;line-height:.9;color:var(--sage);opacity:.85;}
.r-tag{display:inline-block;margin:14px 0 12px;font-size:.72rem;letter-spacing:.08em;color:var(--sage-deep);background:var(--sage-wash);padding:5px 14px;border-radius:999px;}
.reason-full h3{font-family:'Shippori Mincho',serif;font-size:clamp(1.2rem,2vw,1.5rem);font-weight:600;line-height:1.55;letter-spacing:.03em;color:var(--ink);margin-bottom:14px;}
.reason-full p{font-size:.92rem;line-height:2;color:var(--ink-soft);}

/* ===== VOICES (準備中) ===== */
.voices{padding:clamp(64px,8vw,104px) 0;}
.vperson-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(24px,3vw,44px);max-width:560px;margin-left:auto;margin-right:auto;margin-bottom:clamp(36px,4vw,52px);}
.vperson{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;}
.vperson .av{width:clamp(110px,14vw,150px);height:clamp(110px,14vw,150px);border-radius:50%;overflow:hidden;border:3px solid var(--sage-wash);box-shadow:0 12px 28px color-mix(in oklab,var(--ink) 10%,transparent);position:relative;}
.vperson .av img{width:100%;height:100%;object-fit:cover;filter:grayscale(.15);}
.vperson .av .badge{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);font-size:.56rem;letter-spacing:.1em;color:var(--sage-deep);background:color-mix(in oklab,#fff 84%,transparent);padding:3px 10px;border-radius:999px;}
.vperson strong{font-family:'Shippori Mincho',serif;font-size:1.05rem;font-weight:600;letter-spacing:.06em;color:var(--ink);}
.vperson{transition:transform .3s var(--ease);}
a.vperson{cursor:pointer;}
a.vperson:hover{transform:translateY(-5px);}
a.vperson:hover .av{border-color:var(--sage);box-shadow:0 16px 34px color-mix(in oklab,var(--sage) 22%,transparent);}
.vp-role{font-size:.72rem;letter-spacing:.14em;color:var(--gold);font-weight:600;margin-bottom:-6px;}
.vp-more{font-size:.72rem;letter-spacing:.06em;color:var(--sage-deep);font-weight:600;margin-top:2px;opacity:.85;}
.av{transition:border-color .3s var(--ease),box-shadow .3s var(--ease);}
.voice-note-card{position:relative;overflow:hidden;max-width:680px;margin:0 auto;text-align:center;background:linear-gradient(157deg,var(--paper) 0%,color-mix(in oklab,var(--paper) 86%,var(--sage-wash)) 100%);border:1px solid var(--line-soft);border-radius:var(--r);padding:clamp(32px,4vw,48px) clamp(28px,4vw,44px);box-shadow:0 10px 30px color-mix(in oklab,var(--ink) 5%,transparent);}
.voice-note-card::after{content:"";position:absolute;right:-16px;bottom:-16px;width:100px;height:100px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 80' fill='none' stroke='%23b0925a' stroke-width='1.1'%3E%3Cpath d='M40 40c-7-9-21-7-21 5 0 9 12 14 21 7 9 7 21 2 21-7 0-12-14-14-21-5Z'/%3E%3Cpath d='M40 40c0-12 12-19 21-14M40 40c0-12-12-19-21-14M40 40c5 11 19 14 26 5M40 40c-5 11-19 14-26 5'/%3E%3C/svg%3E") no-repeat center/contain;opacity:.08;pointer-events:none;}
.voice-note-card > *{position:relative;z-index:1;}
.voice-note-card .badge2{display:inline-block;font-size:.78rem;letter-spacing:.08em;color:var(--sage-deep);background:var(--sage-wash);padding:7px 18px;border-radius:999px;margin-bottom:16px;}
.voice-note-card p{font-size:.92rem;line-height:1.95;color:var(--ink-soft);}

/* ===== CTA original copy ===== */
.cta-inner h2{font-family:'Shippori Mincho',serif;font-weight:600;font-size:clamp(1.6rem,3vw,2.3rem);letter-spacing:.05em;color:var(--ink);margin-bottom:20px;}
.cta-inner .cta-lead{max-width:660px;margin:0 auto 16px;font-size:.95rem;line-height:2;color:var(--ink-soft);}
.cta-inner .cta-sign{font-family:'Shippori Mincho',serif;font-size:1.05rem;letter-spacing:.06em;color:var(--ink);margin:18px 0 30px;}
.cta-buttons{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}
.btn-outline{display:inline-flex;align-items:center;gap:10px;border:1.6px solid var(--sage);color:var(--sage-deep);background:transparent;font-weight:600;letter-spacing:.05em;font-size:.95rem;padding:15px 34px;border-radius:999px;transition:background .25s var(--ease),transform .25s var(--ease);}
.btn-outline:hover{background:color-mix(in oklab,var(--sage) 12%,transparent);color:var(--sage-deep);transform:translateY(-3px);}

/* ===== flowing gold curve dividers (between sections) ===== */
.flow-divider{position:relative;height:0;z-index:4;pointer-events:none;}
.flow-divider svg{position:absolute;left:0;top:-58px;width:100%;height:116px;overflow:visible;}
.flow-divider .sp{}

/* reveal — base state visible; only hidden when JS is active (bulletproof for print/no-JS/reduced-motion) */
.reveal{opacity:1;transform:none;}
@media (prefers-reduced-motion:no-preference){
  body.anim .reveal{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease);}
  body.anim .reveal.in{opacity:1;transform:none;}
  body.anim .d1{transition-delay:.08s}body.anim .d2{transition-delay:.16s}body.anim .d3{transition-delay:.24s}body.anim .d4{transition-delay:.32s}body.anim .d5{transition-delay:.4s}
}

/* ===== responsive ===== */
@media (max-width:980px){
  .hero-grid{grid-template-columns:1fr;}
  .hero-photo{min-height:340px;}
  .hero-photo .ph{border-radius:0 0 0 80px;}
  .mission-grid{grid-template-columns:1fr;gap:40px;}
  .points-grid{grid-template-columns:1fr 1fr;}
  .life-grid{grid-template-columns:repeat(3,1fr);}
  .voice-grid{grid-template-columns:1fr;max-width:520px;margin:0 auto;}
  .tl-grid{grid-template-columns:repeat(3,1fr);gap:28px 8px;}
  .tl-svg{display:none;}
  .jobs-grid{grid-template-columns:1fr 1fr;}
  .director{grid-template-columns:1fr;gap:36px;}
  .director-portrait{max-width:340px;margin:0 auto;}
  .reason-full{grid-template-columns:1fr;gap:24px;}
  .reason-full:nth-child(even) .r-pic{order:0;}
  .vperson-grid{grid-template-columns:repeat(2,1fr);gap:28px;}
}
@media (max-width:1024px){
  .nav-links{display:none;}
  .burger{display:flex;}
  .nav-links.open{display:flex;position:fixed;inset:64px 16px auto 16px;flex-direction:column;gap:8px;background:var(--paper);padding:18px;border-radius:16px;box-shadow:0 20px 50px rgba(0,0,0,.14);}
  .nav-links.open a{padding:10px;border-bottom:1px solid var(--line-soft);}
  .nav:has(.nav-links.open) .burger span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav:has(.nav-links.open) .burger span:nth-child(2){opacity:0;}
  .nav:has(.nav-links.open) .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
}
@media (max-width:640px){
  /* SP: ナビの緑エントリーボタンは非表示（下のフローティングバナーに集約） */
  .nav-cta{display:none;}
  .nav{padding-left:18px;padding-right:18px;}
  /* SP: 応募ボタンを横幅いっぱいのフローティングバナーに */
  .sticky{left:0;right:0;bottom:0;width:auto;border-radius:0;justify-content:center;gap:8px;padding:calc(15px + env(safe-area-inset-bottom)) 20px 15px;font-size:1rem;box-shadow:0 -6px 22px rgba(0,0,0,.16);opacity:1 !important;transform:none !important;pointer-events:auto !important;}
  .foot{padding-bottom:84px;}

  /* SP: ナビを不透明なヘッダーバーに（ロゴ浮き・重なりを解消／ノッチ回避） */
  .nav{background:var(--bg);backdrop-filter:blur(10px);box-shadow:0 2px 14px color-mix(in oklab,var(--ink) 8%,transparent),0 1px 0 color-mix(in oklab,var(--ink) 10%,transparent);padding-top:max(44px,env(safe-area-inset-top));padding-bottom:12px;}
  .brand .txt b{font-size:.96rem;}
  .brand .txt span{font-size:.5rem;}
  body.dark-top .nav:not(.scrolled) .brand .txt b{color:var(--ink);}
  body.dark-top .nav:not(.scrolled) .brand .txt span{color:var(--gold);}
  body.dark-top .nav:not(.scrolled) .brand .mark g{stroke:var(--sage);}
  body.dark-top .nav:not(.scrolled) .nav-links a{color:var(--ink-soft);}
  body.dark-top .nav:not(.scrolled) .burger span{background:var(--sage-deep);}

  /* SPホームのアイキャッチ：A案（上にテキスト → 下に角丸写真カード） */
  body .hero:not(.hero-solo){padding:0 0 clamp(28px,7vw,44px);}
  body .hero:not(.hero-solo) .hero-grid{display:flex;flex-direction:column;min-height:0;gap:0;}
  body .hero:not(.hero-solo) .hero-grid::after{display:none;}
  body .hero:not(.hero-solo) .hero-copy{order:1;position:static;min-height:44vh;display:flex;flex-direction:column;justify-content:center;padding:126px 0 44px;}
  body .hero:not(.hero-solo) .hero-copy h1{color:var(--ink);text-shadow:none;margin-bottom:18px;}
  body .hero:not(.hero-solo) .hero-copy h1 .l2{color:var(--sage);}
  body .hero:not(.hero-solo) .hero-lead{color:var(--ink-soft);text-shadow:none;}
  body .hero:not(.hero-solo) .hero-script{color:var(--gold);text-shadow:none;}
  body .hero:not(.hero-solo) .hero-photo{display:none;}
  /* SP: アイキャッチ背景に薄い診察風景の写真 */
  body .hero:not(.hero-solo){position:relative;overflow:hidden;}
  body .hero:not(.hero-solo)::before{content:"";position:absolute;inset:0;z-index:0;background:url("assets/images/hero-consult-sp.webp") center 20%/cover no-repeat;opacity:.28;pointer-events:none;transform:scaleX(-1);}
  body .hero:not(.hero-solo)::after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,color-mix(in oklab,var(--bg) 42%,transparent) 0%,color-mix(in oklab,var(--bg) 62%,transparent) 60%,color-mix(in oklab,var(--bg) 82%,transparent) 100%);pointer-events:none;}
  body .hero:not(.hero-solo) > .wrap{position:relative;z-index:1;}
  body .hero:not(.hero-solo) .hero-photo .ph{position:relative;inset:auto;height:54vh;max-height:440px;border-radius:24px 24px 24px 88px;box-shadow:0 24px 50px color-mix(in oklab,var(--ink) 16%,transparent);}
  body .hero:not(.hero-solo) .hero-photo .ph img{object-position:50% 18%;}
  body .hero:not(.hero-solo) .hero-photo .logo-badge{display:none;}
  body .hero:not(.hero-solo) .hero-photo .swap{display:none;}
}
@media (max-width:680px){
  .life-grid{grid-template-columns:1fr 1fr;}
  .points-grid{grid-template-columns:1fr;}
  .values{grid-template-columns:1fr;gap:28px;}
  .value + .value{border-left:none;border-top:1px solid color-mix(in oklab,var(--sage) 24%,transparent);padding-top:28px;}
  .tl-grid{grid-template-columns:1fr 1fr;}
  .cta-foot-note{display:none;}
  .wrap{padding:0 22px;}
  .jobs-grid{grid-template-columns:1fr 1fr;}
  .vperson-grid{grid-template-columns:1fr 1fr;}
  .cta-buttons{flex-direction:column;align-items:center;}
}


/* ===================== SUBPAGE SHARED ===================== */
.page-hero{position:relative;padding:clamp(150px,20vh,210px) 0 clamp(60px,8vw,96px);overflow:hidden;text-align:center;background:var(--band);}
.page-hero .hero-bgline{opacity:.5;z-index:1;}
/* photo eyecatch hero */
.page-hero.has-photo{padding-top:clamp(150px,20vh,210px);}
.page-hero .ph-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.page-hero .ph-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,color-mix(in oklab,var(--bg) 86%,transparent) 0%,color-mix(in oklab,var(--bg) 76%,transparent) 55%,color-mix(in oklab,var(--bg) 88%,transparent) 100%);}
/* mid-page photo band */
.photo-band{position:relative;overflow:hidden;}
.photo-band .pb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.8vw,20px);}
.photo-band .pbx{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:4/3;box-shadow:0 14px 32px color-mix(in oklab,var(--ink) 9%,transparent);}
.photo-band .pbx.tall{grid-row:span 2;aspect-ratio:auto;}
.photo-band .pbx img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.photo-band .pbx:hover img{transform:scale(1.05);}
.photo-band .pbx span{position:absolute;left:12px;bottom:12px;font-size:.62rem;letter-spacing:.06em;color:#fff;background:color-mix(in oklab,#000 32%,transparent);padding:5px 11px;border-radius:999px;}
@media (max-width:680px){.photo-band .pb-grid{grid-template-columns:1fr 1fr;}}
.page-hero-inner{position:relative;z-index:2;max-width:860px;margin:0 auto;padding:0 32px;}
.page-hero .kicker{margin-bottom:12px;}
.page-hero h1{font-family:'Shippori Mincho',serif;font-weight:600;font-size:clamp(1.9rem,3.8vw,2.9rem);line-height:1.5;letter-spacing:.05em;color:var(--ink);}
.page-hero h1 .em{color:var(--sage);}
.page-hero-sub{margin-top:22px;font-size:1rem;line-height:2;color:var(--ink-soft);}
.page-hero .hero-en{margin-top:14px;font-family:'Allura',cursive;font-size:1.6rem;color:var(--gold);}

.section{padding:clamp(64px,8vw,104px) 0;position:relative;overflow:hidden;}
.section.bg-soft{background:var(--bg-soft);}
.section.bg-band{background:var(--band);}
.sec-lead{text-align:center;max-width:720px;margin:0 auto clamp(36px,4vw,52px);font-size:.98rem;line-height:2;color:var(--ink-soft);}
.sec-sub-en{text-align:center;font-family:'Allura',cursive;font-size:1.3rem;color:var(--gold);margin-bottom:8px;}

/* generic card grid */
.card-grid{display:grid;gap:clamp(18px,2.4vw,28px);}
.card-grid.c2{grid-template-columns:repeat(2,1fr);}
.card-grid.c3{grid-template-columns:repeat(3,1fr);}
.info-card{position:relative;overflow:hidden;background:linear-gradient(157deg,var(--paper) 0%,color-mix(in oklab,var(--paper) 88%,var(--sage-wash)) 100%);border:1px solid var(--line-soft);border-radius:var(--r);padding:clamp(28px,3vw,38px);transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s var(--ease);box-shadow:0 1px 2px color-mix(in oklab,var(--ink) 4%,transparent);}
.info-card::before{content:"";position:absolute;left:0;top:0;height:100%;width:3px;background:linear-gradient(180deg,var(--gold),var(--gold-soft));transform:scaleY(0);transform-origin:top;transition:transform .45s var(--ease);}
.info-card::after{content:"";position:absolute;right:-14px;top:-14px;width:88px;height:88px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 80' fill='none' stroke='%23b0925a' stroke-width='1.1'%3E%3Cpath d='M40 40c-7-9-21-7-21 5 0 9 12 14 21 7 9 7 21 2 21-7 0-12-14-14-21-5Z'/%3E%3Cpath d='M40 40c0-12 12-19 21-14M40 40c0-12-12-19-21-14M40 40c5 11 19 14 26 5M40 40c-5 11-19 14-26 5'/%3E%3C/svg%3E") no-repeat center/contain;opacity:.09;transform:rotate(8deg);pointer-events:none;transition:opacity .45s var(--ease),transform .6s var(--ease);}
.info-card > *{position:relative;z-index:1;}
.info-card:hover{transform:translateY(-6px);box-shadow:0 24px 50px color-mix(in oklab,var(--sage) 18%,transparent);border-color:color-mix(in oklab,var(--gold) 30%,transparent);}
.info-card:hover::before{transform:scaleY(1);}
.info-card:hover::after{opacity:.17;transform:rotate(-4deg);}
.card-grid .info-card:nth-child(even){background:linear-gradient(157deg,var(--paper) 0%,color-mix(in oklab,var(--paper) 82%,var(--band)) 100%);}
.info-card .ic{width:52px;height:52px;color:var(--sage);margin-bottom:18px;}
.info-card .no{display:inline-block;font-family:'Shippori Mincho',serif;font-size:.78rem;letter-spacing:.22em;color:var(--gold);font-weight:600;padding-bottom:7px;margin-bottom:4px;border-bottom:1px solid color-mix(in oklab,var(--gold) 40%,transparent);}
.info-card h3{font-family:'Shippori Mincho',serif;font-size:1.18rem;font-weight:600;line-height:1.55;letter-spacing:.03em;color:var(--ink);margin:6px 0 14px;}
.info-card p{font-size:.9rem;line-height:1.95;color:var(--ink-soft);}
.info-card ul{list-style:none;margin-top:14px;display:flex;flex-direction:column;gap:9px;}
.info-card li{position:relative;padding-left:20px;font-size:.88rem;line-height:1.8;color:var(--ink-soft);}
.info-card li::before{content:"";position:absolute;left:2px;top:.7em;width:7px;height:7px;border-radius:50%;background:var(--sage);}

/* feature list (icon + text rows) */
.feature-list{display:flex;flex-direction:column;gap:18px;max-width:880px;margin:0 auto;}
.feature-row{position:relative;overflow:hidden;display:grid;grid-template-columns:64px 1fr;gap:22px;align-items:start;background:linear-gradient(157deg,var(--paper) 0%,color-mix(in oklab,var(--paper) 88%,var(--sage-wash)) 100%);border:1px solid var(--line-soft);border-radius:var(--r);padding:26px 30px;transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s var(--ease);box-shadow:0 1px 2px color-mix(in oklab,var(--ink) 4%,transparent);}
.feature-row::before{content:"";position:absolute;left:0;top:0;height:100%;width:3px;background:linear-gradient(180deg,var(--gold),var(--gold-soft));transform:scaleY(0);transform-origin:top;transition:transform .45s var(--ease);}
.feature-row:hover{transform:translateY(-4px);box-shadow:0 20px 44px color-mix(in oklab,var(--sage) 15%,transparent);border-color:color-mix(in oklab,var(--gold) 28%,transparent);}
.feature-row:hover::before{transform:scaleY(1);}
.feature-row > *{position:relative;z-index:1;}
/* feature-row with photo (grid-areas: ①/見出し/写真/文章) */
.feature-row.has-pic{grid-template-columns:64px 1fr clamp(180px,24vw,260px);grid-template-areas:"fic head pic" "fic text pic";align-items:center;}
.feature-row.has-pic.rev{grid-template-columns:clamp(180px,24vw,260px) 64px 1fr;grid-template-areas:"pic fic head" "pic fic text";}
.feature-row.has-pic .fic{grid-area:fic;}
.feature-row.has-pic .fr-head{grid-area:head;}
.feature-row.has-pic .fr-text{grid-area:text;}
.feature-row.has-pic .fr-pic{grid-area:pic;position:relative;border-radius:14px;overflow:hidden;aspect-ratio:4/3;box-shadow:0 12px 28px color-mix(in oklab,var(--ink) 12%,transparent);}
.feature-row.has-pic .fr-pic img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.feature-row.has-pic:hover .fr-pic img{transform:scale(1.05);}
@media (max-width:860px){
  .feature-row.has-pic,.feature-row.has-pic.rev{grid-template-columns:64px 1fr;grid-template-areas:"fic head" "fic pic" "fic text";}
  .feature-row.has-pic .fr-pic{aspect-ratio:16/7;margin-top:6px;}
}
.feature-row .fic{width:48px;height:48px;border-radius:50%;background:var(--sage-wash);color:var(--sage);display:flex;align-items:center;justify-content:center;}
.feature-row .fic svg{width:26px;height:26px;}
.feature-row h3{font-family:'Shippori Mincho',serif;font-size:1.1rem;font-weight:600;letter-spacing:.03em;color:var(--ink);margin-bottom:8px;}
.feature-row p{font-size:.9rem;line-height:1.9;color:var(--ink-soft);}

/* data table */
.data-table{max-width:880px;margin:0 auto;border-top:1px solid var(--line);}
.data-row{display:grid;grid-template-columns:200px 1fr;gap:20px;padding:20px 8px;border-bottom:1px solid var(--line);}
.data-row dt{font-family:'Shippori Mincho',serif;font-size:.92rem;font-weight:600;letter-spacing:.06em;color:var(--sage-deep);}
.data-row dd{font-size:.92rem;line-height:1.9;color:var(--ink-soft);}

/* simple table */
.tbl{width:100%;border-collapse:collapse;font-size:.9rem;background:var(--paper);border-radius:var(--r);overflow:hidden;box-shadow:0 12px 30px color-mix(in oklab,var(--ink) 6%,transparent);}
.tbl th,.tbl td{padding:16px 20px;text-align:left;border-bottom:1px solid var(--line-soft);line-height:1.8;color:var(--ink-soft);vertical-align:top;}
.tbl th{background:var(--sage-wash);color:var(--sage-deep);font-family:'Shippori Mincho',serif;font-weight:600;letter-spacing:.04em;white-space:nowrap;width:200px;}
.tbl tr:last-child th,.tbl tr:last-child td{border-bottom:none;}

/* faq */
.faq-list{max-width:840px;margin:0 auto;display:flex;flex-direction:column;gap:14px;}
.faq{position:relative;overflow:hidden;background:linear-gradient(157deg,var(--paper) 0%,color-mix(in oklab,var(--paper) 90%,var(--sage-wash)) 100%);border:1px solid var(--line-soft);border-radius:14px;padding:22px 26px;transition:box-shadow .3s var(--ease),border-color .3s var(--ease);}
.faq[open]{box-shadow:0 14px 34px color-mix(in oklab,var(--sage) 13%,transparent);border-color:color-mix(in oklab,var(--gold) 26%,transparent);}
.faq summary{font-family:'Shippori Mincho',serif;font-size:1rem;font-weight:600;color:var(--ink);cursor:pointer;list-style:none;display:flex;gap:14px;align-items:flex-start;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::before{content:"Q";font-family:'Shippori Mincho',serif;color:var(--sage);font-weight:700;flex:none;}
.faq[open] summary{margin-bottom:14px;}
.faq .a{font-size:.9rem;line-height:1.95;color:var(--ink-soft);display:flex;gap:14px;}
.faq .a::before{content:"A";font-family:'Shippori Mincho',serif;color:var(--gold);font-weight:700;flex:none;}

/* flow steps */
.flow-steps{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:0;}
.flow-step{display:grid;grid-template-columns:64px 1fr;gap:24px;padding-bottom:32px;position:relative;}
.flow-step:not(:last-child)::before{content:"";position:absolute;left:31px;top:60px;bottom:0;width:2px;background:var(--sage-wash);}
.flow-step .num{width:62px;height:62px;border-radius:50%;background:var(--sage);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Shippori Mincho',serif;font-size:1.3rem;font-weight:600;z-index:1;}
.flow-step .ft{padding-top:6px;}
.flow-step h3{font-family:'Shippori Mincho',serif;font-size:1.14rem;font-weight:600;color:var(--ink);margin-bottom:8px;}
.flow-step p{font-size:.9rem;line-height:1.9;color:var(--ink-soft);}

/* pills / tags row */
.tag-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:18px;}
.tag-row span{font-size:.82rem;color:var(--sage-deep);background:var(--sage-wash);padding:7px 16px;border-radius:999px;}

/* gallery */
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.8vw,20px);}
.gallery-grid .g{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:4/3;box-shadow:0 12px 28px color-mix(in oklab,var(--ink) 8%,transparent);}
.gallery-grid .g.wide{grid-column:span 2;aspect-ratio:8/3;}
.gallery-grid .g img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.gallery-grid .g:hover img{transform:scale(1.05);}
.gallery-grid .g span{position:absolute;left:12px;bottom:12px;font-size:.62rem;letter-spacing:.06em;color:#fff;background:color-mix(in oklab,#000 30%,transparent);padding:5px 11px;border-radius:999px;}

/* big statement */
.statement{text-align:center;max-width:820px;margin:0 auto;}
.statement h2{font-family:'Shippori Mincho',serif;font-weight:600;font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.7;letter-spacing:.05em;color:var(--ink);margin-bottom:24px;}
.statement h2 .em{color:var(--sage);}
.statement p{font-size:.98rem;line-height:2.1;color:var(--ink-soft);}

/* dark band (autonomy) */
.section.dark{background:var(--sage-deep);color:#eef1e6;}
.section.dark .sec-title,.section.dark .statement h2{color:#fff;}
.section.dark .sec-title::after{background:var(--gold-soft);}
.section.dark .sec-lead,.section.dark .statement p,.section.dark p{color:color-mix(in oklab,#eef1e6 84%,transparent);}
.section.dark .info-card{background:color-mix(in oklab,#fff 8%,transparent);border-color:color-mix(in oklab,#fff 16%,transparent);}
.section.dark .info-card h3{color:#fff;}
.section.dark .info-card p,.section.dark .info-card li{color:color-mix(in oklab,#eef1e6 82%,transparent);}
.section.dark .info-card .ic{color:var(--gold-soft);}

/* responsive subpage */
@media (max-width:980px){
  .card-grid.c3{grid-template-columns:1fr 1fr;}
  .gallery-grid{grid-template-columns:1fr 1fr;}
  .gallery-grid .g.wide{grid-column:span 2;}
}
@media (max-width:680px){
  .card-grid.c2,.card-grid.c3{grid-template-columns:1fr;}
  .data-row{grid-template-columns:1fr;gap:6px;}
  .tbl th{width:auto;white-space:normal;}
  .tbl,.tbl tbody,.tbl tr,.tbl th,.tbl td{display:block;width:100%;}
  .tbl th{border-bottom:none;}
  .feature-row{grid-template-columns:1fr;gap:14px;}
  .gallery-grid{grid-template-columns:1fr;}
  .gallery-grid .g.wide{grid-column:auto;aspect-ratio:4/3;}
}

.foot-links{display:flex;flex-wrap:wrap;gap:8px 22px;justify-content:center;margin:20px 0 22px;}
.foot-links a{font-size:.82rem;letter-spacing:.04em;color:color-mix(in oklab,#eef1e6 78%,transparent);transition:color .2s;}
.foot-links a:hover{color:#fff;}
.nav-links a.cur{color:var(--sage);font-weight:600;}
@media (max-width:640px){
  /* SP: フッターのリンクを2列グリッドで整然と並べる */
  .foot{padding-top:clamp(44px,11vw,60px);}
  .foot-links{display:grid;grid-template-columns:1fr 1fr;gap:0;max-width:330px;margin:24px auto 26px;border-top:1px solid color-mix(in oklab,#fff 14%,transparent);}
  .foot-links a{padding:14px 10px;font-size:.86rem;letter-spacing:.06em;text-align:center;border-bottom:1px solid color-mix(in oklab,#fff 14%,transparent);}
  .foot-links a:nth-child(odd){border-right:1px solid color-mix(in oklab,#fff 14%,transparent);}
  .foot-links a:last-child:nth-child(odd){grid-column:1/-1;border-right:none;}
  .foot-addr{font-size:.84rem;}
  .foot-copy{margin-top:24px;}
}

.card-grid.c4{grid-template-columns:repeat(4,1fr);}
@media (max-width:980px){.card-grid.c4{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.card-grid.c4{grid-template-columns:1fr;}}

.cat-head{display:flex;align-items:center;gap:14px;max-width:1080px;margin:0 auto clamp(20px,2.4vw,28px);padding-bottom:14px;border-bottom:1px solid var(--line);}
.cat-ic{flex:none;width:48px;height:48px;border-radius:50%;background:var(--sage-wash);color:var(--sage);display:flex;align-items:center;justify-content:center;}
.cat-ic svg{width:26px;height:26px;}
.cat-head h3{font-family:'Shippori Mincho',serif;font-size:1.18rem;font-weight:600;letter-spacing:.04em;color:var(--ink);}

/* ===== doctor: salary badge on hero photo ===== */
.hero-solo .hero-grid{grid-template-columns:1fr;min-height:auto;}
.hero-solo .hero-copy{padding-bottom:clamp(48px,7vw,90px);max-width:820px;}
.salary-strip{display:inline-flex;align-items:center;gap:24px;margin-top:32px;background:linear-gradient(155deg,#fff,var(--sage-wash));border:1px solid color-mix(in oklab,var(--gold) 28%,transparent);border-radius:18px;padding:18px 30px;box-shadow:0 16px 36px color-mix(in oklab,var(--sage) 16%,transparent);}
.salary-strip .ss-left{display:flex;flex-direction:column;gap:5px;}
.salary-strip .ss-cap{font-size:.74rem;color:var(--ink-soft);letter-spacing:.04em;}
.salary-strip b{font-family:'Shippori Mincho',serif;font-size:.82rem;color:var(--sage-deep);letter-spacing:.06em;}
.salary-strip .ss-num{font-family:'Shippori Mincho',serif;font-size:clamp(1.4rem,2.6vw,2rem);color:var(--gold);font-weight:600;letter-spacing:.02em;white-space:nowrap;}
@media (max-width:560px){.salary-strip{display:flex;flex-direction:column;align-items:flex-start;gap:10px;width:100%;}}
.salary-badge{position:absolute;top:20px;right:20px;z-index:4;width:clamp(146px,16vw,182px);height:clamp(146px,16vw,182px);border-radius:50%;background:color-mix(in oklab,var(--paper) 92%,transparent);backdrop-filter:blur(5px);box-shadow:0 14px 34px color-mix(in oklab,var(--ink) 18%,transparent);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:16px;border:1px solid color-mix(in oklab,var(--gold) 45%,transparent);}
.salary-badge .cap{font-size:.6rem;letter-spacing:.03em;color:var(--ink-soft);line-height:1.5;}
.salary-badge b{font-family:'Shippori Mincho',serif;font-size:.7rem;color:var(--sage-deep);margin-top:7px;letter-spacing:.06em;}
.salary-badge strong{font-family:'Shippori Mincho',serif;font-size:clamp(.98rem,1.4vw,1.18rem);color:var(--gold);font-weight:600;line-height:1.3;letter-spacing:.02em;}

/* ===== value/info card top photo ===== */
.card-pic{border-radius:12px;overflow:hidden;aspect-ratio:16/10;margin-bottom:20px;box-shadow:0 8px 22px color-mix(in oklab,var(--ink) 8%,transparent);}
.card-pic img{width:100%;height:100%;object-fit:cover;transition:transform .55s var(--ease);}
.info-card:hover .card-pic img{transform:scale(1.06);}

/* ===== career timeline (院長の歩み) ===== */
.career{position:relative;display:grid;grid-template-columns:repeat(6,1fr);gap:10px;max-width:1080px;margin:0 auto;}
.career::before{content:"";position:absolute;left:6%;right:6%;top:30px;height:1px;background:repeating-linear-gradient(90deg,var(--gold-soft) 0 8px,transparent 8px 16px);opacity:.7;}
.career-step{position:relative;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;}
.career-step .cdot{width:60px;height:60px;border-radius:50%;background:var(--paper);border:1px solid color-mix(in oklab,var(--gold) 40%,transparent);display:flex;align-items:center;justify-content:center;color:var(--sage);box-shadow:0 6px 16px color-mix(in oklab,var(--ink) 8%,transparent);}
.career-step .cdot svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.4;}
.career-step p{font-size:.78rem;line-height:1.7;color:var(--ink-soft);}
.career-step p b{display:block;font-family:'Shippori Mincho',serif;font-size:.84rem;color:var(--sage-deep);margin-bottom:2px;}
@media (max-width:860px){.career{grid-template-columns:repeat(2,1fr);gap:28px 14px;}.career::before{display:none;}}
@media (max-width:480px){.career{grid-template-columns:1fr;}}

/* ===== learnable skills cards ===== */
.learn-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.8vw,22px);}
.learn-card{position:relative;overflow:hidden;text-align:center;background:linear-gradient(157deg,var(--paper) 0%,color-mix(in oklab,var(--paper) 86%,var(--sage-wash)) 100%);border:1px solid var(--line-soft);border-radius:var(--r);padding:clamp(26px,3vw,34px) clamp(18px,2vw,24px);transition:transform .35s var(--ease),box-shadow .35s var(--ease);}
.learn-card:hover{transform:translateY(-5px);box-shadow:0 20px 42px color-mix(in oklab,var(--sage) 15%,transparent);}
.learn-card .lic{width:54px;height:54px;margin:0 auto 16px;border-radius:50%;background:var(--sage-wash);color:var(--sage);display:flex;align-items:center;justify-content:center;}
.learn-card .lic svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.4;}
.learn-card h4{font-family:'Shippori Mincho',serif;font-size:1.04rem;font-weight:600;color:var(--ink);margin-bottom:10px;letter-spacing:.03em;}
.learn-card p{font-size:.82rem;line-height:1.85;color:var(--ink-soft);}
@media (max-width:860px){.learn-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:480px){.learn-grid{grid-template-columns:1fr;}}

/* card top line-icon (autonomy / conditions) */
.info-card .cic{width:54px;height:54px;border-radius:50%;background:var(--sage-wash);color:var(--sage);display:flex;align-items:center;justify-content:center;margin-bottom:16px;}
.info-card .cic svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
.section.dark .info-card .cic{background:color-mix(in oklab,#fff 12%,transparent);color:var(--gold-soft);}
.cond-label{font-size:.72rem;letter-spacing:.12em;color:var(--gold);font-weight:600;}
.cond-value{font-family:'Shippori Mincho',serif;font-size:1.16rem;font-weight:600;color:var(--ink);margin:6px 0 10px;}

/* benefit card with themed image header */
.info-card.has-img{padding:0;overflow:hidden;display:flex;flex-direction:column;}
.info-card.has-img::after{display:none;}
.info-card.has-img .bc-img{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--sage-wash);}
.info-card.has-img .bc-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.info-card.has-img:hover .bc-img img{transform:scale(1.06);}
.info-card.has-img .bc-img .swap{position:absolute;left:10px;bottom:10px;font-size:.58rem;letter-spacing:.06em;color:#fff;background:color-mix(in oklab,#000 32%,transparent);padding:4px 10px;border-radius:999px;}
.info-card.has-img .bc-tag{position:absolute;top:12px;left:12px;display:inline-flex;align-items:center;gap:6px;font-size:.66rem;letter-spacing:.06em;color:var(--sage-deep);background:color-mix(in oklab,#fff 88%,transparent);padding:5px 11px;border-radius:999px;backdrop-filter:blur(4px);}
.info-card.has-img .bc-text{padding:clamp(20px,2.2vw,26px) clamp(20px,2.2vw,26px) clamp(22px,2.4vw,28px);flex:1;}
.info-card.has-img h4{font-family:'Shippori Mincho',serif;font-size:1.06rem;font-weight:600;color:var(--ink);letter-spacing:.03em;margin-bottom:10px;}

/* ===== benefit hero banner (主役) ===== */
.ben-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:0;border-radius:var(--r);overflow:hidden;box-shadow:0 24px 54px color-mix(in oklab,var(--ink) 12%,transparent);background:var(--paper);border:1px solid var(--line-soft);}
.ben-hero.rev .bh-img{order:2;}
.ben-hero .bh-img{position:relative;min-height:300px;overflow:hidden;background:var(--sage-wash);}
.ben-hero .bh-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.ben-hero .bh-img .swap{position:absolute;left:12px;bottom:12px;font-size:.6rem;letter-spacing:.06em;color:#fff;background:color-mix(in oklab,#000 32%,transparent);padding:4px 11px;border-radius:999px;}
.ben-hero .bh-text{padding:clamp(30px,4vw,52px);display:flex;flex-direction:column;justify-content:center;}
.ben-hero .bh-tag{align-self:flex-start;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;font-size:.68rem;letter-spacing:.1em;color:#fff;background:linear-gradient(120deg,var(--gold),var(--gold-soft));padding:6px 15px;border-radius:999px;margin-bottom:18px;}
.ben-hero h3{font-family:'Shippori Mincho',serif;font-size:clamp(1.3rem,2.2vw,1.7rem);font-weight:600;color:var(--ink);letter-spacing:.04em;line-height:1.5;margin-bottom:16px;}
.ben-hero p{font-size:.94rem;line-height:2;color:var(--ink-soft);}
.ben-hero .bh-note{font-size:.74rem;color:var(--ink-faint);margin-top:12px;}
@media (max-width:820px){.ben-hero,.ben-hero.rev{grid-template-columns:1fr;}.ben-hero.rev .bh-img{order:0;}.ben-hero .bh-img{min-height:220px;}}

/* ===== compact basics list (脇役) ===== */
.basics{max-width:920px;margin:0 auto;background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--r);padding:clamp(22px,3vw,34px) clamp(24px,3.4vw,40px);box-shadow:0 10px 28px color-mix(in oklab,var(--ink) 5%,transparent);}
.basics-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2px 36px;}
.basic-row{display:flex;align-items:flex-start;gap:14px;padding:16px 0;border-bottom:1px solid var(--line-soft);}
.basic-row .b-ic{flex:none;width:38px;height:38px;border-radius:50%;background:var(--sage-wash);color:var(--sage);display:flex;align-items:center;justify-content:center;margin-top:2px;}
.basic-row .b-ic svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.basic-row .b-tx b{display:block;font-family:'Shippori Mincho',serif;font-size:.98rem;color:var(--ink);letter-spacing:.03em;margin-bottom:3px;}
.basic-row .b-tx span{font-size:.82rem;line-height:1.7;color:var(--ink-soft);}
.basic-row .b-tx small{display:block;font-size:.72rem;color:var(--ink-faint);margin-top:4px;}
@media (max-width:680px){.basics-grid{grid-template-columns:1fr;}}

/* ===== doctor exclusive band (light cream) ===== */
.section.doctor-band{background:linear-gradient(168deg,#fbf8f2 0%,#f3eee3 100%);position:relative;overflow:hidden;}
.section.doctor-band .kicker{color:var(--gold);}
.doc-feature{display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,3vw,36px);align-items:center;background:#fff;border:1px solid color-mix(in oklab,var(--gold) 22%,transparent);border-radius:var(--r);padding:clamp(26px,3.4vw,40px);margin-bottom:20px;box-shadow:0 14px 34px color-mix(in oklab,var(--ink) 7%,transparent);}
.doc-feature .df-ic{width:84px;height:84px;border-radius:50%;background:linear-gradient(150deg,var(--gold-soft),var(--gold));color:#fff;display:flex;align-items:center;justify-content:center;flex:none;box-shadow:0 10px 24px color-mix(in oklab,var(--gold) 36%,transparent);}
.doc-feature .df-ic svg{width:42px;height:42px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;}
.doc-feature h3{font-family:'Shippori Mincho',serif;font-size:clamp(1.2rem,2vw,1.5rem);font-weight:600;color:var(--ink);letter-spacing:.04em;margin-bottom:12px;}
.doc-feature p{font-size:.92rem;line-height:1.95;color:var(--ink-soft);}
.doc-feature .tag-row{justify-content:flex-start;margin:12px 0;}
.doc-feature ul{list-style:none;display:flex;flex-direction:column;gap:8px;margin-top:10px;}
.doc-feature li{position:relative;padding-left:20px;font-size:.88rem;line-height:1.8;color:var(--ink-soft);}
.doc-feature li::before{content:"";position:absolute;left:2px;top:.7em;width:6px;height:6px;border-radius:50%;background:var(--gold);}
.doc-mini{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.doc-mini .dm{background:#fff;border:1px solid var(--line-soft);border-radius:16px;padding:24px 22px;text-align:center;box-shadow:0 10px 26px color-mix(in oklab,var(--ink) 5%,transparent);}
.doc-mini .dm .dm-ic{width:46px;height:46px;border-radius:50%;background:color-mix(in oklab,var(--gold) 16%,transparent);color:var(--gold);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;}
.doc-mini .dm .dm-ic svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
.doc-mini .dm h4{font-family:'Shippori Mincho',serif;font-size:1rem;font-weight:600;color:var(--ink);margin-bottom:8px;}
.doc-mini .dm p{font-size:.82rem;line-height:1.8;color:var(--ink-soft);}
@media (max-width:760px){.doc-feature{grid-template-columns:1fr;text-align:center;}.doc-feature .df-ic{margin:0 auto;}.doc-feature .tag-row{justify-content:center;}.doc-feature ul{text-align:left;max-width:340px;margin:10px auto 0;}.doc-mini{grid-template-columns:1fr;}}

/* hero pill container (bordered, with icons) */
.hero-pills{display:flex;flex-wrap:wrap;gap:10px 18px;border:1px solid var(--line);border-radius:18px;padding:18px 22px;background:color-mix(in oklab,var(--paper) 66%,transparent);margin-top:8px;}
.hero-pills .pill{display:inline-flex;align-items:center;gap:8px;font-size:.82rem;letter-spacing:.02em;color:var(--ink-soft);}
.hero-pills .pill svg{width:17px;height:17px;flex:none;color:var(--sage);fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}

/* ===== director message: readable body + diagrams + profile row ===== */
.msg-body{max-width:820px;margin:0 auto clamp(40px,5vw,60px);}
.msg-body h3,.msg-h{font-family:'Shippori Mincho',serif;font-size:clamp(1.18rem,2vw,1.42rem);font-weight:600;color:var(--sage-deep);letter-spacing:.04em;line-height:1.6;}
.msg-body p{font-size:.96rem;line-height:2.05;color:var(--ink-soft);margin-top:14px;}
.msg-h{text-align:center;margin-bottom:14px;}
.msg-lead{max-width:820px;margin:0 auto 30px;text-align:center;font-size:.96rem;line-height:2.05;color:var(--ink-soft);}
.msg-note{max-width:820px;margin:30px auto 0;text-align:center;font-size:.96rem;line-height:2.05;color:var(--ink-soft);}
.msg-block{margin-top:clamp(44px,6vw,72px);}

/* diagram shell */
.diagram{display:grid;grid-template-columns:1.4fr auto 1fr;gap:clamp(18px,2.6vw,36px);align-items:center;max-width:940px;margin:0 auto;background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--r);padding:clamp(28px,4vw,44px);box-shadow:0 14px 36px color-mix(in oklab,var(--ink) 7%,transparent);}
.dg-elements{display:grid;grid-template-columns:repeat(3,1fr);gap:16px 12px;}
.dg-el{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;}
.dg-el .e-ic{width:48px;height:48px;border-radius:50%;background:var(--sage-wash);color:var(--sage);display:flex;align-items:center;justify-content:center;}
.dg-el .e-ic svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
.dg-el span{font-size:.8rem;color:var(--ink-soft);letter-spacing:.02em;}
.dg-arrow{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--gold-soft);color:#fff;font-size:1.3rem;flex:none;}
.dg-result{text-align:center;background:linear-gradient(160deg,var(--sage),var(--sage-deep));border-radius:18px;padding:clamp(22px,3vw,30px) 18px;color:#fff;box-shadow:0 14px 30px color-mix(in oklab,var(--sage) 36%,transparent);}
.dg-result .r-en{font-family:'Allura',cursive;font-size:1.5rem;color:var(--gold-soft);line-height:1;}
.dg-result .r-jp{font-family:'Shippori Mincho',serif;font-size:1.12rem;font-weight:600;letter-spacing:.06em;margin-top:6px;}
.dg-result .r-sub{font-size:.74rem;color:color-mix(in oklab,#fff 82%,transparent);margin-top:8px;line-height:1.6;}
.dg-roles{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
.dg-role{display:flex;align-items:center;gap:10px;background:var(--sage-wash);border-radius:12px;padding:12px 14px;font-size:.84rem;color:var(--sage-deep);font-weight:600;}
.dg-role .e-ic{width:34px;height:34px;flex:none;border-radius:50%;background:#fff;color:var(--sage);display:flex;align-items:center;justify-content:center;}
.dg-role .e-ic svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
@media (max-width:760px){
  .diagram{grid-template-columns:1fr;gap:22px;}
  .dg-arrow{transform:rotate(90deg);margin:0 auto;}
  .dg-roles{grid-template-columns:1fr 1fr;}
}

/* profile row (photo beside fields) */
.profile-row{display:grid;grid-template-columns:300px 1fr;gap:clamp(28px,4vw,48px);align-items:start;max-width:980px;margin:clamp(48px,6vw,72px) auto 0;background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--r);padding:clamp(26px,3.5vw,40px);box-shadow:0 16px 40px color-mix(in oklab,var(--ink) 7%,transparent);}
.profile-row .pr-photo{border-radius:14px;overflow:hidden;aspect-ratio:3/4;box-shadow:0 14px 32px color-mix(in oklab,var(--ink) 14%,transparent);}
.profile-row .pr-photo img{width:100%;height:100%;object-fit:cover;}
.pr-head{margin-bottom:18px;}
.pr-head .kicker{font-size:1.3rem;}
.pr-head .pr-name{font-family:'Shippori Mincho',serif;font-size:1.4rem;font-weight:600;letter-spacing:.08em;color:var(--ink);}
.pr-head .pr-kana{font-size:.76rem;color:var(--ink-faint);}
.pr-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 28px;}
.pr-item{font-size:.84rem;line-height:1.85;color:var(--ink-soft);}
.pr-item.full{grid-column:1/-1;}
.pr-item b{display:block;font-family:'Shippori Mincho',serif;font-size:.84rem;color:var(--sage-deep);margin-bottom:5px;letter-spacing:.04em;}
@media (max-width:760px){
  .profile-row{grid-template-columns:1fr;}
  .profile-row .pr-photo{max-width:260px;margin:0 auto;}
  .pr-grid{grid-template-columns:1fr;}
}

/* origin (before -> whole life) diagram */
.origin-dg{grid-template-columns:1fr auto 1.3fr;}
.od-before{text-align:center;background:var(--bg-soft);border:1px dashed var(--line-strong);border-radius:16px;padding:clamp(24px,3vw,32px) 18px;}
.od-tag{display:inline-block;font-size:.68rem;letter-spacing:.1em;color:var(--ink-faint);background:#fff;border:1px solid var(--line);padding:4px 12px;border-radius:999px;margin-bottom:12px;}
.od-before p{font-family:'Shippori Mincho',serif;font-size:1rem;color:var(--ink-soft);line-height:1.6;}
.od-facets{display:flex;flex-wrap:wrap;gap:7px;justify-content:center;margin-top:12px;}
.od-facets span{font-size:.74rem;color:#fff;background:color-mix(in oklab,#fff 20%,transparent);padding:5px 12px;border-radius:999px;}

/* circular team diagram */
.circle-dg{position:relative;width:min(440px,86vw);aspect-ratio:1;margin:0 auto;}
.circle-dg .ring{position:absolute;inset:13%;border:1.5px dashed color-mix(in oklab,var(--gold) 55%,transparent);border-radius:50%;}
.circle-dg .center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:42%;height:42%;border-radius:50%;background:linear-gradient(160deg,var(--sage),var(--sage-deep));color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:0 14px 30px color-mix(in oklab,var(--sage) 38%,transparent);padding:8px;}
.circle-dg .center .c-en{font-family:'Allura',cursive;font-size:1.15rem;color:var(--gold-soft);line-height:1;}
.circle-dg .center .c-jp{font-family:'Shippori Mincho',serif;font-size:.92rem;font-weight:600;margin-top:4px;line-height:1.4;}
.circle-dg .node{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:7px;}
.circle-dg .node .n-ic{width:clamp(48px,11vw,60px);height:clamp(48px,11vw,60px);border-radius:50%;background:#fff;border:1px solid color-mix(in oklab,var(--gold) 45%,transparent);color:var(--sage);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 18px color-mix(in oklab,var(--ink) 8%,transparent);}
.circle-dg .node .n-ic svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
.circle-dg .node span{font-size:.76rem;color:var(--sage-deep);font-weight:600;white-space:nowrap;}
.circle-dg .n-top{top:2%;left:50%;}
.circle-dg .n-right{top:50%;left:85%;}
.circle-dg .n-bottom{top:98%;left:50%;}
.circle-dg .n-left{top:50%;left:15%;}
.circle-wrap{display:flex;flex-direction:column;align-items:center;gap:clamp(20px,3vw,28px);max-width:560px;margin:0 auto;}
.circle-cap{text-align:center;font-size:.84rem;color:var(--ink-soft);}

/* ===== team stats (数字で見る) ===== */
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,24px);}
.stat-card{position:relative;overflow:hidden;background:linear-gradient(157deg,var(--paper) 0%,color-mix(in oklab,var(--paper) 86%,var(--sage-wash)) 100%);border:1px solid var(--line-soft);border-radius:var(--r);padding:clamp(24px,2.6vw,32px) clamp(18px,2vw,24px);text-align:center;box-shadow:0 10px 28px color-mix(in oklab,var(--ink) 5%,transparent);}
.stat-card .st-label{font-family:'Shippori Mincho',serif;font-size:1rem;font-weight:600;color:var(--sage-deep);letter-spacing:.04em;padding-bottom:12px;margin-bottom:16px;border-bottom:1px solid color-mix(in oklab,var(--gold) 35%,transparent);}
.stat-card .st-num{font-family:'Shippori Mincho',serif;font-weight:600;color:var(--gold);line-height:1;}
.stat-card .st-num em{font-size:clamp(2.4rem,4vw,3.2rem);font-style:normal;}
.stat-card .st-num small{font-size:1rem;color:var(--ink-soft);margin-left:4px;}
.stat-card .st-sub{font-size:.78rem;color:var(--ink-faint);margin-top:10px;line-height:1.7;}
.pictogram{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;margin:8px 0 6px;color:color-mix(in oklab,var(--sage) 55%,#fff);}
.pictogram svg{width:15px;height:15px;fill:currentColor;}
.role-bars{display:flex;flex-direction:column;gap:9px;margin-top:6px;text-align:left;}
.role-bars .rb{display:flex;align-items:center;gap:8px;font-size:.76rem;color:var(--ink-soft);white-space:nowrap;}
.role-bars .rb i{flex:none;width:8px;height:8px;border-radius:50%;}
.role-bars .rb b{margin-left:auto;font-family:'Shippori Mincho',serif;color:var(--sage-deep);white-space:nowrap;}
.pend{font-size:.74rem;letter-spacing:.06em;color:var(--gold);background:color-mix(in oklab,var(--gold) 12%,transparent);border:1px dashed color-mix(in oklab,var(--gold) 45%,transparent);border-radius:999px;padding:3px 11px;display:inline-block;}
@media (max-width:860px){.stat-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:480px){.stat-grid{grid-template-columns:1fr;}}

/* ===== SP polish (≤640) ===== */
@media (max-width:640px){
  /* ホーム「働く環境」・福利厚生写真・各写真帯を1枚ずつ */
  .env-grid{grid-template-columns:1fr !important;}
  .photo-band .pb-grid{grid-template-columns:1fr !important;}
  /* サブページヒーローを短く・見出しの孤立文字を回避 */
  .page-hero.has-photo{padding-top:clamp(118px,26vw,150px);padding-bottom:clamp(40px,10vw,58px);}
  .page-hero .ph-bg{object-position:50% 20%;}
  .page-hero h1{font-size:clamp(1.55rem,6.6vw,2rem);line-height:1.55;}
  .sec-title,.page-hero h1,.hero h1,.info-card h3,.reason-full h3,.bc-text h4,.feature-row h3,.tl-card h4,.statement h2{text-wrap:pretty;}
  /* 医師の一日：時刻をカードの上に */
  .timeline .tl-row{grid-template-columns:1fr !important;gap:2px !important;}
  .timeline .tl-row .tl-time{grid-row:1 !important;grid-column:1 !important;text-align:left !important;padding:0 0 3px 42px !important;}
  .timeline .tl-row .tl-card{grid-row:2 !important;grid-column:1 !important;margin-left:42px !important;}
}

/* ===== staff interview cards ===== */
.staff-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,28px);}
.staff-card{position:relative;overflow:hidden;background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--r);box-shadow:0 12px 30px color-mix(in oklab,var(--ink) 6%,transparent);display:flex;flex-direction:column;transition:transform .35s var(--ease),box-shadow .35s var(--ease);}
.staff-card:hover{transform:translateY(-5px);box-shadow:0 22px 46px color-mix(in oklab,var(--sage) 15%,transparent);}
.staff-card .sc-photo{position:relative;aspect-ratio:4/3;overflow:hidden;background:linear-gradient(135deg,var(--sage-wash),#dde6cf);display:flex;align-items:center;justify-content:center;}
.staff-card .sc-photo img{width:100%;height:100%;object-fit:cover;}
.staff-card .sc-ph-ic{width:48px;height:48px;color:color-mix(in oklab,var(--sage) 55%,#fff);}
.staff-card .sc-badge{position:absolute;top:12px;left:12px;font-size:.62rem;letter-spacing:.08em;color:var(--sage-deep);background:color-mix(in oklab,#fff 86%,transparent);padding:4px 11px;border-radius:999px;}
.staff-card .sc-body{padding:22px 24px 26px;display:flex;flex-direction:column;gap:10px;}
.staff-card .sc-role{font-size:.72rem;letter-spacing:.1em;color:var(--gold);font-weight:600;}
.staff-card .sc-name{font-family:'Shippori Mincho',serif;font-size:1.16rem;font-weight:600;color:var(--ink);}
.staff-card .sc-name .sc-kana{font-size:.74rem;color:var(--ink-faint);margin-left:8px;letter-spacing:.04em;font-family:'Zen Kaku Gothic New';}
.staff-card .sc-q{font-family:'Shippori Mincho',serif;font-size:1rem;font-weight:600;line-height:1.6;color:var(--sage-deep);}
.staff-card .sc-slot{border:1px dashed var(--line-strong);border-radius:12px;padding:14px 16px;font-size:.8rem;line-height:1.8;color:var(--ink-faint);background:color-mix(in oklab,var(--sage-wash) 40%,transparent);}
.staff-card .sc-slot b{display:block;font-size:.66rem;letter-spacing:.08em;color:var(--gold);margin-bottom:5px;font-family:'Zen Kaku Gothic New';}
@media (max-width:860px){.staff-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.staff-grid{grid-template-columns:1fr;}}

/* ===== FORM ===== */
.form-wrap{background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--r);padding:clamp(28px,4vw,48px);box-shadow:0 16px 40px color-mix(in oklab,var(--ink) 7%,transparent);}
.form-intro{margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid var(--line);}
.form-intro p{font-size:.9rem;line-height:1.9;color:var(--ink-soft);}
.field{margin-bottom:26px;}
.field-label{font-family:'Shippori Mincho',serif;font-size:.96rem;font-weight:600;letter-spacing:.04em;color:var(--ink);margin-bottom:12px;display:flex;align-items:center;gap:10px;}
.required{font-family:'Zen Kaku Gothic New';font-size:.66rem;font-weight:600;letter-spacing:.05em;color:#fff;background:var(--sage);padding:3px 9px;border-radius:4px;}
.form-wrap input[type=text],.form-wrap input[type=tel],.form-wrap input[type=email],.form-wrap textarea{width:100%;font-family:inherit;font-size:.94rem;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:14px 16px;transition:border-color .2s,box-shadow .2s;}
.form-wrap input::placeholder,.form-wrap textarea::placeholder{color:var(--ink-faint);}
.form-wrap input:focus,.form-wrap textarea:focus{outline:none;border-color:var(--sage);box-shadow:0 0 0 3px color-mix(in oklab,var(--sage) 18%,transparent);}
.form-wrap textarea{min-height:140px;resize:vertical;line-height:1.8;}
.radio-group{display:flex;flex-wrap:wrap;gap:12px;}
.radio-item{display:inline-flex;align-items:center;gap:9px;cursor:pointer;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:11px 20px;font-size:.9rem;color:var(--ink-soft);transition:border-color .2s,background .2s;}
.radio-item:has(input:checked){border-color:var(--sage);background:var(--sage-wash);color:var(--sage-deep);font-weight:600;}
.radio-item input,.checkbox-row input{accent-color:var(--sage);width:17px;height:17px;}
.checkbox-row{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-size:.92rem;color:var(--ink-soft);}
.privacy-link{margin-top:10px;}
.privacy-link a{font-size:.84rem;color:var(--sage);text-decoration:underline;text-underline-offset:3px;}
.submit-row{text-align:center;margin-top:36px;}

/* form tabs (応募 / 見学) */
.form-tabs{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:760px;margin:0 auto clamp(28px,3.5vw,40px);}
.form-tab{appearance:none;cursor:pointer;font-family:'Shippori Mincho',serif;font-size:clamp(.96rem,1.6vw,1.12rem);font-weight:600;letter-spacing:.04em;color:var(--ink-soft);background:var(--paper);border:1.5px solid var(--line);border-radius:var(--r);padding:20px 18px;display:flex;flex-direction:column;align-items:center;gap:8px;transition:all .3s var(--ease);}
.form-tab .ft-ic{width:42px;height:42px;border-radius:50%;background:var(--sage-wash);color:var(--sage);display:flex;align-items:center;justify-content:center;transition:all .3s var(--ease);}
.form-tab .ft-ic svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.form-tab small{font-size:.72rem;font-weight:400;color:var(--ink-faint);letter-spacing:.02em;}
.form-tab.active{border-color:var(--sage);background:linear-gradient(160deg,#fff,var(--sage-wash));box-shadow:0 14px 32px color-mix(in oklab,var(--sage) 18%,transparent);color:var(--sage-deep);}
.form-tab.active .ft-ic{background:var(--sage);color:#fff;}
.form-panel{display:none;}
.form-panel.active{display:block;}
.form-grid2{display:block;}
.form-grid2 .field.full{grid-column:1/-1;}
.field-note{font-size:.76rem;color:var(--ink-faint);margin-top:6px;line-height:1.6;}
.optional{font-size:.66rem;font-weight:500;letter-spacing:.05em;color:var(--ink-faint);background:var(--bg);border:1px solid var(--line);padding:3px 9px;border-radius:4px;}
.filebox{display:block;border:1.5px dashed var(--line-strong);border-radius:12px;padding:22px;text-align:center;background:color-mix(in oklab,var(--sage-wash) 40%,transparent);cursor:pointer;transition:border-color .2s,background .2s;}
.filebox:hover{border-color:var(--sage);background:color-mix(in oklab,var(--sage-wash) 70%,transparent);}
.filebox svg{width:30px;height:30px;color:var(--sage);fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;margin-bottom:10px;}
.filebox .fb-main{font-size:.88rem;color:var(--sage-deep);font-weight:600;}
.filebox .fb-sub{font-size:.74rem;color:var(--ink-faint);margin-top:5px;}
.filebox input{display:none;}
.date-pref{display:block;}
.date-pref input{margin-bottom:12px;}
@media (max-width:560px){.form-tab{padding:16px 12px;}}
.contact-card{margin-top:clamp(32px,4vw,44px);text-align:center;background:var(--sage-wash);border-radius:var(--r);padding:clamp(28px,3.5vw,40px);}
.contact-card h3{font-size:1.1rem;font-weight:600;letter-spacing:.06em;color:var(--sage-deep);margin-bottom:10px;}
.contact-card p{font-size:.86rem;line-height:1.9;color:var(--ink-soft);}
.contact-card .phone{font-size:1.8rem;font-weight:600;letter-spacing:.06em;color:var(--ink);margin:8px 0 14px;}

/* about Introduction grid (head / pic / body) */
.intro-grid{grid-template-columns:1.1fr 1fr;grid-template-areas:"head pic" "body pic";align-items:start;column-gap:clamp(36px,5vw,72px);}
.intro-grid .ig-head{grid-area:head;}
.intro-grid .ig-pic{grid-area:pic;align-self:center;}
.intro-grid .ig-body{grid-area:body;}

/* =========================================================
   SP (スマホ) 専用調整 — PCレイアウトには影響しません
   ========================================================= */
.sp-only{display:none;}
@media (max-width:560px){
  .sp-hide{display:none !important;}
  .pc-hide{display:none !important;}
  .sp-only{display:block !important;}

  /* index: 葉デコが見出しと重なる → SPでは非表示 */
  .mission .rose-deco{display:none;}

  /* 全体: 「※…予定」等のプレースホルダー注記をSPで非表示 */
  .pend{display:none;}

  /* index: 1日の流れ — 縦1列＋中央の点線で目線をつなぐ */
  .tl-svg{display:none;}
  .tl-grid{grid-template-columns:1fr !important;gap:0;position:relative;}
  .tl-grid::before{content:"";position:absolute;left:23px;top:24px;bottom:24px;width:2px;
    background:repeating-linear-gradient(var(--gold) 0 5px,transparent 5px 11px);z-index:0;}
  .tl-item{display:grid !important;grid-template-columns:46px 1fr;column-gap:18px;row-gap:3px;grid-template-areas:"ic time" "ic label" "ic desc";align-items:start;text-align:left !important;padding:8px 0 18px;position:relative;z-index:1;}
  .tl-ic{grid-area:ic;grid-row:1/4;align-self:start;margin:0 !important;width:46px;height:46px;background:var(--bg-soft);border-radius:50%;padding:4px;box-sizing:border-box;}
  .tl-item .tl-time{grid-area:time;height:auto !important;}
  .tl-item .tl-label{grid-area:label;}
  .tl-item .tl-desc{grid-area:desc;}

  /* index: スタッフインタビュー準備中カードをSPで非表示 */
  .voices .voice-note-card{display:none;}

  /* vision: 原点図解 — 横並びを保ち矢印は→のまま */
  .diagram.origin-dg{grid-template-columns:1fr auto 1.15fr !important;gap:10px !important;padding:20px 14px !important;align-items:center;}
  .origin-dg .dg-arrow{transform:none !important;width:34px;height:34px;font-size:1rem;}
  .origin-dg .od-before{padding:16px 10px;}
  .origin-dg .od-before p{font-size:.82rem;}
  .origin-dg .dg-result{padding:16px 10px;}
  .origin-dg .dg-result .r-jp{font-size:.92rem;}
  .origin-dg .od-facets span{font-size:.66rem;padding:4px 9px;}

  /* vision: チーム円形図解 — SPも円形を維持（アイコンを円の外周に） */
  .circle-dg .node .n-ic{width:48px;height:48px;}
  .circle-dg .node span{font-size:.7rem;}
  .circle-dg .center{width:40% !important;height:40% !important;}
  .circle-dg .center .c-jp{font-size:.82rem;}

  /* vision: 価値観8つ — 1枚ずつスワイプ表示（本文を切らない） */
  .card-grid.c4{display:flex !important;overflow-x:auto;scroll-snap-type:x mandatory;align-items:stretch;gap:14px;padding-bottom:12px;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
  .card-grid.c4::-webkit-scrollbar{display:none;}
  .card-grid.c4 .info-card{min-width:82vw;max-width:82vw;scroll-snap-align:center;flex:0 0 auto;overflow:visible;height:auto;}

  /* about: Introduction — 英字見出し→写真→本文の順に1列 */
  .intro-grid{grid-template-columns:1fr !important;grid-template-areas:"head" "pic" "body" !important;gap:22px !important;}
  .intro-grid .ig-h2{font-size:1.55rem !important;}

  /* about: 数値カード — SPは1列ずつ・番号は横1行 */
  .stat-grid{grid-template-columns:1fr !important;}
  .stat-card .st-num{white-space:nowrap;}
  .role-bars .rb{white-space:normal;}
  .role-bars .rb b{white-space:nowrap;margin-left:6px;}

  /* benefits: 独立支援の緑タグを縦に整列 */
  .doctor-band .doc-feature .tag-row{flex-direction:column;align-items:stretch;gap:8px;}
  .doctor-band .doc-feature .tag-row span{display:block;text-align:center;}

  /* doctor: ヒーロー写真をSP用画像に差し替え（文字の下に表示） */
  .hero-photo .ph.sp-only{display:block !important;border-radius:0 0 0 80px;overflow:hidden;}
  .hero-photo .ph.sp-only img{width:100%;height:100%;object-fit:cover;}

  /* index SP: ファーストビューは写真の上に文字を重ねる（白丸バッジは非表示） */
  .hero:not(.hero-solo){padding-top:0;}
  .hero:not(.hero-solo) .hero-grid{position:relative;display:block;min-height:70vh;}
  .hero:not(.hero-solo) .hero-photo{position:absolute;inset:0;min-height:0;margin:0;}
  .hero:not(.hero-solo) .hero-photo .ph{position:absolute;inset:0;border-radius:0;box-shadow:none;}
  .hero:not(.hero-solo) .hero-photo .ph img{width:100%;height:100%;object-fit:cover;object-position:50% 16%;}
  .hero:not(.hero-solo) .hero-photo .logo-badge{display:none;}
  .hero:not(.hero-solo) .hero-photo .swap{display:none;}
  .hero:not(.hero-solo) .hero-grid::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(24,32,27,.10) 0%,rgba(24,32,27,.36) 46%,rgba(24,32,27,.74) 100%);pointer-events:none;}
  .hero:not(.hero-solo) .hero-copy{position:relative;z-index:2;min-height:70vh;display:flex;flex-direction:column;justify-content:flex-end;padding:108px 24px 40px;}
  .hero:not(.hero-solo) .hero-copy h1{color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.45);}
  .hero:not(.hero-solo) .hero-copy h1 .l2{color:#fff;}
  .hero:not(.hero-solo) .hero-lead{color:rgba(255,255,255,.94);text-shadow:0 1px 10px rgba(0,0,0,.5);}
  .hero:not(.hero-solo) .hero-script{color:var(--gold-soft);text-shadow:0 1px 8px rgba(0,0,0,.45);}

  /* doctor: 給与モデル表をカード型に */
  .salary-tbl{min-width:0 !important;}
  .salary-tbl thead{display:none;}
  .salary-tbl,.salary-tbl tbody,.salary-tbl tr,.salary-tbl td{display:block;width:100%;}
  .salary-tbl tr{margin-bottom:16px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 8px 20px color-mix(in oklab,var(--ink) 5%,transparent);}
  .salary-tbl td{display:flex;justify-content:space-between;gap:14px;align-items:baseline;padding:11px 16px !important;border-bottom:1px solid var(--line-soft) !important;text-align:right !important;white-space:normal !important;}
  .salary-tbl td:last-child{border-bottom:none !important;}
  .salary-tbl td::before{content:attr(data-label);font-family:'Shippori Mincho',serif;font-weight:600;color:var(--sage-deep);text-align:left;flex:none;font-size:.8rem;}
  .salary-tbl td:nth-of-type(1){background:var(--sage-wash);font-size:1.05rem;}
  .salary-tbl td:nth-of-type(1)::before{display:none;}
  .salary-tbl td:nth-of-type(2)::before{content:"勤務形態";}
  .salary-tbl td:nth-of-type(3)::before{content:"勤務例";}
  .salary-tbl td:nth-of-type(4)::before{content:"想定年収";}
  .salary-tbl td:nth-of-type(5)::before{content:"対象";}

  /* doctor: 一日の流れ（縦タイムライン）の位置を整える */
  .timeline::before{left:16px;}
  .tl-row{grid-template-columns:1fr !important;gap:0;padding-bottom:18px;}
  .tl-row .tl-time{text-align:left;padding:0 0 8px 42px;}
  .tl-row .tl-card{margin-left:42px;}
  .tl-row .tl-card::before{left:-31px;top:16px;}

  /* vision WHO/WHAT: SPは ①番号→見出し→写真→本文 の縦1列 */
  .feature-row.has-pic,.feature-row.has-pic.rev{grid-template-columns:1fr !important;grid-template-areas:"fic" "head" "pic" "text" !important;gap:8px;}
  .feature-row.has-pic .fic{justify-self:start;margin-bottom:2px;}
  .feature-row.has-pic .fr-pic{aspect-ratio:16/9;margin:4px 0;}
}

/* ===== privacy policy ===== */
.pp-wrap{display:flex;flex-direction:column;gap:clamp(28px,3.4vw,40px);}
.pp-block{position:relative;padding-bottom:clamp(28px,3.4vw,40px);border-bottom:1px solid var(--line);}
.pp-block:last-child{border-bottom:none;}
.pp-h{font-family:'Shippori Mincho',serif;font-size:clamp(1.12rem,1.9vw,1.34rem);font-weight:600;color:var(--ink);letter-spacing:.04em;display:flex;align-items:baseline;gap:14px;margin-bottom:14px;line-height:1.5;}
.pp-no{font-size:.9rem;color:var(--gold);font-weight:600;flex:none;}
.pp-block p{font-size:.94rem;line-height:2.05;color:var(--ink-soft);}
.pp-pend{font-size:.76rem;letter-spacing:.04em;color:var(--gold);background:color-mix(in oklab,var(--gold) 12%,transparent);border:1px dashed color-mix(in oklab,var(--gold) 45%,transparent);border-radius:999px;padding:2px 10px;display:inline-block;}
.pp-meta{margin-top:clamp(36px,4vw,52px);padding:clamp(24px,3vw,32px);background:var(--sage-wash);border-radius:var(--r);}
.pp-meta p{font-size:.86rem;line-height:1.95;color:var(--ink-soft);}
.pp-meta p+p{margin-top:10px;}

.sp-home-br {
  display: none;
}

@media (max-width: 600px) {
  .sp-home-br {
    display: block;
  }
}

.home-cta-gap {
  display: inline-block;
  margin-top: 0.55em;
}

@media (max-width: 600px) {
  .home-cta-gap {
    margin-top: 0.75em;
  }
}
.pc-only {
  display: initial;
}

@media (max-width: 600px) {
  .pc-only {
    display: none;
  }
}

/* ===== Additional recruitment pages ===== */
.tick-list{list-style:none;display:flex;flex-direction:column;gap:10px;margin:6px 0 4px;}
.tick-list li{position:relative;padding-left:26px;font-size:.9rem;line-height:1.8;color:var(--ink-soft);}
.tick-list li::before{content:"";position:absolute;left:2px;top:.5em;width:12px;height:7px;border-left:2px solid var(--sage);border-bottom:2px solid var(--sage);transform:rotate(-45deg);}
.pay-badge{margin-top:22px;background:var(--sage-wash);border-radius:14px;padding:16px 20px;font-family:'Shippori Mincho',serif;font-size:1rem;color:var(--sage-deep);font-weight:600;}
.pay-badge strong{color:var(--gold);font-size:1.15rem;}
.pay-badge span{display:block;margin-top:8px;font-family:'Zen Kaku Gothic New',sans-serif;font-size:.8rem;font-weight:400;line-height:1.8;color:var(--ink-soft);}
@media (max-width:560px){
  .nurse-salary-tbl td:nth-of-type(2)::before{content:"時給";}
  .nurse-salary-tbl td:nth-of-type(3)::before{content:"主な担当";}
}

/* The two additional job links make the desktop nav wider. Switch to burger earlier. */
@media (max-width:1320px){
  .nav-links{display:none;}
  .burger{display:flex;}
  .nav-links.open{display:flex;position:fixed;inset:64px 16px auto 16px;flex-direction:column;gap:8px;background:var(--paper);padding:18px;border-radius:16px;box-shadow:0 20px 50px rgba(0,0,0,.14);max-height:calc(100vh - 80px);overflow:auto;}
  .nav-links.open a{padding:10px;border-bottom:1px solid var(--line-soft);}
  .nav:has(.nav-links.open) .burger span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav:has(.nav-links.open) .burger span:nth-child(2){opacity:0;}
  .nav:has(.nav-links.open) .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  body.dark-top .nav:not(.scrolled) .nav-links a{color:var(--ink-soft);}
  body.dark-top .nav:not(.scrolled) .burger span{background:var(--sage-deep);}
}