/* =========================================================
   Front page: Hero
   The reference comp is reproduced with real text + real photo.
   ========================================================= */
.hero{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 88% 22%,rgba(129,200,180,.10),transparent 28%),
    linear-gradient(90deg,#f8fbfa 0%,#fff 46%,#fbfaf7 100%);
  border-bottom:1px solid rgba(129,200,180,.10);
}
.hero__inner{
  position:relative;
  min-height:720px;
  max-width:1200px;
}
.hero__visual{
  position:absolute;
  z-index:1;
  left:0;
  bottom:0;
  width:62%;
  height:100%;
  overflow:hidden;
  pointer-events:none;
}
.hero__visual::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,255,255,0) 59%,rgba(255,255,255,.46) 76%,rgba(255,255,255,.95) 96%,#fff 100%),
    linear-gradient(0deg,rgba(255,255,255,.14) 0%,rgba(255,255,255,0) 28%);
}
.hero__visual img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:47% center;
}
.hero__copy{
  position:relative;
  z-index:3;
  width:52%;
  margin-left:auto;
  padding:60px 12px 42px 0;
}
.hero__side-copy{
  position:absolute;
  z-index:3;
  left:20px;
  top:70px;
  margin:0;
  padding-bottom:34px;
  border-bottom:1px solid rgba(129,200,180,.78);
  writing-mode:vertical-rl;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:17px;
  line-height:1.9;
  letter-spacing:.18em;
  color:#3b454a;
}
.hero__eyebrow{
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 0 24px;
  color:#5a6469;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:18px;
  letter-spacing:.08em;
}
.hero__eyebrow::before,.hero__eyebrow::after{
  content:"";
  width:52px;
  height:1px;
  background:rgba(129,200,180,.85);
}
.hero__eyebrow span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  margin:0 14px;
  padding:0 34px;
  border:1px solid rgba(129,200,180,.46);
  background:rgba(255,255,255,.75);
}
.hero__copy h1{
  margin:0 0 18px;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:clamp(43px,3.25vw,53px);
  font-weight:500;
  line-height:1.42;
  letter-spacing:.01em;
  color:#262d31;
}
.hero__copy h1 span{color:var(--mint-dark)}
.hero__service{
  display:flex;
  align-items:center;
  margin:0 0 20px;
  color:var(--mint-dark);
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:44px;
  line-height:1.3;
  letter-spacing:.15em;
  white-space:nowrap;
}
.hero__service::after{
  content:"";
  flex:0 0 60px;
  height:1px;
  margin-left:18px;
  background:rgba(129,200,180,.95);
}
.hero__lead{
  margin:0 0 24px;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:15.5px;
  line-height:2.05;
  letter-spacing:.02em;
  color:#3d474c;
}
.hero__trust{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
  margin:0 0 26px;
}
.hero__trust-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  aspect-ratio:1/1;
  min-width:0;
  border:1px solid rgba(129,200,180,.62);
  border-radius:50%;
  background:rgba(255,255,255,.80);
  text-align:center;
  box-shadow:0 5px 18px rgba(52,108,94,.035);
}
.hero__trust-icon{
  display:block;
  width:35px;
  height:35px;
  margin-bottom:8px;
  color:var(--mint-dark);
}
.hero__trust-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.hero__trust p{
  margin:0;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:13px;
  line-height:1.62;
  color:#3d454a;
}
.hero__trust strong{font-weight:500}
.hero__actions{display:flex;align-items:center;gap:12px}
.hero__line{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:14px;
  width:min(100%,470px);
  min-height:72px;
  padding:0 27px;
  border-radius:999px;
  background:linear-gradient(135deg,#12c85a 0%,#049b43 100%);
  box-shadow:0 10px 22px rgba(6,153,70,.16);
  color:#fff;
  font-size:23px;
  font-weight:700;
  letter-spacing:.02em;
}
.hero__line:hover{filter:brightness(.98);transform:translateY(-1px)}
.hero__line-badge{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:50%;
  background:#fff;
  color:var(--line);
  font-size:11px;
  font-weight:800;
  letter-spacing:0;
}
.hero__line-arrow{font-family:Arial,sans-serif;font-size:31px;font-weight:400;line-height:1}
.hero__reserve{display:none}
.hero__note{
  margin:11px 0 0;
  text-align:center;
  font-size:12.5px;
  color:#5d676c;
}

.final-cta{padding:100px 0;background:linear-gradient(135deg,#fff,#eff9f6)}.final-cta__inner{display:grid;grid-template-columns:1.2fr .8fr;align-items:center;gap:36px}.final-cta h2{font-size:42px}.final-cta ul{list-style:none;padding:0}.final-cta li{margin:10px 0}.final-cta li::before{content:'✓';color:var(--mint-dark);margin-right:10px}.final-cta__trust{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:26px 0}.final-cta__trust span{background:#fff;padding:15px;border-radius:8px;text-align:center;border:1px solid var(--border);color:var(--mint-dark);font-weight:700}.final-cta__actions{display:flex;gap:12px}.final-cta img{border-radius:14px}

/* v0.1.2: FV is a finished design image. */
.hero-image-fv{
  width:100%;
  margin:0;
  padding:0;
  background:#fff;
}
.hero-image-fv__picture{
  display:block;
  width:min(100%,1200px);
  margin-inline:auto;
}
.hero-image-fv__image{
  display:block;
  width:100%;
  max-width:1200px;
  height:auto;
  margin:0 auto;
}

/* v0.1.3: real link overlay for the LINE CTA printed inside the finished FV image. */
.hero-image-fv__visual{
  position:relative;
  width:min(100%,1200px);
  margin-inline:auto;
}
.hero-image-fv__picture{width:100%;margin:0}
.hero-image-fv__line-link{
  position:absolute;
  z-index:3;
  left:51%;
  top:79.5%;
  width:31.5%;
  height:10%;
  border-radius:999px;
  cursor:pointer;
}
.hero-image-fv__line-link:focus-visible{
  outline:3px solid #06c755;
  outline-offset:3px;
}

/* v0.1.5: three real click areas over the contact buttons printed in the finished FV images. */
.hero-image-fv__hotspots{
  position:absolute;
  inset:0;
  z-index:4;
  pointer-events:none;
}
.hero-image-fv__hotspot{
  position:absolute;
  display:block;
  border-radius:999px;
  pointer-events:auto;
  cursor:pointer;
}
/* PC image: three contact buttons grouped in the lower-right area. */
.hero-image-fv__hotspot--phone{left:43.2%;top:82.0%;width:18.2%;height:8.8%}
.hero-image-fv__hotspot--line{left:61.8%;top:82.0%;width:18.2%;height:8.8%}
.hero-image-fv__hotspot--book{left:80.4%;top:82.0%;width:16.2%;height:8.8%}
.hero-image-fv__hotspot:focus-visible{
  outline:3px solid var(--mint-dark);
  outline-offset:3px;
}
.hero-image-fv__line-link{display:none!important}

/* =========================================================
   v0.1.9: About + worries section
   Rebuilt from the approved PC / smartphone comps.
   ========================================================= */
.hafc-worries{
  position:relative;
  overflow:hidden;
  background:#fff;
  color:#2e3032;
}
.hafc-worries-intro{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 72% 24%,rgba(129,200,180,.10),transparent 28%),
    radial-gradient(circle at 13% 82%,rgba(197,218,209,.17),transparent 24%),
    linear-gradient(90deg,#fff 0%,#fcfefe 55%,#f7fbfa 100%);
}
.hafc-worries-intro::after{
  content:"";
  position:absolute;
  right:-80px;
  top:-110px;
  width:420px;
  height:420px;
  border-radius:50%;
  background:rgba(129,200,180,.08);
  filter:blur(70px);
  pointer-events:none;
}
.hafc-worries-intro__inner{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,42%) minmax(0,46%) minmax(90px,12%);
  grid-template-rows:auto 1fr;
  width:min(calc(100% - 48px),1200px);
  min-height:610px;
  margin:0 auto;
  padding:62px 0 0;
}
.hafc-worries-intro__heading{
  grid-column:1;
  grid-row:1;
  align-self:start;
  padding:0 10px 0 2px;
}
.hafc-worries-intro__eyebrow{
  display:flex;
  align-items:center;
  gap:14px;
  margin:0 0 24px;
  color:var(--mint-dark);
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:17px;
  letter-spacing:.14em;
}
.hafc-worries-intro__eyebrow::before{
  content:"";
  display:block;
  width:54px;
  height:1px;
  background:var(--mint-dark);
}
.hafc-worries-intro__heading h2{
  margin:0;
  color:#222528;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:clamp(42px,3.55vw,56px);
  font-weight:500;
  line-height:1.43;
  letter-spacing:.015em;
}
.hafc-worries-intro__heading h2 span{
  color:var(--mint-dark);
}
.hafc-worries-intro__body{
  grid-column:1;
  grid-row:2;
  align-self:start;
  padding:22px 20px 52px 2px;
}
.hafc-worries-intro__body p{
  margin:0;
  color:#44494c;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:15px;
  line-height:2.08;
  letter-spacing:.015em;
}
.hafc-worries-intro__visual{
  grid-column:2;
  grid-row:1 / 3;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  min-width:0;
  align-self:stretch;
}
.hafc-worries-intro__visual img{
  width:min(100%,625px);
  max-height:585px;
  object-fit:contain;
  object-position:center bottom;
  filter:drop-shadow(0 16px 26px rgba(53,80,71,.07));
}
.hafc-worries-intro__side{
  grid-column:3;
  grid-row:1 / 3;
  align-self:center;
  justify-self:end;
  display:flex;
  flex-direction:column;
  align-items:center;
  min-height:335px;
  padding-top:18px;
  color:#32383b;
}
.hafc-worries-intro__side p{
  margin:0;
  writing-mode:vertical-rl;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:20px;
  line-height:1.7;
  letter-spacing:.12em;
}
.hafc-worries-intro__side span{
  display:block;
  width:1px;
  height:68px;
  margin:22px 0 18px;
  background:var(--mint-dark);
}
.hafc-worries-intro__side small{
  display:block;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:13px;
  white-space:nowrap;
  letter-spacing:.08em;
}

.hafc-worries-list{
  position:relative;
  z-index:2;
  margin-top:-1px;
  background:linear-gradient(180deg,#f3fbf7 0%,#f7fbf8 54%,#fbfdfb 100%);
}
.hafc-worries-list::before{
  content:"";
  position:absolute;
  left:-5%;
  top:-34px;
  width:110%;
  height:68px;
  border-radius:50% 50% 0 0 / 100% 100% 0 0;
  background:#f3fbf7;
}
.hafc-worries-list__inner{
  position:relative;
  z-index:1;
  width:min(calc(100% - 48px),1200px);
  margin:0 auto;
  padding:54px 0 70px;
}
.hafc-worries-list__heading{
  max-width:900px;
  margin:0 auto 36px;
  text-align:center;
}
.hafc-worries-list__eyebrow{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  margin:0 0 9px;
  color:var(--mint-dark);
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:16px;
  letter-spacing:.14em;
}
.hafc-worries-list__eyebrow span{
  display:block;
  width:48px;
  height:1px;
  background:var(--mint-dark);
}
.hafc-worries-list__heading h2{
  margin:0 0 14px;
  color:#25282a;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:clamp(34px,3vw,46px);
  font-weight:500;
  line-height:1.5;
  letter-spacing:.01em;
}
.hafc-worries-list__heading h2 span{
  color:var(--mint-dark);
}
.hafc-worries-list__heading > p:last-child{
  margin:0;
  color:#4a5053;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:15px;
  line-height:1.9;
}
.hafc-worries-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  max-width:960px;
  margin-inline:auto;
  gap:32px 36px;
  align-items:start;
}
.hafc-worry-item{
  position:relative;
  min-width:0;
  text-align:center;
}
.hafc-worry-item__number{
  display:none;
}
.hafc-worry-item__photo{
  position:relative;
  z-index:1;
  width:min(100%,168px);
  aspect-ratio:1 / 1;
  margin:0 auto;
  overflow:hidden;
  border-radius:50%;
  background:#eaf3ef;
  box-shadow:0 6px 18px rgba(62,105,91,.08);
}
.hafc-worry-item__photo img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.hafc-worry-item--volume .hafc-worry-item__photo img{object-position:58% 40%}
.hafc-worry-item--shedding .hafc-worry-item__photo img{object-position:49% 51%}
.hafc-worry-item--hairline .hafc-worry-item__photo img{object-position:58% 38%}
.hafc-worry-item--stress .hafc-worry-item__photo img{object-position:47% 43%}
.hafc-worry-item--medication .hafc-worry-item__photo img{object-position:57% 49%}
.hafc-worry-item--consultation .hafc-worry-item__photo img{object-position:50% 46%}
.hafc-worry-item__text{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:88px;
  margin:-24px 0 0;
  padding:29px 13px 13px;
  border-radius:26px;
  background:rgba(255,255,255,.96);
  box-shadow:0 10px 24px rgba(59,101,87,.07);
  color:#373b3d;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:15px;
  line-height:1.55;
}
.hafc-worries-list__note{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  margin:46px 0 0;
  color:var(--mint-dark);
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:20px;
  letter-spacing:.04em;
  text-align:center;
}
.hafc-worries-list__note > span{
  font-size:30px;
  font-weight:300;
}
.hafc-worries-list__note-text{
  font-style:normal;
}
.hafc-pc-only{display:block}

/* v0.1.10: mobile-only line breaks used in the worries heading/copy. */
.hafc-sp-break{display:none}

/* v0.1.14: dedicated mobile two-line title; desktop keeps the approved title. */
.hafc-worries-title-sp{display:none}
.hafc-worries-title-sp em{font-style:normal;color:var(--mint-dark)}


/* v0.1.17: desktop heading color balance.
   Keep the overall PC heading charcoal and accent only 東洋医学の力 in mint. */
@media(min-width:768px){
  .hafc-worries-intro__heading h2 > .hafc-worries-title-pc{
    color:#222528 !important;
  }
  .hafc-worries-intro__heading h2 > .hafc-worries-title-pc > span{
    color:var(--mint-dark) !important;
  }
}

/* =========================================================
   v0.1.20: 薄毛の原因セクション
   ========================================================= */
.causes-section{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 98% 94%,rgba(129,200,180,.08),transparent 19%),
    linear-gradient(180deg,#fff 0%,#fbfdfc 100%);
}
.causes-section__heading{max-width:930px;margin:0 auto 38px}
.causes-section__eyebrow{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:22px;
  margin:0 0 20px;
  color:var(--mint-dark);
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:17px;
  letter-spacing:.16em;
}
.causes-section__eyebrow::before,
.causes-section__eyebrow::after{
  content:"";
  width:66px;
  height:1px;
  background:var(--mint-dark);
  opacity:.75;
}
.causes-section__heading h2{
  margin:0 0 28px;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:clamp(38px,3.5vw,54px);
  font-weight:500;
  line-height:1.42;
  letter-spacing:.02em;
  color:#262d31;
}
.causes-section__heading h2 span{color:var(--mint-dark)}
.causes-section__lead{font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;color:#485157}
.causes-section__lead p{margin:0;font-size:16px;line-height:2.1;letter-spacing:.02em}
.causes-section__lead p+p{margin-top:4px}
.causes-section__grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.causes-card{
  display:grid;
  grid-template-columns:96px 1fr;
  gap:22px;
  min-height:205px;
  padding:28px 30px;
  background:rgba(255,255,255,.96);
  border:1px solid #e7ece9;
  border-radius:10px;
  box-shadow:0 8px 24px rgba(38,70,61,.045);
}
.causes-card__icon{
  display:grid;
  place-items:center;
  width:86px;
  height:86px;
  margin-top:2px;
  border-radius:50%;
  background:#f5f6ef;
  color:#16ad8d;
}
.causes-card__icon svg{
  width:48px;
  height:48px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.causes-card__body{min-width:0}
.causes-card__num{
  display:block;
  margin:0 0 2px;
  color:#1fb196;
  font-family:"Noto Serif JP","Yu Mincho",serif;
  font-size:19px;
  line-height:1.2;
}
.causes-card h3{
  margin:0;
  font-size:23px;
  font-weight:500;
  line-height:1.5;
  color:#252c30;
}
.causes-card__line{
  display:block;
  width:42px;
  height:1px;
  margin:9px 0 17px;
  background:#28b99e;
}
.causes-card p{
  margin:0;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:14px;
  line-height:1.85;
  color:#525b60;
}
.causes-section__closing{margin-top:34px}
.causes-section__closing-line{display:block;width:54px;height:1px;margin:0 auto 17px;background:var(--mint-dark)}
.causes-section__closing p{margin:0;font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif}
.causes-section__closing-main{font-size:27px;line-height:1.55;color:#242b2f}
.causes-section__closing-sub{margin-top:3px!important;font-size:18px;color:#4a5459}
.causes-section__closing-sub span{color:var(--mint-dark)}

/* =========================================================
   v0.1.21: 発毛鍼灸という選択肢
   ========================================================= */
.hafc-options-section{
  position:relative;
  overflow:hidden;
  padding-top:58px;
  background:
    radial-gradient(circle at 98% 6%,rgba(129,200,180,.08),transparent 18%),
    linear-gradient(180deg,#fff 0%,#fcfdfc 100%);
}
/* 前の「薄毛の原因」セクションとの間隔を少し詰める */
.causes-section{padding-bottom:54px}
.hafc-options-section__heading{max-width:980px;margin:0 auto 34px}
.hafc-options-section__eyebrow{
  display:flex;align-items:center;justify-content:center;gap:22px;
  margin:0 0 20px;color:var(--mint-dark);
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:17px;letter-spacing:.16em;
}
.hafc-options-section__eyebrow::before,.hafc-options-section__eyebrow::after{
  content:"";width:68px;height:1px;background:var(--mint-dark);opacity:.7;
}
.hafc-options-section__heading h2{
  margin:0;font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:clamp(39px,3.45vw,54px);font-weight:500;line-height:1.4;letter-spacing:.02em;color:#262d31;
}
.hafc-options-section__heading h2 span{color:var(--mint-dark)}
.hafc-options-section__heading h2 .hafc-options-section__title-black{color:#262d31}
.hafc-mobile-break{display:none}
.hafc-options-section__heading-line{display:block;width:48px;height:1px;margin:18px auto 24px;background:var(--mint-dark);opacity:.75}
.hafc-options-section__subhead{
  margin:0 0 14px;font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:21px;line-height:1.75;color:#30383c;
}
.hafc-options-section__lead{
  margin:0;font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:14px;line-height:2.05;color:#50595d;letter-spacing:.015em;
}
.hafc-options-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}
.hafc-options-card{
  min-width:0;padding:28px 28px 30px;background:rgba(255,255,255,.97);
  border:1px solid #e6ece9;border-radius:10px;box-shadow:0 10px 28px rgba(42,70,62,.045);
}
.hafc-options-card--acupuncture{
  border-color:rgba(63,176,148,.75);
  background:linear-gradient(145deg,rgba(242,253,249,.96),rgba(255,255,255,.98));
}
.hafc-options-card__title-row{display:flex;align-items:center;gap:18px;margin-bottom:18px}
.hafc-options-card__icon{
  display:grid;place-items:center;flex:0 0 64px;width:64px;height:64px;border-radius:50%;
  background:#f5f6ef;color:#64cbb1;
}
.hafc-options-card--acupuncture .hafc-options-card__icon{background:#69c8b0;color:#fff}
.hafc-options-card__icon svg{width:36px;height:36px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.hafc-options-card h3{margin:0;font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;font-size:27px;font-weight:500;line-height:1.35;color:#2b3236}
.hafc-options-card--acupuncture h3{color:var(--mint-dark)}
.hafc-options-card__line{display:block;width:42px;height:1px;margin-top:10px;background:var(--mint-dark)}
.hafc-options-card__photo{overflow:hidden;height:166px;margin-bottom:18px;border-radius:2px;background:#f3f6f4}
.hafc-options-card__photo img{display:block;width:100%;height:100%;object-fit:cover}
.hafc-options-card--medicine .hafc-options-card__photo img{object-position:center center}
.hafc-options-card--transplant .hafc-options-card__photo img{object-position:center 48%}
.hafc-options-card--acupuncture .hafc-options-card__photo img{object-position:center 62%}
.hafc-options-card__list{display:grid;gap:13px;margin:0;padding:0;list-style:none}
.hafc-options-card__list li{
  position:relative;margin:0;padding-left:25px;font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:13.5px;line-height:1.7;color:#4b555a;
}
.hafc-options-card__list li::before{content:"";position:absolute;left:2px;top:.68em;width:10px;height:10px;border-radius:50%;background:#72cdb5}
.hafc-options-section__closing{
  display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:42px;align-items:center;
  margin-top:36px;padding:0 24px;
}
.hafc-options-section__closing-copy{position:relative;padding-left:30px;border-left:1px solid rgba(63,176,148,.7)}
.hafc-options-section__closing-copy h3{
  margin:0 0 10px;font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:25px;font-weight:500;line-height:1.5;color:#2b3236;
}
.hafc-options-section__closing-copy h3 span{color:var(--mint-dark)}
.hafc-options-section__closing-copy p{margin:0;font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;font-size:13.5px;line-height:1.8;color:#515b60}
.hafc-options-section__consult{
  margin:0;padding:16px 18px;border-left:1px solid rgba(63,176,148,.7);text-align:center;
  color:var(--mint-dark);font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:16px;line-height:1.6;letter-spacing:.08em;
}

.hafc-options-section__closing-title-sp,.hafc-options-section__consult-sp,.hair-cycle-bubble__sp{display:none}
.hafc-options-section__closing-title-pc,.hafc-options-section__consult-pc,.hair-cycle-bubble__pc{display:inline}
.hair-cycle-section__lead p span{display:block}

/* =========================================================
   v0.1.24: 毛周期セクション
   ========================================================= */
.hair-cycle-section{
  position:relative;
  overflow:hidden;
  padding-top:50px;
  padding-bottom:52px;
  background:
    radial-gradient(circle at 3% 30%,rgba(129,200,180,.08),transparent 24%),
    radial-gradient(circle at 97% 88%,rgba(129,200,180,.08),transparent 20%),
    linear-gradient(180deg,#fbfdfc 0%,#fff 47%,#f8fcfa 100%);
}
/* 前後セクションも過度に間延びしないよう調整 */
.hafc-options-section{padding-bottom:46px}
.hair-cycle-section + .hair-section{padding-top:54px}

.hair-cycle-section__heading{max-width:1080px;margin:0 auto 18px}
.hair-cycle-section__eyebrow{
  display:flex;align-items:center;justify-content:center;gap:24px;
  margin:0 0 13px;color:var(--mint-dark);
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:17px;letter-spacing:.14em;
}
.hair-cycle-section__eyebrow::before,.hair-cycle-section__eyebrow::after{
  content:"";width:65px;height:1px;background:var(--mint-dark);opacity:.65;
}
.hair-cycle-section__heading h2{
  margin:0 0 15px;font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:clamp(38px,3.3vw,52px);font-weight:500;line-height:1.42;letter-spacing:.02em;color:#272d31;
}
.hair-cycle-section__heading h2 span{color:var(--mint-dark)}
.hair-cycle-section__sp-break{display:none}
.hair-cycle-section__lead{font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;color:#4c555a}
.hair-cycle-section__lead p{margin:0;font-size:14px;line-height:1.85;letter-spacing:.01em}

.hair-cycle-diagram{
  position:relative;
  max-width:1180px;
  height:480px;
  margin:8px auto 0;
}
.hair-cycle-stage{
  position:absolute;
  z-index:2;
  display:flex;
  align-items:center;
  gap:16px;
}
.hair-cycle-stage__visual{flex:0 0 190px;width:190px;height:190px}
.hair-cycle-stage__visual img{display:block;width:100%;height:100%;object-fit:contain}
.hair-cycle-stage__copy{
  min-width:250px;
  padding:17px 20px 18px;
  border-radius:12px;
  background:rgba(255,255,255,.9);
  box-shadow:0 9px 26px rgba(52,84,74,.045);
}
.hair-cycle-stage__title-row{display:flex;align-items:center;gap:14px;margin-bottom:7px}
.hair-cycle-stage__title-row h3{
  margin:0;font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:25px;font-weight:500;line-height:1.25;color:#252c30;
}
.hair-cycle-stage__period{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:32px;padding:0 14px;border-radius:999px;
  background:rgba(129,200,180,.16);color:var(--mint-dark);
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:14px;white-space:nowrap;
}
.hair-cycle-stage__copy p{
  margin:0;font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:13px;line-height:1.7;color:#50595e;
}
.hair-cycle-stage--growth{top:0;left:45%}
.hair-cycle-stage--catagen{right:0;bottom:10px}
.hair-cycle-stage--rest{left:0;bottom:8px;flex-direction:row-reverse}
.hair-cycle-stage--rest .hair-cycle-stage__copy{text-align:left}

.hair-cycle-center{
  position:absolute;z-index:1;left:50%;top:58%;transform:translate(-50%,-50%);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  width:205px;height:205px;border-radius:50%;
  background:radial-gradient(circle,#eef9f5 0%,rgba(238,249,245,.52) 58%,rgba(238,249,245,0) 73%);
  color:var(--mint-dark);text-align:center;
}
.hair-cycle-center strong{
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:31px;font-weight:500;letter-spacing:.06em;
}
.hair-cycle-center span{
  margin-top:8px;font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:12px;line-height:1.65;color:#5c716a;
}
.hair-cycle-arrow{
  position:absolute;z-index:1;color:#79c9b4;font-size:48px;line-height:1;font-family:Arial,sans-serif;opacity:.9;
}
.hair-cycle-arrow--one{left:69%;top:42%;transform:rotate(65deg)}
.hair-cycle-arrow--two{left:49%;bottom:12%;transform:rotate(165deg)}
.hair-cycle-arrow--three{left:36%;top:43%;transform:rotate(-55deg)}
.hair-cycle-bubble{
  position:absolute;right:16px;top:72px;z-index:1;
  display:flex;align-items:center;justify-content:center;
  width:170px;height:150px;margin:0;padding:18px;border:1px solid #e7ecea;border-radius:50%;
  background:rgba(255,255,255,.87);color:var(--mint-dark);text-align:center;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:13px;line-height:1.65;
}

.hair-cycle-individual{
  display:grid;grid-template-columns:380px minmax(0,1fr);column-gap:34px;align-items:center;
  position:relative;margin:6px auto 0;padding:24px 34px;
  max-width:1180px;border-radius:14px;background:rgba(239,249,246,.78);
}
.hair-cycle-individual__title{display:flex;align-items:center;gap:22px;padding-right:28px;border-right:1px solid rgba(63,176,148,.5)}
.hair-cycle-individual__mark{
  display:grid;place-items:center;flex:0 0 70px;width:70px;height:70px;border-radius:50%;
  background:var(--mint-dark);color:#fff;font-size:42px;font-family:Georgia,serif;font-weight:700;
}
.hair-cycle-individual__title h3{
  margin:0;font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:24px;font-weight:500;line-height:1.5;color:#283034;
}
.hair-cycle-individual__title h3 span{color:var(--mint-dark)}
.hair-cycle-individual__body{padding-right:190px}
.hair-cycle-individual__body p{
  margin:0;font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:13px;line-height:1.8;color:#4c565b;
  text-wrap:pretty;word-break:normal;overflow-wrap:break-word;line-break:strict;
}
.hair-cycle-individual__message{
  position:absolute;right:25px;top:50%;transform:translateY(-50%);
  margin:0;color:var(--mint-dark);font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:15px;line-height:1.55;font-weight:500;
}

/* =========================================================
   v0.1.26: 当院の発毛鍼灸について
   ========================================================= */
.hafc-approach-section{
  position:relative;
  overflow:hidden;
  padding:28px 0 34px;
  background:linear-gradient(180deg,#fff 0%,#fbfdfc 58%,#f7fbf9 100%);
}
.hair-cycle-section{padding-bottom:36px}
.hafc-approach-hero{position:relative;min-height:300px}
.hafc-approach-hero__visual{
  position:absolute;inset:0 auto auto 0;width:43%;height:300px;overflow:hidden;pointer-events:none;
  -webkit-mask-image:linear-gradient(90deg,#000 0%,#000 58%,rgba(0,0,0,.48) 76%,transparent 100%);
  mask-image:linear-gradient(90deg,#000 0%,#000 58%,rgba(0,0,0,.48) 76%,transparent 100%);
}
.hafc-approach-hero__visual::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(255,255,255,.8) 0%,transparent 42%)}
.hafc-approach-hero__visual img{width:100%;height:100%;object-fit:cover;object-position:center 45%}
.hafc-approach-hero__inner{position:relative;z-index:2}
.hafc-approach-heading{width:72%;margin-left:auto;text-align:center}
.hafc-approach-eyebrow{
  display:flex;align-items:center;justify-content:center;gap:22px;margin:0 0 10px;
  color:var(--mint-dark);font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;font-size:16px;letter-spacing:.13em;
}
.hafc-approach-eyebrow::before,.hafc-approach-eyebrow::after{content:"";width:60px;height:1px;background:var(--mint-dark);opacity:.6}
.hafc-approach-heading h2{
  margin:0 0 14px;font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:clamp(39px,3.2vw,50px);font-weight:500;line-height:1.35;letter-spacing:.02em;color:#272d31;
}
.hafc-approach-heading h2 span{color:var(--mint-dark)}
.hafc-approach-lead{font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;color:#4b5559}
.hafc-approach-lead p{margin:0;font-size:13.5px;line-height:1.75}

.hafc-approach-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:42px;position:relative;z-index:2;margin-top:6px;
}
.hafc-approach-card{
  position:relative;min-width:0;padding:22px 24px 20px;border-radius:46% 46% 42% 42% / 22% 22% 55% 55%;
  background:radial-gradient(circle at 50% 38%,rgba(255,255,255,.96) 0%,rgba(244,251,248,.92) 67%,rgba(238,248,244,.72) 100%);
  text-align:center;
}
.hafc-approach-card:not(:last-child)::after{
  content:"×";position:absolute;right:-38px;top:48%;transform:translateY(-50%);color:var(--mint-dark);
  font:300 54px/1 Arial,sans-serif;opacity:.9;
}
.hafc-approach-card__num{
  position:absolute;top:12px;left:22px;z-index:2;display:grid;place-items:center;width:54px;height:54px;border-radius:50%;
  background:var(--mint-dark);color:#fff;font-family:Georgia,"Times New Roman",serif;font-size:24px;
}
.hafc-approach-card h3{margin:0 0 12px;font-size:27px;line-height:1.35;color:#273034}
.hafc-approach-card__photo{width:170px;height:170px;margin:0 auto 13px;border-radius:50%;overflow:hidden;background:#fff}
.hafc-approach-card__photo img{width:100%;height:100%;object-fit:cover}
.hafc-approach-card:nth-child(1) .hafc-approach-card__photo img{object-position:center 40%}
.hafc-approach-card:nth-child(2) .hafc-approach-card__photo img{object-position:center 52%}
.hafc-approach-card:nth-child(3) .hafc-approach-card__photo img{object-position:center 54%}
.hafc-approach-card__content>p{
  margin:0 auto;max-width:285px;font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:13px;line-height:1.75;color:#4e585d;
}
.hafc-approach-card__checks{display:none;margin:12px 0 0;padding:0;list-style:none;text-align:left}

.hafc-approach-story{margin-top:22px;background:linear-gradient(90deg,rgba(243,250,247,.95),#fff 58%,rgba(255,250,243,.85))}
.hafc-approach-story__inner{
  position:relative;display:grid;grid-template-columns:1.05fr .95fr;align-items:stretch;min-height:250px;overflow:hidden;
}
.hafc-approach-story__copy{position:relative;z-index:2;padding:28px 20px 26px 70px;align-self:center}
.hafc-approach-story__copy h3{
  margin:0 0 12px;font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:32px;font-weight:500;line-height:1.45;color:#283034;
}
.hafc-approach-story__copy h3 span{color:var(--mint-dark)}
.hafc-approach-story__copy p{
  margin:0;font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;font-size:13px;line-height:1.8;color:#50595e;
}
.hafc-approach-story__photo{position:relative;min-height:250px;overflow:hidden}
.hafc-approach-story__photo::before{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.2) 20%,transparent 44%)}
.hafc-approach-story__photo img{width:100%;height:100%;object-fit:cover;object-position:center 45%}
.hafc-approach-story__message{
  position:absolute;z-index:3;right:10px;top:50%;transform:translateY(-50%);width:175px;height:175px;margin:0;padding:30px 20px;
  display:flex;align-items:center;justify-content:center;border:1px solid rgba(129,200,180,.55);border-radius:50%;background:rgba(255,255,255,.9);
  text-align:center;color:var(--mint-dark);font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;font-size:14px;line-height:1.7;
}


/* =========================================================
   v0.1.27: approach hero image aligned to the shared desktop content width
   ========================================================= */
@media (min-width:981px){
  .hafc-approach-hero__visual{
    left:max(24px,calc((100vw - var(--wide))/2));
    width:min(43vw,507px);
  }
}

/* =========================================================
   v0.1.32: 施術の流れ
   ========================================================= */
.hafc-flow-section{
  padding:34px 0 38px;
  background:#fff;
}
.hafc-flow-heading{
  max-width:1080px;
  margin:0 auto 26px;
  text-align:center;
}
.hafc-flow-eyebrow{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:22px;
  margin:0 0 10px;
  color:var(--mint-dark);
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:16px;
  letter-spacing:.13em;
}
.hafc-flow-eyebrow::before,
.hafc-flow-eyebrow::after{
  content:"";
  width:68px;
  height:1px;
  background:var(--mint-dark);
  opacity:.58;
}
.hafc-flow-heading h2{
  margin:0 0 10px;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:clamp(34px,3vw,45px);
  font-weight:500;
  line-height:1.42;
  letter-spacing:.02em;
  color:#272d31;
}
.hafc-flow-heading h2 span{color:var(--mint-dark)}
.hafc-flow-heading__sp-break{display:none}
.hafc-flow-lead{
  margin:0;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:14px;
  line-height:1.8;
  color:#596167;
}
.hafc-flow-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px 18px;
}
.hafc-flow-card{
  display:grid;
  grid-template-columns:minmax(0,58%) minmax(0,42%);
  min-height:210px;
  overflow:hidden;
  border:1px solid rgba(60,165,139,.28);
  border-radius:8px;
  background:#fff;
  box-shadow:0 3px 12px rgba(47,89,76,.025);
}
.hafc-flow-card__body{
  min-width:0;
  padding:22px 22px 20px 24px;
  align-self:center;
}
.hafc-flow-card__title-row{
  display:grid;
  grid-template-columns:auto 1px minmax(0,1fr);
  align-items:center;
  column-gap:16px;
  margin-bottom:15px;
}
.hafc-flow-card__title-row::before{
  content:"";
  grid-column:2;
  grid-row:1;
  width:1px;
  height:46px;
  background:rgba(60,165,139,.5);
}
.hafc-flow-card__num{
  grid-column:1;
  grid-row:1;
  display:block;
  color:var(--mint-dark);
  font-family:Georgia,"Times New Roman",serif;
  font-size:48px;
  font-style:italic;
  font-weight:400;
  line-height:1;
  letter-spacing:.01em;
}
.hafc-flow-card h3{
  grid-column:3;
  grid-row:1;
  margin:0;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:22px;
  font-weight:500;
  line-height:1.42;
  color:#252c30;
}
.hafc-flow-card__body>p{
  margin:0;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:12.8px;
  line-height:1.85;
  color:#50595e;
}
.hafc-flow-card__photo{
  margin:0;
  min-width:0;
  min-height:100%;
  overflow:hidden;
  background:#f6f8f7;
}
.hafc-flow-card__photo img{
  width:100%;
  height:100%;
  min-height:210px;
  object-fit:cover;
}
.hafc-flow-card:nth-child(1) .hafc-flow-card__photo img{object-position:center 44%}
.hafc-flow-card:nth-child(2) .hafc-flow-card__photo img{object-position:center 44%}
.hafc-flow-card:nth-child(3) .hafc-flow-card__photo img{object-position:center 47%}
.hafc-flow-card:nth-child(4) .hafc-flow-card__photo img{object-position:center 50%}
.hafc-flow-card:nth-child(5) .hafc-flow-card__photo img{object-position:center 56%}
.hafc-flow-card:nth-child(6) .hafc-flow-card__photo img{object-position:center 48%}
.hafc-flow-footer{
  margin-top:20px;
  text-align:center;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
}
.hafc-flow-footer__main{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:22px;
  margin:0 0 4px;
  font-size:24px;
  line-height:1.5;
  color:#272d31;
}
.hafc-flow-footer__main::before,
.hafc-flow-footer__main::after{
  content:"";
  width:170px;
  height:1px;
  background:rgba(60,165,139,.55);
}
.hafc-flow-footer__text{display:inline}
.hafc-flow-footer__line1{color:#272d31}
.hafc-flow-footer__line2{color:var(--mint-dark)}
.hafc-flow-footer__sub{
  margin:0;
  font-size:12px;
  line-height:1.7;
  color:#667075;
}

/* =========================================================
   v0.1.35: こもの鍼灸院が大切にしている4つのこと
   ========================================================= */
.hafc-reasons-section{
  padding:30px 0 36px;
  background:
    radial-gradient(circle at 4% 96%,rgba(129,200,180,.11),transparent 20%),
    radial-gradient(circle at 96% 6%,rgba(129,200,180,.08),transparent 22%),
    #fff;
}
.hafc-reasons-intro{
  display:grid;
  grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);
  gap:44px;
  align-items:center;
  margin-bottom:28px;
}
.hafc-reasons-intro__copy{padding-left:14px}
.hafc-reasons-eyebrow{
  display:flex;
  align-items:center;
  gap:18px;
  margin:0 0 19px;
  color:var(--mint-dark);
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:16px;
  letter-spacing:.12em;
}
.hafc-reasons-eyebrow::before,
.hafc-reasons-eyebrow::after{
  content:"";
  width:58px;
  height:1px;
  background:rgba(60,165,139,.6);
}
.hafc-reasons-intro h2{
  margin:0 0 22px;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:clamp(38px,3.45vw,53px);
  font-weight:500;
  line-height:1.72;
  letter-spacing:.015em;
  color:#242b2f;
}
.hafc-reasons-intro h2 span{color:var(--mint-dark)}
.hafc-reasons-lead{
  margin:0;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:16px;
  line-height:2;
  color:#596267;
}
.hafc-reasons-lead--sp{display:none}
.hafc-reasons-intro__photo{
  margin:0;
  min-height:345px;
  border-radius:14px;
  overflow:hidden;
  background:#f6f8f7;
  box-shadow:0 8px 30px rgba(39,73,64,.045);
}
.hafc-reasons-intro__photo img{
  width:100%;
  height:100%;
  min-height:345px;
  object-fit:cover;
  object-position:center 46%;
}
.hafc-reasons-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px 18px;
}
.hafc-reason-card{
  display:grid;
  grid-template-columns:140px minmax(0,1fr);
  align-items:center;
  min-height:176px;
  padding:20px 28px 20px 22px;
  border:1px solid rgba(60,165,139,.15);
  border-radius:10px;
  background:rgba(255,255,255,.96);
  box-shadow:0 5px 18px rgba(39,73,64,.035);
}
.hafc-reason-card__desktop-icon{
  position:relative;
  min-height:126px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding-top:17px;
  border-right:1px solid rgba(87,124,114,.16);
}
.hafc-reason-card__desktop-num{
  position:absolute;
  top:-5px;
  left:5px;
  color:var(--mint-dark);
  font-family:Georgia,"Times New Roman",serif;
  font-size:28px;
  font-style:italic;
  line-height:1;
}
.hafc-reason-card__desktop-num::after{
  content:"";
  display:block;
  width:33px;
  height:1px;
  margin-top:7px;
  background:rgba(60,165,139,.55);
}
.hafc-reason-card__icon{
  display:grid;
  place-items:center;
  width:78px;
  height:78px;
  border-radius:50%;
  background:linear-gradient(145deg,#f9fcf9,#f0f5ef);
  color:#435d55;
}
.hafc-reason-card__icon svg{width:51px;height:51px}
.hafc-reason-card__body{padding-left:27px;min-width:0}
.hafc-reason-card h3{
  margin:0 0 10px;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:24px;
  font-weight:500;
  line-height:1.55;
  color:#293034;
}
.hafc-reason-card__text{
  margin:0;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:13px;
  line-height:1.85;
  color:#5c6468;
}
.hafc-reason-card__text--sp{display:none}
.hafc-reason-card__photo{display:none;margin:0}
.hafc-reasons-footer{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  margin-top:27px;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:21px;
  line-height:1.6;
  letter-spacing:.025em;
  text-align:center;
}
.hafc-reasons-footer::before,
.hafc-reasons-footer::after{
  content:"";
  width:96px;
  height:1px;
  background:rgba(60,165,139,.48);
}
.hafc-reasons-footer span{color:var(--mint-dark)}
.hafc-reasons-footer strong{font-weight:500;color:#293034}

/* =========================================================
   v0.1.38: 発毛鍼灸の症例
   ========================================================= */
.hafc-cases-section{
  position:relative;
  padding:52px 0 50px;
  background:linear-gradient(180deg,#fff 0%,#fbfdfc 100%);
}
.hafc-cases-heading{
  max-width:900px;
  margin:0 auto 24px;
  text-align:center;
}
.hafc-cases-eyebrow{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:22px;
  margin:0 0 12px;
  color:var(--mint-dark);
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:16px;
  line-height:1.5;
  letter-spacing:.12em;
}
.hafc-cases-eyebrow::before,
.hafc-cases-eyebrow::after{
  content:"";
  width:62px;
  height:1px;
  background:var(--mint-dark);
  opacity:.65;
}
.hafc-cases-heading h2{
  margin:0 0 12px;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:clamp(40px,3.4vw,52px);
  font-weight:500;
  line-height:1.35;
  letter-spacing:.04em;
  color:#273034;
}
.hafc-cases-heading h2 span{color:var(--mint-dark)}
.hafc-cases-lead{
  margin:0;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:14px;
  line-height:1.85;
  color:#4d575b;
}
.hafc-case-list{display:grid;gap:18px}
.hafc-case-card{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);
  gap:32px;
  align-items:center;
  padding:26px 28px;
  border:1px solid #e6ece9;
  border-radius:10px;
  background:#fff;
  box-shadow:0 8px 26px rgba(48,78,68,.045);
}
.hafc-case-card__main{min-width:0}
.hafc-case-card__head{
  display:flex;
  align-items:center;
  gap:22px;
  padding-bottom:13px;
  margin-bottom:12px;
  border-bottom:1px solid rgba(60,165,139,.65);
}
.hafc-case-badge{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  flex:0 0 78px;
  width:78px;
  height:78px;
  border-radius:50%;
  background:#f0f6f4;
  color:#277f6d;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  line-height:1;
}
.hafc-case-badge span{font-size:13px;letter-spacing:.08em;margin-bottom:5px}
.hafc-case-badge strong{font-size:29px;font-weight:500}
.hafc-case-title h3{
  margin:0 0 2px;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:31px;
  font-weight:500;
  line-height:1.35;
  color:#273034;
}
.hafc-case-title p{
  margin:0;
  color:#287f6e;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:20px;
  line-height:1.5;
}
.hafc-case-details{display:grid;gap:5px}
.hafc-case-row{
  display:grid;
  grid-template-columns:110px minmax(0,1fr);
  gap:16px;
  align-items:start;
}
.hafc-case-row>span{
  display:flex;
  align-items:center;
  min-height:29px;
  padding:3px 12px;
  background:#eef7f4;
  color:#287f6e;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:13px;
  line-height:1.45;
  white-space:nowrap;
}
.hafc-case-row p{
  margin:0;
  padding-top:2px;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:13px;
  line-height:1.75;
  color:#485257;
}
.hafc-case-card__photos{
  display:grid;
  grid-template-columns:minmax(0,1fr) 26px minmax(0,1fr);
  gap:10px;
  align-items:center;
}
.hafc-case-photo{
  margin:0;
  overflow:hidden;
  border:1px solid #e1e9e5;
  border-radius:2px;
  background:#fff;
}
.hafc-case-photo img,
.hafc-case-photo__placeholder{
  width:100%;
  aspect-ratio:1/1;
}
.hafc-case-photo img{object-fit:cover}
.hafc-case-photo__placeholder{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  background:linear-gradient(135deg,#f5f8f7,#edf4f1);
  color:#6b7773;
  text-align:center;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
}
.hafc-case-photo__placeholder span{font-size:16px}
.hafc-case-photo__placeholder small{font-size:11px;color:#8a9490}
.hafc-case-photo__caption{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  margin:0;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:14px;
  line-height:1.3;
}
.hafc-case-photo__caption--before{background:#f1f3f2;color:#5d6562}
.hafc-case-photo__caption--after{background:#2ead8e;color:#fff}
.hafc-case-arrow{
  display:grid;
  place-items:center;
  color:#52b89d;
  font-size:24px;
  line-height:1;
}
.hafc-cases-empty{
  max-width:900px;
  margin:0 auto;
  padding:28px 32px;
  border:1px dashed rgba(60,165,139,.55);
  border-radius:10px;
  background:#f5fbf8;
  text-align:center;
  color:#52605b;
}
.hafc-cases-empty p{margin:0}
.hafc-cases-empty p+p{margin-top:8px;font-size:13px}
.hafc-cases-note{
  margin:20px 0 0;
  text-align:center;
  color:#78827e;
  font-size:11px;
  line-height:1.65;
}

/* v0.1.39: 症例デモ表示（実症例未登録時） */
.hafc-case-card--demo{position:relative}
.hafc-cases-note--demo{
  max-width:940px;
  margin-left:auto;
  margin-right:auto;
  padding:10px 14px;
  border:1px solid #e2ebe7;
  border-radius:6px;
  background:#fbfdfc;
  color:#707a76;
}

/* =========================================================
   v0.1.42: 薄毛対策の比較
   ========================================================= */
.hafc-comparison-section{
  padding:48px 0 42px;
  background:
    radial-gradient(circle at 94% 3%,rgba(129,200,180,.10),transparent 21%),
    radial-gradient(circle at 4% 98%,rgba(129,200,180,.08),transparent 20%),
    #fff;
}
.hafc-comparison-heading{
  max-width:1040px;
  margin:0 auto 24px;
  text-align:center;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
}
.hafc-comparison-eyebrow{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  margin:0 0 9px;
  color:var(--mint-dark);
  font-size:15px;
  letter-spacing:.13em;
}
.hafc-comparison-eyebrow::before,
.hafc-comparison-eyebrow::after{
  content:"";
  width:58px;
  height:1px;
  background:rgba(60,165,139,.62);
}
.hafc-comparison-heading h2{
  margin:0 0 14px;
  color:#232b2f;
  font-size:clamp(35px,3.15vw,49px);
  font-weight:500;
  line-height:1.42;
  letter-spacing:.01em;
}
.hafc-comparison-heading h2 span{color:var(--mint-dark)}
.hafc-comparison-lead{
  color:#4e585c;
  font-size:13.5px;
  line-height:1.8;
}
.hafc-comparison-lead p{margin:0}

.hafc-comparison-cards{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  align-items:stretch;
}
.hafc-comparison-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:16px;
  border:1px solid #e6e9e8;
  border-radius:7px;
  background:rgba(255,255,255,.98);
  box-shadow:0 6px 22px rgba(50,76,69,.035);
}
.hafc-comparison-card--accent{
  border-color:rgba(43,158,132,.9);
  background:linear-gradient(180deg,#f3fbf8 0%,#fff 28%,#fff 100%);
}
.hafc-comparison-card__head{
  display:flex;
  align-items:center;
  gap:16px;
  min-height:66px;
  margin-bottom:13px;
  border-bottom:1px solid rgba(78,96,91,.08);
}
.hafc-comparison-card__num{
  flex:0 0 82px;
  padding-right:14px;
  border-right:1px solid rgba(56,130,111,.28);
  color:#626a6e;
  font-family:Georgia,"Times New Roman",serif;
  font-size:44px;
  line-height:1;
}
.hafc-comparison-card--accent .hafc-comparison-card__num{color:var(--mint-dark)}
.hafc-comparison-card__title h3{
  margin:0 0 3px;
  color:#252c30;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:25px;
  font-weight:500;
  line-height:1.35;
}
.hafc-comparison-card--accent .hafc-comparison-card__title h3,
.hafc-comparison-card--accent .hafc-comparison-card__title p{color:var(--mint-dark)}
.hafc-comparison-card__title p{
  margin:0;
  color:#555e62;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:13px;
  line-height:1.5;
}
.hafc-comparison-card__intro{
  display:grid;
  grid-template-columns:minmax(0,54%) minmax(0,46%);
  gap:12px;
  align-items:center;
  margin-bottom:13px;
}
.hafc-comparison-card__photo{
  margin:0;
  height:180px;
  overflow:hidden;
  border-radius:2px;
  background:#f5f6f6;
}
.hafc-comparison-card__photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.hafc-comparison-card:nth-child(1) .hafc-comparison-card__photo img{object-position:center 68%}
.hafc-comparison-card:nth-child(2) .hafc-comparison-card__photo img{object-position:27% center}
.hafc-comparison-card:nth-child(3) .hafc-comparison-card__photo img{object-position:center center}
.hafc-comparison-card__desc{
  margin:0;
  color:#465055;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:12.5px;
  line-height:1.82;
}
.hafc-comparison-card__recommend{
  margin-top:auto;
  padding:12px 13px 10px;
  background:#f5f6f6;
}
.hafc-comparison-card--accent .hafc-comparison-card__recommend{background:#eef9f6}
.hafc-comparison-card__recommend h4{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 9px;
  color:#475154;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:13.5px;
  font-weight:500;
  line-height:1.4;
}
.hafc-comparison-card__recommend h4::after{
  content:"";
  flex:1;
  height:1px;
  background:rgba(79,91,88,.22);
}
.hafc-comparison-card--accent .hafc-comparison-card__recommend h4{color:var(--mint-dark)}
.hafc-comparison-card__recommend ul{
  display:grid;
  gap:7px;
  margin:0;
  padding:0;
  list-style:none;
}
.hafc-comparison-card__recommend li{
  position:relative;
  margin:0;
  padding-left:27px;
  color:#444d51;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:12.5px;
  line-height:1.55;
}
.hafc-comparison-card__recommend li::before{
  content:"✓";
  position:absolute;
  left:0;
  top:.05em;
  display:grid;
  place-items:center;
  width:18px;
  height:18px;
  border-radius:50%;
  background:#8f9598;
  color:#fff;
  font-family:Arial,sans-serif;
  font-size:11px;
  font-weight:700;
  line-height:1;
}
.hafc-comparison-card--accent .hafc-comparison-card__recommend li::before{background:#2eaa8b}

.hafc-comparison-table-wrap{margin-top:16px}
.hafc-comparison-table-title{display:none}
.hafc-comparison-table{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
  background:#fff;
  color:#414b4f;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:12px;
  line-height:1.45;
}
.hafc-comparison-table th,
.hafc-comparison-table td{
  padding:7px 10px;
  border:1px solid #dfe5e2;
  text-align:center;
  vertical-align:middle;
}
.hafc-comparison-table thead th{
  background:#f5f6f6;
  color:#343d41;
  font-size:12.5px;
  font-weight:600;
}
.hafc-comparison-table thead th:first-child{width:13%;background:#eef7f4}
.hafc-comparison-table tbody th{width:13%;background:#eef7f4;font-weight:500}
.hafc-comparison-table .is-accent{
  border-color:rgba(60,165,139,.42);
  background:#eef9f6;
  color:var(--mint-dark);
}
.hafc-comparison-table tbody td:nth-child(2){border-color:rgba(60,165,139,.42)}

.hafc-comparison-note{
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(250px,.45fr);
  min-height:160px;
  margin-top:18px;
  overflow:hidden;
  border:1px solid #e5ebe8;
  border-radius:7px;
  background:
    radial-gradient(circle at 6% 50%,rgba(129,200,180,.08),transparent 18%),
    #fff;
}
.hafc-comparison-note__copy{
  align-self:center;
  margin-left:25px;
  padding:20px 28px 20px 22px;
  border-left:5px solid #2eaa8b;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
}
.hafc-comparison-note__copy h3{
  margin:0 0 8px;
  color:var(--mint-dark);
  font-size:20px;
  font-weight:600;
  line-height:1.5;
}
.hafc-comparison-note__copy p{
  margin:0;
  color:#4f595d;
  font-size:12.5px;
  line-height:1.8;
}
.hafc-comparison-note__photo{margin:0;overflow:hidden}
.hafc-comparison-note__photo img{
  display:block;
  width:100%;
  height:100%;
  min-height:160px;
  object-fit:cover;
  object-position:34% center;
}

/* =========================================================
   v0.1.43: 島 優太 院長プロフィール
   ========================================================= */
.hafc-staff-section{
  padding:50px 0 44px;
  background:
    radial-gradient(circle at 4% 8%,rgba(129,200,180,.10),transparent 19%),
    radial-gradient(circle at 96% 92%,rgba(129,200,180,.08),transparent 20%),
    #fff;
}
.hafc-staff-heading{
  max-width:1040px;
  margin:0 auto 28px;
  text-align:center;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
}
.hafc-staff-eyebrow{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  margin:0 0 9px;
  color:var(--mint-dark);
  font-size:15px;
  letter-spacing:.12em;
}
.hafc-staff-eyebrow::before,
.hafc-staff-eyebrow::after{
  content:"";
  width:58px;
  height:1px;
  background:rgba(60,165,139,.62);
}
.hafc-staff-heading h2{
  margin:0 0 13px;
  color:#222b2f;
  font-size:clamp(34px,3vw,48px);
  font-weight:500;
  line-height:1.45;
  letter-spacing:.01em;
}
.hafc-staff-heading h2 span{color:var(--mint-dark)}
.hafc-staff-lead{
  color:#4b5559;
  font-size:13px;
  line-height:1.82;
}
.hafc-staff-lead p{margin:0}

.hafc-staff-layout{
  display:grid;
  grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);
  gap:28px;
  align-items:start;
}
.hafc-staff-main-photo{
  margin:0;
  overflow:hidden;
  border-radius:5px;
  background:#f4f8f7;
}
.hafc-staff-main-photo img{
  width:100%;
  height:480px;
  object-fit:cover;
  object-position:center 42%;
}
.hafc-staff-subphotos{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:10px;
}
.hafc-staff-subphotos figure{
  margin:0;
  overflow:hidden;
  border-radius:4px;
  background:#fff;
}
.hafc-staff-subphotos img{
  width:100%;
  height:188px;
  object-fit:cover;
}
.hafc-staff-subphotos figure:first-child img{object-position:center 46%}
.hafc-staff-subphotos figure:last-child img{object-position:center 58%}
.hafc-staff-subphotos figcaption{
  padding:6px 8px;
  background:#eef8f5;
  color:#495256;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:11.5px;
  text-align:center;
  line-height:1.45;
}

.hafc-staff-profile{padding-top:8px}
.hafc-staff-name-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:20px;
  align-items:center;
  padding:0 0 18px;
  border-bottom:2px solid rgba(60,165,139,.72);
}
.hafc-staff-name-block h3{
  margin:0 0 7px;
  color:#20282c;
  font-size:37px;
  line-height:1.35;
  font-weight:500;
}
.hafc-staff-name-block h3 small{
  margin-left:10px;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:12px;
  font-weight:400;
  letter-spacing:.08em;
}
.hafc-staff-name-block p{
  margin:0;
  color:var(--mint-dark);
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:15px;
  font-weight:600;
  line-height:1.65;
}
.hafc-staff-licenses{
  display:flex;
  gap:10px;
}
.hafc-staff-licenses span{
  display:grid;
  place-items:center;
  width:92px;
  height:92px;
  padding:7px;
  border:1.5px solid var(--mint-dark);
  border-radius:50%;
  color:#1e8d75;
  background:#fff;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:12.5px;
  line-height:1.45;
  text-align:center;
}
.hafc-staff-details{
  display:grid;
  gap:10px;
  margin:18px 0 0;
}
.hafc-staff-details>div{
  display:grid;
  grid-template-columns:148px minmax(0,1fr);
  align-items:stretch;
  min-height:102px;
}
.hafc-staff-details dt{
  display:flex;
  align-items:center;
  padding:16px 18px;
  background:linear-gradient(135deg,#eff9f6,#f9fcfb);
  color:#2f383c;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:13px;
  font-weight:600;
}
.hafc-staff-details dd{
  margin:0;
  padding:14px 18px;
  color:#465055;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:12.5px;
  line-height:1.8;
}

.hafc-staff-message{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(250px,.65fr);
  gap:24px;
  align-items:center;
  min-height:155px;
  margin-top:20px;
  padding:22px 34px 22px 28px;
  border:1px solid #e5eee9;
  border-radius:5px;
  background:
    radial-gradient(circle at 94% 50%,rgba(110,177,143,.12),transparent 22%),
    linear-gradient(90deg,#eef9f6,#fff);
}
.hafc-staff-message__copy{
  padding-left:16px;
  border-left:4px solid #2eaa8b;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
}
.hafc-staff-message__copy h3{
  margin:0 0 8px;
  color:var(--mint-dark);
  font-size:21px;
  font-weight:600;
}
.hafc-staff-message__copy p{
  margin:0;
  color:#485155;
  font-size:11.8px;
  line-height:1.72;
}
.hafc-staff-message__note{
  justify-self:center;
  margin:0;
  color:#243035;
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:18px;
  line-height:1.65;
  letter-spacing:.08em;
  text-align:center;
  transform:rotate(-6deg);
}


/* =========================================================
   v0.1.45: 料金セクション
   ========================================================= */
.hafc-price-section{
  padding:50px 0 44px;
  background:
    radial-gradient(circle at 92% 5%,rgba(173,194,184,.12),transparent 20%),
    radial-gradient(circle at 4% 80%,rgba(113,188,168,.08),transparent 19%),
    #fff;
}
.hafc-price-heading{
  max-width:980px;
  margin:0 auto 30px;
  text-align:center;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
}
.hafc-price-eyebrow{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  margin:0 0 8px;
  color:var(--mint-dark);
  font-size:15px;
  letter-spacing:.12em;
}
.hafc-price-eyebrow::before,.hafc-price-eyebrow::after{
  content:"";
  width:60px;
  height:1px;
  background:rgba(60,165,139,.62);
}
.hafc-price-heading h2{
  margin:0 0 9px;
  color:#20292d;
  font-size:clamp(38px,3.3vw,52px);
  font-weight:500;
  line-height:1.35;
  letter-spacing:.03em;
}
.hafc-price-lead{
  color:#4a5458;
  font-size:13.5px;
  line-height:1.75;
}
.hafc-price-lead p{margin:0}

.hafc-price-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  align-items:stretch;
}
.hafc-price-card{
  overflow:hidden;
  border:1px solid #e4e8e6;
  border-radius:7px;
  background:#fff;
  box-shadow:0 7px 24px rgba(50,76,69,.035);
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
}
.hafc-price-card--first{
  border-color:#2ea887;
  background:linear-gradient(180deg,#f4fcf9 0%,#fff 42%);
}
.hafc-price-card__top{
  display:flex;
  align-items:center;
  gap:16px;
  min-height:104px;
  padding:18px 22px 13px;
}
.hafc-price-card__top--simple{padding-left:26px}
.hafc-price-card__badge{
  flex:0 0 78px;
  display:grid;
  place-items:center;
  width:78px;
  height:78px;
  border-radius:50%;
  background:#14a986;
  color:#fff;
  font-size:14px;
  line-height:1.35;
  text-align:center;
}
.hafc-price-card__title{min-width:0}
.hafc-price-card__title h3{
  margin:0 0 6px;
  color:#242d31;
  font-size:25px;
  font-weight:500;
  line-height:1.4;
}
.hafc-price-card--first .hafc-price-card__title h3{color:#159a7d}
.hafc-price-card__title p{
  margin:0;
  color:#50595d;
  font-size:12px;
  line-height:1.55;
}
.hafc-price-card__price-row{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  margin:0 22px;
  padding:20px 0 17px;
  border-top:1px solid rgba(67,108,97,.18);
}
.hafc-price-card__price{
  display:flex;
  align-items:baseline;
  margin:0;
  color:#223038;
  line-height:1;
  white-space:nowrap;
}
.hafc-price-card__price strong{
  color:inherit;
  font-family:Georgia,"Times New Roman",serif;
  font-size:54px;
  font-weight:400;
  letter-spacing:.01em;
}
.hafc-price-card--first .hafc-price-card__price{color:#0a9c7d}
.hafc-price-card__price span{margin-left:5px;font-size:25px}
.hafc-price-card__price small{margin-left:5px;font-size:15px}
.hafc-price-card__divider{
  width:1px;
  height:52px;
  background:rgba(59,108,95,.22);
}
.hafc-price-card__time{
  display:grid;
  place-items:center;
  width:82px;
  height:82px;
  margin:0;
  border-radius:50%;
  background:#e9f8f4;
  color:#168f76;
  font-size:12px;
  line-height:1.1;
}
.hafc-price-card__time span{font-size:25px}
.hafc-price-card__time--gray{background:#f1f2f2;color:#465157}
.hafc-price-card__contents{
  margin:0 20px 19px;
  padding:13px 15px 14px;
  background:#eaf8f4;
}
.hafc-price-card__contents--gray{background:#f3f4f4}
.hafc-price-card__contents h4{
  margin:0 0 8px;
  color:#2f4d45;
  font-size:12.5px;
  font-weight:600;
}
.hafc-price-card__contents--gray h4{color:#434c50}
.hafc-price-card__contents ul{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px 18px;
  margin:0;
  padding:0;
  list-style:none;
}
.hafc-price-card__contents-list--single{grid-template-columns:1fr!important}
.hafc-price-card__contents li{
  position:relative;
  margin:0;
  padding-left:25px;
  color:#404a4e;
  font-size:11.8px;
  line-height:1.55;
}
.hafc-price-card__contents li::before{
  content:"✓";
  position:absolute;
  left:0;
  top:.02em;
  display:grid;
  place-items:center;
  width:18px;
  height:18px;
  border-radius:50%;
  background:#12a385;
  color:#fff;
  font-family:Arial,sans-serif;
  font-size:11px;
  font-weight:700;
}
.hafc-price-card__contents--gray li::before{background:#7f8588}
.hafc-price-card__note{
  margin:9px 0 0;
  color:#5b6266;
  font-size:9.8px;
  line-height:1.55;
}

.hafc-price-reassurance{
  display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(0,1.45fr) minmax(210px,.55fr);
  align-items:center;
  min-height:132px;
  margin-top:18px;
  overflow:hidden;
  background:#fff;
  border-top:1px solid rgba(66,108,97,.06);
  border-bottom:1px solid rgba(66,108,97,.06);
}
.hafc-price-reassurance__photo{
  align-self:stretch;
  margin:0;
  min-height:132px;
  overflow:hidden;
}
.hafc-price-reassurance__photo img{
  display:block;
  width:100%;
  height:100%;
  min-height:132px;
  object-fit:cover;
  object-position:center 45%;
}
.hafc-price-reassurance__copy{
  margin-left:-18px;
  padding:13px 28px 13px 30px;
  border-left:5px solid #17a487;
  background:linear-gradient(90deg,rgba(255,255,255,.98),rgba(255,255,255,.90));
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
}
.hafc-price-reassurance__copy h3{
  margin:0 0 8px;
  color:#178d75;
  font-size:20px;
  font-weight:600;
  line-height:1.45;
}
.hafc-price-reassurance__copy p{
  margin:0;
  color:#465156;
  font-size:11.5px;
  line-height:1.7;
}
.hafc-price-reassurance__note{
  margin:0;
  padding:0 20px;
  color:#30393e;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:14px;
  line-height:1.55;
  text-align:center;
  transform:rotate(-5deg);
}

.hafc-price-line-box{
  display:grid;
  grid-template-columns:145px minmax(0,1fr) 320px;
  align-items:center;
  gap:24px;
  margin-top:12px;
  padding:13px 22px;
  border-radius:6px;
  background:#eaf8f4;
}
.hafc-price-line-box__label{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:76px;
  border-right:1px solid rgba(35,147,120,.35);
}
.hafc-price-line-box__label span{
  display:grid;
  place-items:center;
  width:72px;
  height:72px;
  border-radius:50%;
  background:#fff;
  color:#258a74;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:11px;
  line-height:1.45;
  text-align:center;
}
.hafc-price-line-box__main p{
  margin:0 0 7px;
  color:#23856f;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:12px;
  font-weight:600;
}
.hafc-price-line-btn{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:58px;
  padding:8px 48px 8px 18px;
  border-radius:999px;
  background:linear-gradient(90deg,#10a985,#17b591);
  box-shadow:0 5px 12px rgba(21,157,127,.18);
  color:#fff;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  text-decoration:none;
}
.hafc-price-line-btn__icon{
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border-radius:50%;
  background:#fff;
  color:#10a37f;
  font-family:Arial,sans-serif;
  font-size:8px;
  font-weight:700;
}
.hafc-price-line-btn strong{font-size:18px;font-weight:600;letter-spacing:.03em}
.hafc-price-line-btn__arrow{
  position:absolute;
  right:20px;
  top:50%;
  transform:translateY(-52%);
  font-family:Arial,sans-serif;
  font-size:30px;
  font-weight:300;
}
.hafc-price-line-box__text{
  margin:0;
  color:#3f494d;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:11.5px;
  line-height:1.7;
}


/* =========================================================
   v0.1.46: 料金セクション PC お問い合わせ導線
   ========================================================= */
.hafc-price-contact-actions{display:none}
@media(min-width:981px){
  .hafc-price-reassurance{grid-template-columns:minmax(0,.8fr) minmax(0,2fr)}
  .hafc-price-reassurance__note{display:none}
  .hafc-price-line-box{display:none}
  .hafc-price-contact-actions{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    margin-top:14px;
  }
  .hafc-price-contact-action{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:72px;
    padding:12px 46px 12px 24px;
    border:1px solid transparent;
    border-radius:7px;
    box-shadow:0 5px 16px rgba(27,80,68,.08);
    font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
    font-size:20px;
    font-weight:700;
    letter-spacing:.06em;
    text-decoration:none;
    transition:transform .18s ease,box-shadow .18s ease;
  }
  .hafc-price-contact-action:hover{
    transform:translateY(-2px);
    box-shadow:0 8px 20px rgba(27,80,68,.13);
  }
  .hafc-price-contact-action--line{background:#10b981;color:#fff}
  .hafc-price-contact-action--phone{background:#f7931e;color:#fff}
  .hafc-price-contact-action--book{background:#fff;color:#23977f;border-color:#55b7a2}
  .hafc-price-contact-action__arrow{
    position:absolute;
    right:22px;
    top:50%;
    transform:translateY(-54%);
    font-family:Arial,sans-serif;
    font-size:30px;
    font-weight:300;
    line-height:1;
  }
}

/* =========================================================
   v0.1.48: 料金セクション お問い合わせ3導線 + 営業時間
   ========================================================= */
.hafc-price-contact-hours{
  margin:12px 0 0;
  color:#4b5558;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:12px;
  line-height:1.8;
  text-align:center;
  letter-spacing:.02em;
}

/* =========================================================
   v0.1.50: FAQ section (photo removed)
   ========================================================= */
.hafc-faq{
  position:relative;
  overflow:hidden;
  padding:72px 0 76px;
  background:
    radial-gradient(circle at 100% 12%,rgba(129,200,180,.12),transparent 28%),
    linear-gradient(180deg,#fff 0%,#fbfdfc 100%);
}
.hafc-faq__inner{position:relative;z-index:1;width:min(calc(100% - 56px),1200px)}
.hafc-faq__head{
  position:relative;
  margin-bottom:24px;
}
.hafc-faq__head-copy{
  position:relative;
  z-index:2;
  width:100%;
  padding:8px 0 20px;
  text-align:center;
}
.hafc-faq__eyebrow{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  margin:0 0 14px;
  color:var(--mint-dark);
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:16px;
  letter-spacing:.12em;
}
.hafc-faq__eyebrow::before,.hafc-faq__eyebrow::after{
  content:"";
  width:64px;
  height:1px;
  background:rgba(52,166,142,.78);
}
.hafc-faq__head h2{
  margin:0;
  color:#222b31;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:clamp(46px,4.6vw,68px);
  font-weight:500;
  line-height:1.28;
  letter-spacing:.04em;
}
.hafc-faq__lead{
  margin:20px auto 0;
  color:#3f484e;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:15.5px;
  line-height:2;
  letter-spacing:.025em;
}
.hafc-faq__list{
  position:relative;
  z-index:3;
  width:100%;
  display:grid;
  gap:13px;
}
.hafc-faq__item{
  overflow:hidden;
  border:1px solid rgba(55,80,75,.12);
  border-radius:4px;
  background:rgba(255,255,255,.96);
  box-shadow:0 4px 18px rgba(32,62,56,.045);
}
.hafc-faq__question{
  position:relative;
  display:grid;
  grid-template-columns:54px minmax(0,1fr) 30px;
  align-items:center;
  gap:18px;
  min-height:78px;
  padding:10px 22px 10px 20px;
  cursor:pointer;
  list-style:none;
}
.hafc-faq__question::-webkit-details-marker{display:none}
.hafc-faq__q{
  display:grid;
  place-items:center;
  width:54px;
  height:54px;
  border-radius:50%;
  background:#eef9f5;
  color:#159c81;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:28px;
  line-height:1;
}
.hafc-faq__question-text{
  color:#159c81;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:21px;
  font-weight:600;
  line-height:1.55;
  letter-spacing:.02em;
}
.hafc-faq__toggle{
  position:relative;
  display:block;
  width:18px;
  height:18px;
  justify-self:end;
}
.hafc-faq__toggle::before,.hafc-faq__toggle::after{
  content:"";
  position:absolute;
  top:8px;
  width:11px;
  height:2px;
  border-radius:3px;
  background:#159c81;
  transition:transform .2s ease;
}
.hafc-faq__toggle::before{left:0;transform:rotate(45deg)}
.hafc-faq__toggle::after{right:0;transform:rotate(-45deg)}
.hafc-faq__item[open] .hafc-faq__toggle::before{transform:rotate(-45deg)}
.hafc-faq__item[open] .hafc-faq__toggle::after{transform:rotate(45deg)}
.hafc-faq__answer{
  margin:0 20px 16px 92px;
  padding:19px 24px;
  border-radius:2px;
  background:linear-gradient(90deg,#eef9f5 0%,#f3faf7 100%);
  color:#364149;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:15px;
  line-height:2;
}
.hafc-faq__answer p{margin:0}
.hafc-faq__answer > *:first-child{margin-top:0}
.hafc-faq__answer > *:last-child{margin-bottom:0}

/* =========================================================
   v0.1.52: 院情報・アクセス
   ========================================================= */
.hafc-access{
  position:relative;
  overflow:hidden;
  padding:76px 0 82px;
  background:
    radial-gradient(circle at 2% 8%,rgba(139,205,188,.16),transparent 24%),
    radial-gradient(circle at 98% 96%,rgba(139,205,188,.12),transparent 22%),
    #fff;
}
.hafc-access__inner{
  width:min(1180px,calc(100% - 48px));
  margin:0 auto;
}
.hafc-access__head{
  margin:0 auto 34px;
  text-align:center;
}
.hafc-access__eyebrow{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  margin:0 0 12px;
  color:#26977f;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:16px;
  font-weight:600;
  letter-spacing:.12em;
}
.hafc-access__eyebrow::before,
.hafc-access__eyebrow::after{
  content:"";
  width:62px;
  height:1px;
  background:rgba(38,151,127,.65);
}
.hafc-access__head h2{
  margin:0;
  color:#1f2d39;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:clamp(42px,4.35vw,64px);
  font-weight:500;
  line-height:1.24;
  letter-spacing:.04em;
}
.hafc-access__lead{
  margin:16px 0 0;
  color:#354149;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:15px;
  line-height:1.85;
  letter-spacing:.035em;
}
.hafc-access__top{
  display:grid;
  grid-template-columns:.92fr 1.08fr;
  gap:22px;
  align-items:stretch;
}
.hafc-access__info{
  margin:0;
  overflow:hidden;
  border:1px solid rgba(46,95,85,.12);
  border-radius:7px;
  background:#fff;
  box-shadow:0 8px 30px rgba(37,74,66,.04);
}
.hafc-access__info-row{
  display:grid;
  grid-template-columns:128px minmax(0,1fr);
  min-height:62px;
  border-bottom:1px solid rgba(46,95,85,.10);
}
.hafc-access__info-row:last-child{border-bottom:0}
.hafc-access__info dt,
.hafc-access__info dd{
  margin:0;
  display:flex;
  align-items:center;
  padding:12px 18px;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
}
.hafc-access__info dt{
  background:linear-gradient(90deg,#eef9f5 0%,#f4fbf8 100%);
  color:#23313a;
  font-size:15px;
  font-weight:700;
}
.hafc-access__info dd{
  flex-wrap:wrap;
  color:#2f3940;
  font-size:15px;
  line-height:1.7;
}
.hafc-access__info dd small{
  display:block;
  flex-basis:100%;
  margin-left:35px;
  color:#566169;
  font-size:12px;
}
.hafc-access__tel{
  display:inline-flex;
  align-items:center;
  gap:9px;
  color:#14a486;
  font-size:24px;
  font-weight:700;
  letter-spacing:.03em;
  text-decoration:none;
}
.hafc-access__tel-icon{
  font-family:Arial,sans-serif;
  font-size:22px;
  line-height:1;
}
.hafc-access__map{
  overflow:hidden;
  min-height:420px;
  border:1px solid rgba(46,95,85,.11);
  border-radius:7px;
  background:#f5f7f6;
  box-shadow:0 8px 30px rgba(37,74,66,.04);
}
.hafc-access__map iframe{
  display:block;
  width:100%;
  height:100%;
  min-height:420px;
  border:0;
}
.hafc-access__methods,
.hafc-access__gallery{
  margin-top:26px;
}
.hafc-access__subheading{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  margin:0 0 14px;
  color:#26977f;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:20px;
  font-weight:600;
  letter-spacing:.09em;
}
.hafc-access__subheading::before,
.hafc-access__subheading::after{
  content:"";
  width:52px;
  height:1px;
  background:rgba(38,151,127,.65);
}
.hafc-access__method-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.hafc-access__method-card{
  display:grid;
  grid-template-columns:68px minmax(0,1fr);
  gap:15px;
  align-items:center;
  min-height:132px;
  padding:20px 22px;
  border:1px solid rgba(46,95,85,.10);
  border-radius:7px;
  background:rgba(255,255,255,.96);
  box-shadow:0 7px 22px rgba(37,74,66,.035);
}
.hafc-access__method-icon{
  display:grid;
  place-items:center;
  width:62px;
  height:62px;
  border-radius:50%;
  background:#eef9f5;
}
.hafc-access__method-icon svg{
  width:34px;
  height:34px;
  fill:#18a489;
}
.hafc-access__method-card h4{
  margin:0 0 7px;
  color:#168f78;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:16px;
  font-weight:700;
  line-height:1.45;
}
.hafc-access__method-card p{
  margin:0;
  color:#394249;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:13px;
  line-height:1.75;
}
.hafc-access__gallery{margin-top:28px}
.hafc-access__gallery-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.hafc-access__gallery-item{
  margin:0;
  overflow:hidden;
  border-radius:6px;
  background:#fff;
}
.hafc-access__gallery-item img{
  display:block;
  width:100%;
  height:205px;
  object-fit:cover;
  background:#f4f6f5;
}
.hafc-access__gallery-item--exterior img{object-position:center 34%}
.hafc-access__gallery-item--hallway img{object-position:center 45%}
.hafc-access__gallery-item--room img{object-position:center 52%}
.hafc-access__gallery-item figcaption{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:3px;
  padding:9px 8px 4px;
  color:#303a41;
  text-align:center;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
}
.hafc-access__gallery-item figcaption strong{
  font-size:17px;
  font-weight:600;
}
.hafc-access__gallery-item figcaption span{
  color:#505a60;
  font-size:12px;
  line-height:1.6;
}

/* =========================================================
   v0.1.57 Final CTA - approved PC/SP layout
========================================================= */
.final-cta{
  padding:72px 0 64px;
  background:
    radial-gradient(circle at 7% 12%, rgba(163,220,203,.18), transparent 24%),
    radial-gradient(circle at 92% 88%, rgba(163,220,203,.2), transparent 25%),
    linear-gradient(180deg,#fff 0%,#f3fbf8 100%);
}
.final-cta__inner{display:block}
.final-cta__top{
  display:grid;
  grid-template-columns:minmax(0,1.22fr) minmax(360px,.78fr);
  gap:54px;
  align-items:center;
}
.final-cta__copy{min-width:0}
.final-cta h2{
  margin:0 0 28px;
  font-size:clamp(34px,3.15vw,58px);
  line-height:1.43;
  font-weight:500;
  letter-spacing:.035em;
  color:#172936;
}
.final-cta__title-main,
.final-cta__title-accent{display:block}
.final-cta__title-accent{color:#15a989}
.final-cta__photo{
  margin:0;
  border-radius:18px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 10px 30px rgba(26,65,57,.08);
}
.final-cta__photo img{
  display:block;
  width:100%;
  height:390px;
  object-fit:cover;
  object-position:center 45%;
  border-radius:0;
}
.final-cta__checklist{
  list-style:none;
  margin:0 0 26px;
  padding:0;
  display:grid;
  gap:12px;
}
.final-cta__checklist li{
  position:relative;
  margin:0;
  padding:0 0 0 42px;
  font-size:18px;
  line-height:1.75;
  color:#28353e;
}
.final-cta__checklist li::before{
  content:'✓';
  position:absolute;
  left:0;
  top:.18em;
  width:26px;
  height:26px;
  display:grid;
  place-items:center;
  border:1px solid #8bd5c2;
  border-radius:4px;
  background:#e9f8f3;
  color:#11a989;
  font-size:18px;
  font-weight:700;
  line-height:1;
}
.final-cta__bodycopy{font-size:17px;line-height:1.9;color:#27323b}
.final-cta__bodycopy p{margin:0 0 12px}
.final-cta__bodycopy p:last-child{margin-bottom:0}

.final-cta__trust{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  margin:42px 0 34px;
}
.final-cta__trust-item{
  display:grid;
  grid-template-columns:112px 1fr;
  gap:18px;
  align-items:center;
  padding:8px 26px;
  border-right:1px solid #a7d9cc;
}
.final-cta__trust-item:last-child{border-right:0}
.final-cta__trust-icon{
  width:98px;
  height:98px;
  border-radius:50%;
  background:#e5f7f1;
  position:relative;
  display:block;
}
.final-cta__trust-icon::before,
.final-cta__trust-icon::after{content:'';position:absolute}
/* Person icon */
.final-cta__trust-icon--person::before{
  width:28px;height:28px;border:4px solid #14a98b;border-radius:50%;
  left:31px;top:19px;box-sizing:border-box;
}
.final-cta__trust-icon--person::after{
  width:46px;height:30px;border:4px solid #14a98b;border-top:0;border-radius:0 0 22px 22px;
  left:22px;top:49px;box-sizing:border-box;
}
/* Handshake icon simplified */
.final-cta__trust-icon--handshake::before{
  width:50px;height:28px;border:4px solid #14a98b;border-radius:10px 10px 18px 18px;
  left:20px;top:34px;transform:rotate(-8deg);box-sizing:border-box;
}
.final-cta__trust-icon--handshake::after{
  width:28px;height:4px;background:#14a98b;left:34px;top:47px;transform:rotate(17deg);
  box-shadow:-10px 8px 0 #14a98b,10px -8px 0 #14a98b;
}
/* Chat icon */
.final-cta__trust-icon--chat::before{
  width:54px;height:40px;border:4px solid #14a98b;border-radius:22px;
  left:18px;top:24px;box-sizing:border-box;
}
.final-cta__trust-icon--chat::after{
  width:12px;height:12px;border-left:4px solid #14a98b;border-bottom:4px solid #14a98b;
  left:29px;top:58px;transform:skew(-20deg) rotate(-25deg);box-sizing:border-box;
}
.final-cta__trust-item strong{
  display:block;
  margin-bottom:10px;
  color:#0b9e83;
  font-size:21px;
  line-height:1.55;
  font-weight:600;
}
.final-cta__trust-item p{
  margin:0;
  font-size:14px;
  line-height:1.75;
  color:#3a454d;
}
.final-cta__actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  max-width:1070px;
  margin:0 auto;
}
.final-cta__button{
  min-height:94px;
  padding:14px 28px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  text-decoration:none;
  font-size:25px;
  font-weight:500;
  letter-spacing:.025em;
  transition:transform .2s ease,box-shadow .2s ease;
  box-sizing:border-box;
}
.final-cta__button:hover{transform:translateY(-2px)}
.final-cta__button--line{
  color:#fff;
  background:linear-gradient(135deg,#18b997,#059b80);
  box-shadow:0 10px 25px rgba(8,157,129,.18);
}
.final-cta__button--web{
  color:#079d82;
  background:#fff;
  border:2px solid #13a98c;
  box-shadow:0 8px 22px rgba(20,117,98,.08);
}
.final-cta__button-badge{
  flex:0 0 62px;width:62px;height:62px;border-radius:50%;
  display:grid;place-items:center;background:#fff;color:#0ba386;font-size:16px;font-weight:700;
}
.final-cta__calendar{
  flex:0 0 52px;width:52px;height:48px;border:4px solid #0aa386;border-radius:7px;position:relative;box-sizing:border-box;
}
.final-cta__calendar::before{content:'';position:absolute;left:7px;right:7px;top:10px;border-top:4px solid #0aa386;box-shadow:0 10px 0 -1px #0aa386}
.final-cta__calendar::after{content:'';position:absolute;left:10px;top:-10px;width:24px;height:10px;border-left:4px solid #0aa386;border-right:4px solid #0aa386}
.final-cta__button-arrow{margin-left:auto;font-size:46px;line-height:1;font-weight:300}
.final-cta__note{
  margin:28px 0 0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  color:#2f3a42;
  font-size:15px;
  letter-spacing:.05em;
}
.final-cta__note span{width:54px;height:1px;background:#38b49b;display:block}

/* =========================================================
   v0.1.58 Final CTA refinements
   - clearer trust icons
   - existing 3-contact-banner design
   - black/green heading treatment
   - elegant PC photo fade
========================================================= */
.final-cta__title-main{color:#172936!important}
.final-cta__title-accent{color:#15a989!important}

.final-cta__trust-icon{
  color:#12a489;
  display:grid;
  place-items:center;
}
.final-cta__trust-icon::before,
.final-cta__trust-icon::after{content:none!important}
.final-cta__trust-svg{
  width:54px;
  height:54px;
  display:block;
}

.final-cta__contact-actions{margin-top:10px}
.final-cta__hours{
  max-width:1120px;
  margin:12px auto 0;
}

@media(min-width:681px){
  .final-cta__photo{
    position:relative;
    box-shadow:none;
  }
  .final-cta__photo::after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
      linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.62) 12%,rgba(255,255,255,.18) 31%,rgba(255,255,255,0) 52%),
      linear-gradient(180deg,rgba(255,255,255,.08) 0%,rgba(255,255,255,0) 62%,rgba(255,255,255,.22) 100%);
  }
}


/* =========================================================
   v0.1.59 Final CTA heading / trust text refinements
========================================================= */
@media (min-width:681px){
  .final-cta h2{
    font-size:clamp(34px,2.55vw,40px);
    line-height:1.55;
    letter-spacing:.015em;
  }
  .final-cta__title-main,
  .final-cta__title-accent{
    white-space:nowrap;
  }
}

/* =========================================================
   v0.1.60 Final CTA cleanup
   - remove decorative background elements / clinic-name decoration
   - soften PC photo fade
   - keep phone CTA in the established orange design
========================================================= */
.final-cta{
  background:linear-gradient(180deg,#fff 0%,#f5fbf9 100%)!important;
}
.final-cta::before,
.final-cta::after{
  content:none!important;
  display:none!important;
}
.final-cta__contact-actions .hafc-price-contact-action--phone{
  background:#f7931e!important;
  color:#fff!important;
  border-color:#f7931e!important;
}

@media (min-width:681px){
  .final-cta__photo::after{
    background:linear-gradient(90deg,
      rgba(255,255,255,.42) 0%,
      rgba(255,255,255,.14) 8%,
      rgba(255,255,255,.03) 15%,
      rgba(255,255,255,0) 22%
    )!important;
  }
}


/* =========================================================
   v0.1.61 Final CTA typography alignment
   - Match body/check/trust copy to the Mincho typography used
     throughout the approved sections.
========================================================= */
.final-cta__checklist li,
.final-cta__bodycopy,
.final-cta__bodycopy p,
.final-cta__trust-item strong,
.final-cta__trust-item p{
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
}


/* v0.1.72: icon-based contact buttons on price / final CTA sections */
.hafc-price-contact-action{justify-content:flex-start}
.hafc-price-contact-action__icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:24px;height:24px;margin-right:12px}
.hafc-price-contact-action__label{display:block;flex:1;line-height:1.35;letter-spacing:.03em}
@media(min-width:981px){
  .hafc-price-contact-action{padding-left:26px;padding-right:50px}
  .hafc-price-contact-action__icon{width:24px;height:24px;margin-right:14px}
  .hafc-price-contact-action__label{font-size:18px}
}


/* v0.1.73: center CTA button contents on PC */
.hafc-price-contact-action{justify-content:center;gap:12px;padding-left:24px;padding-right:24px;text-align:center}
.hafc-price-contact-action__icon{margin-right:0}
.hafc-price-contact-action__label{flex:0 1 auto;text-align:center}
.hafc-price-contact-action__arrow{right:20px}


/* v0.1.74: staff message natural wrapping + safe separation from handwritten note */
.hafc-staff-message{
  grid-template-columns:minmax(0,1fr) minmax(220px,260px);
  column-gap:52px;
}
.hafc-staff-message__copy{min-width:0}
.hafc-staff-message__copy p{
  max-width:100%;
  white-space:normal;
  word-break:normal;
  overflow-wrap:break-word;
}
.hafc-staff-message__note{
  min-width:0;
  max-width:240px;
  justify-self:center;
}


/* v0.1.79: worries intro body natural wrapping */
.hafc-worries-intro__body p{
  white-space:normal;
  word-break:normal;
  overflow-wrap:anywhere;
}


/* v0.1.81: separate PC / smartphone staff photos in intro */
.hafc-worries-intro__visual-sp{display:none!important}
.hafc-worries-intro__visual-pc{display:block}


/* v0.1.87: replace intro staff photo on PC while preserving the existing decoration */
@media(min-width:768px){
  .hafc-worries-intro__visual-pc{
    width:min(100%,625px)!important;
    max-height:585px!important;
    object-fit:contain!important;
    object-position:center bottom!important;
    border-radius:0!important;
  }
}
