:root {
  --ink: #16303a;
  --muted: #607178;
  --ivory: #f8f5ed;
  --paper: #fffdf8;
  --sky: #b8dff2;
  --blue: #71bce4;
  --sun: #f5c54f;
  --coral: #ef9aa2;
  --lime: #c8dd43;
  --line: rgba(22, 48, 58, .14);
  --radius: 26px;
  --max: 1280px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: "Helvetica Neue", "Hiragino Sans", "Yu Gothic", sans-serif;
  font-size: 16px;
  line-height: 1.85;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img, video { display: block; width: 100%; }
button, input, textarea, select { font: inherit; }

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 82px;
  padding: 0 4vw;
  transition: background .3s, box-shadow .3s;
}
.site-header.scrolled { background: rgba(255,253,248,.92); backdrop-filter: blur(16px); box-shadow: 0 1px 0 var(--line); }
.brand { display: flex; align-items: center; gap: 5px; font-weight: 700; letter-spacing: .16em; }
.brand img { width: 56px; height: 38px; object-fit: contain; object-position: center; background:transparent; }
.brand-lockup { display:flex; flex-direction:column; justify-content:center; gap:2px; line-height:1; }
.brand-ja { color:#173f50; font-size:.62rem; font-weight:800; letter-spacing:.18em; }
.desktop-nav { display: flex; align-items: center; gap: clamp(18px,2.1vw,34px); font-size: .82rem; font-weight: 800; letter-spacing: .06em; }
.desktop-nav a { position: relative; }
.desktop-nav a:not(.pill)::after { content:""; position:absolute; left:0; right:100%; bottom:-8px; height:1px; background:var(--ink); transition:right .25s; }
.desktop-nav a:hover::after { right:0; }
.pill, .button { display: inline-flex; align-items:center; justify-content:center; gap:12px; min-height: 50px; padding: 0 24px; border: 1px solid var(--ink); border-radius: 999px; font-weight: 700; letter-spacing: .05em; transition: transform .2s, background .2s, color .2s; }
.pill { min-height: 44px; padding: 0 20px; background:var(--ink); color:white; }
.pill:hover, .button:hover { transform: translateY(-2px); }
.button.dark { background: var(--ink); color:#fff; }
.button.light { border-color: rgba(255,255,255,.7); color:#fff; background:rgba(255,255,255,.08); backdrop-filter: blur(10px); }
.button.text { border:0; padding:0; min-height:auto; border-radius:0; border-bottom:1px solid; }
.menu-toggle { display:none; width:46px; height:46px; border:0; border-radius:50%; background:var(--ink); color:white; position:relative; }
.menu-toggle::before,.menu-toggle::after { content:""; position:absolute; width:18px; height:1px; background:white; left:14px; transition:.25s; }
.menu-toggle::before { top:19px; } .menu-toggle::after { top:26px; }
.menu-open .menu-toggle::before { transform:translateY(3.5px) rotate(45deg); }
.menu-open .menu-toggle::after { transform:translateY(-3.5px) rotate(-45deg); }
.mobile-menu { position:fixed; inset:0; z-index:40; padding:110px 28px 90px; background:var(--ivory); display:none; flex-direction:column; justify-content:space-between; }
.menu-open .mobile-menu { display:flex; }
.mobile-menu nav { display:grid; gap:8px; }
.mobile-menu nav a { font-size:clamp(1.6rem,7vw,2.5rem); font-weight:650; letter-spacing:-.03em; line-height:1.45; }
.mobile-menu .menu-meta { font-size:.82rem; color:var(--muted); }

.hero {
  min-height: 100svh;
  display:grid;
  grid-template-columns: minmax(330px, 42%) 1fr;
  background:var(--ivory);
}
.hero-copy { padding: 160px 5vw 72px; display:flex; flex-direction:column; justify-content:flex-end; position:relative; }
.eyebrow { margin:0 0 20px; text-transform:uppercase; letter-spacing:.18em; font-size:.74rem; font-weight:700; color:var(--muted); }
.hero h1 { margin:0; font-family:"Yu Mincho", "Hiragino Mincho ProN", serif; font-size:clamp(3.4rem,7vw,8.5rem); line-height:.95; letter-spacing:-.075em; font-weight:600; white-space:nowrap; }
.hero-lead { margin:30px 0 42px; font-family:"Yu Mincho", "Hiragino Mincho ProN", serif; font-size:clamp(1.05rem,1.65vw,1.5rem); line-height:1.7; letter-spacing:.02em; }
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; }
.hero-image { position:relative; min-height:100svh; overflow:hidden; }
.hero-image picture { display:block; width:100%; height:100%; }
.hero-image img { height:100%; object-fit:cover; object-position:center 38%; }
.hero-image::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(17,42,52,.02),rgba(17,42,52,.15)); }
.hero-badge { position:absolute; z-index:2; right:24px; bottom:24px; width:128px; height:128px; border-radius:50%; display:grid; place-items:center; text-align:center; background:rgba(255,253,248,.88); backdrop-filter:blur(8px); font-size:.7rem; font-weight:700; letter-spacing:.12em; line-height:1.5; animation:float 5s ease-in-out infinite; }
@keyframes float { 50% { transform:translateY(-7px); } }

.ticker { overflow:hidden; background:var(--ink); color:white; padding:17px 0 15px; }
.ticker-track { display:flex; width:max-content; animation:ticker 28s linear infinite; }
.ticker span { white-space:nowrap; font-size:.82rem; letter-spacing:.18em; text-transform:uppercase; }
.ticker b { color:var(--sun); margin:0 26px; }
@keyframes ticker { to { transform:translateX(-50%); } }

.section { padding:clamp(90px,11vw,170px) 5vw; }
.section-inner { max-width:var(--max); margin:0 auto; }
.section-head { display:grid; grid-template-columns: 1fr 2fr; align-items:start; gap:30px; margin-bottom:64px; }
.section-number { font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); }
.section-title { margin:0; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(2.35rem,5.5vw,5.4rem); font-weight:500; letter-spacing:-.05em; line-height:1.14; }
.section-title .accent { color:#3e98c7; }
.manifesto { background:var(--paper); }
.manifesto-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(40px,8vw,120px); align-items:end; }
.manifesto-copy p { max-width:720px; margin:26px 0 0; font-size:clamp(1rem,1.4vw,1.16rem); }
.manifesto-visual { position:relative; }
.manifesto-visual img { aspect-ratio:4/5; object-fit:cover; border-radius:var(--radius); }
.manifesto-note { position:absolute; left:-55px; bottom:30px; width:180px; padding:24px; border-radius:50%; background:var(--sun); text-align:center; font-family:serif; transform:rotate(-8deg); }

.therapy { background:var(--ivory); }
.therapy-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:18px; }
.therapy-card { position:relative; overflow:hidden; border-radius:var(--radius); min-height:420px; background:#ddd; }
.therapy-card.large { grid-column:span 7; min-height:680px; }
.therapy-card.tall { grid-column:span 5; min-height:680px; }
.therapy-card.small { grid-column:span 4; }
.therapy-card img, .therapy-card video { height:100%; object-fit:cover; }
.therapy-card::after { content:""; position:absolute; inset:35% 0 0; background:linear-gradient(transparent,rgba(10,32,41,.84)); }
.card-copy { position:absolute; z-index:2; left:28px; right:28px; bottom:24px; color:#fff; }
.card-copy span { font-size:.69rem; text-transform:uppercase; letter-spacing:.17em; }
.card-copy h3 { margin:6px 0 0; font-size:clamp(1.35rem,2.4vw,2.3rem); line-height:1.3; }
.card-copy h3.single-line-title { font-size:clamp(1.2rem,1.85vw,1.85rem); white-space:nowrap; letter-spacing:-.045em; }

.team { background:#d8edf5; overflow:hidden; }
.team-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(40px,8vw,120px); align-items:center; }
.team-photo { position:relative; }
.team-photo img { border-radius:48% 48% 24px 24px; aspect-ratio:4/5; object-fit:cover; }
.team-copy p { max-width:630px; font-size:1.08rem; }
.roles { display:flex; flex-wrap:wrap; gap:8px; margin:34px 0 42px; }
.roles span { padding:8px 15px; border:1px solid rgba(22,48,58,.34); border-radius:99px; font-size:.82rem; font-weight:700; background:rgba(255,255,255,.3); }

.locations { background:var(--paper); }
.location-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.location-card { display:flex; flex-direction:column; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:white; transition:transform .25s,box-shadow .25s; }
.location-card:hover { transform:translateY(-6px); box-shadow:0 24px 70px rgba(23,48,58,.12); }
.location-card img { aspect-ratio:4/3; object-fit:cover; }
.location-copy { padding:28px 30px 32px; }
.service-logo { width:auto; height:42px; max-width:230px; object-fit:contain; object-position:left center; mix-blend-mode:multiply; margin-bottom:18px; }
.location-copy .tag { color:#3e98c7; font-size:.72rem; letter-spacing:.13em; font-weight:700; }
.location-copy h3 { margin:8px 0 6px; font-size:clamp(1.55rem,2.5vw,2.35rem); }
.location-copy p { margin:0 0 18px; color:var(--muted); }
.location-copy .location-summary { color:var(--ink); font-size:.875rem; font-weight:900; }
.location-copy .location-detail { font-size:.875rem; line-height:1.68; font-weight:700; }
.link-arrow { display:inline-flex; align-items:center; gap:12px; font-weight:700; border-bottom:1px solid; line-height:1.7; }

.journal { padding-left:0; padding-right:0; background:var(--ivory); overflow:hidden; }
.journal .section-head { padding:0 5vw; max-width:calc(var(--max) + 10vw); margin-left:auto; margin-right:auto; }
.gallery { display:flex; gap:16px; overflow-x:auto; padding:0 5vw 22px; scroll-snap-type:x mandatory; scrollbar-width:none; }
.gallery::-webkit-scrollbar { display:none; }
.gallery figure { min-width:min(74vw,430px); margin:0; scroll-snap-align:start; }
.gallery img { height:min(62vh,620px); object-fit:cover; border-radius:var(--radius); }
.gallery figcaption { display:flex; justify-content:space-between; gap:20px; margin-top:12px; font-size:.78rem; color:var(--muted); }

.recruit { padding:0; background:var(--ink); color:#fff; }
.recruit-wrap { display:grid; grid-template-columns:1.1fr .9fr; min-height:780px; }
.recruit-image img { height:100%; object-fit:cover; object-position:center; }
.recruit-copy { padding:clamp(70px,8vw,130px) 5vw; display:flex; flex-direction:column; justify-content:center; }
.recruit-copy h2 { font-family:"Yu Mincho","Hiragino Mincho ProN",serif; margin:0 0 28px; font-size:clamp(2.6rem,5.3vw,6rem); line-height:1.18; letter-spacing:-.055em; font-weight:500; }
.recruit-copy p { max-width:540px; color:rgba(255,255,255,.76); }
.recruit-actions { margin-top:34px; display:flex; flex-wrap:wrap; gap:12px; }

.contact-band { background:var(--sun); padding:clamp(80px,10vw,150px) 5vw; }
.contact-band-inner { max-width:var(--max); margin:auto; display:grid; grid-template-columns:1.6fr .4fr; gap:30px; align-items:end; }
.contact-band h2 { margin:0; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(2.8rem,6.7vw,7rem); line-height:1.08; font-weight:500; letter-spacing:-.06em; }
.contact-band p { margin:22px 0 0; }
.round-arrow { width:92px; height:92px; border-radius:50%; border:1px solid var(--ink); display:grid; place-items:center; font-size:2rem; justify-self:end; transition:.2s; }
.round-arrow:hover { background:var(--ink); color:white; transform:rotate(-25deg); }

.site-footer { background:var(--ink); color:white; padding:58px 5vw 48px; }
.footer-inner { max-width:var(--max); margin:auto; display:grid; grid-template-columns:1fr 2fr; gap:70px; }
.footer-brand { font-weight:700; letter-spacing:.15em; font-size:1.2rem; }
.footer-brand small { display:block; margin-top:10px; color:rgba(255,255,255,.55); letter-spacing:.04em; font-weight:400; }
.footer-links { display:grid; grid-template-columns:repeat(3,1fr); gap:30px; font-size:.85rem; }
.footer-links strong { display:block; margin-bottom:13px; color:rgba(255,255,255,.46); font-size:.68rem; letter-spacing:.15em; text-transform:uppercase; }
.footer-links a { display:block; margin:7px 0; }
.copyright { max-width:var(--max); margin:60px auto 0; color:rgba(255,255,255,.42); font-size:.7rem; }

.mobile-quick { display:none; position:fixed; z-index:35; left:12px; right:12px; bottom:12px; border-radius:18px; overflow:hidden; box-shadow:0 8px 35px rgba(16,35,44,.22); }
.mobile-quick a { flex:1; display:flex; align-items:center; justify-content:center; min-height:54px; background:var(--paper); font-weight:700; font-size:.82rem; }
.mobile-quick a:last-child { background:var(--ink); color:white; }

/* Interior pages */
.sub-hero { min-height:80svh; display:grid; grid-template-columns:1fr 1.15fr; background:var(--ivory); padding-top:82px; }
.sub-hero-copy { padding:clamp(70px,9vw,140px) 5vw; display:flex; flex-direction:column; justify-content:flex-end; }
.sub-hero h1 { margin:0; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(3rem,6.4vw,7rem); line-height:1.05; letter-spacing:-.06em; font-weight:500; }
.sub-hero p { max-width:580px; margin:28px 0 0; }
.sub-hero-image { overflow:hidden; }
.sub-hero-image img { height:100%; object-fit:cover; }
.content-section { padding:clamp(72px,9vw,130px) 5vw; }
.content-inner { max-width:1050px; margin:auto; }
.lead-copy { font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(1.6rem,3vw,2.8rem); line-height:1.65; }
.program-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:60px; }
.program { height:100%; padding:30px; border:1px solid var(--line); border-radius:20px; background:white; display:flex; flex-direction:column; }
.program .num { color:#3e98c7; font-size:.7rem; letter-spacing:.15em; }
.program h3 { margin:14px 0 10px; font-size:1.35rem; }
.program p { margin:0; color:var(--muted); font-size:.92rem; }
.hero h1,.section-title,.recruit-copy h2,.contact-band h2,.sub-hero h1,.guide-heading h2 { text-wrap:balance; }
.school-guide,.use-guide,.fee-guide { margin-top:clamp(84px,10vw,140px); padding-top:clamp(52px,7vw,90px); border-top:2px solid var(--ink); }
.guide-heading { display:grid; grid-template-columns:220px 1fr; gap:28px; align-items:start; }
.guide-heading .eyebrow { margin:10px 0 0; }
.guide-heading h2 { margin:0; font-size:clamp(2.2rem,4.6vw,4.7rem); line-height:1.05; letter-spacing:-.055em; }
.hours-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:2px; margin-top:46px; background:var(--ink); border:2px solid var(--ink); }
.hours-grid > div { padding:30px; background:#fff; }
.hours-grid span { display:block; color:#0b8bbb; font-size:.74rem; font-weight:900; letter-spacing:.13em; }
.hours-grid strong { display:block; margin-top:10px; font-size:clamp(1.55rem,3vw,2.6rem); line-height:1.15; }
.hours-grid p { margin:9px 0 0; color:var(--muted); font-size:.9rem; }
.hours-schedule { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin-top:18px; }
.hours-schedule > div + div { padding-left:22px; border-left:1px solid var(--line); }
.hours-schedule small { display:block; color:var(--muted); font-size:.8rem; font-weight:800; line-height:1.5; }
.hours-schedule strong { margin-top:6px; white-space:nowrap; }
.hours-schedule .hours-extension { margin-top:8px; font-size:.82rem; }
.day-flow-label { margin:54px 0 0; color:#0b8bbb; font-size:.82rem; font-weight:900; letter-spacing:.12em; }
.day-flow { list-style:none; margin:40px 0 0; padding:0; border-top:1px solid var(--line); }
.day-flow li { display:grid; grid-template-columns:110px 1fr; gap:24px; padding:25px 0; border-bottom:1px solid var(--line); }
.day-flow time { color:#0b8bbb; font-size:1.15rem; font-weight:900; }
.day-flow h3 { margin:0 0 7px; font-size:1.18rem; }
.day-flow p { margin:0; color:var(--muted); }
.guide-note { margin:22px 0 0; color:var(--muted); font-size:.82rem; }
.use-flow { list-style:none; margin:40px 0 0; padding:0; display:grid; grid-template-columns:repeat(5,1fr); gap:12px; }
.use-flow li { min-height:230px; padding:24px 20px; border:1px solid var(--line); background:var(--ivory); }
.use-flow span { display:block; color:#0b8bbb; font-size:.84rem; font-weight:900; letter-spacing:.12em; }
.use-flow h3 { margin:28px 0 10px; font-size:1.05rem; }
.use-flow p { margin:0; color:var(--muted); font-size:.86rem; }
.use-flow-action { margin:28px 0 0; }
.page-fujisawa .sub-hero { min-height:0; height:min(680px,calc(100svh - 82px)); }
.page-fujisawa .sub-hero-copy { padding-top:96px; padding-bottom:64px; }
.page-fujisawa .sub-hero h1 { font-size:clamp(2.35rem,4.4vw,5rem); letter-spacing:-.055em; }
.page-fujisawa .sub-hero h1 span { display:inline; }
.page-fujisawa .lead-copy span { display:inline; }
.page-minamifujisawa .sub-hero h1 span,.page-minamifujisawa .hero-intro span,.page-minamifujisawa .lead-copy span { display:inline; }
.page-minamifujisawa .sub-hero-image img { object-position:center center; }
.school-activity { margin-top:clamp(84px,10vw,140px); padding-top:clamp(52px,7vw,90px); border-top:2px solid var(--ink); }
.activity-photo-grid { display:grid; grid-template-columns:1.35fr 1fr; grid-template-rows:repeat(2,minmax(240px,1fr)); gap:14px; margin-top:46px; }
.activity-photo-grid figure { position:relative; min-height:0; margin:0; overflow:hidden; background:var(--ivory); }
.activity-photo-grid figure:first-child { grid-row:1 / 3; }
.activity-photo-grid img { width:100%; height:100%; object-fit:cover; }
.activity-photo-grid figcaption { position:absolute; left:14px; bottom:14px; padding:8px 12px; background:rgba(255,253,248,.92); color:var(--ink); font-size:.78rem; font-weight:800; }
.page-fujisawa .sub-hero-image img { object-position:center 39%; }
.page-contact .sub-hero { min-height:620px; height:min(720px,100svh); }
.page-contact .sub-hero-copy { padding-top:108px; padding-bottom:58px; }
.page-contact .sub-hero h1 { font-size:clamp(2.8rem,5.5vw,6rem); }
.page-contact .sub-hero-image img { object-position:center 43%; }
.page-staff .sub-hero { min-height:0; height:min(700px,calc(100svh - 82px)); }
.page-staff .sub-hero-copy { padding-top:96px; padding-bottom:58px; }
.page-staff .sub-hero-image img { object-position:center 24%; }
.concept-two .page-contact .sub-hero-image { margin:112px 3vw 26px 0; }
.fee-lead { max-width:760px; margin:34px 0 0; font-size:1.05rem; }
.fee-cards { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:34px; }
.fee-cards article { padding:30px; border:2px solid var(--ink); box-shadow:6px 6px 0 #ffd400; }
.fee-cards span { color:#0b8bbb; font-size:.76rem; font-weight:900; letter-spacing:.14em; }
.fee-cards h3 { margin:8px 0 10px; font-size:1.6rem; }
.fee-cards p { margin:0; color:var(--muted); }
.fee-table { margin-top:32px; border:2px solid var(--ink); }
.fee-table [role="row"] { display:grid; grid-template-columns:1fr 220px; }
.fee-table [role="row"] + [role="row"] { border-top:1px solid var(--ink); }
.fee-table span,.fee-table strong { padding:16px 18px; }
.fee-table span:last-child,.fee-table strong:last-child { border-left:1px solid var(--ink); font-weight:900; }
.photo-break { height:min(74vh,780px); }
.photo-break img { height:100%; object-fit:cover; }
.facts { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:60px; }
.fact { padding:26px; background:var(--paper); }
.fact dt { font-size:.72rem; color:var(--muted); letter-spacing:.12em; }
.fact dd { margin:6px 0 0; font-weight:700; }
.staff-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:60px; }
.staff-card { border-radius:22px; overflow:hidden; background:var(--ivory); }
.staff-card img { aspect-ratio:4/5; object-fit:cover; }
.staff-card .body { padding:22px; }
.staff-card .role { color:#3e98c7; font-size:.72rem; letter-spacing:.1em; }
.staff-card h3 { margin:5px 0 8px; }
.staff-card p { margin:0; font-size:.87rem; color:var(--muted); }
.jobs { display:grid; gap:12px; margin-top:50px; }
.job { display:grid; grid-template-columns:1fr auto; align-items:center; gap:20px; padding:24px 0; border-top:1px solid var(--line); }
.job h3 { margin:0; font-size:1.3rem; }
.job p { margin:4px 0 0; color:var(--muted); font-size:.9rem; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field { display:grid; gap:7px; }
.field.full { grid-column:1/-1; }
.field label { font-size:.78rem; font-weight:700; }
.field input,.field textarea,.field select { width:100%; border:1px solid var(--line); background:white; padding:15px 16px; border-radius:12px; color:var(--ink); }
.field textarea { min-height:150px; resize:vertical; }
.form-note { font-size:.76rem; color:var(--muted); }
.success { display:none; margin-top:18px; padding:18px; border-radius:12px; background:#e7f4e5; }
.success.show { display:block; }
.contact-form-section { background:#fffdf8; }
.contact-form-heading { margin-bottom:clamp(46px,6vw,76px); }
.contact-form-heading .lead-copy { margin:10px 0 18px; line-height:1.55; }
.contact-form-heading .lead-copy span { display:inline; }
.contact-form-heading .lead-copy strong { font-weight:700; text-decoration:underline; text-decoration-color:#ffd400; text-decoration-thickness:.28em; text-underline-offset:-.1em; text-decoration-skip-ink:none; }
.contact-form-heading > p:last-child { color:var(--muted); }
.contact-form { gap:22px 18px; }
.contact-form > .full { grid-column:1/-1; }
.contact-form .required { display:inline-block; margin-left:5px; padding:2px 6px; border-radius:99px; background:#e5f5fb; color:#087fab; font-size:.62rem; vertical-align:2px; }
.form-section { min-width:0; margin:8px 0 0; padding:26px; border:1px solid var(--line); border-radius:18px; background:#f7fbfc; }
.form-section legend { padding:0 10px; font-weight:800; font-size:1.08rem; }
.form-section legend span { margin-left:8px; color:var(--muted); font-size:.72rem; font-weight:500; }
.form-section-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px 18px; }
.date-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.conditional-fields[hidden] { display:none; }
.form-actions { margin-top:12px; text-align:center; }
.form-actions .button { width:100%; justify-content:center; border:0; }
.form-status { display:none; margin-top:14px; padding:16px 18px; border-radius:12px; text-align:left; }
.form-status.show { display:block; }
.form-status.success { background:#e7f4e5; color:#285528; }
.form-status.error { background:#fff0ec; color:#8b3829; }
.hp-field { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }

/* Adopted plan: keep visual media inside one desktop viewport */
@media (min-width:921px) {
  .concept-two .manifesto,
  .concept-two .team,
  .concept-two .locations { min-height:calc(100svh - 82px); display:flex; align-items:center; }
  .concept-two .manifesto { padding:clamp(58px,6.5vh,86px) 5vw; }
  .concept-two .manifesto .section-inner,
  .concept-two .team .section-inner,
  .concept-two .locations .section-inner { width:100%; }
  .concept-two .manifesto .section-head { margin-bottom:clamp(24px,3vh,38px); }
  .concept-two .manifesto-title { font-size:clamp(3rem,4.35vw,4.7rem); line-height:1.04; }
  .concept-two .manifesto-grid { grid-template-columns:1fr .72fr; gap:clamp(44px,6vw,96px); align-items:center; }
  .concept-two .manifesto-copy p { margin-top:14px; line-height:1.55; }
  .concept-two .manifesto-visual img { width:100%; height:min(42vh,430px); aspect-ratio:auto; object-position:center 50%; }
  .concept-two .manifesto-note { left:-48px; bottom:18px; width:210px; padding:23px 20px; font-size:clamp(1.25rem,1.65vw,1.7rem); line-height:1.16; }
  .concept-two .therapy-card.large,
  .concept-two .therapy-card.tall { height:min(66vh,590px); min-height:460px; }
  .concept-two .therapy-card.small { height:min(52vh,460px); min-height:360px; }
  .concept-two .team { padding:clamp(56px,6vh,82px) 5vw; }
  .concept-two .team-layout { grid-template-columns:.82fr 1.18fr; gap:clamp(42px,6vw,90px); }
  .concept-two .team-photo img { width:100%; height:min(69vh,700px); aspect-ratio:auto; object-fit:cover; }
  .concept-two .team-title { font-size:clamp(3rem,4.15vw,4.9rem); line-height:1.06; }
  .concept-two .team-title span { display:block; white-space:nowrap; }
  .concept-two .team-lead { font-weight:800; line-height:1.65; }
  .concept-two .roles { margin:24px 0 28px; }
  .concept-two .locations { padding:clamp(50px,5.5vh,74px) 5vw; }
  .concept-two .locations .section-head { margin-bottom:clamp(22px,2.5vh,34px); }
  .concept-two .locations .section-title { font-size:clamp(3rem,4.4vw,4.8rem); }
  .concept-two .location-card > img:first-child { height:min(29vh,290px); aspect-ratio:auto; object-fit:cover; }
  .concept-two .location-copy { padding:18px 24px 21px; }
  .concept-two .service-logo { height:30px; margin-bottom:10px; }
  .concept-two .location-copy h3 { font-size:clamp(1.25rem,1.55vw,1.7rem); line-height:1.35; }
  .concept-two .location-copy p { margin-bottom:9px; font-size:.84rem; line-height:1.58; }
  .concept-two .locations { min-height:auto; align-items:flex-start; }
  .concept-two .location-card { height:100%; }
  .concept-two .location-copy { display:flex; flex-direction:column; flex:1; }
  .concept-two .location-copy .link-arrow { align-self:flex-start; margin-top:auto; }
  .concept-two .instagram-section { padding:clamp(42px,5vh,64px) 5vw; min-height:calc(100svh - 82px); display:flex; align-items:center; }
  .concept-two .instagram-section .section-inner { width:100%; }
  .concept-two .instagram-section .section-head { margin-bottom:clamp(18px,2vh,28px); }
  .concept-two .instagram-section .section-title { font-size:clamp(2.6rem,4vw,4.2rem); }
  .concept-two .instagram-profiles { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
  .concept-two .instagram-profile { padding:18px; }
  .concept-two .instagram-profile-head { gap:12px; margin-bottom:12px; align-items:end; }
  .concept-two .instagram-profile h3 { font-size:clamp(1rem,1.35vw,1.35rem); }
  .concept-two .instagram-preview { gap:6px; }
  .concept-two .gallery img { height:min(64vh,560px); }
  .concept-two .recruit-wrap { min-height:min(78vh,720px); }
  .concept-two .recruit-image img { max-height:calc(78vh - 84px); }
  .concept-two .photo-break { height:min(72vh,680px); }
  .concept-two .sub-hero { min-height:min(78vh,760px); }
}

.people-list { display:grid; grid-template-columns:repeat(2,1fr); gap:2px; margin-top:64px; background:var(--ink); border:2px solid var(--ink); }
.person { display:grid; grid-template-columns:156px 1fr; gap:24px; align-items:center; padding:24px; background:#fff; color:var(--ink); }
.person.featured { grid-column:1/-1; grid-template-columns:minmax(220px,.7fr) 1.3fr; gap:38px; padding:30px; }
.person .role { display:block; color:#0b8bbb; font-size:.76rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.person h3 { margin:7px 0 12px; font-size:1.5rem; }
.person p { margin:0; color:var(--muted); font-size:.92rem; }
.person-portrait { width:100%; aspect-ratio:1; object-fit:cover; background:#f7f2e9; }
.person-portrait.illustration { border-radius:50%; }
.person-portrait.photo { border-radius:4px 48% 48% 4px; }
.person-portrait.empty { border-radius:50%; background:transparent; }

.mvvs { display:grid; gap:2px; margin-top:70px; background:var(--ink); border:2px solid var(--ink); }
.mvv { display:grid; grid-template-columns:220px 1fr; gap:36px; padding:42px; background:#fff; color:var(--ink); }
.mvv .word { font-size:.74rem; font-weight:900; letter-spacing:.18em; color:#0b8bbb; }
.mvv h3 { margin:0 0 12px; font-size:clamp(1.45rem,2.3vw,2.2rem); }
.mvv p { margin:0; color:var(--muted); }
.founder-story { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(36px,7vw,90px); align-items:start; margin-top:70px; }
.founder-story img { height:min(66vh,570px); object-fit:cover; }
.founder-story h2 { margin:0 0 20px; font-size:clamp(2rem,4vw,4rem); line-height:1.18; }
.founder-story p { color:var(--muted); }
.page-mission .founder-story h2 { font-size:clamp(2rem,3vw,3.35rem); }
.page-mission .founder-story h2 span { display:block; white-space:nowrap; }
.page-mission .sub-hero h1 span { display:block; }
.keep { white-space:nowrap; }
.mission-prologue { max-width:820px; margin:0 auto; text-align:center; }
.mission-prologue h2,.mission-promise h2,.mission-closing h2 { margin:0; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-weight:500; letter-spacing:-.05em; }
.mission-prologue h2 { font-size:clamp(2.25rem,4.4vw,4.6rem); line-height:1.3; }
.mission-prologue h2 span,.mission-promise h2 span { display:block; }
.mission-prologue > p:last-child { max-width:690px; margin:30px auto 0; color:var(--muted); font-size:1.05rem; line-height:2; }
.founder-story blockquote { margin:24px 0 28px; padding:0 0 0 24px; border-left:5px solid var(--sun); font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(1.45rem,2.3vw,2.25rem); line-height:1.55; font-weight:600; }
.founder-story .founder-signature { margin-top:28px; color:var(--ink); font-size:.84rem; line-height:1.8; }
.founder-story .founder-signature strong { font-size:1rem; }
.mission-promise { margin:clamp(86px,10vw,140px) 0 0; padding:clamp(52px,7vw,86px); background:#f2e7d4; text-align:center; }
.mission-promise h2 { font-size:clamp(2.1rem,4vw,4rem); line-height:1.3; }
.mission-promise > p:last-child { max-width:720px; margin:28px auto 0; color:var(--muted); line-height:2; }
.mission-closing { margin-top:clamp(80px,10vw,130px); text-align:center; }
.mission-closing p { margin:0 0 22px; color:var(--muted); line-height:2; }
.mission-closing h2 { font-size:clamp(2.4rem,5vw,5rem); line-height:1.25; }
.page-mission .mission-statement { font-size:clamp(1.45rem,2.05vw,2.05rem); white-space:nowrap; }

.recruit-values { display:grid; grid-template-columns:repeat(2,1fr); gap:2px; margin:60px 0 80px; background:var(--ink); border:2px solid var(--ink); }
.recruit-value { padding:34px; background:#fff; color:var(--ink); }
.recruit-value span { color:#0b8bbb; font-size:.72rem; font-weight:900; letter-spacing:.14em; }
.recruit-value h3 { margin:9px 0; font-size:1.4rem; }
.recruit-value p { margin:0; color:var(--muted); font-size:.92rem; }
.job-details { display:grid; gap:12px; margin-top:42px; }
.job-detail { background:#fff; color:var(--ink); border:2px solid var(--ink); box-shadow:7px 7px 0 var(--sun); }
.job-detail summary { cursor:pointer; list-style:none; display:grid; grid-template-columns:1fr auto; align-items:center; gap:18px; padding:24px 28px; font-weight:900; font-size:1.12rem; }
.job-detail summary::-webkit-details-marker { display:none; }
.job-detail summary::after { content:"＋"; color:#0b8bbb; font-size:1.5rem; }
.job-detail[open] summary::after { content:"−"; }
.job-detail-body { padding:0 28px 28px; border-top:1px solid var(--line); }
.job-facts { display:grid; grid-template-columns:150px 1fr; margin:20px 0 0; }
.job-facts dt,.job-facts dd { margin:0; padding:13px 0; border-bottom:1px solid var(--line); }
.job-facts dt { color:var(--muted); font-size:.78rem; font-weight:700; }
.job-facts dd { font-size:.9rem; }
.recruit-caution { margin-top:32px; padding:18px 20px; background:#fff8d4; color:#66591e; font-size:.82rem; }
.page-recruit .lead-copy {
  font-family:"Helvetica Neue","Hiragino Sans","Yu Gothic",sans-serif;
  font-weight:800;
  letter-spacing:-.045em;
  line-height:1.42;
}
.page-recruit .lead-copy span { display:inline; }

@media (max-width: 920px) {
  .site-header { height:68px; padding:0 18px; }
  .brand { font-size:.8rem; }.brand img{width:48px;height:32px}
  .desktop-nav { display:none; }.menu-toggle{display:block}
  .hero { grid-template-columns:1fr; grid-template-rows:58svh auto; min-height:100svh; }
  .hero-image { min-height:0; grid-row:1; }.hero-copy{grid-row:2;padding:42px 22px 68px}.hero h1{font-size:clamp(3.4rem,17vw,5.5rem);white-space:normal}.hero-lead{margin:20px 0 30px}.hero-badge{width:96px;height:96px;right:14px;bottom:14px;font-size:.58rem}
  .section{padding:88px 22px}.section-head{grid-template-columns:1fr;gap:14px;margin-bottom:40px}.section-title{font-size:clamp(2.35rem,12vw,4.2rem)}
  .manifesto-grid,.team-layout,.recruit-wrap,.contact-band-inner,.footer-inner,.sub-hero{grid-template-columns:1fr}
  .manifesto-visual{margin-left:34px}.manifesto-note{left:-34px;width:132px;padding:18px;font-size:.78rem}
  .therapy-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:0 -22px;padding:0 22px 18px}.therapy-card,.therapy-card.large,.therapy-card.tall,.therapy-card.small{min-width:82vw;min-height:540px;scroll-snap-align:start}
  .team-photo{order:2}.team-copy{order:1}.team-photo img{border-radius:120px 120px 22px 22px}
  .location-grid{grid-template-columns:1fr}.location-copy{padding:23px}
  .journal .section-head{padding:0 22px}.gallery{padding-left:22px;padding-right:22px}.gallery figure{min-width:82vw}.gallery img{height:58vh}
  .recruit-wrap{min-height:0}.recruit-image{height:70svh}.recruit-copy{padding:70px 22px 86px}.recruit-copy h2{font-size:clamp(2.6rem,13vw,4.5rem)}
  .contact-band{padding:80px 22px}.round-arrow{justify-self:start;width:76px;height:76px}.site-footer{padding:52px 22px 82px}.footer-links{grid-template-columns:1fr 1fr}.mobile-quick{display:flex}
  .instagram-intro{grid-column:auto;margin-top:14px}.instagram-profile{padding:18px}.instagram-profile-head{align-items:flex-start;flex-direction:column;gap:10px}.instagram-profile h3{font-size:1.05rem;overflow-wrap:anywhere}.instagram-preview{gap:5px}
  .sub-hero{padding-top:68px;grid-template-rows:52svh auto}.sub-hero-image{grid-row:1}.sub-hero-copy{grid-row:2;padding:50px 22px 70px}.sub-hero h1{font-size:clamp(3rem,14vw,5rem)}
  .content-section{padding:76px 22px}.program-grid,.staff-grid{grid-template-columns:1fr}.facts{grid-template-columns:1fr}.photo-break{height:60svh}.form-grid,.form-section-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.date-grid{grid-template-columns:1fr}.form-section{padding:22px 16px}.form-section legend span{display:block;margin:4px 0 0}
  .guide-heading{grid-template-columns:1fr;gap:8px}.guide-heading .eyebrow{margin:0}.hours-grid,.fee-cards{grid-template-columns:1fr}.day-flow li{grid-template-columns:78px 1fr;gap:14px}.use-flow{grid-template-columns:1fr}.use-flow li{min-height:0}.use-flow h3{margin-top:14px}.fee-table [role="row"]{grid-template-columns:1fr 98px}.fee-table span,.fee-table strong{padding:13px 12px;font-size:.82rem}.page-fujisawa .sub-hero{height:auto;min-height:0;grid-template-rows:52svh auto}.page-fujisawa .sub-hero-copy{padding:42px 22px 58px}.page-fujisawa .sub-hero h1{font-size:clamp(2.15rem,10vw,3.55rem)}.page-fujisawa .sub-hero-image img{object-position:center 40%}
  .page-contact .sub-hero{height:auto;min-height:0;grid-template-rows:min(48svh,440px) auto}.page-contact .sub-hero-copy{padding:42px 22px 58px}.page-contact .sub-hero h1{font-size:clamp(2.7rem,12vw,4.2rem)}.concept-two .page-contact .sub-hero-image{margin:20px 22px 10px}.page-contact .sub-hero-image img{object-position:center 43%}
  .page-contact .contact-form-section{padding-top:56px}
  .page-contact .contact-form-heading .lead-copy{font-family:"Helvetica Neue","Hiragino Sans","Yu Gothic",sans-serif;font-size:clamp(1.18rem,5.8vw,1.55rem);font-weight:800;line-height:1.48;letter-spacing:-.045em}
  .page-contact .contact-form-heading .lead-copy span{display:block}
  .page-contact .contact-form-heading .lead-copy strong{display:block;margin-top:.28em;font-weight:800;text-decoration-thickness:.22em;text-underline-offset:-.07em}
  .people-list,.recruit-values{grid-template-columns:1fr}.person,.person.featured{grid-template-columns:108px 1fr;gap:18px;padding:18px}.person.featured{grid-column:auto}.person h3{font-size:1.28rem}.person p{font-size:.86rem}.founder-story,.mvv{grid-template-columns:1fr}.mvv{gap:14px;padding:28px}.job-facts{grid-template-columns:1fr}.job-facts dt{padding-bottom:2px;border-bottom:0}.job-facts dd{padding-top:2px}.job-detail summary{padding:20px}.job-detail-body{padding:0 20px 22px}
  .page-recruit .lead-copy{margin:0;font-size:clamp(1.65rem,7.4vw,2rem);line-height:1.42;letter-spacing:-.055em}
  .page-recruit .lead-copy span{display:block}
  .page-recruit .recruit-value{padding:32px 20px}
  .page-recruit .recruit-value h3{font-size:clamp(1rem,4.1vw,1.12rem);letter-spacing:-.055em;white-space:nowrap}
}

@media (max-width: 920px) {
  .page-minamifujisawa .hours-card-time { padding:28px 24px; }
  .page-minamifujisawa .hours-schedule { grid-template-columns:1fr; gap:0; margin-top:14px; }
  .page-minamifujisawa .hours-schedule > div { padding:14px 0; }
  .page-minamifujisawa .hours-schedule > div + div { padding-left:0; border-top:1px solid var(--line); border-left:0; }
  .page-minamifujisawa .hours-schedule small { font-size:.86rem; }
  .page-minamifujisawa .hours-schedule strong { font-size:clamp(1.8rem,9vw,2.35rem); }
  .page-minamifujisawa .day-flow-label { margin-top:46px; }
}

/* Recruit closing photo: keep more of the original frame visible on phones. */
@media (max-width: 920px) {
  .page-recruit .photo-break {
    height: 74svh;
    max-height: 760px;
  }

  .page-recruit .photo-break img {
    object-position: center 50%;
  }
}

/* Minami Fujisawa: match Fujisawa typography and phone rhythm */
@media (max-width: 920px) {
  .page-minamifujisawa .sub-hero-copy,
  .page-minamifujisawa .content-section {
    padding-inline: 20px;
  }

  .page-minamifujisawa .sub-hero h1 {
    font-size: clamp(1.85rem, 8.6vw, 2.35rem);
    line-height: 1.18;
    letter-spacing: -.055em;
  }

  .page-minamifujisawa .sub-hero h1 span,
  .page-minamifujisawa .hero-intro span,
  .page-minamifujisawa .lead-copy span,
  .page-minamifujisawa + .contact-band h2 span {
    display: block;
  }

  .page-minamifujisawa .sub-hero h1 span + span {
    margin-top: .08em;
  }

  .page-minamifujisawa .sub-hero-copy > p:last-child {
    margin-top: 22px;
    font-size: 1rem;
    line-height: 1.75;
  }

  .page-minamifujisawa .lead-copy {
    margin: 0;
    font-family: "Helvetica Neue","Hiragino Sans","Yu Gothic",sans-serif;
    font-size: clamp(1.45rem, 6.4vw, 1.7rem);
    font-weight: 800;
    line-height: 1.48;
    letter-spacing: -.045em;
    text-wrap: pretty;
  }

  .page-minamifujisawa .hero-intro span + span {
    margin-top: .2em;
  }

  .page-minamifujisawa .lead-copy span + span {
    margin-top: .06em;
  }

  .page-minamifujisawa .program-grid {
    grid-auto-rows: 1fr;
    gap: 18px;
    margin-top: 42px;
  }

  .page-minamifujisawa .program {
    min-height: 250px;
    padding: 26px 24px 28px;
    box-shadow: 7px 7px 0 var(--sun);
  }

  .page-minamifujisawa .program .num {
    font-size: .76rem;
  }

  .page-minamifujisawa .program h3 {
    margin: 24px 0 14px;
    font-size: 1.45rem;
    line-height: 1.35;
  }

  .page-minamifujisawa .program p {
    font-size: 1rem;
    line-height: 1.85;
  }

  .page-minamifujisawa .school-activity {
    margin-top: 70px;
    padding-top: 54px;
  }

  .page-minamifujisawa .activity-photo-grid {
    grid-template-columns:1fr;
    grid-template-rows:none;
    gap:14px;
    margin-top:34px;
  }

  .page-minamifujisawa .activity-photo-grid figure,
  .page-minamifujisawa .activity-photo-grid figure:first-child {
    grid-row:auto;
    aspect-ratio:4 / 3;
  }

  .page-minamifujisawa .activity-photo-grid figcaption {
    left:12px;
    bottom:12px;
    font-size:.8rem;
  }

  .page-minamifujisawa .photo-break img {
    object-position:center 40%;
  }

  .page-minamifujisawa + .contact-band h2 {
    font-size:clamp(2rem,9vw,2.35rem);
    line-height:1.24;
    letter-spacing:-.055em;
  }
}

@media (max-width: 360px) {
  .page-minamifujisawa .sub-hero h1 {
    font-size:1.72rem;
  }

  .page-minamifujisawa .lead-copy {
    font-size:1.36rem;
  }
}

/* Fujisawa school: phone-first type, balanced cards and readable times */
@media (max-width: 920px) {
  .page-fujisawa .sub-hero-copy {
    padding-inline: 20px;
  }

  .page-fujisawa .sub-hero h1 {
    font-size: clamp(2rem, 9.2vw, 2.55rem);
    line-height: 1.18;
    letter-spacing: -.055em;
  }

  .page-fujisawa .sub-hero h1 span,
  .page-fujisawa .lead-copy span {
    display: block;
  }

  .page-fujisawa .sub-hero h1 span + span {
    margin-top: .08em;
  }

  .page-fujisawa .sub-hero-copy > p:last-child {
    margin-top: 22px;
    font-size: 1rem;
    line-height: 1.75;
  }

  .page-fujisawa .content-section {
    padding-inline: 20px;
  }

  .page-fujisawa .lead-copy {
    margin: 0;
    font-family: "Helvetica Neue","Hiragino Sans","Yu Gothic",sans-serif;
    font-size: clamp(1.55rem, 7vw, 1.9rem);
    font-weight: 800;
    line-height: 1.48;
    letter-spacing: -.045em;
    text-wrap: pretty;
  }

  .page-fujisawa .program-grid {
    grid-auto-rows: 1fr;
    gap: 18px;
    margin-top: 42px;
  }

  .page-fujisawa .program {
    min-height: 250px;
    padding: 26px 24px 28px;
    box-shadow: 7px 7px 0 var(--sun);
  }

  .page-fujisawa .program .num {
    font-size: .76rem;
  }

  .page-fujisawa .program h3 {
    margin: 24px 0 14px;
    font-size: 1.45rem;
    line-height: 1.35;
  }

  .page-fujisawa .program p {
    font-size: 1rem;
    line-height: 1.85;
  }

  .page-fujisawa .day-flow li {
    grid-template-columns: 112px minmax(0,1fr);
    gap: 14px;
    padding: 25px 0;
  }

  .page-fujisawa .day-flow time {
    padding-top: 2px;
    font-size: 1rem;
    line-height: 1.5;
    letter-spacing: -.025em;
    white-space: nowrap;
  }

  .page-fujisawa .day-flow h3 {
    margin-bottom: 10px;
    font-size: 1.15rem;
    line-height: 1.45;
  }

  .page-fujisawa .day-flow p {
    font-size: 1rem;
    line-height: 1.85;
  }

  .page-fujisawa .photo-break img {
    object-position: center 38%;
  }
}

@media (max-width: 360px) {
  .page-fujisawa .sub-hero h1 {
    font-size: 1.9rem;
  }

  .page-fujisawa .lead-copy {
    font-size: 1.45rem;
  }

  .page-fujisawa .day-flow li {
    grid-template-columns: 102px minmax(0,1fr);
    gap: 12px;
  }

  .page-fujisawa .day-flow time {
    font-size: .93rem;
  }
}

@media (max-width:420px) {
  .person,.person.featured{grid-template-columns:92px 1fr;gap:14px;padding:15px}.person .role{font-size:.64rem;letter-spacing:.05em}.person h3{margin:5px 0 8px;font-size:1.16rem}.person p{font-size:.8rem;line-height:1.7}
}

@media (prefers-reduced-motion: reduce) { html{scroll-behavior:auto}.ticker-track,.hero-badge{animation:none}*{transition:none!important} }

/* Concept switcher */
.concept-one { --ink:#26383b; --ivory:#f3efe5; --paper:#fffdf8; --sky:#cfe8e8; --blue:#65aeb6; --sun:#e9bd60; --coral:#db8f80; }
.concept-one .hero h1,.concept-one .section-title,.concept-one .recruit-copy h2,.concept-one .contact-band h2,.concept-one .sub-hero h1,.concept-one .lead-copy { font-family:"Yu Mincho","Hiragino Mincho ProN",serif; }
.concept-one .hero-image img { filter:saturate(.82) contrast(.97); }
.concept-one .therapy-card,.concept-one .location-card,.concept-one .gallery img { border-radius:4px; }
.concept-one .manifesto-note { border-radius:3px; transform:rotate(-4deg); }

.concept-two { --ink:#173746; --ivory:#f5efe3; --paper:#fffdf8; --sky:#a9d9ed; --blue:#4eb4df; --sun:#f6cf4e; --coral:#ef9f95; --lime:#cfdf62; background:#fffdf8; }
.concept-two .brand-word { color:#173f50; font-weight:950; letter-spacing:.03em; -webkit-text-stroke:.45px currentColor; }
.concept-two .brand-word em { color:#ffd400; font-style:normal; }
.concept-two .site-header { color:var(--ink); }
.concept-two .site-header.scrolled { color:var(--ink); background:rgba(255,253,248,.94); }
.concept-two .pill,.concept-two .menu-toggle { background:var(--blue); color:var(--ink); border-color:var(--ink); }
.concept-two .menu-toggle::before,.concept-two .menu-toggle::after { background:var(--ink); }
.concept-two .hero { position:relative; display:block; min-height:100svh; color:var(--ink); background:var(--ivory); overflow:hidden; }
.concept-two .hero-image { position:absolute; inset:0; min-height:100%; }
.concept-two .hero-image::after { background:linear-gradient(90deg,rgba(248,242,230,.98) 0%,rgba(248,242,230,.86) 35%,rgba(248,242,230,.42) 60%,rgba(248,242,230,.08) 82%),linear-gradient(0deg,rgba(246,239,226,.35),transparent 50%); }
.concept-two .hero-copy { position:relative; z-index:3; width:min(920px,92vw); min-height:100svh; padding:180px 4.5vw 72px; justify-content:flex-end; background:transparent; }
.concept-two .hero h1,.concept-two .section-title,.concept-two .recruit-copy h2,.concept-two .contact-band h2,.concept-two .sub-hero h1 { font-family:"Helvetica Neue","Hiragino Sans",sans-serif; font-weight:800; letter-spacing:-.07em; }
.concept-two .hero h1 { font-size:clamp(5.2rem,11.8vw,12rem); line-height:.77; text-transform:uppercase; text-shadow:0 2px 20px rgba(255,255,255,.35); }
.concept-two .hero-title-line { display:block; width:max-content; }
.concept-two .hero-title-down { color:#173f50; }
.concept-two .hero-title-revolution { color:#2f6f7f; }
.concept-two .hero-title-revolution::after { content:"21"; display:inline-flex; align-items:center; justify-content:center; width:1.55em; height:1.55em; margin-left:.18em; border-radius:50%; color:#173746; background:var(--sun); font-size:.27em; line-height:1; letter-spacing:0; vertical-align:top; transform:translateY(-.12em); }
.concept-two .hero-lead { font-family:inherit; font-weight:800; font-size:clamp(1.25rem,2.3vw,2.1rem); line-height:1.35; }
.concept-two .hero .button.dark { background:var(--sun); color:var(--ink); border-color:var(--ink); }
.concept-two .hero .button:not(.dark) { color:var(--ink); border-color:var(--ink); background:rgba(255,253,248,.72); }
.concept-two .hero-badge { background:var(--blue); color:var(--ink); border-radius:0; transform:rotate(4deg); font-size:1rem; line-height:1.4; font-weight:800; }
.concept-two .hero-badge span { display:block; width:max-content; text-align:left; }
.concept-two .ticker { background:var(--sun); color:var(--ink); font-weight:900; }
.concept-two .ticker b { color:#168ebd; }
.concept-two .manifesto { background:#f2e7d4; color:var(--ink); position:relative; }
.concept-two .manifesto::before { content:"EDITORIAL 01"; position:absolute; top:28px; right:5vw; font-size:clamp(2rem,7vw,7rem); line-height:1; color:rgba(55,143,181,.10); font-weight:900; letter-spacing:-.07em; }
.concept-two .manifesto .accent { color:#168ebd; }
.concept-two .manifesto-title-line { display:block; white-space:nowrap; }
.concept-two .manifesto-copy p { font-family:"Helvetica Neue","Hiragino Sans",sans-serif; font-weight:700; letter-spacing:-.02em; }
.concept-two .manifesto-visual img { border-radius:0; filter:saturate(1.08) contrast(1.03); object-position:center bottom; }
.concept-two .manifesto-note { background:var(--sun); color:var(--ink); border-radius:0; font-family:inherit; font-weight:900; transform:rotate(-5deg); }
.concept-two .therapy { background:var(--paper); }
.concept-two .therapy-card { border-radius:0; }
.concept-two .therapy-card.large { transform:translateY(28px); }
.concept-two .therapy-card.large img { object-position:center 32%; }
.concept-two .therapy-card::before { content:attr(data-label); position:absolute; z-index:3; top:18px; left:18px; color:var(--ink); background:var(--sun); font-size:.65rem; font-weight:900; letter-spacing:.15em; padding:6px 9px; }
.concept-two .team { background:#a9d9ed; color:var(--ink); }
.concept-two .team-photo img { border-radius:0; box-shadow:22px 22px 0 var(--sun); }
.concept-two .roles span { background:#fffdf8; border:2px solid var(--ink); border-radius:0; box-shadow:3px 3px 0 var(--ink); }
.concept-two .locations { background:#f6d978; }
.concept-two .location-grid { gap:3px; background:#4eb4df; }
.concept-two .location-card { border:0; border-radius:0; box-shadow:none; }
.concept-two .location-card:hover { box-shadow:none; transform:translateY(-3px); }
.concept-two .location-copy .tag { color:#0b8bbb; }
.concept-two .journal { background:#eaf5f8; color:var(--ink); }
.concept-two .gallery img { border-radius:0; }
.concept-two .gallery figcaption { color:var(--muted); }
.instagram-section { overflow:hidden; }
.instagram-live-feed { width:100%; min-height:300px; }
.instagram-live-feed noscript { display:block; padding:24px; background:#fff; border:1px solid var(--line); }
.instagram-intro { grid-column:1 / -1; width:100%; max-width:none; margin:22px 0 0; color:var(--muted); font-weight:700; text-align:center; }
.instagram-profiles { display:grid; gap:28px; }
.instagram-profile { padding:26px; background:#fff; border:1px solid var(--line); }
.instagram-profile-head { display:flex; justify-content:space-between; gap:24px; align-items:end; margin-bottom:18px; }
.instagram-label { color:#168ebd; font-size:.75rem; font-weight:900; letter-spacing:.08em; }
.instagram-profile h3 { margin:5px 0 0; font-size:clamp(1.25rem,2vw,1.75rem); }
.instagram-profile-head a { flex:0 0 auto; border-bottom:1px solid; font-weight:800; }
.instagram-preview { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.instagram-preview a { overflow:hidden; background:var(--ivory); }
.instagram-preview img { width:100%; aspect-ratio:1; object-fit:cover; transition:transform .35s ease; }
.instagram-preview a:hover img { transform:scale(1.035); }
.concept-two .recruit { background:#70bfdf; color:var(--ink); }
.concept-two .recruit-wrap { grid-template-columns:.95fr 1.05fr; }
.concept-two .recruit-copy h2 { color:var(--ink); }
.concept-two .recruit-copy p { color:rgba(23,55,70,.78); }
.concept-two .recruit .button.light { color:var(--ink); border-color:var(--ink); background:rgba(255,253,248,.62); }
.concept-two .recruit-image { padding:42px 0 42px 42px; transform:rotate(-1.2deg); }
.concept-two .recruit-image img { border:12px solid #fff; }
.concept-two .contact-band { background:var(--sun); }
.concept-two .site-footer { background:#eadfcf; color:var(--ink); }

/* Subtle motion: editorial rhythm without compromising mobile readability */
.concept-two.motion-ready .motion-reveal {
  opacity:0;
  translate:0 26px;
  transition:opacity .72s cubic-bezier(.22,1,.36,1), translate .82s cubic-bezier(.22,1,.36,1);
  transition-delay:var(--motion-delay,0ms);
}
.concept-two.motion-ready .motion-reveal.is-visible { opacity:1; translate:0 0; }
.concept-two .hero-image img { animation:hero-breathe 14s ease-in-out infinite alternate; }
.concept-two .manifesto-note { animation:note-drift 5.5s ease-in-out infinite; }
.concept-two .therapy-card img,
.concept-two .team-photo img,
.concept-two .location-card > img,
.concept-two .recruit-image img { transition:transform .85s cubic-bezier(.22,1,.36,1); }
@keyframes hero-breathe { from { transform:scale(1.015); } to { transform:scale(1.055); } }
@keyframes note-drift { 0%,100% { translate:0 0; } 50% { translate:0 -7px; } }
@media (hover:hover) {
  .concept-two .therapy-card:hover img,
  .concept-two .team-photo:hover img,
  .concept-two .location-card:hover > img,
  .concept-two .recruit-image:hover img { transform:scale(1.035); }
}
@media (prefers-reduced-motion:reduce) {
  .concept-two.motion-ready .motion-reveal { opacity:1; translate:0 0; transition:none; }
  .concept-two .hero-image img,
  .concept-two .manifesto-note { animation:none; }
}

@media (min-width:921px) {
  .concept-two .manifesto-visual img { object-position:center 50%; }
}
.concept-two .footer-brand small,.concept-two .footer-links strong,.concept-two .copyright { color:rgba(23,55,70,.62); }
.concept-two .sub-hero { background:#f2e7d4; color:var(--ink); }
.concept-two .sub-hero-image { margin:118px 4vw 44px 0; transform:rotate(1.5deg); box-shadow:20px 20px 0 var(--sun); }
.concept-two .page-mission .sub-hero { min-height:0; height:calc(100svh - 82px); }
.concept-two .page-mission .sub-hero-copy { padding-top:94px; padding-bottom:52px; }
.concept-two .page-mission .sub-hero-image { margin:96px 3vw 24px 0; }
.concept-two .page-mission .sub-hero-image img { object-position:center 43%; }
.page-mission .founder-story img { object-position:center 40%; }
.page-mission .photo-break { height:auto; padding:70px 5vw; background:#f2e7d4; }
.page-mission .photo-break img { width:100%; max-width:1280px; height:min(78vh,850px); margin:0 auto; object-fit:cover; object-position:center 38%; box-shadow:20px 20px 0 var(--sun); }
.concept-two .content-section { background:var(--paper); color:var(--ink); }
.concept-two .program { border:2px solid var(--ink); border-radius:0; box-shadow:6px 6px 0 var(--sun); }
.concept-two .staff-card { border-radius:0; border:2px solid var(--ink); }
.concept-two .mobile-quick a:last-child { background:var(--blue); color:var(--ink); }
.concept-two .concept-switch { display:none; }

.concept-switch { position:fixed; z-index:60; top:96px; right:16px; display:flex; gap:5px; padding:5px; border-radius:99px; background:rgba(255,255,255,.9); box-shadow:0 8px 28px rgba(16,35,44,.16); backdrop-filter:blur(12px); }
.concept-switch a { padding:7px 11px; border-radius:99px; font-size:.67rem; font-weight:800; }
.concept-switch a[aria-current="page"] { background:var(--ink); color:#fff; }
.concept-note { max-width:var(--max); margin:0 auto; padding:20px 5vw; background:#fff7d7; font-size:.76rem; color:#665821; }

.chooser { min-height:100svh; display:grid; grid-template-columns:1fr 1fr; background:var(--ivory); }
.chooser-card { position:relative; min-height:100svh; overflow:hidden; display:flex; align-items:flex-end; padding:6vw; color:#fff; }
.chooser-card img { position:absolute; inset:0; height:100%; object-fit:cover; }
.chooser-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(9,31,40,.05),rgba(9,31,40,.82)); }
.chooser-copy { position:relative; z-index:2; max-width:520px; }
.chooser-copy .label { font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; }
.chooser-copy h1 { margin:10px 0 16px; font-size:clamp(3.3rem,7vw,7rem); line-height:.95; letter-spacing:-.07em; }
.chooser-copy p { max-width:440px; color:rgba(255,255,255,.82); }
.chooser-card:last-child h1 { font-weight:900; }
.chooser-card:last-child h1 em { color:#70cef1; font-style:normal; }
@media(max-width:920px){.concept-switch{top:auto;right:10px;bottom:78px}.chooser{grid-template-columns:1fr}.chooser-card{min-height:76svh;padding:34px 24px}.chooser-copy h1{font-size:3.7rem}.concept-note{padding:16px 22px}.concept-two .hero{display:block}.concept-two .hero-image{position:absolute;inset:0}.concept-two .hero-image img{object-position:center 30%}.concept-two .hero-copy{min-height:100svh;padding:130px 22px 78px}.concept-two .hero h1{font-size:clamp(4.2rem,21vw,7rem);line-height:.83}.concept-two .hero-badge{font-size:.76rem}.concept-two .manifesto-title{font-size:clamp(1.55rem,7vw,2.15rem);letter-spacing:-.06em}.concept-two .therapy-card.large{transform:none}.concept-two .recruit-image{padding:20px 20px 0;transform:rotate(-1deg)}.concept-two .sub-hero{display:grid}.concept-two .sub-hero-image{margin:22px 22px 10px;grid-row:1;box-shadow:10px 10px 0 #ffd400}.concept-two .sub-hero-copy{grid-row:2}}
@media(max-width:920px){.concept-two .manifesto-visual img{object-position:center 50%}.concept-two .manifesto-note{left:-34px;bottom:22px;width:240px;padding:14px 22px;font-size:1.08rem;line-height:1;white-space:nowrap;transform:rotate(-4deg)}}
@media(max-width:920px){.concept-two .page-mission .sub-hero{height:auto;min-height:0;grid-template-rows:min(50svh,430px) auto}.concept-two .page-mission .sub-hero-image{margin:20px 22px 10px}.concept-two .page-mission .sub-hero-copy{padding:42px 22px 58px}.page-mission .founder-story h2{font-size:clamp(1.35rem,5.7vw,2rem)}.page-mission .mission-statement{font-size:clamp(1.1rem,4.4vw,1.45rem);white-space:normal}.page-mission .photo-break{padding:42px 22px 58px}.page-mission .photo-break img{height:auto;aspect-ratio:4/3;box-shadow:10px 10px 0 var(--sun)}}
@media(max-width:920px){.page-staff .sub-hero{height:calc(100svh - 68px);min-height:620px;grid-template-rows:58% 42%}.page-staff .sub-hero-copy{padding:28px 22px 34px}.page-staff .sub-hero-image img{object-position:center 27%}}

/* Mission page: consistent, deliberate typography for phones */
@media (max-width: 920px) {
  .page-mission .content-section {
    padding: 58px 20px 70px;
  }

  .concept-two .page-mission .sub-hero {
    grid-template-rows: min(46svh, 390px) auto;
  }

  .concept-two .page-mission .sub-hero-image {
    margin: 16px 20px 8px;
  }

  .concept-two .page-mission .sub-hero-copy {
    padding: 34px 20px 52px;
  }

  .page-mission .sub-hero-copy .eyebrow {
    margin-bottom: 14px;
  }

  .page-mission .sub-hero h1 {
    font-size: clamp(2.1rem, 10.5vw, 2.6rem);
    line-height: 1.12;
    letter-spacing: -.055em;
  }

  .page-mission .sub-hero-copy > p:last-child {
    margin-top: 24px;
    font-size: 1rem;
    line-height: 1.75;
  }

  .page-mission .mission-prologue {
    text-align: left;
  }

  .page-mission .mission-prologue h2 {
    font-size: clamp(1.75rem, 8vw, 2.15rem);
    line-height: 1.45;
    letter-spacing: -.045em;
  }

  .page-mission .mission-prologue > p:last-child {
    margin-top: 22px;
    font-size: 1rem;
    line-height: 1.9;
  }

  .page-mission .founder-story {
    gap: 28px;
    margin-top: 48px;
  }

  .page-mission .founder-story img {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: center 40%;
  }

  .page-mission .founder-story .eyebrow {
    margin-bottom: 12px;
  }

  .page-mission .founder-story h2 {
    margin-bottom: 22px;
    font-size: clamp(1.25rem, 5.5vw, 1.65rem);
    line-height: 1.42;
    letter-spacing: -.035em;
  }

  .page-mission .founder-story h2 span {
    white-space: normal;
  }

  .page-mission .founder-story p:not(.eyebrow) {
    margin: 0 0 18px;
    font-size: 1rem;
    line-height: 1.9;
  }

  .page-mission .founder-story blockquote {
    margin: 20px 0 24px;
    padding-left: 18px;
    font-size: clamp(1.3rem, 6.2vw, 1.6rem);
    line-height: 1.55;
  }

  .page-mission .founder-story .founder-signature {
    margin-top: 24px;
    font-size: .8rem;
    line-height: 1.8;
  }

  .page-mission .founder-story .founder-signature strong {
    font-size: .95rem;
  }

  .page-mission .mission-promise {
    margin-top: 66px;
    padding: 42px 20px 46px;
    text-align: left;
  }

  .page-mission .mission-promise h2 {
    font-size: clamp(1.65rem, 7.5vw, 2rem);
    line-height: 1.45;
  }

  .page-mission .mission-promise > p:last-child {
    margin-top: 20px;
    font-size: 1rem;
    line-height: 1.9;
  }

  .page-mission .mvvs {
    margin-top: 54px;
  }

  .page-mission .mvv {
    gap: 12px;
    padding: 26px 20px 28px;
  }

  .page-mission .mvv .word {
    font-size: .72rem;
    line-height: 1.5;
  }

  .page-mission .mvv h3,
  .page-mission .mvv h3.mission-statement {
    margin: 0 0 14px;
    font-size: clamp(1.3rem, 5.7vw, 1.55rem);
    line-height: 1.52;
    letter-spacing: -.035em;
    text-wrap: pretty;
    line-break: strict;
  }

  .page-mission .mvv p {
    margin: 0;
    font-size: 1rem;
    line-height: 1.9;
  }

  .page-mission .mission-closing {
    margin: 64px 0 0;
    text-align: left;
  }

  .page-mission .mission-closing p {
    margin-bottom: 18px;
    font-size: .95rem;
    line-height: 1.85;
  }

  .page-mission .mission-closing h2 {
    font-size: clamp(1.9rem, 9vw, 2.4rem);
    line-height: 1.4;
  }

  .concept-two .contact-band {
    padding: 64px 20px 82px;
  }

  .concept-two .contact-band h2 {
    font-size: clamp(2rem, 9vw, 2.35rem);
    line-height: 1.24;
    letter-spacing: -.055em;
    text-wrap: pretty;
  }

  .concept-two .contact-band h2 span {
    display: block;
  }

  .concept-two .contact-band p {
    margin-top: 20px;
    font-size: 1rem;
    line-height: 1.8;
  }

  .concept-two .contact-band .round-arrow {
    width: 66px;
    height: 66px;
    font-size: 1.55rem;
  }
}

@media (max-width: 360px) {
  .page-mission .mvv {
    padding-inline: 18px;
  }

  .page-mission .mvv h3,
  .page-mission .mvv h3.mission-statement {
    font-size: 1.22rem;
  }
}

/* Home: deliberate Japanese line breaks on phones */
.care-title-row,
.recruit-title-row,
.location-title span,
.card-copy h3 span { display:block; }

@media (max-width: 920px) {
  .concept-two .care-title,
  .concept-two .team-title,
  .concept-two .places-title,
  .concept-two .instagram-title,
  .concept-two .recruit-copy h2,
  .concept-two .location-title,
  .concept-two .contact-band h2 {
    word-break:keep-all;
    overflow-wrap:normal;
    line-break:strict;
    text-wrap:wrap;
  }

  .concept-two .care-title {
    font-size:clamp(2.55rem,11.7vw,2.9rem);
    line-height:1.08;
  }

  .concept-two .care-title-row > span,
  .concept-two .team-title > span,
  .concept-two .places-title > span,
  .concept-two .instagram-title > span,
  .concept-two .recruit-title-row > span,
  .concept-two .contact-band h2 > span {
    display:block;
    white-space:nowrap;
  }

  .concept-two .team-title {
    font-size:clamp(2rem,8.8vw,2.2rem);
    line-height:1.18;
  }

  .concept-two .places-title {
    font-size:clamp(2.65rem,12vw,3rem);
    line-height:1.08;
  }

  .concept-two .location-title {
    font-size:clamp(1.32rem,5.8vw,1.48rem);
    line-height:1.42;
    letter-spacing:-.055em;
  }

  .concept-two .card-copy h3 span + span,
  .concept-two .location-title span + span {
    margin-top:.08em;
  }

  .concept-two .instagram-title {
    font-size:clamp(3rem,13.5vw,3.4rem);
    line-height:1.06;
  }

  .concept-two .instagram-intro {
    text-align:left;
    font-size:1rem;
    line-height:1.8;
  }

  .concept-two .recruit-wrap {
    grid-template-columns:1fr;
    min-height:0;
  }

  .concept-two .recruit-image {
    height:min(58svh,520px);
  }

  .concept-two .recruit-copy {
    padding:62px 22px 92px;
  }

  .concept-two .recruit-copy h2 {
    font-size:clamp(2.45rem,11.5vw,2.85rem);
    line-height:1.1;
  }

  .concept-two .contact-band h2 {
    font-size:clamp(2.05rem,9.5vw,2.45rem);
    line-height:1.2;
  }
}

@media (max-width: 360px) {
  .concept-two .care-title { font-size:2.38rem; }
  .concept-two .team-title { font-size:1.86rem; }
  .concept-two .places-title { font-size:2.48rem; }
  .concept-two .location-title { font-size:1.22rem; }
  .concept-two .instagram-title { font-size:2.85rem; }
  .concept-two .recruit-copy h2 { font-size:2.25rem; }
}

/* Shared mobile type system: every page uses the same hierarchy and deliberate lines. */
.concept-two .sub-hero h1,
.concept-two .lead-copy,
.concept-two .guide-heading h2,
.concept-two .program h3,
.concept-two .recruit-value h3,
.concept-two .job h3,
.concept-two .contact-form-heading .lead-copy {
  font-family:"Helvetica Neue","Hiragino Sans","Yu Gothic",sans-serif;
}

.concept-two h1,
.concept-two h2,
.concept-two h3 {
  font-family:"Helvetica Neue","Hiragino Sans","Yu Gothic",sans-serif;
}

@media (max-width: 920px) {
  html { -webkit-text-size-adjust:100%; }

  .concept-two .sub-hero h1,
  .concept-two .lead-copy,
  .concept-two .guide-heading h2,
  .concept-two .mvv h3,
  .concept-two .recruit-value h3,
  .concept-two .job h3,
  .concept-two .contact-form-heading .lead-copy {
    word-break:keep-all;
    overflow-wrap:normal;
    line-break:strict;
    text-wrap:wrap;
  }

  .concept-two .sub-hero h1 {
    font-size:clamp(2rem,9.2vw,2.4rem);
    font-weight:800;
    line-height:1.16;
    letter-spacing:-.055em;
  }

  .concept-two .sub-hero h1 > span,
  .concept-two .lead-copy > span,
  .concept-two .guide-heading h2 > span,
  .concept-two .mvv h3 > span,
  .concept-two .contact-band h2 > span {
    display:block;
    white-space:nowrap;
  }

  .concept-two .lead-copy {
    margin:0;
    font-size:clamp(1.25rem,6vw,1.72rem);
    font-weight:800;
    line-height:1.42;
    letter-spacing:-.045em;
  }

  .concept-two .lead-copy > span + span { margin-top:.06em; }

  .concept-two .guide-heading h2,
  .concept-two .content-section > .content-inner > .section-title {
    font-family:"Helvetica Neue","Hiragino Sans","Yu Gothic",sans-serif;
    font-size:clamp(1.72rem,7.8vw,2.05rem);
    font-weight:800;
    line-height:1.22;
    letter-spacing:-.05em;
  }

  .concept-two .program h3,
  .concept-two .day-flow h3,
  .concept-two .use-flow h3,
  .concept-two .fee-cards h3,
  .concept-two .person h3,
  .concept-two .recruit-value h3,
  .concept-two .job h3 {
    font-family:"Helvetica Neue","Hiragino Sans","Yu Gothic",sans-serif;
    font-size:clamp(1.22rem,5.5vw,1.42rem);
    font-weight:800;
    line-height:1.38;
    letter-spacing:-.035em;
  }

  .concept-two .program p,
  .concept-two .day-flow p,
  .concept-two .use-flow p,
  .concept-two .fee-guide p,
  .concept-two .person p,
  .concept-two .recruit-value p,
  .concept-two .job p,
  .concept-two .mvv p {
    font-size:1rem;
    line-height:1.85;
  }

  .concept-two .page-minamifujisawa .sub-hero h1 {
    font-size:clamp(1.7rem,7.5vw,2rem);
  }

  .concept-two .page-recruit .sub-hero h1,
  .concept-two .page-fujisawa .sub-hero h1 {
    font-size:clamp(1.84rem,8.3vw,2.16rem);
  }

  .concept-two .page-contact .sub-hero h1 {
    font-size:clamp(2.05rem,9.5vw,2.45rem);
  }

  .concept-two .page-jobs .lead-copy {
    font-size:clamp(1.12rem,5.35vw,1.48rem);
  }

  .concept-two .page-mission .mvv h3,
  .concept-two .page-mission .mvv h3.mission-statement {
    font-family:"Helvetica Neue","Hiragino Sans","Yu Gothic",sans-serif;
    font-size:clamp(1.18rem,5.45vw,1.45rem);
    font-weight:800;
    line-height:1.48;
  }

  .concept-two .page-recruit .recruit-value h3 {
    white-space:normal;
  }

  .concept-two .contact-form-heading .lead-copy {
    font-size:clamp(1.18rem,5.7vw,1.52rem);
    font-weight:800;
    line-height:1.48;
  }

  .concept-two .contact-form-heading .lead-copy > span,
  .concept-two .contact-form-heading .lead-copy strong,
  .concept-two .contact-form-heading .lead-copy strong > span {
    display:block;
    white-space:nowrap;
  }

  .concept-two .contact-band h2 {
    font-family:"Helvetica Neue","Hiragino Sans","Yu Gothic",sans-serif;
    font-size:clamp(1.95rem,9vw,2.35rem);
    font-weight:800;
    line-height:1.18;
    letter-spacing:-.055em;
  }
}

@media (max-width: 360px) {
  .concept-two .manifesto-title { font-size:1.34rem; }
  .concept-two .team-title { font-size:1.52rem; }
  .concept-two .places-title { font-size:2.06rem; }
  .concept-two .recruit-copy h2 { font-size:2.02rem; }
  .concept-two .contact-band h2 { font-size:1.68rem; }
  .concept-two .page-minamifujisawa .sub-hero h1 { font-size:1.66rem; }
  .concept-two .page-fujisawa .sub-hero h1,
  .concept-two .page-recruit .sub-hero h1 { font-size:1.78rem; }
  .concept-two .page-contact .sub-hero h1 { font-size:1.95rem; }
  .concept-two .lead-copy { font-size:1.18rem; }
  .concept-two .page-jobs .lead-copy { font-size:1.05rem; }
  .concept-two .contact-form-heading .lead-copy { font-size:1.08rem; }
  .concept-two .therapy-card h3.single-line-title { font-size:1.08rem; }
}

/* Recruitment journey */
.recruit-entry {
  margin:54px 0 76px;
  padding:clamp(34px,5vw,60px);
  background:#dff4fb;
  border:2px solid var(--ink);
  box-shadow:10px 10px 0 var(--sun);
}
.recruit-entry h2,
.founder-recruit h2,
.recruit-section-heading h2 {
  margin:0;
  font-size:clamp(2.15rem,4.5vw,4.5rem);
  line-height:1.12;
  letter-spacing:-.06em;
}
.recruit-entry h2 span,
.founder-recruit h2 span,
.recruit-section-heading h2 span { display:block; }
.recruit-entry > p:not(.eyebrow) { max-width:760px; margin:24px 0 0; font-size:1.05rem; line-height:1.9; }
.recruit-actions,.recruit-final-actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px; margin-top:30px; }
.text-link { color:var(--ink); font-weight:900; text-decoration:underline; text-decoration-color:#0b8bbb; text-decoration-thickness:2px; text-underline-offset:6px; }

.founder-recruit {
  display:grid;
  grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);
  gap:clamp(38px,6vw,84px);
  align-items:center;
  margin:100px 0;
  padding:clamp(28px,4vw,50px);
  background:#fff;
  border:2px solid var(--ink);
}
.founder-recruit-photo img { display:block; width:100%; height:auto; object-fit:contain; box-shadow:10px 10px 0 var(--sun); }
.founder-recruit-copy > p:not(.eyebrow):not(.founder-recruit-sign) { margin:20px 0 0; line-height:1.9; color:var(--muted); }
.founder-recruit-sign { margin:30px 0 0; line-height:1.75; }
.founder-recruit-sign strong { font-size:1.15rem; }

.workday-section,.candidate-section,.recruit-faq,.open-positions { margin-top:110px; scroll-margin-top:110px; }
.recruit-section-heading { display:grid; grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr); gap:48px; align-items:end; margin-bottom:42px; }
.recruit-section-heading .eyebrow { grid-column:1/-1; margin:0 0 -22px; }
.recruit-section-heading > p:last-child { margin:0; color:var(--muted); line-height:1.85; }
.workday-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.workday-card { background:#fff; border:2px solid var(--ink); box-shadow:8px 8px 0 var(--sun); }
.workday-card-head { padding:26px 28px 22px; border-bottom:2px solid var(--ink); }
.workday-card-head span { color:#0b8bbb; font-size:.75rem; font-weight:900; letter-spacing:.12em; }
.workday-card h3 { margin:6px 0 0; font-size:1.55rem; }
.workday-card ol { list-style:none; margin:0; padding:10px 28px 22px; }
.workday-card li { display:grid; grid-template-columns:64px 1fr; gap:15px; padding:15px 0; border-bottom:1px solid var(--line); line-height:1.6; }
.workday-card li:last-child { border-bottom:0; }
.workday-card time { color:#0b8bbb; font-weight:900; }
.workday-card li span { color:var(--muted); }
.recruit-note { margin:24px 0 0; color:var(--muted); font-size:.88rem; line-height:1.7; }

.candidate-section { padding:clamp(38px,6vw,72px); background:var(--sun); }
.candidate-list { list-style:none; margin:0; padding:0; background:var(--ink); border:2px solid var(--ink); display:grid; gap:2px; }
.candidate-list li { display:grid; grid-template-columns:58px 1fr; align-items:center; gap:18px; padding:24px 28px; background:#fff; }
.candidate-list li > span { color:#0b8bbb; font-size:.78rem; font-weight:900; letter-spacing:.12em; }
.candidate-list strong { font-size:1.08rem; line-height:1.6; }

.recruit-faq-list { border-top:2px solid var(--ink); }
.recruit-faq-list details { border-bottom:2px solid var(--ink); }
.recruit-faq-list summary { cursor:pointer; list-style:none; display:grid; grid-template-columns:1fr auto; gap:20px; align-items:center; padding:25px 4px; font-size:1.08rem; font-weight:900; line-height:1.55; }
.recruit-faq-list summary::-webkit-details-marker { display:none; }
.recruit-faq-list summary::after { content:"＋"; color:#0b8bbb; font-size:1.5rem; }
.recruit-faq-list details[open] summary::after { content:"−"; }
.recruit-faq-list details p { max-width:820px; margin:0; padding:0 42px 25px 4px; color:var(--muted); line-height:1.85; }
.recruit-apply-button { background:#fff; color:var(--ink); border:2px solid var(--ink); }

@media (max-width: 920px) {
  .recruit-entry { margin:42px 0 68px; padding:34px 20px 38px; box-shadow:8px 8px 0 var(--sun); }
  .recruit-entry h2,
  .founder-recruit h2,
  .recruit-section-heading h2 {
    font-size:clamp(1.65rem,7.5vw,2rem);
    line-height:1.28;
    letter-spacing:-.045em;
    word-break:keep-all;
  }
  .recruit-entry h2 span,
  .founder-recruit h2 span,
  .recruit-section-heading h2 span { white-space:nowrap; }
  .recruit-entry > p:not(.eyebrow) { margin-top:20px; font-size:1rem; line-height:1.85; }
  .recruit-actions,.recruit-final-actions { align-items:stretch; flex-direction:column; gap:14px; }
  .recruit-actions .button,.recruit-final-actions .button { width:100%; text-align:center; }
  .recruit-actions .text-link { align-self:flex-start; padding:8px 0; }
  .founder-recruit { grid-template-columns:1fr; gap:38px; margin:78px 0; padding:24px 20px 34px; }
  .founder-recruit-photo { width:86%; max-width:360px; margin-inline:auto; }
  .founder-recruit-copy > p:not(.eyebrow):not(.founder-recruit-sign) { font-size:1rem; line-height:1.9; }
  .workday-section,.candidate-section,.recruit-faq,.open-positions { margin-top:84px; scroll-margin-top:86px; }
  .recruit-section-heading { grid-template-columns:1fr; gap:18px; margin-bottom:30px; }
  .recruit-section-heading .eyebrow { grid-column:auto; margin:0 0 -4px; }
  .workday-grid { grid-template-columns:1fr; gap:22px; }
  .workday-card-head { padding:24px 20px 19px; }
  .workday-card ol { padding:8px 20px 18px; }
  .workday-card li { grid-template-columns:58px 1fr; gap:12px; padding:14px 0; font-size:.95rem; }
  .candidate-section { margin-inline:-22px; padding:52px 22px 58px; }
  .candidate-list li { grid-template-columns:42px 1fr; gap:12px; padding:20px 16px; }
  .candidate-list strong { font-size:1rem; }
  .recruit-faq-list summary { padding:21px 2px; font-size:1rem; }
  .recruit-faq-list details p { padding:0 34px 22px 2px; font-size:1rem; }
}

@media (max-width: 360px) {
  .recruit-entry h2,
  .founder-recruit h2,
  .recruit-section-heading h2 { font-size:1.52rem; }
}
