:root {
  --koharu-brown: #49372a;
  --koharu-brown-2: #6b5442;
  --koharu-ink: #302a26;
  --koharu-cream: #f7f5f1;
  --koharu-paper: #fbfaf7;
  --koharu-white: #ffffff;
  --koharu-green: #68715e;
  --koharu-gold: #a98e67;
  --koharu-line: #ddd4c8;
  --koharu-muted: #746b63;
}
body.home { margin:0; background:var(--koharu-paper); color:var(--koharu-ink); font-family:"Noto Sans JP",sans-serif; font-size:16px; line-height:1.78; }
body.home * { box-sizing:border-box; }
body.home img { max-width:100%; height:auto; display:block; }
body.home a { color:inherit; }
body.home .koharu-home { overflow:hidden; }

.koharu-site-header { position:sticky; top:0; z-index:100; background:rgba(251,250,247,.95); border-bottom:1px solid rgba(221,212,200,.85); backdrop-filter:blur(12px); }
.koharu-header-inner { max-width:1280px; min-height:82px; margin:0 auto; padding:10px 28px 12px; display:flex; align-items:flex-end; justify-content:space-between; gap:30px; }
.koharu-brand { display:flex; flex-direction:column; gap:5px; width:min(390px,36vw); text-decoration:none; }
.koharu-brand-tagline { color:var(--koharu-muted); font-size:10px; letter-spacing:.08em; white-space:nowrap; }
.koharu-brand-identity { display:flex; align-items:center; gap:10px; height:42px; }
.koharu-brand-mark { width:42px; height:42px; object-fit:contain; }
.koharu-brand-name { width:190px; max-height:38px; object-fit:contain; object-position:left center; }
.koharu-header-nav { padding-bottom:1px; }
.koharu-nav-list { display:flex; align-items:flex-end; gap:24px; margin:0; padding:0; list-style:none; }
.koharu-nav-list a { position:relative; color:var(--koharu-brown); font-size:13px; font-weight:500; text-decoration:none; letter-spacing:.035em; }
.koharu-nav-list a:not(.koharu-nav-cta)::after { content:""; position:absolute; left:0; right:100%; bottom:-7px; height:1px; background:var(--koharu-brown); transition:right .28s ease; }
.koharu-nav-list a:hover::after { right:0; }
.koharu-nav-cta { display:inline-flex; min-height:44px; padding:0 18px; align-items:center; border:1px solid var(--koharu-brown); transition:background .25s ease,color .25s ease; }
.koharu-nav-cta:hover { background:var(--koharu-brown); color:#fff; }
.koharu-menu-toggle { display:none; }

.koharu-hero { max-width:1440px; min-height:640px; margin:0 auto; display:grid; grid-template-columns:minmax(340px,44%) minmax(0,56%); background:var(--koharu-cream); }
.koharu-hero-copy { min-height:640px; padding:84px clamp(34px,6vw,90px) 0; display:flex; flex-direction:column; }
.koharu-hero h1 { margin:0; color:var(--koharu-brown); font-family:"Noto Serif JP",serif; font-size:clamp(36px,3.7vw,54px); font-weight:500; line-height:1.52; letter-spacing:.035em; }
.koharu-hero-lead { margin:26px 0 0; color:var(--koharu-muted); font-size:clamp(15px,1.15vw,18px); line-height:1.8; }
.koharu-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:auto; }
.koharu-button { display:inline-flex; min-width:190px; min-height:50px; padding:10px 22px; align-items:center; justify-content:center; border:1px solid var(--koharu-brown); border-radius:6px 6px 0 0; font-size:13px; font-weight:500; text-decoration:none; letter-spacing:.05em; transition:background .25s ease,color .25s ease,transform .25s ease; }
.koharu-button:hover { transform:translateY(-1px); }
.koharu-button-primary { background:var(--koharu-brown); color:#fff!important; }
.koharu-button-primary:hover { background:#35271e; }
.koharu-button-secondary { background:transparent; color:var(--koharu-brown)!important; }
.koharu-button-secondary:hover { background:var(--koharu-brown); color:#fff!important; }
.koharu-hero-image { min-height:640px; margin:0; overflow:hidden; }
.koharu-hero-image img { width:100%; height:100%; object-fit:cover; object-position:center; animation:koharuHeroZoom 16s ease-out both; }
@keyframes koharuHeroZoom { from{transform:scale(1)} to{transform:scale(1.025)} }

.koharu-section { padding:clamp(82px,8vw,122px) 28px; }
.koharu-container { max-width:1140px; margin:0 auto; }
.koharu-narrow { max-width:760px; margin:0 auto; }
.koharu-section h2 { margin:0 0 32px; color:var(--koharu-brown); font-family:"Noto Sans JP",sans-serif; font-size:clamp(25px,2.4vw,34px); font-weight:500; line-height:1.55; letter-spacing:.025em; }
.koharu-prose p { margin:0 0 1.05em; }
.koharu-prose strong { color:var(--koharu-brown); font-weight:600; }
.koharu-short-lines { color:var(--koharu-brown); font-size:1.05em; line-height:1.78; }

.koharu-split { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:minmax(0,48%) minmax(0,52%); align-items:center; gap:clamp(42px,6vw,86px); }
.koharu-split-reverse { grid-template-columns:minmax(0,53%) minmax(0,47%); }
.koharu-split-copy { max-width:590px; }
.koharu-square-photo,.koharu-needle-visual,.koharu-empathy-photo { margin:0; }
.koharu-square-photo img { width:100%; aspect-ratio:4/5; object-fit:cover; }

.koharu-empathy { background:var(--koharu-paper); }
.koharu-empathy-split { grid-template-columns:minmax(0,56%) minmax(340px,44%); }
.koharu-empathy-photo img { width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center; }

.koharu-philosophy { background:#ede8e0; }

.koharu-values { background:var(--koharu-cream); }
.koharu-section-heading { max-width:720px; margin:0 auto 52px; text-align:center; }
.koharu-section-heading h2 { margin-bottom:0; }
.koharu-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.koharu-card { padding:0 0 30px; background:rgba(255,255,255,.78); border:1px solid var(--koharu-line); border-radius:8px; overflow:hidden; }
.koharu-card-photo { margin:0 0 26px; overflow:hidden; }
.koharu-card-photo img { width:100%; aspect-ratio:16/10; object-fit:cover; }
.koharu-card:nth-child(1) .koharu-card-photo img { object-position:center 34%; }
.koharu-card:nth-child(3) .koharu-card-photo img { object-position:center 34%; }
.koharu-card:nth-child(4) .koharu-card-photo img { object-position:center 46%; }
.koharu-card h3 { margin:0 28px 18px; color:var(--koharu-brown); font-family:"Noto Sans JP",sans-serif; font-size:clamp(19px,1.6vw,23px); font-weight:500; line-height:1.55; letter-spacing:.015em; }
.koharu-card p { margin:0 28px .9em; font-size:15px; line-height:1.72; }
.koharu-card-quote { color:var(--koharu-brown-2); font-size:15px; }

.koharu-minimal-needles { background:var(--koharu-brown); color:#f5eee5; }
.koharu-minimal-needles h2 { color:#fffaf3; }
.koharu-needle-visual img { width:100%; aspect-ratio:4/5; object-fit:cover; }
.koharu-patient-voice { color:#d8bd93; font-size:1em; }

.koharu-symptoms { background:var(--koharu-paper); }
.koharu-symptom-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--koharu-line); border-left:1px solid var(--koharu-line); }
.koharu-symptom-grid article { min-height:190px; padding:28px 24px; border-right:1px solid var(--koharu-line); border-bottom:1px solid var(--koharu-line); }
.koharu-symptom-grid h3 { margin:0 0 14px; color:var(--koharu-brown); font-size:19px; font-weight:500; }
.koharu-symptom-grid p { margin:0; font-size:15px; line-height:1.72; }
.koharu-symptom-note { margin:26px 0 0; text-align:center; color:var(--koharu-muted); font-size:15px; }
.koharu-center { margin-top:32px; text-align:center; }
.koharu-preview-notice { padding:30px 28px; background:#eee8df; color:#675b51; text-align:center; font-size:13px; }

.koharu-site-footer { background:#2f251f; color:#ede6dc; }
.koharu-footer-inner { max-width:1140px; margin:0 auto; padding:60px 28px 40px; display:flex; justify-content:space-between; gap:46px; }
.koharu-footer-name { margin:0 0 14px; font-family:"Noto Serif JP",serif; font-size:22px; }
.koharu-site-footer p { margin:0 0 5px; }
.koharu-site-footer a { color:inherit; text-decoration:none; }
.koharu-footer-links { display:grid; gap:9px; align-content:start; }
.koharu-copyright { margin:0; padding:16px 28px; border-top:1px solid rgba(255,255,255,.12); text-align:center; font-size:11px; }

.js [data-reveal] { opacity:0; transform:translateY(18px); transition:opacity .58s ease,transform .58s ease; }
.js [data-reveal].is-visible { opacity:1; transform:none; }
.koharu-card-grid .koharu-card:nth-child(2) { transition-delay:.06s; }
.koharu-card-grid .koharu-card:nth-child(3) { transition-delay:.12s; }
.koharu-card-grid .koharu-card:nth-child(4) { transition-delay:.18s; }
@media (prefers-reduced-motion:reduce) { .koharu-hero-image img{animation:none}.js [data-reveal]{opacity:1;transform:none;transition:none}.koharu-button{transition:none} }

@media (max-width:1080px) {
  .koharu-nav-list { gap:14px; }
  .koharu-nav-list a { font-size:12px; }
  .koharu-brand { width:340px; }
  .koharu-symptom-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:900px) {
  .koharu-header-inner { min-height:70px; padding:8px 18px 10px; align-items:center; }
  .koharu-brand { width:min(330px,78vw); gap:3px; }
  .koharu-brand-tagline { font-size:9px; }
  .koharu-brand-identity { height:36px; }
  .koharu-brand-mark { width:35px; height:35px; }
  .koharu-brand-name { width:160px; max-height:32px; }
  .koharu-menu-toggle { display:inline-flex; align-items:center; justify-content:center; min-width:48px; min-height:40px; padding:0 9px; border:1px solid var(--koharu-line); background:transparent; color:var(--koharu-brown); font:inherit; font-size:11px; }
  .koharu-nav-list { display:none; position:absolute; top:70px; left:0; right:0; padding:18px 20px 22px; background:var(--koharu-paper); border-bottom:1px solid var(--koharu-line); flex-direction:column; align-items:stretch; gap:0; }
  .koharu-nav-list.is-open { display:flex; }
  .koharu-nav-list li { border-bottom:1px solid var(--koharu-line); }
  .koharu-nav-list a { display:block; padding:12px 4px; }
  .koharu-nav-cta { margin-top:10px; justify-content:center; }
  .koharu-hero { min-height:auto; grid-template-columns:1fr; }
  .koharu-hero-image { order:1; min-height:0; height:min(62vh,560px); }
  .koharu-hero-copy { order:2; min-height:auto; padding:50px 24px 0; }
  .koharu-hero h1 { font-size:clamp(32px,8vw,45px); }
  .koharu-actions { margin-top:36px; flex-direction:column; }
  .koharu-button { width:100%; border-radius:5px; }
  .koharu-section { padding:78px 22px; }
  .koharu-split,.koharu-split-reverse,.koharu-empathy-split { grid-template-columns:1fr; gap:42px; }
  .koharu-empathy-photo { order:2; }
  .koharu-philosophy .koharu-square-photo { order:2; }
  .koharu-philosophy .koharu-split-copy { order:1; }
  .koharu-card-grid { grid-template-columns:1fr; }
  .koharu-footer-inner { flex-direction:column; }
}
@media (max-width:560px) {
  body.home { font-size:15.5px; }
  .koharu-brand { width:245px; }
  .koharu-brand-tagline { max-width:220px; overflow:hidden; text-overflow:ellipsis; }
  .koharu-brand-name { width:145px; }
  .koharu-hero-image { height:50vh; min-height:360px; }
  .koharu-hero-image img { object-position:58% center; }
  .koharu-section h2 { font-size:25px; }
  .koharu-card { padding-bottom:26px; }
  .koharu-card h3 { margin-left:22px; margin-right:22px; font-size:20px; }
  .koharu-card p { margin-left:22px; margin-right:22px; font-size:14.5px; }
  .koharu-symptom-grid { grid-template-columns:1fr; }
  .koharu-symptom-grid article { min-height:0; }
}


/* v1.3 refinement: smaller photography, stronger whitespace, restrained typography */
.koharu-header-inner { min-height:88px; }
.koharu-brand { width:min(510px,43vw); gap:6px; }
.koharu-brand-tagline { font-size:11px; letter-spacing:.055em; }
.koharu-brand-identity { height:48px; gap:12px; }
.koharu-brand-mark { width:48px; height:48px; }
.koharu-brand-name-text { display:inline-flex; align-items:flex-end; color:#15110e; font-family:"Noto Serif JP",serif; font-size:25px; font-weight:600; line-height:1; letter-spacing:.015em; white-space:nowrap; }
.koharu-brand-name-text ruby { ruby-align:space-around; }
.koharu-brand-name-text rt { font-family:"Noto Sans JP",sans-serif; font-size:8px; font-weight:500; letter-spacing:.28em; transform:translateY(-1px); }

.koharu-hero { max-width:1280px; min-height:560px; grid-template-columns:minmax(360px,48%) minmax(0,52%); padding:42px 28px 0; column-gap:48px; }
.koharu-hero-copy { min-height:518px; padding:46px 22px 0; }
.koharu-hero h1 { font-size:clamp(34px,3.15vw,46px); line-height:1.42; }
.koharu-hero-lead { margin-top:28px; font-size:clamp(16px,1.15vw,18px); }
.koharu-actions { margin-top:auto; align-items:flex-end; }
.koharu-hero-image { min-height:0; height:518px; align-self:end; }
.koharu-button { min-height:48px; }

.koharu-section { padding:clamp(100px,9vw,146px) 34px; }
.koharu-section h2 { margin-bottom:38px; font-size:clamp(24px,2.05vw,30px); line-height:1.52; }
.koharu-prose { max-width:640px; }
.koharu-prose p { margin-bottom:1.2em; }
.koharu-split { max-width:1080px; grid-template-columns:minmax(0,52%) minmax(300px,40%); gap:clamp(64px,8vw,108px); }
.koharu-split-reverse { grid-template-columns:minmax(0,55%) minmax(300px,38%); }
.koharu-empathy-split { grid-template-columns:minmax(0,58%) minmax(300px,38%); }
.koharu-square-photo,.koharu-needle-visual,.koharu-empathy-photo { width:85%; justify-self:center; }
.koharu-square-photo img,.koharu-needle-visual img,.koharu-empathy-photo img { box-shadow:0 14px 34px rgba(55,42,31,.07); }

.koharu-section-heading { margin-bottom:68px; }
.koharu-card-grid { max-width:1040px; margin:0 auto; gap:42px 36px; }
.koharu-card { padding-bottom:36px; border-radius:6px; }
.koharu-card-photo { width:85%; margin:28px auto 30px; }
.koharu-card-photo img { aspect-ratio:16/10; }
.koharu-card-number { display:flex; width:30px; height:30px; margin:0 30px 14px; align-items:center; justify-content:center; border:1px solid var(--koharu-brown-2); border-radius:50%; color:var(--koharu-brown-2); font-family:"Noto Serif JP",serif; font-size:16px; line-height:1; }
.koharu-card h3 { margin:0 30px 20px; font-size:clamp(18px,1.42vw,21px); }
.koharu-card p { margin-left:30px; margin-right:30px; font-size:14px; line-height:1.78; }
.koharu-card-quote { font-size:14px; }
.koharu-card:nth-child(1) .koharu-card-photo img { object-position:center center; }

.koharu-symptom-grid { max-width:1040px; margin:0 auto; gap:0; }
.koharu-symptom-grid article { min-height:230px; padding:32px 28px; }
.koharu-symptom-grid h3 { font-size:18px; }
.koharu-symptom-grid ul { margin:0; padding:0; list-style:none; }
.koharu-symptom-grid li { border-top:1px solid rgba(221,212,200,.7); }
.koharu-symptom-grid li:first-child { border-top:0; }
.koharu-symptom-grid a { display:block; position:relative; padding:7px 18px 7px 0; color:var(--koharu-ink); font-size:14px; text-decoration:none; transition:color .22s ease; }
.koharu-symptom-grid a::after { content:""; position:absolute; right:2px; top:50%; width:5px; height:5px; border-top:1px solid currentColor; border-right:1px solid currentColor; transform:translateY(-50%) rotate(45deg); opacity:.55; }
.koharu-symptom-grid a:hover { color:var(--koharu-brown-2); }

@media (max-width:900px) {
  .koharu-brand { width:min(390px,78vw); }
  .koharu-brand-name-text { font-size:21px; }
  .koharu-brand-tagline { font-size:9px; }
  .koharu-hero { padding:0; column-gap:0; }
  .koharu-hero-copy { min-height:auto; padding:54px 24px 0; }
  .koharu-hero-image { width:88%; height:min(55vh,500px); margin:0 auto; }
  .koharu-actions { margin-top:40px; }
  .koharu-section { padding:92px 24px; }
  .koharu-square-photo,.koharu-needle-visual,.koharu-empathy-photo { width:88%; }
  .koharu-card-grid { gap:34px; }
  .koharu-card-photo { width:88%; }
}
@media (max-width:560px) {
  .koharu-brand { width:255px; }
  .koharu-brand-name-text { font-size:18px; }
  .koharu-brand-mark { width:38px; height:38px; }
  .koharu-brand-identity { height:40px; }
  .koharu-hero h1 { font-size:clamp(30px,9vw,39px); white-space:nowrap; }
  .koharu-hero-lead { font-size:16px; }
  .koharu-card-number { margin-left:22px; }
  .koharu-card-photo { margin-top:22px; }
}


/* v1.4 corrections: restore supplied wordmark, single-line desktop nav,
   bottom-aligned hero actions, and v1.1-style background point numerals */
@media (min-width: 901px) {
  .koharu-header-inner {
    max-width: 1480px;
    width: 100%;
    gap: 20px;
  }
  .koharu-brand {
    flex: 0 1 500px;
    width: 500px;
    min-width: 430px;
  }
  .koharu-brand-identity {
    height: 48px;
  }
  .koharu-brand-mark {
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
  }
  .koharu-brand-name {
    display: block;
    width: 220px;
    max-width: 220px;
    max-height: 42px;
    object-fit: contain;
    object-position: left center;
  }
  .koharu-header-nav {
    flex: 0 0 auto;
    min-width: 0;
  }
  .koharu-nav-list {
    flex-wrap: nowrap;
    gap: 18px;
    white-space: nowrap;
  }
  .koharu-nav-list li,
  .koharu-nav-list a {
    white-space: nowrap;
  }
  .koharu-nav-list a {
    font-size: 12.5px;
  }
  .koharu-nav-cta {
    padding-left: 16px;
    padding-right: 16px;
  }

  .koharu-hero-copy,
  .koharu-hero-image {
    height: 518px;
    min-height: 518px;
  }
  .koharu-hero-copy {
    padding-bottom: 0;
  }
  .koharu-actions {
    margin-top: auto;
    margin-bottom: 0;
    align-self: stretch;
  }
}

/* Use the exact supplied clinic-name artwork instead of recreating the wordmark in web fonts. */
.koharu-brand-name-text { display: none !important; }

/* v1.1-style numerals: large, quiet background type at the upper-right of the text area. */
.koharu-card-body {
  position: relative;
  padding: 0 30px 4px;
}
.koharu-card-number {
  position: absolute;
  z-index: 0;
  top: -8px;
  right: 22px;
  display: block;
  width: auto;
  height: auto;
  margin: 0;
  border: 0;
  border-radius: 0;
  color: rgba(169,142,103,.18);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 74px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: -.04em;
  pointer-events: none;
}
.koharu-card-body h3,
.koharu-card-body p {
  position: relative;
  z-index: 1;
}
.koharu-card h3 {
  margin: 0 0 20px;
  padding-right: 62px;
}
.koharu-card p {
  margin-left: 0;
  margin-right: 0;
}

@media (max-width: 1180px) and (min-width: 901px) {
  .koharu-header-inner { gap: 14px; padding-left: 18px; padding-right: 18px; }
  .koharu-brand { flex-basis: 430px; width: 430px; min-width: 390px; }
  .koharu-brand-tagline { font-size: 9.5px; }
  .koharu-brand-name { width: 205px; max-width: 205px; }
  .koharu-nav-list { gap: 12px; }
  .koharu-nav-list a { font-size: 11.5px; }
  .koharu-nav-cta { padding-left: 12px; padding-right: 12px; }
}

@media (max-width: 900px) {
  .koharu-brand-name { display:block; width:160px; max-width:160px; max-height:32px; object-fit:contain; object-position:left center; }
  .koharu-card-body { padding-left: 22px; padding-right: 22px; }
  .koharu-card-number { top:-4px; right:18px; font-size:62px; }
  .koharu-card h3 { margin-left:0; margin-right:0; padding-right:52px; }
  .koharu-card p { margin-left:0; margin-right:0; }
}

/* v1.5: current-site monochrome logo, wider copy-side hero, exact bottom alignment,
   and a restrained "clinic guide" dropdown between Access and Contact. */
.koharu-brand-identity {
  display:flex;
  align-items:flex-end;
  height:46px;
}
.koharu-brand-logo {
  display:block;
  width:244px;
  max-width:100%;
  height:auto;
  max-height:44px;
  object-fit:contain;
  object-position:left bottom;
}
.koharu-brand-mark,
.koharu-brand-name { display:none !important; }

@media (min-width:901px) {
  .koharu-header-inner {
    max-width:1520px;
    padding-left:24px;
    padding-right:24px;
    gap:16px;
  }
  .koharu-brand {
    flex:0 1 475px;
    width:475px;
    min-width:410px;
  }
  .koharu-header-nav { margin-left:auto; }
  .koharu-nav-list { gap:15px; }
  .koharu-nav-list a { font-size:12px; }
  .koharu-nav-cta { padding-left:14px; padding-right:14px; }

  /* Slightly more room for the message than for the photo. */
  .koharu-hero {
    max-width:1360px;
    grid-template-columns:minmax(0,53%) minmax(0,47%);
    padding:42px 30px 0;
    column-gap:52px;
    align-items:end;
  }
  .koharu-hero-copy,
  .koharu-hero-image {
    height:518px;
    min-height:518px;
    align-self:end;
  }
  .koharu-hero-copy {
    display:flex;
    flex-direction:column;
    padding:46px 24px 0;
  }
  .koharu-actions {
    margin-top:auto;
    margin-bottom:0;
    padding-bottom:0;
    align-self:stretch;
  }
  .koharu-button { margin-bottom:0; }
  .koharu-hero-image {
    margin:0;
  }
  .koharu-hero-image img {
    height:518px;
  }
}

.koharu-nav-guide {
  position:relative;
  display:flex;
  align-items:flex-end;
}
.koharu-guide-toggle {
  display:inline-flex;
  width:34px;
  height:34px;
  padding:0;
  align-items:center;
  justify-content:center;
  border:1px solid var(--koharu-line);
  background:transparent;
  color:var(--koharu-brown);
  cursor:pointer;
  transition:border-color .2s ease, background .2s ease;
}
.koharu-guide-toggle:hover,
.koharu-guide-toggle[aria-expanded="true"] {
  border-color:var(--koharu-brown-2);
  background:rgba(107,84,66,.045);
}
.koharu-guide-icon {
  display:grid;
  grid-template-columns:repeat(2,4px);
  grid-template-rows:repeat(2,4px);
  gap:3px;
}
.koharu-guide-icon i {
  display:block;
  width:4px;
  height:4px;
  background:currentColor;
}
.koharu-guide-menu {
  position:absolute;
  z-index:120;
  top:calc(100% + 12px);
  right:0;
  width:220px;
  margin:0;
  padding:9px 0;
  list-style:none;
  background:rgba(251,250,247,.985);
  border:1px solid var(--koharu-line);
  box-shadow:0 14px 34px rgba(55,42,31,.10);
  opacity:0;
  visibility:hidden;
  transform:translateY(-5px);
  transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
}
.koharu-nav-guide:hover .koharu-guide-menu,
.koharu-nav-guide:focus-within .koharu-guide-menu,
.koharu-nav-guide.is-open .koharu-guide-menu {
  opacity:1;
  visibility:visible;
  transform:none;
}
.koharu-guide-menu li { border:0 !important; }
.koharu-guide-menu a {
  display:block;
  padding:9px 16px !important;
  color:var(--koharu-ink);
  font-size:12px !important;
  font-weight:400;
  letter-spacing:.02em;
  white-space:nowrap;
}
.koharu-guide-menu a::after { display:none !important; }
.koharu-guide-menu a:hover { color:var(--koharu-brown-2); background:rgba(107,84,66,.045); }

@media (max-width:1180px) and (min-width:901px) {
  .koharu-brand { flex-basis:410px; width:410px; min-width:365px; }
  .koharu-brand-logo { width:220px; }
  .koharu-nav-list { gap:10px; }
  .koharu-nav-list a { font-size:11px; }
  .koharu-guide-toggle { width:31px; height:31px; }
  .koharu-nav-cta { padding-left:10px; padding-right:10px; }
}

@media (max-width:900px) {
  .koharu-brand-logo { width:190px; max-height:36px; }
  .koharu-nav-guide { display:block; }
  .koharu-guide-toggle {
    width:100%;
    height:42px;
    justify-content:flex-start;
    border:0;
    border-bottom:0;
    background:transparent;
    gap:10px;
  }
  .koharu-guide-toggle::after {
    content:"当院のご案内";
    margin-left:10px;
    font-size:12px;
  }
  .koharu-guide-menu {
    position:static;
    width:100%;
    padding:0 0 8px 16px;
    border:0;
    box-shadow:none;
    background:transparent;
    opacity:1;
    visibility:visible;
    transform:none;
    display:none;
  }
  .koharu-nav-guide.is-open .koharu-guide-menu { display:block; }
  .koharu-guide-menu a { padding:9px 4px !important; }
}

/* v1.6 — approved hero composition + corrected supplied monochrome logo + familiar hamburger */
@media (min-width:901px) {
  /* Keep the header treatment from v1.5, but preserve the logo artwork's natural aspect ratio. */
  .koharu-brand-identity {
    height:52px;
    align-items:flex-end;
    overflow:visible;
  }
  .koharu-brand-logo {
    width:270px;
    max-width:none;
    height:auto;
    max-height:50px;
    object-fit:contain;
    object-position:left bottom;
  }

  /* Match the approved mock-up: a wide, quiet hero with copy and photo sharing one baseline. */
  .koharu-hero {
    width:100%;
    max-width:1460px;
    min-height:570px;
    margin:0 auto;
    padding:42px 34px 0;
    display:grid;
    grid-template-columns:minmax(0,44%) minmax(0,56%);
    column-gap:44px;
    align-items:end;
    background:var(--koharu-cream);
  }
  .koharu-hero-copy,
  .koharu-hero-image {
    height:500px;
    min-height:500px;
    align-self:end;
    margin-bottom:0;
  }
  .koharu-hero-copy {
    padding:58px 20px 0;
    display:flex;
    flex-direction:column;
  }
  .koharu-hero h1 {
    font-size:clamp(36px,3.25vw,50px);
    line-height:1.45;
  }
  .koharu-hero-lead {
    margin-top:30px;
  }
  .koharu-actions {
    margin-top:auto;
    margin-bottom:0;
    padding:0;
    display:flex;
    flex-wrap:nowrap;
    gap:14px;
    align-items:flex-end;
  }
  .koharu-button {
    min-width:0;
    width:calc(50% - 7px);
    min-height:52px;
    margin:0;
    border-radius:4px 4px 0 0;
  }
  .koharu-hero-image {
    margin:0;
    overflow:hidden;
  }
  .koharu-hero-image img {
    width:100%;
    height:500px;
    object-fit:cover;
    object-position:center;
  }
}

/* Conventional three-line icon: recognizable as a menu without adding visual weight. */
.koharu-guide-icon {
  display:flex;
  width:16px;
  height:14px;
  flex-direction:column;
  justify-content:space-between;
  gap:0;
}
.koharu-guide-icon i {
  display:block;
  width:16px;
  height:1.5px;
  background:currentColor;
  border-radius:1px;
}

@media (max-width:1180px) and (min-width:901px) {
  .koharu-brand-logo { width:245px; max-height:46px; }
  .koharu-hero { grid-template-columns:minmax(0,45%) minmax(0,55%); column-gap:30px; padding-left:24px; padding-right:24px; }
  .koharu-hero-copy { padding-left:12px; padding-right:12px; }
  .koharu-button { font-size:12px; padding-left:12px; padding-right:12px; }
}

@media (max-width:900px) {
  .koharu-brand-logo {
    width:205px;
    height:auto;
    max-height:40px;
    object-fit:contain;
  }
}

/* v1.6.1 logo correction — preserve the mark's true proportions. */
.koharu-brand-logo {
  width:270px;
  height:auto;
  max-height:none;
  object-fit:contain;
  object-position:left bottom;
}
@media (max-width:1180px) and (min-width:901px) {
  .koharu-brand-logo { width:245px; max-height:none; }
}
@media (max-width:900px) {
  .koharu-brand-logo { width:205px; height:auto; max-height:none; }
}

/* v1.7 — implement the approved hero mock-up exactly.
   Cache is busted in functions.php so these rules are guaranteed to load. */

/* Header logo: one clean artwork only. Prevent any inherited/background/pseudo artwork. */
.koharu-brand,
.koharu-brand-identity {
  background: none !important;
  background-image: none !important;
}
.koharu-brand::before,
.koharu-brand::after,
.koharu-brand-identity::before,
.koharu-brand-identity::after {
  content: none !important;
  display: none !important;
  background: none !important;
}
.koharu-brand-identity {
  overflow: hidden;
}
.koharu-brand-logo {
  display: block !important;
  width: 270px;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: left center !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}

@media (min-width: 901px) {
  /* One shared baseline: the photo bottom IS the hero bottom. */
  .koharu-hero {
    position: relative;
    width: 100%;
    max-width: 1460px;
    min-height: 570px;
    margin: 0 auto;
    padding: 42px 34px 0;
    display: grid;
    grid-template-columns: minmax(0,44%) minmax(0,56%);
    column-gap: 44px;
    align-items: end;
  }
  .koharu-hero-copy,
  .koharu-hero-image {
    position: relative;
    height: 500px;
    min-height: 500px;
    margin: 0;
    align-self: end;
  }
  .koharu-hero-copy {
    padding: 58px 20px 0;
    display: block;
  }
  .koharu-hero h1 {
    margin: 0;
  }
  .koharu-hero-lead {
    margin-top: 30px;
  }
  /* Pin the two buttons to the exact same baseline as the photo.
     This deliberately overrides the old flex/margin-auto behavior. */
  .koharu-actions {
    position: absolute !important;
    left: 20px;
    right: 20px;
    bottom: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex;
    flex-wrap: nowrap;
    gap: 14px;
    align-items: flex-end;
    transform: none !important;
  }
  .koharu-button {
    width: calc(50% - 7px);
    min-width: 0;
    min-height: 52px;
    margin: 0 !important;
    padding: 10px 14px;
    border-radius: 4px 4px 0 0;
  }
  .koharu-hero-image {
    overflow: hidden;
  }
  .koharu-hero-image img {
    display: block;
    width: 100%;
    height: 500px !important;
    max-height: none !important;
    object-fit: cover;
    object-position: center;
    margin: 0 !important;
  }
}

/* Familiar hamburger icon for the clinic guide dropdown. */
.koharu-guide-icon {
  display: flex !important;
  width: 18px;
  height: 14px;
  flex-direction: column;
  justify-content: space-between;
}
.koharu-guide-icon i {
  display: block;
  width: 18px;
  height: 2px;
  background: currentColor;
  border-radius: 2px;
}

@media (max-width: 1180px) and (min-width: 901px) {
  .koharu-brand-logo { width: 245px; }
  .koharu-actions { left: 12px; right: 12px; }
}
@media (max-width: 900px) {
  .koharu-brand-logo { width: 205px; }
}

/* v1.8 — compact approved hero direction: smaller photo, tighter rhythm, clean one-piece logo */
.koharu-brand-identity { overflow:visible !important; }
.koharu-brand-logo {
  display:block !important;
  width:270px !important;
  height:auto !important;
  max-height:62px !important;
  object-fit:contain !important;
  object-position:left center !important;
  margin:0 !important;
  padding:0 !important;
  background:none !important;
}
@media (min-width:901px) {
  .koharu-hero {
    max-width:1460px;
    min-height:510px;
    padding:34px 42px 0;
    grid-template-columns:minmax(0,44%) minmax(0,56%);
    column-gap:46px;
    align-items:end;
  }
  .koharu-hero-copy,
  .koharu-hero-image {
    height:440px;
    min-height:440px;
  }
  .koharu-hero-copy {
    padding:42px 20px 0;
  }
  .koharu-hero h1 {
    font-size:clamp(35px,3.05vw,47px);
    line-height:1.42;
  }
  .koharu-hero-lead {
    margin-top:22px;
    font-size:clamp(16px,1.1vw,18px);
    line-height:1.75;
  }
  .koharu-actions {
    left:20px;
    right:20px;
    bottom:0 !important;
    gap:14px;
  }
  .koharu-button {
    min-height:50px;
    padding:9px 14px;
  }
  .koharu-hero-image img {
    height:440px !important;
    object-fit:cover;
    object-position:center;
  }
}
@media (max-width:1180px) and (min-width:901px) {
  .koharu-brand-logo { width:245px !important; }
  .koharu-hero { min-height:480px; padding:30px 26px 0; column-gap:30px; }
  .koharu-hero-copy,.koharu-hero-image { height:420px; min-height:420px; }
  .koharu-hero-image img { height:420px !important; }
  .koharu-hero-copy { padding-top:34px; padding-left:12px; padding-right:12px; }
  .koharu-actions { left:12px; right:12px; }
}
@media (max-width:900px) {
  .koharu-brand-logo { width:205px !important; max-height:48px !important; }
}

/* v1.9 — restore approved v1.7 wordmark/ruby and compact the desktop hero by roughly one button width. */
.koharu-brand-identity,
.koharu-brand-identity::before,
.koharu-brand-identity::after,
.koharu-brand::before,
.koharu-brand::after {
  background:none !important;
  background-image:none !important;
  content:none !important;
}
.koharu-brand-logo {
  display:block !important;
  width:270px !important;
  height:auto !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:left center !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
}
@media (min-width:901px) {
  .koharu-hero {
    max-width:1240px !important;
    min-height:470px !important;
    padding:30px 30px 0 !important;
    grid-template-columns:minmax(0,44%) minmax(0,56%) !important;
    column-gap:34px !important;
    align-items:end !important;
  }
  .koharu-hero-copy,
  .koharu-hero-image {
    height:400px !important;
    min-height:400px !important;
  }
  .koharu-hero-copy {
    position:relative !important;
    padding:34px 14px 0 !important;
  }
  .koharu-hero h1 {
    font-size:clamp(34px,2.85vw,44px) !important;
    line-height:1.40 !important;
  }
  .koharu-hero-lead {
    margin-top:20px !important;
    font-size:clamp(15px,1.05vw,17px) !important;
    line-height:1.72 !important;
  }
  .koharu-actions {
    left:14px !important;
    right:14px !important;
    bottom:0 !important;
    gap:12px !important;
  }
  .koharu-button {
    min-height:48px !important;
    padding:8px 13px !important;
  }
  .koharu-hero-image {
    align-self:end !important;
    overflow:hidden !important;
  }
  .koharu-hero-image img {
    width:100% !important;
    height:400px !important;
    object-fit:cover !important;
    object-position:center !important;
  }
}
@media (max-width:1180px) and (min-width:901px) {
  .koharu-brand-logo { width:245px !important; }
  .koharu-hero {
    max-width:1080px !important;
    min-height:440px !important;
    padding:26px 22px 0 !important;
    column-gap:26px !important;
  }
  .koharu-hero-copy,
  .koharu-hero-image { height:380px !important; min-height:380px !important; }
  .koharu-hero-image img { height:380px !important; }
  .koharu-hero-copy { padding:28px 10px 0 !important; }
  .koharu-actions { left:10px !important; right:10px !important; }
}
@media (max-width:900px) {
  .koharu-brand-logo { width:205px !important; height:auto !important; max-height:none !important; }
}

/* v2.0 — approved visual mock-up: clean logo + ruby, larger staggered hero copy, generous rhythm. */
.koharu-logo-wrap {
  position:relative;
  display:inline-block;
  width:270px;
  line-height:0;
}
.koharu-brand-logo {
  display:block !important;
  width:270px !important;
  height:auto !important;
  max-height:none !important;
  margin:0 !important;
  padding:0 !important;
  object-fit:contain !important;
  background:transparent !important;
}
.koharu-logo-ruby {
  position:absolute;
  left:76px;
  top:-5px;
  width:42px;
  color:#111;
  font-family:"Noto Sans JP",sans-serif;
  font-size:8px;
  font-weight:500;
  line-height:1;
  letter-spacing:.34em;
  text-align:justify;
  text-align-last:justify;
  white-space:nowrap;
  pointer-events:none;
}
@media (min-width:901px) {
  .koharu-hero {
    max-width:1240px !important;
    min-height:500px !important;
    padding:30px 30px 0 !important;
    grid-template-columns:minmax(0,48%) minmax(0,52%) !important;
    column-gap:42px !important;
    align-items:end !important;
  }
  .koharu-hero-copy,
  .koharu-hero-image {
    height:430px !important;
    min-height:430px !important;
  }
  .koharu-hero-copy {
    position:relative !important;
    padding:20px 10px 0 !important;
  }
  .koharu-hero h1 {
    font-size:clamp(48px,4.15vw,64px) !important;
    line-height:1.55 !important;
    letter-spacing:.025em !important;
    white-space:nowrap;
  }
  .koharu-hero-line2 {
    display:inline-block;
    margin-left:1.05em;
  }
  .koharu-hero-lead {
    margin-top:56px !important;
    font-size:clamp(22px,1.55vw,26px) !important;
    line-height:1.85 !important;
  }
  .koharu-actions {
    left:10px !important;
    right:10px !important;
    bottom:0 !important;
    gap:14px !important;
  }
  .koharu-button {
    min-height:52px !important;
    padding:10px 14px !important;
  }
  .koharu-hero-image {
    overflow:hidden !important;
  }
  .koharu-hero-image img {
    width:100% !important;
    height:430px !important;
    object-fit:cover !important;
    object-position:center !important;
  }
}
@media (max-width:1180px) and (min-width:901px) {
  .koharu-logo-wrap,.koharu-brand-logo { width:245px !important; }
  .koharu-logo-ruby { left:69px; top:-4px; width:38px; font-size:7px; }
  .koharu-hero h1 { font-size:clamp(42px,4vw,50px) !important; }
  .koharu-hero-lead { font-size:20px !important; margin-top:44px !important; }
}
@media (max-width:900px) {
  .koharu-logo-wrap,.koharu-brand-logo { width:205px !important; }
  .koharu-logo-ruby { left:58px; top:-3px; width:31px; font-size:6px; }
  .koharu-hero-line2 { display:inline; margin-left:0; }
}


/* v2.1 — logo ruby restored exactly to v1.7 artwork. Ruby is baked into the logo image; no overlay. */
.koharu-logo-ruby { display:none !important; }
.koharu-logo-wrap { width:270px !important; }
.koharu-brand-logo { width:270px !important; height:auto !important; object-fit:contain !important; }
@media (max-width:1180px) and (min-width:901px) {
  .koharu-logo-wrap,.koharu-brand-logo { width:245px !important; }
}
@media (max-width:900px) {
  .koharu-logo-wrap,.koharu-brand-logo { width:205px !important; }
}

/* v2.2 — FINAL header-logo cleanup only. Hero is intentionally untouched.
   Use one clean raster logo with the exact v1.7 ruby baked in; suppress all legacy artwork. */
.koharu-logo-ruby { display:none !important; }
.koharu-brand,
.koharu-brand-identity,
.koharu-logo-wrap,
.koharu-brand-logo {
  background:none !important;
  background-image:none !important;
  box-shadow:none !important;
  border:0 !important;
}
.koharu-brand::before,.koharu-brand::after,
.koharu-brand-identity::before,.koharu-brand-identity::after,
.koharu-logo-wrap::before,.koharu-logo-wrap::after,
.koharu-brand-logo::before,.koharu-brand-logo::after {
  content:none !important;
  display:none !important;
  background:none !important;
  background-image:none !important;
}
.koharu-brand-identity { overflow:visible !important; }
.koharu-logo-wrap { display:inline-block !important; line-height:0 !important; }
.koharu-brand-logo { display:block !important; }

/* v2.3 — use the user's supplied complete logo artwork as-is.
   No overlays, generated ruby, masks, or pseudo-elements. Hero remains untouched. */
.koharu-logo-ruby { display:none !important; }
.koharu-brand-identity {
  height:58px !important;
  overflow:visible !important;
  align-items:center !important;
}
.koharu-logo-wrap {
  display:block !important;
  width:270px !important;
  height:58px !important;
  line-height:0 !important;
  overflow:visible !important;
}
.koharu-brand-logo {
  display:block !important;
  width:270px !important;
  height:auto !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:left center !important;
  margin:0 !important;
  padding:0 !important;
  background:none !important;
}
@media (max-width:1180px) and (min-width:901px) {
  .koharu-logo-wrap,.koharu-brand-logo { width:245px !important; }
  .koharu-logo-wrap,.koharu-brand-identity { height:52px !important; }
}
@media (max-width:900px) {
  .koharu-logo-wrap,.koharu-brand-logo { width:205px !important; }
  .koharu-logo-wrap,.koharu-brand-identity { height:44px !important; }
}


/* v2.6 — approved image sizing/alignment + soft photo-to-background fades. */
@media (min-width:901px) {
  /* FV: preserve the approved composition, adding only a restrained fade on the copy-facing edge. */
  .koharu-hero-image { position:relative; isolation:isolate; }
  .koharu-hero-image::after {
    content:""; position:absolute; inset:0; z-index:2; pointer-events:none;
    background:linear-gradient(90deg, var(--koharu-cream) 0%, rgba(247,245,241,.72) 5%, rgba(247,245,241,.26) 11%, rgba(247,245,241,0) 20%);
  }

  /* The two introductory blocks use equal photo dimensions and aligned headings. */
  .koharu-empathy-split,
  .koharu-philosophy .koharu-split {
    max-width:1180px;
    grid-template-columns:minmax(0,50%) minmax(0,50%);
    gap:0;
    align-items:stretch;
  }
  .koharu-empathy .koharu-split-copy,
  .koharu-philosophy .koharu-split-copy {
    width:100%; max-width:none; min-height:520px;
    padding:34px clamp(42px,4.4vw,68px) 28px;
    display:flex; flex-direction:column; justify-content:flex-start;
  }
  .koharu-empathy .koharu-split-copy h2,
  .koharu-philosophy .koharu-split-copy h2 { min-height:94px; margin-bottom:32px; }
  .koharu-empathy-photo,
  .koharu-philosophy .koharu-square-photo {
    position:relative; isolation:isolate;
    width:100%; height:520px; margin:0; justify-self:stretch; overflow:hidden;
  }
  .koharu-empathy-photo img,
  .koharu-philosophy .koharu-square-photo img {
    width:100%; height:100%; aspect-ratio:auto; object-fit:cover; box-shadow:none;
  }
  .koharu-empathy-photo img { object-position:center 42%; }
  .koharu-philosophy .koharu-square-photo img { object-position:center; }

  /* First block: copy left / photo right. Fade photo toward the left copy. */
  .koharu-empathy-photo::after {
    content:""; position:absolute; inset:0; z-index:2; pointer-events:none;
    background:linear-gradient(90deg, var(--koharu-paper) 0%, rgba(251,250,247,.72) 5%, rgba(251,250,247,.24) 12%, rgba(251,250,247,0) 22%);
  }
  /* Second block: photo left / copy right. Fade photo toward the right copy. */
  .koharu-philosophy .koharu-square-photo::after {
    content:""; position:absolute; inset:0; z-index:2; pointer-events:none;
    background:linear-gradient(270deg, #ede8e0 0%, rgba(237,232,224,.74) 5%, rgba(237,232,224,.25) 12%, rgba(237,232,224,0) 22%);
  }
}

@media (max-width:900px) {
  .koharu-hero-image,
  .koharu-empathy-photo,
  .koharu-philosophy .koharu-square-photo { position:relative; isolation:isolate; }
  .koharu-hero-image::after {
    content:""; position:absolute; inset:0; z-index:2; pointer-events:none;
    background:linear-gradient(0deg, var(--koharu-cream) 0%, rgba(247,245,241,.48) 7%, rgba(247,245,241,0) 18%);
  }
  .koharu-empathy-photo::after,
  .koharu-philosophy .koharu-square-photo::after {
    content:""; position:absolute; inset:0; z-index:2; pointer-events:none;
    background:linear-gradient(0deg, var(--koharu-paper) 0%, rgba(251,250,247,.44) 6%, rgba(251,250,247,0) 18%);
  }
  .koharu-philosophy .koharu-square-photo::after {
    background:linear-gradient(0deg, #ede8e0 0%, rgba(237,232,224,.46) 6%, rgba(237,232,224,0) 18%);
  }
  .koharu-empathy-photo,
  .koharu-philosophy .koharu-square-photo { width:100%; }
}

/* v2.7 — empathy section: crop the treatment photo lower and let copy continue beneath it. */
@media (min-width:901px) {
  .koharu-empathy-flow {
    max-width:1180px;
    margin:0 auto;
    display:block;
  }
  .koharu-empathy-flow::after {
    content:"";
    display:block;
    clear:both;
  }
  .koharu-empathy-flow .koharu-empathy-photo {
    float:right;
    width:50%;
    height:520px;
    margin:0 0 28px 0;
    position:relative;
    isolation:isolate;
    overflow:hidden;
  }
  .koharu-empathy-flow .koharu-empathy-photo img {
    width:100%;
    height:100%;
    aspect-ratio:auto;
    object-fit:cover;
    object-position:center 62%;
    box-shadow:none;
  }
  .koharu-empathy-flow .koharu-empathy-photo::after {
    content:"";
    position:absolute;
    inset:0;
    z-index:2;
    pointer-events:none;
    background:linear-gradient(90deg, var(--koharu-paper) 0%, rgba(251,250,247,.72) 5%, rgba(251,250,247,.24) 12%, rgba(251,250,247,0) 22%);
  }
  .koharu-empathy-flow .koharu-empathy-copy {
    width:auto;
    max-width:none;
    min-height:0;
    padding:34px clamp(42px,4.4vw,68px) 0;
    display:block;
  }
  .koharu-empathy-flow .koharu-empathy-copy h2 {
    min-height:94px;
    margin-bottom:32px;
    padding-right:calc(50% + clamp(18px,2.2vw,34px));
  }
  .koharu-empathy-flow .koharu-prose {
    font-size:inherit;
  }
  .koharu-empathy-flow .koharu-prose p {
    max-width:none;
  }
}

@media (max-width:900px) {
  .koharu-empathy-flow {
    display:flex;
    flex-direction:column;
    max-width:100%;
  }
  .koharu-empathy-flow .koharu-empathy-copy {
    order:1;
    max-width:none;
  }
  .koharu-empathy-flow .koharu-empathy-photo {
    order:2;
    width:100%;
    height:auto;
    margin:0;
  }
  .koharu-empathy-flow .koharu-empathy-photo img {
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
    object-position:center 62%;
  }
}

/* v2.8 — empathy crop refinement + patient voices */
@media (min-width:901px) {
  .koharu-empathy-flow .koharu-empathy-photo { width:48%; height:610px; margin:0 0 30px 22px; }
  .koharu-empathy-flow .koharu-empathy-photo img { object-position:center 48%; }
  .koharu-empathy-flow .koharu-empathy-copy h2 { padding-right:calc(48% + clamp(18px,2.2vw,34px)); }
  .koharu-empathy-flow .koharu-prose p { max-width:none; }
}
.koharu-reviews { background:#f4f0e9; }
.koharu-reviews-heading { max-width:760px; margin-left:auto; margin-right:auto; text-align:center; }
.koharu-reviews-heading .koharu-eyebrow { margin:0 0 12px; font-size:12px; letter-spacing:.22em; color:#8a725b; }
.koharu-reviews-heading > p:last-child { margin:18px auto 0; line-height:1.9; }
.koharu-review-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:42px; }
.koharu-review-card { position:relative; padding:34px 30px 30px; background:rgba(255,255,255,.78); border:1px solid rgba(89,68,50,.13); border-radius:4px; box-shadow:0 12px 34px rgba(61,46,34,.06); }
.koharu-review-card::before { content:'“'; position:absolute; top:4px; right:20px; font-family:Georgia,serif; font-size:72px; line-height:1; color:rgba(112,88,66,.10); }
.koharu-review-stars { margin-bottom:18px; font-size:17px; letter-spacing:.12em; color:#8a725b; }
.koharu-review-text { position:relative; margin:0; line-height:2; }
.koharu-review-meta { margin:20px 0 0; padding-top:16px; border-top:1px solid rgba(89,68,50,.12); font-size:13px; color:#756b62; }
.koharu-review-note { margin:22px auto 0; max-width:900px; text-align:center; font-size:12px; color:#7a7169; }
.koharu-review-actions { margin-top:28px; }
.koharu-next-links { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-top:58px; padding-top:44px; border-top:1px solid rgba(89,68,50,.14); }
.koharu-next-links a { display:flex; min-height:118px; padding:22px 20px; flex-direction:column; justify-content:center; text-decoration:none; background:rgba(255,255,255,.52); border:1px solid rgba(89,68,50,.14); color:inherit; transition:transform .2s ease,background .2s ease; }
.koharu-next-links a:hover { transform:translateY(-2px); background:#fff; }
.koharu-next-links span { font-size:17px; font-weight:600; }
.koharu-next-links small { margin-top:7px; font-size:12px; color:#7a7169; }
.koharu-review-cta { margin-top:38px; text-align:center; }
.koharu-review-cta p { margin:0 0 18px; }
@media (max-width:900px) { .koharu-review-grid { grid-template-columns:1fr; gap:16px; margin-top:30px; } .koharu-review-card { padding:28px 24px 24px; } .koharu-next-links { grid-template-columns:1fr 1fr; margin-top:42px; padding-top:32px; } }
@media (max-width:560px) { .koharu-next-links { grid-template-columns:1fr; } }

/* v2.9 — fixed two-column empathy + paper-style testimonials + visual navigation cards */
@media (min-width:901px) {
  .koharu-empathy-flow {
    max-width:1120px;
    margin:0 auto;
    display:grid;
    grid-template-columns:minmax(0,52%) minmax(0,48%);
    gap:clamp(42px,5vw,72px);
    align-items:start;
  }
  .koharu-empathy-flow::after { display:none; }
  .koharu-empathy-flow .koharu-empathy-copy {
    grid-column:1;
    grid-row:1;
    width:auto;
    max-width:none;
    padding:26px 0 0;
  }
  .koharu-empathy-flow .koharu-empathy-copy h2 {
    min-height:0;
    padding-right:0;
    margin-bottom:34px;
  }
  .koharu-empathy-flow .koharu-prose p { max-width:none; }
  .koharu-empathy-flow .koharu-empathy-photo {
    grid-column:2;
    grid-row:1;
    float:none;
    width:100%;
    height:auto;
    margin:0;
    aspect-ratio:3/4;
    align-self:start;
    overflow:hidden;
  }
  .koharu-empathy-flow .koharu-empathy-photo img {
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 50%;
  }
}

.koharu-reviews {
  background:linear-gradient(180deg,#f5f1e9 0%,#f8f5ef 62%,#fbf8f3 100%);
}
.koharu-reviews-heading { max-width:760px; margin-left:auto; margin-right:auto; text-align:center; }
.koharu-reviews-heading .koharu-eyebrow { margin:0 0 12px; font-size:12px; letter-spacing:.22em; color:#8a725b; }
.koharu-reviews-heading > p:last-child { margin:18px auto 0; line-height:1.9; }
.koharu-review-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  margin-top:42px;
  align-items:stretch;
}
.koharu-review-card {
  position:relative;
  min-height:470px;
  padding:34px 30px 112px;
  background:
    linear-gradient(135deg,rgba(255,255,255,.68),rgba(255,255,255,0) 44%),
    #fffdf7;
  border:1px solid rgba(111,84,59,.14);
  border-radius:3px;
  box-shadow:0 13px 30px rgba(65,47,31,.08),0 2px 3px rgba(65,47,31,.04);
  transform-origin:center;
}
.koharu-review-card:nth-child(1) { transform:rotate(-.35deg); }
.koharu-review-card:nth-child(2) { transform:rotate(.25deg); }
.koharu-review-card:nth-child(3) { transform:rotate(-.18deg); }
.koharu-review-card::before {
  content:"";
  position:absolute;
  left:18px;
  right:18px;
  top:18px;
  height:1px;
  background:rgba(124,95,68,.11);
}
.koharu-review-stars { margin:7px 0 14px; font-size:16px; letter-spacing:.1em; color:#725136; }
.koharu-review-card h3 {
  margin:0 0 16px;
  color:#5b3923;
  font-family:"Noto Serif JP",serif;
  font-size:clamp(18px,1.4vw,21px);
  font-weight:600;
  line-height:1.55;
}
.koharu-review-meta {
  margin:0 0 18px;
  padding:8px 10px;
  border:0;
  border-radius:4px;
  background:#f4e9cf;
  color:#6a5b4c;
  font-size:12px;
  line-height:1.6;
}
.koharu-review-text { position:relative; margin:0 0 12px; font-size:14px; line-height:1.85; }
.koharu-review-photo {
  position:absolute;
  right:20px;
  bottom:20px;
  width:104px;
  height:78px;
  overflow:hidden;
  border:3px solid rgba(255,255,255,.94);
  border-radius:4px;
  box-shadow:0 5px 14px rgba(57,42,29,.16);
  transform:rotate(1deg);
}
.koharu-review-card:nth-child(2) .koharu-review-photo { transform:rotate(-1.2deg); }
.koharu-review-card:nth-child(3) .koharu-review-photo { transform:rotate(.6deg); }
.koharu-review-photo img { width:100%; height:100%; object-fit:cover; object-position:center; }
.koharu-review-note { margin:24px auto 0; max-width:900px; text-align:center; font-size:12px; color:#7a7169; }
.koharu-review-actions { margin-top:24px; }
.koharu-review-actions .koharu-button { min-width:280px; }

.koharu-next-links {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
  margin-top:58px;
  padding-top:46px;
  border-top:1px solid rgba(89,68,50,.13);
}
.koharu-next-card {
  position:relative;
  display:block;
  min-height:240px;
  overflow:hidden;
  border:1px solid rgba(89,68,50,.12);
  border-radius:5px;
  background:#fff;
  color:inherit;
  text-decoration:none;
  box-shadow:0 8px 22px rgba(62,46,32,.06);
  transition:transform .22s ease, box-shadow .22s ease;
}
.koharu-next-card:hover { transform:translateY(-3px); box-shadow:0 13px 28px rgba(62,46,32,.10); }
.koharu-next-card > img { width:100%; height:160px; object-fit:cover; transition:transform .35s ease; }
.koharu-next-card:hover > img { transform:scale(1.025); }
.koharu-next-card:nth-child(1) > img { object-position:center 32%; }
.koharu-next-card:nth-child(2) > img { object-position:center 50%; }
.koharu-next-card:nth-child(3) > img { object-position:center 23%; }
.koharu-next-card:nth-child(4) > img { object-position:center 48%; }
.koharu-next-card-copy {
  display:flex;
  min-height:80px;
  padding:15px 42px 14px 17px;
  flex-direction:column;
  justify-content:center;
  background:rgba(251,248,242,.96);
}
.koharu-next-card-copy strong { font-family:"Noto Serif JP",serif; font-size:17px; line-height:1.5; font-weight:600; }
.koharu-next-card-copy small { margin-top:5px; color:#776b61; font-size:11.5px; line-height:1.55; }
.koharu-next-arrow { position:absolute; right:16px; bottom:27px; color:#69472f; font-size:25px; line-height:1; }

.koharu-final-cta { max-width:830px; margin:38px auto 0; }
.koharu-final-cta-link {
  display:grid;
  grid-template-columns:58px 1fr 48px;
  gap:16px;
  align-items:center;
  min-height:82px;
  padding:12px 24px;
  border-radius:5px;
  background:#5b351f;
  color:#fff;
  text-decoration:none;
  box-shadow:0 11px 26px rgba(65,40,24,.16);
  transition:transform .22s ease, background .22s ease;
}
.koharu-final-cta-link:hover { transform:translateY(-2px); background:#68402a; }
.koharu-final-cta-icon { display:flex; align-items:center; justify-content:center; }
.koharu-final-cta-icon svg { width:42px; height:42px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.koharu-final-cta-copy { display:flex; flex-direction:column; }
.koharu-final-cta-copy strong { font-family:"Noto Serif JP",serif; font-size:23px; font-weight:600; letter-spacing:.04em; line-height:1.45; }
.koharu-final-cta-copy small { margin-top:3px; font-size:12px; opacity:.88; }
.koharu-final-cta-arrow { font-size:34px; text-align:right; }

@media (max-width:900px) {
  .koharu-review-grid { grid-template-columns:1fr; gap:22px; margin-top:30px; }
  .koharu-review-card { min-height:0; padding:30px 24px 112px; transform:none !important; }
  .koharu-review-photo { width:102px; height:76px; }
  .koharu-next-links { grid-template-columns:1fr 1fr; margin-top:44px; padding-top:34px; }
  .koharu-next-card { min-height:230px; }
  .koharu-next-card > img { height:155px; }
}
@media (max-width:560px) {
  .koharu-next-links { grid-template-columns:1fr; }
  .koharu-next-card { min-height:0; }
  .koharu-next-card > img { height:190px; }
  .koharu-final-cta-link { grid-template-columns:44px 1fr 30px; gap:10px; padding:12px 16px; }
  .koharu-final-cta-icon svg { width:34px; height:34px; }
  .koharu-final-cta-copy strong { font-size:19px; }
  .koharu-final-cta-copy small { font-size:10.5px; }
  .koharu-final-cta-arrow { font-size:26px; }
}


/* v2.9.3 — compact reviews + overlay link cards */
.koharu-reviews {
  padding-top:clamp(54px,5vw,72px) !important;
  padding-bottom:clamp(64px,6vw,86px) !important;
}
.koharu-reviews-heading {
  margin-bottom:0 !important;
}
.koharu-reviews-heading h2 {
  margin:0 !important;
}
.koharu-reviews-heading > p:last-child {
  margin:8px auto 0 !important;
  line-height:1.65 !important;
}
.koharu-review-grid {
  gap:16px !important;
  margin-top:18px !important;
}
.koharu-review-card {
  min-height:0 !important;
  padding:18px 18px 12px !important;
  display:flex;
  flex-direction:column;
}
.koharu-review-card::before { left:14px; right:14px; top:12px; }
.koharu-review-stars { margin:2px 0 8px !important; font-size:15px !important; }
.koharu-review-card h3 { margin:0 0 8px !important; line-height:1.42 !important; }
.koharu-review-meta { margin:0 0 9px !important; padding:5px 7px !important; line-height:1.45 !important; }
.koharu-review-text { margin:0 0 8px !important; line-height:1.7 !important; }
.koharu-review-bottom {
  display:grid;
  grid-template-columns:minmax(0,1fr) 104px;
  gap:10px;
  align-items:end;
  margin-top:auto;
}
.koharu-review-bottom .koharu-review-text { margin:0 !important; }
.koharu-review-photo {
  position:static !important;
  width:104px !important;
  height:78px !important;
  margin:0 !important;
  align-self:end;
  overflow:hidden;
  border:2px solid rgba(255,255,255,.94) !important;
  border-radius:4px;
  box-shadow:0 4px 12px rgba(57,42,29,.14) !important;
  transform:none !important;
}
.koharu-review-card:nth-child(2) .koharu-review-photo,
.koharu-review-card:nth-child(3) .koharu-review-photo { transform:none !important; }
.koharu-review-photo img { width:100%; height:100%; object-fit:cover; object-position:center center; }
.koharu-review-note { margin:14px auto 0 !important; }
.koharu-review-actions { margin-top:14px !important; }

.koharu-next-links {
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:14px !important;
  margin-top:34px !important;
  padding-top:30px !important;
}
.koharu-next-card {
  height:220px !important;
  min-height:220px !important;
  overflow:hidden;
}
.koharu-next-card > img {
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  display:block;
}
.koharu-next-card-copy {
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:2;
  min-height:76px !important;
  padding:11px 42px 10px 16px !important;
  justify-content:center;
  background:rgba(247,241,232,.82) !important;
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
}
.koharu-next-card-copy strong { color:#44280c !important; font-size:17px !important; }
.koharu-next-card-copy small { color:#5f5146 !important; margin-top:3px !important; }
.koharu-next-arrow {
  z-index:3;
  right:14px !important;
  bottom:22px !important;
  color:#5a3821 !important;
}

.koharu-final-cta-link,
.koharu-final-cta-link:visited,
.koharu-final-cta-link:hover,
.koharu-final-cta-link strong,
.koharu-final-cta-link small,
.koharu-final-cta-link span {
  color:#fff !important;
}

@media (max-width:900px) {
  .koharu-reviews { padding-top:48px !important; padding-bottom:64px !important; }
  .koharu-review-grid { margin-top:16px !important; gap:16px !important; }
  .koharu-review-card { padding:17px 16px 11px !important; }
  .koharu-review-bottom { grid-template-columns:minmax(0,1fr) 102px; gap:9px; }
  .koharu-review-photo { width:102px !important; height:76px !important; }
  .koharu-next-links { grid-template-columns:1fr 1fr !important; margin-top:30px !important; padding-top:26px !important; }
  .koharu-next-card { height:215px !important; min-height:215px !important; }
}
@media (max-width:560px) {
  .koharu-review-bottom { grid-template-columns:minmax(0,1fr) 94px; }
  .koharu-review-photo { width:94px !important; height:70px !important; }
  .koharu-next-links { grid-template-columns:1fr !important; }
  .koharu-next-card { height:210px !important; min-height:210px !important; }
}

/* v2.9.4 — final spacing and link-card crop refinements */
/* Patient reviews: remove the visual blank line between body paragraphs. */
.koharu-review-card > .koharu-review-text {
  margin-bottom:0 !important;
}
.koharu-review-bottom {
  margin-top:0 !important;
}
.koharu-review-bottom .koharu-review-text {
  padding-top:0 !important;
}

/* Link-card crops: keep the useful subject matter above the translucent text band. */
.koharu-next-card:nth-child(2) > img {
  object-position:center 72% !important; /* chairs + table; trim ceiling */
}
.koharu-next-card:nth-child(3) > img {
  object-position:center 22% !important; /* director: head near top, full face above band */
}
.koharu-next-card:nth-child(4) > img {
  object-position:center 82% !important; /* access: show as much storefront/lower facade as possible */
}

@media (max-width:900px) {
  .koharu-next-card:nth-child(2) > img { object-position:center 70% !important; }
  .koharu-next-card:nth-child(3) > img { object-position:center 20% !important; }
  .koharu-next-card:nth-child(4) > img { object-position:center 80% !important; }
}


/* v2.9.5 — responsive repair + final crop/footer refinements */
/* Review photos: keep all three thumbnails on one visual baseline and exactly the same size. */
.koharu-review-grid { align-items:stretch !important; }
.koharu-review-card { height:100% !important; }
.koharu-review-bottom { margin-top:auto !important; align-items:end !important; }
.koharu-review-photo {
  width:104px !important;
  height:78px !important;
  min-width:104px !important;
  min-height:78px !important;
  max-width:104px !important;
  max-height:78px !important;
}
.koharu-review-photo img { width:100% !important; height:100% !important; object-fit:cover !important; }
.koharu-review-card:nth-child(1) .koharu-review-photo img { object-position:center 46% !important; }
.koharu-review-card:nth-child(2) .koharu-review-photo img { object-position:center 50% !important; }
.koharu-review-card:nth-child(3) .koharu-review-photo img { object-position:center 47% !important; }

/* Move only cards 2–4 upward inside their fixed card frames. Card 1 stays unchanged. */
.koharu-next-card:nth-child(2) > img { object-position:center 60% !important; }
.koharu-next-card:nth-child(3) > img { object-position:center 10% !important; }
.koharu-next-card:nth-child(4) > img { object-position:center 66% !important; }

/* Make the dark footer lighter in visual weight without changing its information hierarchy. */
.koharu-footer-inner { padding:34px 28px 24px !important; gap:34px !important; }
.koharu-footer-name { margin-bottom:8px !important; font-size:20px !important; }
.koharu-footer-links { gap:6px !important; }
.koharu-copyright { padding:10px 28px !important; }

/* Front-page mobile repair: explicitly neutralize legacy desktop/min-width rules. */
@media (max-width:900px) {
  html, body.home, body.home .koharu-home,
  .koharu-site-header, .koharu-header-inner,
  .koharu-hero, .koharu-section,
  .koharu-empathy-flow, .koharu-split,
  .koharu-split-copy, .koharu-empathy-copy,
  .koharu-hero-copy, .koharu-hero-image,
  .koharu-empathy-photo, .koharu-philosophy .koharu-square-photo {
    min-width:0 !important;
    max-width:100% !important;
    box-sizing:border-box !important;
  }
  body.home { overflow-x:hidden !important; }
  body.home .koharu-home { width:100% !important; overflow-x:hidden !important; }

  /* Header */
  .koharu-header-inner {
    width:100% !important;
    min-height:64px !important;
    padding:7px 14px 8px !important;
    gap:8px !important;
    align-items:center !important;
  }
  .koharu-brand { width:calc(100% - 52px) !important; min-width:0 !important; max-width:310px !important; gap:2px !important; }
  .koharu-brand-tagline { display:none !important; }
  .koharu-brand-identity { width:100% !important; height:auto !important; min-width:0 !important; }
  .koharu-logo-wrap { width:100% !important; max-width:230px !important; overflow:hidden !important; }
  .koharu-brand-logo { width:100% !important; height:auto !important; max-height:46px !important; object-fit:contain !important; object-position:left center !important; }
  .koharu-menu-toggle {
    display:inline-flex !important;
    width:42px !important;
    min-width:42px !important;
    height:38px !important;
    min-height:38px !important;
    padding:0 !important;
    position:relative !important;
    color:transparent !important;
    overflow:hidden !important;
  }
  .koharu-menu-toggle::before,
  .koharu-menu-toggle::after,
  .koharu-menu-toggle span::before {
    content:"";
    position:absolute;
    left:10px;
    width:20px;
    height:2px;
    background:var(--koharu-brown);
  }
  .koharu-menu-toggle::before { top:11px; }
  .koharu-menu-toggle span::before { top:18px; }
  .koharu-menu-toggle::after { top:25px; }

  /* Hero: true one-column mobile composition, with no desktop minimums surviving. */
  .koharu-hero {
    display:flex !important;
    flex-direction:column !important;
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
    gap:0 !important;
    background:var(--koharu-cream) !important;
  }
  .koharu-hero-copy {
    order:1 !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    padding:34px 20px 24px !important;
  }
  .koharu-hero h1 {
    width:100% !important;
    margin:0 !important;
    font-size:clamp(29px,8.4vw,36px) !important;
    line-height:1.48 !important;
    letter-spacing:.02em !important;
    white-space:normal !important;
    word-break:keep-all !important;
    overflow-wrap:normal !important;
    writing-mode:horizontal-tb !important;
  }
  .koharu-hero-line2 { display:block !important; margin-left:0 !important; white-space:normal !important; }
  .koharu-hero-lead {
    margin:22px 0 0 !important;
    font-size:15.5px !important;
    line-height:1.8 !important;
    white-space:normal !important;
  }
  .koharu-actions {
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:9px !important;
    margin-top:26px !important;
  }
  .koharu-actions .koharu-button {
    width:100% !important;
    min-width:0 !important;
    min-height:46px !important;
    padding:9px 8px !important;
    font-size:12px !important;
    border-radius:3px !important;
  }
  .koharu-hero-image {
    order:2 !important;
    width:calc(100% - 32px) !important;
    height:270px !important;
    min-height:0 !important;
    margin:0 16px 24px !important;
  }
  .koharu-hero-image img {
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center 48% !important;
    animation:none !important;
  }

  /* The first two narrative sections become clean one-column sections. */
  .koharu-section { width:100% !important; padding:56px 20px !important; }
  .koharu-empathy-flow,
  .koharu-philosophy .koharu-split {
    display:flex !important;
    flex-direction:column !important;
    width:100% !important;
    margin:0 auto !important;
    gap:0 !important;
  }
  .koharu-empathy-copy,
  .koharu-philosophy .koharu-split-copy {
    order:1 !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    padding:0 !important;
    margin:0 !important;
  }
  .koharu-empathy-copy h2,
  .koharu-philosophy .koharu-split-copy h2 {
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    min-height:0 !important;
    margin:0 0 26px !important;
    padding:0 !important;
    font-size:clamp(24px,6.9vw,29px) !important;
    line-height:1.55 !important;
    letter-spacing:.02em !important;
    white-space:normal !important;
    word-break:keep-all !important;
    overflow-wrap:normal !important;
    writing-mode:horizontal-tb !important;
  }
  .koharu-empathy-copy .koharu-prose,
  .koharu-philosophy .koharu-prose {
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    font-size:15px !important;
    line-height:1.9 !important;
  }
  .koharu-empathy-copy .koharu-prose p,
  .koharu-philosophy .koharu-prose p {
    width:auto !important;
    max-width:none !important;
    margin:0 0 1em !important;
    white-space:normal !important;
    word-break:normal !important;
    overflow-wrap:anywhere !important;
  }
  .koharu-empathy-photo,
  .koharu-philosophy .koharu-square-photo {
    order:2 !important;
    width:100% !important;
    height:auto !important;
    margin:26px 0 0 !important;
  }
  .koharu-empathy-photo img,
  .koharu-philosophy .koharu-square-photo img {
    width:100% !important;
    height:auto !important;
    aspect-ratio:4/3 !important;
    object-fit:cover !important;
  }
  .koharu-empathy-photo img { object-position:center 46% !important; }
  .koharu-philosophy .koharu-square-photo img { object-position:center 44% !important; }
  .koharu-empathy-photo::after,
  .koharu-philosophy .koharu-square-photo::after { display:none !important; }

  /* Keep the already-good cards stable. */
  .koharu-review-photo { width:102px !important; height:76px !important; min-width:102px !important; min-height:76px !important; }
  .koharu-next-card:nth-child(2) > img { object-position:center 58% !important; }
  .koharu-next-card:nth-child(3) > img { object-position:center 8% !important; }
  .koharu-next-card:nth-child(4) > img { object-position:center 64% !important; }

  .koharu-footer-inner { padding:28px 20px 20px !important; gap:22px !important; }
  .koharu-copyright { padding:9px 20px !important; }
}

@media (max-width:560px) {
  .koharu-hero-copy { padding:30px 18px 22px !important; }
  .koharu-hero h1 { font-size:clamp(28px,8.2vw,33px) !important; }
  .koharu-hero-image { width:calc(100% - 28px) !important; height:245px !important; margin:0 14px 20px !important; }
  .koharu-section { padding:50px 18px !important; }
  .koharu-empathy-copy h2,
  .koharu-philosophy .koharu-split-copy h2 { font-size:24px !important; }
  .koharu-review-photo { width:94px !important; height:70px !important; min-width:94px !important; min-height:70px !important; }
}

/* v2.9.6 — device-specific crop refinements. Desktop hero/narrative composition remains unchanged. */
/* Desktop link cards: move image content upward inside the existing fixed frames. */
@media (min-width:901px) {
  .koharu-next-card:nth-child(2) > img { object-position:center 100% !important; } /* hide wall clock; prioritize chairs/table */
  .koharu-next-card:nth-child(3) > img { object-position:center 100% !important; } /* director's head close to top edge */
  .koharu-next-card:nth-child(4) > img { object-position:center 100% !important; } /* sign top close to top edge; show lower facade */
}

@media (max-width:900px) {
  /* Mobile hero reading order: copy -> photo -> buttons. PC layout is untouched. */
  .koharu-hero-copy { display:contents !important; }
  .koharu-hero h1 {
    order:1 !important;
    margin:0 !important;
    padding:34px 20px 0 !important;
  }
  .koharu-hero-lead {
    order:1 !important;
    margin:0 !important;
    padding:20px 20px 22px !important;
  }
  .koharu-hero-image {
    order:2 !important;
    width:calc(100% - 32px) !important;
    margin:0 16px !important;
  }
  .koharu-actions {
    order:3 !important;
    width:calc(100% - 40px) !important;
    margin:18px 20px 26px !important;
  }

  /* Mobile-only narrative crops. Keep desktop crop exactly as before. */
  .koharu-empathy-photo img {
    aspect-ratio:4/3 !important;
    object-fit:cover !important;
    object-position:center 72% !important; /* reveal the practitioner's full face */
  }
  .koharu-philosophy .koharu-square-photo img {
    aspect-ratio:4/3 !important;
    object-fit:cover !important;
    object-position:center 24% !important; /* keep the patient's face clear */
  }

  /* Keep the same intent for link-card crops on mobile too. */
  .koharu-next-card:nth-child(2) > img { object-position:center 100% !important; }
  .koharu-next-card:nth-child(3) > img { object-position:center 100% !important; }
  .koharu-next-card:nth-child(4) > img { object-position:center 100% !important; }
}

@media (max-width:560px) {
  .koharu-hero h1 { padding:30px 18px 0 !important; }
  .koharu-hero-lead { padding:18px 18px 20px !important; }
  .koharu-hero-image { width:calc(100% - 28px) !important; margin:0 14px !important; }
  .koharu-actions { width:calc(100% - 36px) !important; margin:16px 18px 24px !important; }
}

/* v2.9.7 — precise crop correction + mobile narrative repair.
   Desktop hero and narrative sections remain untouched. */

/* Desktop link cards: use real image translation where object-position had no vertical effect. */
@media (min-width:901px) {
  /* First-time card stays exactly as before. */
  .koharu-next-card:nth-child(1) > img {
    height:100% !important;
    transform:none !important;
  }

  /* Fees / hours: remove the ceiling clock and bring chairs/table into the visible area. */
  .koharu-next-card:nth-child(2) > img {
    height:280px !important;
    max-width:none !important;
    object-fit:cover !important;
    object-position:center center !important;
    transform:translateY(-55px) !important;
  }

  /* Director: restore the portrait upward so the hairline sits close to the frame top. */
  .koharu-next-card:nth-child(3) > img {
    height:100% !important;
    object-fit:cover !important;
    object-position:center 20% !important;
    transform:none !important;
  }

  /* Access: crop away the upper wall/sky so the orange sign begins near the frame top. */
  .koharu-next-card:nth-child(4) > img {
    height:260px !important;
    max-width:none !important;
    object-fit:cover !important;
    object-position:center center !important;
    transform:translateY(-30px) !important;
  }

  .koharu-next-card:nth-child(2):hover > img { transform:translateY(-55px) scale(1.015) !important; }
  .koharu-next-card:nth-child(3):hover > img { transform:scale(1.015) !important; }
  .koharu-next-card:nth-child(4):hover > img { transform:translateY(-30px) scale(1.015) !important; }
}

@media (max-width:900px) {
  /* Keep the mobile hero order: copy -> image -> buttons. */
  .koharu-hero h1,
  .koharu-hero-lead { order:1 !important; }
  .koharu-hero-image { order:2 !important; }
  .koharu-actions { order:3 !important; }

  /* Empathy photo: the source is portrait. Use a taller mobile window so both faces can be seen. */
  .koharu-empathy-photo img {
    width:100% !important;
    height:auto !important;
    aspect-ratio:4 / 5 !important;
    object-fit:cover !important;
    object-position:center 42% !important;
  }

  /* Philosophy photo: shift the picture itself slightly downward while keeping the patient's face clear. */
  .koharu-philosophy .koharu-square-photo img {
    width:100% !important;
    height:auto !important;
    aspect-ratio:4 / 3 !important;
    object-fit:cover !important;
    object-position:center 18% !important;
  }

  /* The 1–3 point treatment block must also become a real one-column mobile section. */
  .koharu-minimal-needles,
  .koharu-minimal-needles .koharu-split-reverse,
  .koharu-minimal-needles .koharu-split-copy,
  .koharu-minimal-needles .koharu-prose,
  .koharu-minimal-needles .koharu-needle-visual {
    min-width:0 !important;
    max-width:100% !important;
    width:100% !important;
    box-sizing:border-box !important;
  }
  .koharu-minimal-needles .koharu-split-reverse {
    display:flex !important;
    flex-direction:column !important;
    grid-template-columns:none !important;
    gap:28px !important;
    margin:0 auto !important;
  }
  .koharu-minimal-needles .koharu-split-copy {
    order:1 !important;
    padding:0 !important;
    margin:0 !important;
  }
  .koharu-minimal-needles h2 {
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    margin:0 0 26px !important;
    padding:0 !important;
    white-space:normal !important;
    word-break:keep-all !important;
    overflow-wrap:normal !important;
    writing-mode:horizontal-tb !important;
    text-orientation:mixed !important;
    line-height:1.55 !important;
  }
  .koharu-minimal-needles .koharu-prose,
  .koharu-minimal-needles .koharu-prose p {
    display:block !important;
    width:100% !important;
    max-width:none !important;
    white-space:normal !important;
    word-break:normal !important;
    overflow-wrap:anywhere !important;
    writing-mode:horizontal-tb !important;
  }
  .koharu-minimal-needles .koharu-needle-visual {
    order:2 !important;
    margin:0 !important;
  }
  .koharu-minimal-needles .koharu-needle-visual img {
    width:100% !important;
    height:auto !important;
    aspect-ratio:4 / 3 !important;
    object-fit:cover !important;
    object-position:center center !important;
  }

  /* Undo the accidental v2.9.6 100% crops on mobile link cards. */
  .koharu-next-card:nth-child(2) > img { object-position:center 58% !important; transform:none !important; }
  .koharu-next-card:nth-child(3) > img { object-position:center 20% !important; transform:none !important; }
  .koharu-next-card:nth-child(4) > img { object-position:center 64% !important; transform:none !important; }
}

@media (max-width:560px) {
  .koharu-empathy-photo img { aspect-ratio:4 / 5 !important; object-position:center 40% !important; }
  .koharu-philosophy .koharu-square-photo img { object-position:center 16% !important; }
  .koharu-minimal-needles h2 { font-size:24px !important; }
}

/* v2.9.8 — stabilize desktop link-card crops and finish mobile image sizing. */
/* PC: preserve the approved page layout. Only the three requested card photographs are adjusted. */
@media (min-width:901px) {
  .koharu-next-card { position:relative !important; overflow:hidden !important; }

  /* Keep every card at the same fixed size; image movement must never affect layout flow. */
  .koharu-next-card > img {
    position:absolute !important;
    left:0 !important;
    top:0 !important;
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
  }

  .koharu-next-card:nth-child(1) > img {
    height:100% !important;
    object-fit:cover !important;
    object-position:center 32% !important;
    transform:none !important;
  }

  /* Fees / hours: retain the approved lower-room crop, without stretching the card. */
  .koharu-next-card:nth-child(2) > img {
    top:-55px !important;
    height:280px !important;
    object-fit:cover !important;
    object-position:center center !important;
    transform:none !important;
  }

  /* Director: slightly higher and zoomed out so the entire face, including the chin,
     remains above the translucent text band. */
  .koharu-next-card:nth-child(3) > img {
    top:-6px !important;
    height:226px !important;
    object-fit:contain !important;
    object-position:center top !important;
    background:#f8f4ed !important;
    transform:none !important;
  }

  /* Access: retain the approved storefront crop, again without changing card geometry. */
  .koharu-next-card:nth-child(4) > img {
    top:-30px !important;
    height:260px !important;
    object-fit:cover !important;
    object-position:center center !important;
    transform:none !important;
  }

  .koharu-next-card:nth-child(1):hover > img { transform:scale(1.015) !important; }
  .koharu-next-card:nth-child(2):hover > img { transform:scale(1.015) !important; transform-origin:center center !important; }
  .koharu-next-card:nth-child(3):hover > img { transform:scale(1.01) !important; transform-origin:center top !important; }
  .koharu-next-card:nth-child(4):hover > img { transform:scale(1.015) !important; transform-origin:center center !important; }
}

@media (max-width:900px) {
  /* The two narrative photos use exactly the same outer size on mobile. */
  .koharu-empathy-photo,
  .koharu-philosophy .koharu-square-photo {
    width:100% !important;
    aspect-ratio:4 / 3 !important;
    height:auto !important;
    overflow:hidden !important;
    background:#f8f4ed !important;
  }

  /* Empathy: keep the approved angle while fitting the complete portrait into the same 4:3 window.
     Contain is intentional here: it avoids cutting either the practitioner or patient face. */
  .koharu-empathy-photo img {
    width:100% !important;
    height:100% !important;
    aspect-ratio:auto !important;
    object-fit:contain !important;
    object-position:center center !important;
    background:#f8f4ed !important;
  }

  /* Philosophy: same 4:3 window; keep the patient fully visible. */
  .koharu-philosophy .koharu-square-photo img {
    width:100% !important;
    height:100% !important;
    aspect-ratio:auto !important;
    object-fit:cover !important;
    object-position:center 18% !important;
  }

  /* Mobile guide cards remain structurally unchanged. Zoom the director photo out so the
     whole face fits between the top edge and the text overlay. */
  .koharu-next-card:nth-child(3) > img {
    width:100% !important;
    height:100% !important;
    object-fit:contain !important;
    object-position:center top !important;
    background:#f8f4ed !important;
    transform:none !important;
  }
}

@media (max-width:560px) {
  .koharu-empathy-photo,
  .koharu-philosophy .koharu-square-photo { aspect-ratio:4 / 3 !important; }
  .koharu-empathy-photo img { object-position:center center !important; }
  .koharu-philosophy .koharu-square-photo img { object-position:center 18% !important; }
}

/* v2.9.9 — approved card spacing, mobile narrative crop, footer SNS and sticky phone CTA. */
@media (min-width:901px) {
  /* Restore breathing room around all four guide cards without changing their outer size. */
  .koharu-next-card {
    padding:10px !important;
    box-sizing:border-box !important;
    background:#fffdf9 !important;
  }
  .koharu-next-card > img {
    left:10px !important;
    top:10px !important;
    width:calc(100% - 20px) !important;
    height:calc(100% - 20px) !important;
    border-radius:2px !important;
  }
  .koharu-next-card-copy {
    left:10px !important;
    right:10px !important;
    bottom:10px !important;
  }
  .koharu-next-arrow { right:24px !important; bottom:32px !important; }

  /* Keep the approved crops for fees/access inside the restored card inset. */
  .koharu-next-card:nth-child(2) > img {
    top:-45px !important;
    height:270px !important;
  }
  .koharu-next-card:nth-child(4) > img {
    top:-20px !important;
    height:250px !important;
  }

  /* Director: do NOT zoom out. Keep face large and shift crop upward only. */
  .koharu-next-card:nth-child(3) > img {
    top:10px !important;
    height:calc(100% - 20px) !important;
    object-fit:cover !important;
    object-position:center 14% !important;
    background:#f8f4ed !important;
  }
}

@media (max-width:900px) {
  /* Empathy image: horizontal, edge-to-edge, same visual size as the next narrative image. */
  .koharu-empathy-photo {
    width:100% !important;
    aspect-ratio:4 / 3 !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    background:transparent !important;
  }
  .koharu-empathy-photo img {
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center 44% !important;
    background:transparent !important;
  }

  /* Mobile director card stays slightly zoomed out so the full face fits above the overlay. */
  .koharu-next-card:nth-child(3) > img {
    object-fit:contain !important;
    object-position:center top !important;
    background:#f8f4ed !important;
  }
}

/* Compact modern footer — SNS is intentionally secondary. */
.koharu-footer-modern {
  display:grid !important;
  grid-template-columns:1.25fr 1.15fr .85fr .8fr !important;
  align-items:start !important;
  gap:34px !important;
  padding:28px 28px 20px !important;
}
.koharu-footer-modern > * + * { border-left:1px solid rgba(255,255,255,.16); padding-left:28px; }
.koharu-footer-contact-label,
.koharu-footer-social > p { margin:0 0 10px !important; font-size:12px; color:#cfc5b9; }
.koharu-footer-phone { display:flex; align-items:center; gap:9px; font-size:23px; letter-spacing:.04em; margin-bottom:12px; }
.koharu-footer-phone strong { font-weight:500; }
.koharu-footer-reserve {
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  border:1px solid rgba(255,255,255,.42); border-radius:3px;
  padding:10px 12px; font-size:13px;
}
.koharu-footer-links a { position:relative; padding-right:20px; }
.koharu-footer-links a::after { content:'›'; position:absolute; right:0; }
.koharu-footer-social-icons { display:flex; align-items:center; gap:14px; }
.koharu-social-icon {
  width:50px; height:50px; border:1px solid rgba(255,255,255,.42); border-radius:50%;
  display:grid; place-items:center; color:#fff !important;
}
.koharu-social-icon svg { width:25px; height:25px; fill:none; stroke:currentColor; stroke-width:1.7; }
.koharu-social-line span { font-size:10px; font-weight:700; letter-spacing:0; }
.koharu-copyright { margin:0 !important; padding:12px 20px 15px !important; border-top:1px solid rgba(255,255,255,.13); font-size:11px !important; }

/* Sticky phone CTA — mobile only. */
.koharu-mobile-callbar { display:none; }
@media (max-width:782px) {
  body { padding-bottom:58px !important; }
  .koharu-mobile-callbar {
    position:fixed; left:0; right:0; bottom:0; z-index:99999;
    min-height:56px; padding:8px 14px;
    display:flex !important; align-items:center; justify-content:center; gap:10px;
    background:rgba(74,47,31,.97); color:#fff !important; text-decoration:none !important;
    box-shadow:0 -4px 14px rgba(45,31,22,.14);
  }
  .koharu-mobile-callbar-icon { font-size:19px; }
  .koharu-mobile-callbar-number { font-size:18px; font-weight:600; letter-spacing:.04em; }
  .koharu-mobile-callbar-label { font-size:11px; padding-left:9px; border-left:1px solid rgba(255,255,255,.35); }

  .koharu-footer-modern {
    grid-template-columns:1fr !important;
    gap:18px !important;
    padding:24px 20px 18px !important;
  }
  .koharu-footer-modern > * + * { border-left:0; border-top:1px solid rgba(255,255,255,.14); padding-left:0; padding-top:16px; }
  .koharu-footer-social { text-align:left; }
  .koharu-footer-social-icons { gap:12px; }
  .koharu-social-icon { width:44px; height:44px; }
}


/* ==========================================================
   v2.10.2 — FINAL PC link-card lock
   Dedicated pre-cropped assets are used so later object-position
   rules cannot undo the approved framing.  Desktop only.
   ========================================================== */
@media (min-width:901px) {
  .koharu-next-links {
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    gap:14px !important;
    margin-top:34px !important;
    padding-top:30px !important;
  }
  .koharu-next-card {
    position:relative !important;
    display:block !important;
    height:220px !important;
    min-height:220px !important;
    padding:9px !important;
    box-sizing:border-box !important;
    overflow:hidden !important;
    background:#fffdf9 !important;
    border:1px solid rgba(89,68,50,.12) !important;
    border-radius:5px !important;
  }
  .koharu-next-card > img {
    position:absolute !important;
    left:9px !important;
    top:9px !important;
    width:calc(100% - 18px) !important;
    height:calc(100% - 18px) !important;
    max-width:none !important;
    margin:0 !important;
    display:block !important;
    object-fit:cover !important;
    object-position:center center !important;
    transform:none !important;
    border-radius:2px !important;
    background:#f8f4ed !important;
  }
  /* First card keeps its approved existing framing. */
  .koharu-next-card:nth-child(1) > img {
    object-position:center 32% !important;
  }
  /* These 3 are already physically cropped; never translate/zoom them in CSS. */
  .koharu-next-card:nth-child(2) > img,
  .koharu-next-card:nth-child(3) > img,
  .koharu-next-card:nth-child(4) > img {
    object-position:center center !important;
    transform:none !important;
  }
  .koharu-next-card-copy {
    position:absolute !important;
    left:9px !important;
    right:9px !important;
    bottom:9px !important;
    z-index:3 !important;
    min-height:72px !important;
    padding:10px 42px 9px 16px !important;
    box-sizing:border-box !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    background:rgba(247,241,232,.84) !important;
    backdrop-filter:blur(2px) !important;
    -webkit-backdrop-filter:blur(2px) !important;
  }
  .koharu-next-arrow {
    position:absolute !important;
    z-index:4 !important;
    right:22px !important;
    bottom:31px !important;
  }
  .koharu-next-card:hover > img,
  .koharu-next-card:nth-child(1):hover > img,
  .koharu-next-card:nth-child(2):hover > img,
  .koharu-next-card:nth-child(3):hover > img,
  .koharu-next-card:nth-child(4):hover > img {
    transform:none !important;
  }
}

/* ==========================================================
   v2.10.3 — LINK CARDS ONLY: exact v2.9.5 restoration
   Source: theme_coharu_preview_v2.9.5_mobilefix(1)
   This final block intentionally overrides later link-card experiments only.
   ========================================================== */
.koharu-next-links {
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:14px !important;
  margin-top:34px !important;
  padding-top:30px !important;
  border-top:1px solid rgba(89,68,50,.13) !important;
}
.koharu-next-card {
  position:relative !important;
  display:block !important;
  height:220px !important;
  min-height:220px !important;
  padding:0 !important;
  overflow:hidden !important;
  border:1px solid rgba(89,68,50,.12) !important;
  border-radius:5px !important;
  background:#fff !important;
  color:inherit !important;
  text-decoration:none !important;
  box-shadow:0 8px 22px rgba(62,46,32,.06) !important;
}
.koharu-next-card > img {
  position:static !important;
  width:100% !important;
  height:100% !important;
  max-width:100% !important;
  margin:0 !important;
  display:block !important;
  object-fit:cover !important;
  transform:none !important;
  border-radius:0 !important;
}
.koharu-next-card:nth-child(1) > img { object-position:center 32% !important; }
.koharu-next-card:nth-child(2) > img { object-position:center 60% !important; }
.koharu-next-card:nth-child(3) > img { object-position:center 10% !important; }
.koharu-next-card:nth-child(4) > img { object-position:center 66% !important; }
.koharu-next-card-copy {
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  z-index:2 !important;
  display:flex !important;
  min-height:76px !important;
  padding:11px 42px 10px 16px !important;
  box-sizing:border-box !important;
  flex-direction:column !important;
  justify-content:center !important;
  background:rgba(247,241,232,.82) !important;
  backdrop-filter:blur(2px) !important;
  -webkit-backdrop-filter:blur(2px) !important;
}
.koharu-next-card-copy strong { color:#44280c !important; font-size:17px !important; line-height:1.5 !important; }
.koharu-next-card-copy small { color:#5f5146 !important; margin-top:3px !important; font-size:11.5px !important; line-height:1.55 !important; }
.koharu-next-arrow {
  position:absolute !important;
  z-index:3 !important;
  right:14px !important;
  bottom:22px !important;
  color:#5a3821 !important;
  font-size:25px !important;
  line-height:1 !important;
}
.koharu-next-card:hover { transform:translateY(-3px) !important; box-shadow:0 13px 28px rgba(62,46,32,.10) !important; }
.koharu-next-card:hover > img { transform:scale(1.025) !important; }
@media (max-width:900px) {
  .koharu-next-links { grid-template-columns:1fr 1fr !important; margin-top:30px !important; padding-top:26px !important; }
  .koharu-next-card { height:215px !important; min-height:215px !important; }
  .koharu-next-card:nth-child(2) > img { object-position:center 60% !important; }
  .koharu-next-card:nth-child(3) > img { object-position:center 10% !important; }
  .koharu-next-card:nth-child(4) > img { object-position:center 66% !important; }
}
@media (max-width:560px) {
  .koharu-next-links { grid-template-columns:1fr !important; }
  .koharu-next-card { height:210px !important; min-height:210px !important; }
}


/* ==========================================================
   v2.10.6 — FINAL LINK CARD PHOTO SHIFT ONLY
   Base: v2.10.3 link-card completed state.
   Card 1 unchanged.
   Cards 2–4: crop window moved upward by exactly 5 percentage points.
   No layout/style changes.
   ========================================================== */
.koharu-next-card:nth-child(2) > img { object-position:center 55% !important; }
.koharu-next-card:nth-child(3) > img { object-position:center 5% !important; }
.koharu-next-card:nth-child(4) > img { object-position:center 61% !important; }

@media (max-width:900px) {
  .koharu-next-card:nth-child(2) > img { object-position:center 55% !important; }
  .koharu-next-card:nth-child(3) > img { object-position:center 5% !important; }
  .koharu-next-card:nth-child(4) > img { object-position:center 61% !important; }
}


/* ==========================================================
   v2.11.0 TOP PAGE FINAL
   Link-card layout/crops remain locked to v2.10.6.
   Only: mobile director image source, white phone SVG,
   and mobile SNS centering are adjusted.
   ========================================================== */

/* Director card: desktop remains exactly v2.10.6. */
.koharu-profile-card-mobile { display:none !important; }

.koharu-phone-icon {
  width:22px;
  height:22px;
  display:block;
  fill:none;
  stroke:#fff;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex:0 0 auto;
}
.koharu-footer-phone { color:#fff !important; }
.koharu-footer-phone .koharu-phone-icon { width:22px; height:22px; }
.koharu-mobile-callbar-icon .koharu-phone-icon { width:20px; height:20px; }

@media (max-width:900px) {
  /* Change only the image source used by the director card.
     The card geometry, overlay, text and arrow remain untouched. */
  .koharu-profile-card-desktop { display:none !important; }
  .koharu-profile-card-mobile {
    display:block !important;
    object-fit:cover !important;
    object-position:center top !important;
  }
}

@media (max-width:782px) {
  /* SNS stays secondary, but is visually centered on smartphones. */
  .koharu-footer-social {
    text-align:center !important;
  }
  .koharu-footer-social > p {
    text-align:center !important;
  }
  .koharu-footer-social-icons {
    justify-content:center !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
}


/* ==========================================================
   v2.11.1 — exact mobile director photo replacement
   Card geometry remains locked. Only the rendered image changes.
   ========================================================== */
@media (max-width:900px) {
  .koharu-next-card:nth-child(3) > img {
    content:url("link-profile-mobile-exact.png") !important;
    object-fit:cover !important;
    object-position:center center !important;
  }
}


/* ==========================================================
   v2.11.2 — mobile director photo position only
   Move the portrait downward so the full goatee sits behind the text band,
   while keeping the mouth visible.
   No other link-card/layout changes.
   ========================================================== */
@media (max-width:900px) {
  .koharu-next-card:nth-child(3) > img {
    object-position:center 28% !important;
  }
}


/* ==========================================================
   v2.12.7 — PC FV main-copy clipping fix only
   Keep smartphone layout untouched.
   ========================================================== */
@media (min-width:901px) {
  .koharu-hero h1 {
    font-size:clamp(44px,3.7vw,56px) !important;
  }
  .koharu-hero-line2 {
    margin-left:.62em !important;
  }
}
@media (max-width:1180px) and (min-width:901px) {
  .koharu-hero h1 {
    font-size:clamp(40px,3.8vw,48px) !important;
  }
  .koharu-hero-line2 {
    margin-left:.52em !important;
  }
}


/* Mobile empathy photo — use supplied image as-is. Desktop remains unchanged. */
@media (max-width:900px) {
  .koharu-empathy-photo picture {
    display:block !important;
    width:100% !important;
    height:auto !important;
  }
  .koharu-empathy-photo picture img {
    display:block !important;
    width:100% !important;
    height:auto !important;
    aspect-ratio:auto !important;
    object-fit:contain !important;
    object-position:center center !important;
  }
}
