@charset "UTF-8";
/* =========================================================
   メンズケアクリニック 都度払い医療脱毛 LP
   men_medical_beauty_direct_response
   masculine / aggressive / price-driven / cyber / flame
   Mobile-first / base = smartphone, @media(min-width:768px) = PC
   ========================================================= */

:root{
  /* --- background --- */
  --bg-primary:#050505;
  --bg-secondary:#101014;
  --bg-card:#17171A;
  --bg-white:#FFFFFF;
  /* --- text --- */
  --text-primary:#FFFFFF;
  --text-secondary:#E6E6E6;
  --text-muted:#B8B8B8;
  --text-inverse:#0A0A0A;
  /* --- accent --- */
  --cyan:#00B8E6;
  --blue:#0076B6;
  --medical-blue:#0B5F9E;
  --red:#D71920;
  --fire:#FF5A1F;
  --yellow:#FFD24A;
  /* --- border --- */
  --border-muted:#444444;
  /* --- radius --- */
  --r-none:0;
  --r-sm:4px;
  --r-md:8px;
  /* --- shadow --- */
  --sh-cta:0 4px 0 #5A0000;
  --sh-glow-blue:0 0 24px rgba(0,184,230,.45);
  --sh-glow-fire:0 0 28px rgba(255,90,31,.5);
  /* --- layout --- */
  --maxw:980px;
  /* --- fonts --- */
  --font-ja:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --font-num:"Arial Black","Helvetica Neue",Arial,sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  font-family:var(--font-ja);
  color:var(--text-primary);
  background:var(--bg-primary);
  line-height:1.8;
  font-size:17px;
  font-weight:600;
  overflow-x:hidden;
  padding-bottom:88px; /* fixed CTA clearance */
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
ul,ol{list-style:none;}
strong{font-weight:900;}

/* =========================================================
   Buttons
   ========================================================= */
.btn{
  display:block;width:100%;max-width:480px;
  margin:32px auto 0;
  text-align:center;font-weight:900;
  border-radius:var(--r-sm);
  transition:transform .08s ease, box-shadow .08s ease;
}
/* primary CTA (red 3D button) */
.btn-primary{
  background:linear-gradient(180deg,#FF3B30 0%,#B00000 100%);
  color:#FFFFFF;
  border:2px solid #FFFFFF;
  box-shadow:var(--sh-cta);
  font-size:20px;
  padding:16px 28px;
  letter-spacing:.02em;
}
.btn-primary:active{
  transform:translateY(4px);
  box-shadow:0 0 0 #5A0000;
}
/* fire CTA (campaign) */
.btn-fire{
  background:linear-gradient(180deg,#FF8A1F 0%,#D71920 100%);
  color:#FFFFFF;
  border:2px solid #FFD24A;
  box-shadow:0 4px 0 #6E0A00, var(--sh-glow-fire);
  font-size:20px;
  padding:16px 28px;
  letter-spacing:.02em;
}
.btn-fire:active{
  transform:translateY(4px);
  box-shadow:0 0 0 #6E0A00, var(--sh-glow-fire);
}
/* secondary / ghost CTA */
.btn-ghost{
  background:#000000;color:#FFFFFF;
  border:2px solid #FFFFFF;
  font-weight:800;font-size:17px;
  padding:15px 24px;
  box-shadow:none;
}
.btn-ghost:active{transform:translateY(2px);}
/* tel button */
.btn-tel{
  background:#000000;color:#FFFFFF;
  border:2px solid var(--cyan);
  font-weight:800;font-size:16px;
  padding:14px 18px;
  box-shadow:none;
  margin-top:18px;
}
.btn-tel:active{transform:translateY(2px);}

/* =========================================================
   Header
   ========================================================= */
.site-header{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  height:72px;
  padding:0 16px;
  background:#FFFFFF;
  border-bottom:1px solid #E5E5E5;
}
.logo img{height:38px;width:auto;}
.header-cta{
  display:flex;align-items:center;justify-content:center;
  min-height:44px;
  background:var(--red);color:#FFFFFF;
  font-weight:900;font-size:14px;
  letter-spacing:.04em;
  padding:0 20px;
  border-radius:var(--r-none);
}

/* =========================================================
   Section base
   ========================================================= */
.section{
  max-width:var(--maxw);margin:0 auto;
  padding:48px 20px;
}
.section-head{text-align:center;margin-bottom:32px;}
.section-en{
  font-family:var(--font-num);
  font-size:13px;letter-spacing:.32em;
  color:var(--cyan);
  font-weight:700;margin-bottom:6px;
}
.section-title{
  font-size:clamp(26px,5vw,48px);
  font-weight:900;line-height:1.25;
  letter-spacing:-0.01em;
}
.section-title strong{
  color:var(--cyan);
}

/* cyber line decoration for section heads on dark */
.section-head::after{
  content:"";display:block;
  width:64px;height:4px;margin:14px auto 0;
  background:linear-gradient(90deg,var(--cyan),var(--blue));
  box-shadow:var(--sh-glow-blue);
}

/* =========================================================
   First View
   ========================================================= */
.fv{
  position:relative;
  background:
    radial-gradient(90% 60% at 50% 0%,rgba(0,118,182,.35) 0%,rgba(5,5,5,0) 60%),
    radial-gradient(70% 50% at 80% 30%,rgba(0,184,230,.18) 0%,rgba(5,5,5,0) 70%),
    linear-gradient(180deg,#101014 0%,#050505 100%);
  color:#FFFFFF;text-align:center;
  padding:40px 20px 48px;
  overflow:hidden;
}
/* cyber light beams */
.fv::before{
  content:"";position:absolute;inset:0;z-index:0;
  background:
    repeating-linear-gradient(115deg,rgba(0,184,230,0) 0 38px,rgba(0,184,230,.06) 38px 40px),
    radial-gradient(2px 2px at 18% 22%,rgba(0,184,230,.7),transparent),
    radial-gradient(2px 2px at 72% 14%,rgba(0,184,230,.5),transparent),
    radial-gradient(2px 2px at 40% 60%,rgba(0,184,230,.55),transparent),
    radial-gradient(2px 2px at 88% 48%,rgba(0,184,230,.45),transparent);
  pointer-events:none;
}
.fv-inner{position:relative;z-index:1;max-width:560px;margin:0 auto;}
.fv-lead{
  font-size:15px;font-weight:700;letter-spacing:.18em;
  color:var(--cyan);margin-bottom:12px;
}
.fv-title{
  display:flex;flex-direction:column;align-items:center;
  font-weight:900;line-height:1.05;
}
/* 3-word appeal keywords */
.fv-keywords{
  display:flex;gap:8px;justify-content:center;
  margin-bottom:14px;
}
.fv-keywords span{
  display:flex;align-items:center;justify-content:center;
  flex:1;min-width:0;max-width:120px;
  font-size:clamp(12px,3.6vw,14px);
  font-weight:900;line-height:1.3;
  white-space:nowrap;
  color:#FFFFFF;
  background:rgba(11,95,158,.35);
  border:1px solid var(--cyan);
  border-radius:var(--r-sm);
  padding:8px 4px;
  box-shadow:var(--sh-glow-blue);
}
/* price */
.fv-price-wrap{
  display:flex;align-items:flex-end;justify-content:center;
  gap:6px;margin-top:4px;max-width:100%;
}
.fv-price{
  font-family:var(--font-num);
  display:flex;align-items:flex-end;flex-wrap:nowrap;
  max-width:100%;
  color:var(--red);
}
.fv-price .num{
  font-size:clamp(58px,17vw,150px);
  line-height:.9;font-weight:900;
  text-shadow:0 0 26px rgba(215,25,32,.6),0 6px 0 #4A0000;
}
.fv-price .yen{
  font-size:clamp(24px,5.5vw,44px);
  font-weight:900;
  /* keep 円 visually seated on the number's baseline across the clamp range */
  padding-bottom:clamp(3px,1.1vw,9px);
  color:#FFFFFF;
}
.fv-plan{
  display:inline-block;margin-top:8px;
  background:var(--red);color:#FFFFFF;
  font-size:clamp(13px,3.8vw,17px);
  font-weight:900;letter-spacing:.03em;
  padding:5px 16px;border-radius:var(--r-sm);
  box-shadow:0 0 18px rgba(215,25,32,.45);
}
.fv-sub{
  display:inline-block;margin:2px 0 14px;line-height:1.3;
  background:#FFFFFF;color:var(--text-inverse);
  font-size:clamp(22px,6vw,34px);
  font-weight:900;letter-spacing:.01em;
  padding:10px 22px;
  border-radius:var(--r-sm);
}
.fv-catch{
  font-size:clamp(15px,4.2vw,20px);
  font-weight:800;line-height:1.55;
  color:#FFFFFF;margin-bottom:16px;
}
.fv-catch strong{color:var(--cyan);font-weight:900;}
.fv-desc{
  font-size:16px;margin-top:18px;
  color:var(--text-secondary);font-weight:600;
}
.fv-emph{
  display:block;
  font-size:clamp(21px,6vw,32px);
  font-weight:900;line-height:1.35;
  color:var(--yellow);
  letter-spacing:.02em;
  margin-bottom:6px;
  text-shadow:0 0 16px rgba(255,210,74,.45);
}
/* model image: right-side background figure, sits behind the centered text */
.fv-model{
  position:absolute;
  z-index:0;
  right:-17%;
  bottom:351px;
  width:70%;
  max-width:300px;
  margin:0;
  opacity:.7;
  -webkit-mask-image:linear-gradient(to left,#000 44%,rgba(0,0,0,0) 100%);
          mask-image:linear-gradient(to left,#000 44%,rgba(0,0,0,0) 100%);
  filter:drop-shadow(0 14px 30px rgba(0,118,182,.4));
  pointer-events:none;
}
.fv-badges{
  display:flex;flex-wrap:wrap;justify-content:center;gap:10px;
  margin-top:14px;
}
.fv-badges span{
  font-size:13px;font-weight:800;
  color:#FFFFFF;
  background:rgba(0,184,230,.12);
  border:1px solid var(--cyan);
  padding:6px 14px;
  border-radius:var(--r-sm);
}

/* =========================================================
   Empathy check  (こんなお悩み)
   ========================================================= */
.worry{
  background:linear-gradient(180deg,#0A0A0E 0%,#050505 100%);
  max-width:none;
}
.worry>*{max-width:var(--maxw);margin-left:auto;margin-right:auto;}
.worry-list{display:grid;gap:12px;}
.worry-list li{
  background:var(--bg-card);
  border:1px solid var(--border-muted);
  border-left:4px solid var(--red);
  border-radius:var(--r-md);
  padding:18px 18px 18px 56px;
  position:relative;
  font-size:16px;font-weight:700;line-height:1.55;
  color:#FFFFFF;
}
.worry-list li::before{
  content:"";position:absolute;left:16px;top:50%;
  transform:translateY(-50%);
  width:28px;height:28px;border-radius:7px;
  background:var(--red)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='5 13 10 18 19 6'/%3E%3C/svg%3E")
    center/16px no-repeat;
  box-shadow:0 0 14px rgba(215,25,32,.5);
}
.worry-list li strong{color:var(--yellow);}
.worry-bridge{
  margin-top:24px;text-align:center;
  font-size:clamp(17px,4.6vw,22px);
  font-weight:900;line-height:1.6;
  color:#FFFFFF;
}
.worry-bridge strong{color:var(--cyan);}

/* =========================================================
   Campaign  (flame / red / orange)
   ========================================================= */
.campaign{
  position:relative;
  background:
    radial-gradient(80% 70% at 50% 0%,rgba(255,90,31,.55) 0%,rgba(5,5,5,0) 70%),
    linear-gradient(180deg,#3A0A00 0%,#1A0500 100%);
  text-align:center;
  padding:40px 20px 48px;
  overflow:hidden;
}
.campaign::before{
  content:"";position:absolute;inset:0;z-index:0;
  background:repeating-linear-gradient(70deg,rgba(255,210,74,0) 0 40px,rgba(255,210,74,.07) 40px 42px);
  pointer-events:none;
}
.campaign>*{position:relative;z-index:1;}
.campaign-tag{
  font-family:var(--font-num);
  font-size:14px;letter-spacing:.3em;
  color:var(--yellow);font-weight:700;
  margin-bottom:6px;
}
.campaign-copy{
  font-size:clamp(24px,6.5vw,44px);
  font-weight:900;line-height:1.15;
  color:#FFFFFF;
  text-shadow:0 0 22px rgba(255,90,31,.7);
  margin-bottom:20px;
}
.campaign img{
  width:100%;max-width:680px;margin:0 auto;
  border:2px solid var(--fire);
  border-radius:var(--r-sm);
  box-shadow:var(--sh-glow-fire);
}
.campaign-points{
  display:grid;gap:8px;
  max-width:420px;margin:18px auto 0;
}
.campaign-points li{
  font-size:15px;font-weight:800;
  color:#FFFFFF;
  background:rgba(0,0,0,.45);
  border:1px solid var(--fire);
  border-radius:var(--r-sm);
  padding:10px 12px;
}
.campaign-points strong{color:var(--yellow);}

/* =========================================================
   Reasons  (dark + checklist)
   ========================================================= */
.reasons{
  background:linear-gradient(180deg,#050505 0%,#101014 100%);
  max-width:none;
}
.reasons .section-head,
.reasons .reason-list{
  max-width:var(--maxw);margin-left:auto;margin-right:auto;
}
.reason-list{display:grid;gap:12px;}
.reason-list li{
  background:var(--bg-card);
  border:1px solid var(--border-muted);
  border-left:4px solid var(--cyan);
  border-radius:var(--r-md);
  padding:18px 18px 18px 54px;
  position:relative;
}
.reason-list li::before{
  content:"";position:absolute;left:16px;top:20px;
  width:26px;height:26px;border-radius:50%;
  background:#008CD6
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='5 13 10 18 19 6'/%3E%3C/svg%3E")
    center/15px no-repeat;
  box-shadow:var(--sh-glow-blue);
}
.reason-list h3{
  font-size:19px;font-weight:900;margin-bottom:4px;
  color:#FFFFFF;
}
.reason-list p{
  font-size:15px;color:var(--text-muted);font-weight:600;
}

/* =========================================================
   Price
   ========================================================= */
.price{
  background:linear-gradient(180deg,#101014 0%,#050505 100%);
  max-width:none;
}
.price>*{
  max-width:var(--maxw);margin-left:auto;margin-right:auto;
}
/* initial-campaign price block (emphasis) */
.price-campaign{
  border:2px solid var(--red);
  background:
    linear-gradient(180deg,rgba(215,25,32,.16),rgba(215,25,32,.04)),
    var(--bg-card);
  box-shadow:0 0 24px rgba(215,25,32,.3);
}
.price-campaign h3{
  border-left-color:var(--red);
  color:var(--yellow);
}
.price-lead{
  text-align:center;font-size:16px;font-weight:800;
  color:var(--text-secondary);
  margin:22px auto 4px;
}
.price-lead strong{color:var(--cyan);}
/* price plan blocks */
.price-block{
  background:var(--bg-card);
  border:1px solid var(--border-muted);
  border-radius:var(--r-md);
  padding:20px;margin-top:16px;
}
.price-block h3{
  font-size:19px;font-weight:900;margin-bottom:12px;
  padding-left:12px;
  border-left:4px solid var(--cyan);
  color:#FFFFFF;
}
.price-table{width:100%;border-collapse:collapse;table-layout:fixed;}
.price-table th,.price-table td{
  padding:13px 4px;
  border-bottom:1px dashed var(--border-muted);
  vertical-align:middle;
}
/* col 1: thumbnail (fixed narrow) / col 2: plan name (flexible) / col 3: price */
.price-table .plan-thumb{
  width:54px;padding-left:0;padding-right:6px;
}
.price-table .plan-thumb img{
  width:48px;height:48px;
  object-fit:contain;
  background:#FFFFFF;
  border-radius:var(--r-sm);
  padding:4px;
}
.price-table th{
  text-align:left;font-weight:800;font-size:17px;
  color:var(--text-secondary);
  line-height:1.35;word-break:break-word;
}
.price-table .plan-price{
  text-align:right;font-weight:900;
  color:var(--yellow);font-size:17px;white-space:nowrap;
  width:39%;padding-right:2px;
}
.price-table .pnum{
  font-family:var(--font-num);
  font-size:clamp(30px,8vw,50px);
  line-height:.95;
  color:var(--red);
  text-shadow:0 0 14px rgba(215,25,32,.45);
  vertical-align:-2px;
}
.price-table tr:last-child th,
.price-table tr:last-child td{border-bottom:none;}
.price-caption{
  font-size:13px;color:var(--text-muted);margin-top:8px;
  font-weight:600;
}
.tax-note{
  font-size:13px;color:var(--text-muted);
  text-align:right;margin-top:10px;font-weight:600;
}
/* anesthesia option block (plain 2-column table, no thumbnails) */
.price-option h3{
  border-left-color:var(--cyan);
}
.option-table{width:100%;border-collapse:collapse;}
.option-table th,.option-table td{
  padding:13px 4px;
  border-bottom:1px dashed var(--border-muted);
  vertical-align:middle;
}
.option-table th{
  text-align:left;font-weight:800;font-size:17px;
  color:var(--text-secondary);
}
.option-table .opt-price{
  text-align:right;font-weight:900;
  color:var(--yellow);font-size:19px;white-space:nowrap;
}
.option-table .pnum{
  font-family:var(--font-num);
  font-size:clamp(30px,8vw,50px);
  line-height:.95;
  color:var(--red);
  text-shadow:0 0 14px rgba(215,25,32,.45);
  vertical-align:-2px;
}
.option-table tr:last-child th,
.option-table tr:last-child td{border-bottom:none;}
/* =========================================================
   Compare  (vs other clinics)
   ========================================================= */
.compare{
  background:linear-gradient(180deg,#050505 0%,#101014 100%);
  max-width:none;
}
.compare>*{
  max-width:var(--maxw);margin-left:auto;margin-right:auto;
}
.compare-wrap{
  border-radius:var(--r-md);
  overflow:hidden;
  border:1px solid var(--border-muted);
}
.compare-table{
  width:100%;border-collapse:collapse;
  table-layout:fixed;
  background:var(--bg-card);
}
/* column width allocation: row-label narrower, data cols wider/even */
.compare-table th:first-child,
.compare-table td:first-child{width:26%;}
.compare-table th:nth-child(2),
.compare-table td:nth-child(2),
.compare-table th:nth-child(3),
.compare-table td:nth-child(3){width:37%;}
.compare-table th,
.compare-table td{
  border-bottom:1px solid var(--border-muted);
  padding:13px 5px;
  text-align:center;
  font-size:14px;font-weight:800;
  vertical-align:middle;
  word-break:break-word;
}
.compare-table thead th{
  font-size:13px;font-weight:900;line-height:1.45;
  background:var(--bg-secondary);
  color:var(--text-secondary);
  padding-top:14px;padding-bottom:14px;
}
.compare-table thead th.compare-corner{
  font-size:13px;color:var(--text-muted);font-weight:800;
}
/* self column: red emphasis (header gradient, cells red bg/white bold) */
.compare-table thead th.compare-self{
  background:linear-gradient(180deg,#FF3B30 0%,#B00000 100%);
  color:#FFFFFF;font-size:14px;
  border-left:2px solid var(--red);
  border-right:2px solid var(--red);
}
.compare-table tbody td.compare-self{
  background:linear-gradient(180deg,rgba(215,25,32,.34),rgba(215,25,32,.20));
  color:#FFFFFF;font-weight:900;font-size:15px;
  border-left:2px solid var(--red);
  border-right:2px solid var(--red);
}
.compare-table tbody tr:last-child td.compare-self{
  border-bottom:2px solid var(--red);
}
.compare-table tbody th[scope="row"]{
  text-align:left;
  background:var(--bg-secondary);
  color:#FFFFFF;font-weight:900;font-size:13px;
  line-height:1.4;
  padding-left:8px;
}
.compare-table tbody td{
  color:var(--text-muted);
}
/* highlighted row: hair-removal device is fixed — key differentiator */
.compare-table tbody tr.compare-hl th[scope="row"]{
  background:linear-gradient(180deg,rgba(0,184,230,.32),rgba(0,184,230,.16));
  color:#FFFFFF;
  box-shadow:inset 3px 0 0 var(--cyan);
}
.compare-table tbody tr.compare-hl td:not(.compare-self){
  background:rgba(0,184,230,.07);
}
.compare-table tbody tr.compare-hl th,
.compare-table tbody tr.compare-hl td{
  border-bottom:2px solid var(--cyan);
}
.compare-table tbody tr:last-child th,
.compare-table tbody tr:last-child td{border-bottom:none;}
.compare-note{
  font-size:13px;color:var(--text-muted);
  margin-top:14px;text-align:center;
}

/* =========================================================
   About
   ========================================================= */
.about{
  background:linear-gradient(180deg,#050505 0%,#0B1420 100%);
  max-width:none;
}
.about>*{max-width:var(--maxw);margin-left:auto;margin-right:auto;}
.about-body img{
  margin:0 auto 20px;
  border:1px solid var(--border-muted);
  border-radius:var(--r-md);
  width:auto;max-width:150px;
  padding:14px;background:#FFFFFF;
}
/* 3-step laser mechanism diagram: full-width framed */
.about-body img.about-diagram{
  display:block;
  width:100%;max-width:560px;
}
.about-body p{
  font-size:17px;margin-bottom:16px;
  color:var(--text-secondary);font-weight:600;
}
.about-body strong{color:var(--cyan);}
.about-device{
  font-size:18px;font-weight:900;
  color:#FFFFFF;
  background:var(--bg-card);
  border:1px solid var(--border-muted);
  border-left:4px solid var(--cyan);
  border-radius:var(--r-md);
  padding:12px 16px;margin-bottom:14px;
}
.about-device strong{color:var(--cyan);}
.about-body h3{
  font-size:21px;font-weight:900;margin:24px 0 12px;
  padding-left:12px;
  border-left:4px solid var(--red);
  color:#FFFFFF;
}
.risk-table{
  width:100%;border-collapse:separate;border-spacing:0;
  background:var(--bg-card);
  border:1px solid var(--border-muted);
  border-radius:var(--r-md);overflow:hidden;
}
.risk-table th,.risk-table td{
  padding:15px 14px;font-size:15px;
  border-bottom:1px solid var(--border-muted);
  text-align:left;vertical-align:top;
  line-height:1.75;
}
.risk-table tr:last-child th,
.risk-table tr:last-child td{border-bottom:none;}
.risk-table th{
  width:88px;
  font-weight:900;font-size:14px;color:#FFFFFF;
  background:linear-gradient(180deg,var(--fire) 0%,var(--red) 100%);
  text-align:center;line-height:1.4;
  border-right:1px solid rgba(0,0,0,.35);
}
.risk-table td{
  color:var(--text-secondary);font-weight:600;
}
.about-note{
  font-size:15px;color:var(--text-muted);
  font-weight:600;
  background:var(--bg-secondary);
  border:1px dashed var(--border-muted);
  border-radius:var(--r-md);
  padding:14px 16px;margin-top:16px;
}

/* =========================================================
   Flow
   ========================================================= */
.flow{
  background:linear-gradient(180deg,#0B1420 0%,#050505 100%);
  max-width:none;
}
.flow .section-head,
.flow .flow-list{
  max-width:var(--maxw);margin-left:auto;margin-right:auto;
}
.flow-list{display:grid;gap:16px;}
.flow-list li{
  background:var(--bg-card);
  border:1px solid var(--border-muted);
  border-radius:var(--r-md);
  overflow:hidden;position:relative;
}
.flow-step{
  position:absolute;top:0;left:0;z-index:2;
  background:linear-gradient(90deg,var(--blue),var(--cyan));
  color:#FFFFFF;
  font-family:var(--font-num);font-weight:700;
  font-size:14px;letter-spacing:.08em;
  padding:7px 16px;
  box-shadow:var(--sh-glow-blue);
}
.flow-list img{
  width:100%;aspect-ratio:16/9;object-fit:cover;
}
.flow-text{padding:14px 16px 18px;}
.flow-list h3{
  font-size:19px;font-weight:900;margin-bottom:4px;
  color:#FFFFFF;
}
.flow-list p{
  font-size:15px;color:var(--text-muted);font-weight:600;
}

/* =========================================================
   Cases
   ========================================================= */
.cases{
  background:linear-gradient(180deg,#050505 0%,#101014 100%);
  max-width:none;
}
.cases>*{max-width:var(--maxw);margin-left:auto;margin-right:auto;}
.case-list{display:grid;gap:18px;}
.case-card{
  background:var(--bg-card);
  border:1px solid var(--border-muted);
  border-radius:var(--r-md);
  overflow:hidden;
}
.case-card h3{
  background:linear-gradient(90deg,var(--medical-blue),var(--cyan));
  color:#FFFFFF;
  font-size:18px;font-weight:900;padding:11px 16px;
}
.case-ba{display:grid;grid-template-columns:1fr 1fr;}
.case-ba figure{position:relative;}
.case-ba img{width:100%;aspect-ratio:1/1;object-fit:cover;}
.case-ba figcaption{
  position:absolute;top:8px;left:8px;
  background:#000000;color:#FFFFFF;
  font-family:var(--font-num);font-size:12px;font-weight:700;
  letter-spacing:.06em;padding:4px 12px;
  border-radius:var(--r-none);
}
.case-ba figure:last-child figcaption{
  background:var(--red);
}
.case-note{
  font-size:13px;color:var(--text-muted);
  font-weight:600;
  margin-top:14px;text-align:center;
}

/* =========================================================
   Media
   ========================================================= */
.media{
  background:linear-gradient(180deg,#101014 0%,#050505 100%);
  max-width:none;
}
.media>*{max-width:var(--maxw);margin-left:auto;margin-right:auto;}
.media-card{
  display:block;
  background:var(--bg-card);
  border:1px solid var(--border-muted);
  border-radius:var(--r-md);
  overflow:hidden;
}
.media-card img{width:100%;}
.media-card span{
  display:block;text-align:center;
  font-size:15px;font-weight:800;
  color:var(--cyan);padding:16px;
}

/* =========================================================
   FAQ  (accordion)
   ========================================================= */
.faq{
  background:linear-gradient(180deg,#050505 0%,#0B1420 100%);
  max-width:none;
}
.faq>*{max-width:var(--maxw);margin-left:auto;margin-right:auto;}
.faq-list{display:grid;gap:10px;}
.faq-item{
  background:var(--bg-card);
  border:1px solid var(--border-muted);
  border-radius:var(--r-md);
  overflow:hidden;
}
.faq-item summary{
  /* display:block removes the default disclosure triangle in all browsers
     (Chrome/Firefox/Safari) — list-style:none alone is not reliable */
  display:block;
  list-style:none;cursor:pointer;
  padding:17px 46px 17px 48px;
  position:relative;
  background:var(--bg-secondary);
  -webkit-tap-highlight-color:transparent;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::-moz-list-bullet{list-style-type:none;}
.faq-item summary::before{
  content:"Q";position:absolute;left:16px;top:16px;
  font-family:var(--font-num);font-weight:700;font-size:22px;
  color:var(--cyan);line-height:1;
}
.faq-item summary::after{
  content:"";position:absolute;right:20px;top:22px;
  width:12px;height:12px;
  border-right:3px solid var(--cyan);
  border-bottom:3px solid var(--cyan);
  transform:rotate(45deg);
  transition:transform .2s ease;
}
.faq-item[open] summary::after{
  transform:rotate(-135deg);
}
.faq-item summary h3{
  font-size:17px;font-weight:800;line-height:1.6;
  color:#FFFFFF;display:block;
}
.faq-item[open] summary{
  border-bottom:1px solid var(--border-muted);
}
.faq-answer{
  padding:17px 16px 19px 48px;
  position:relative;
  font-size:15px;color:var(--text-secondary);
  font-weight:600;line-height:1.85;
}
.faq-answer::before{
  content:"A";position:absolute;left:16px;top:16px;
  font-family:var(--font-num);font-weight:700;font-size:22px;
  color:var(--red);line-height:1;
}

/* =========================================================
   Clinic
   ========================================================= */
.clinic{
  background:linear-gradient(180deg,#0B1420 0%,#050505 100%);
  max-width:none;
}
.clinic>*{max-width:var(--maxw);margin-left:auto;margin-right:auto;}
.clinic-card{
  background:var(--bg-card);
  border:1px solid var(--border-muted);
  border-radius:var(--r-md);
  overflow:hidden;margin-bottom:20px;
}
.clinic-card>img{
  width:100%;aspect-ratio:5/3;object-fit:cover;
}
.clinic-body{padding:16px;}
.clinic-card h3{
  font-size:22px;font-weight:900;color:var(--cyan);
  margin-bottom:8px;
}
.clinic-table{
  width:100%;border-collapse:collapse;table-layout:fixed;
}
.clinic-table th,.clinic-table td{
  font-size:15px;padding:11px 10px;
  text-align:left;vertical-align:top;
  border-bottom:1px solid var(--border-muted);
  line-height:1.7;
}
.clinic-table tr:last-child th,
.clinic-table tr:last-child td{border-bottom:none;}
.clinic-table th{
  width:78px;font-weight:800;font-size:14px;
  color:var(--cyan);
  background:var(--bg-secondary);
}
.clinic-table td{
  color:var(--text-secondary);font-weight:600;
  word-break:break-word;
}
.clinic-card .btn{
  max-width:none;width:100%;margin-top:16px;
}
.clinic-map{margin-top:14px;}
.clinic-map iframe{
  width:100%;height:240px;display:block;
  border:0;border-radius:var(--r-md);
}
.clinic-note{
  font-size:13px;color:var(--text-muted);
  font-weight:600;line-height:1.75;
  text-align:center;
  margin-top:30px;
  background:var(--bg-secondary);
  border:1px solid var(--border-muted);
  border-radius:var(--r-md);
  padding:14px 16px;
}

/* =========================================================
   Notice  (terms of use / cautions)
   ========================================================= */
.notice{
  background:linear-gradient(180deg,#050505 0%,#101014 100%);
  max-width:none;
}
.notice .section-head,
.notice .notice-list{
  max-width:var(--maxw);margin-left:auto;margin-right:auto;
}
.notice-list{display:grid;gap:12px;}
.notice-list li{
  background:var(--bg-card);
  border:1px solid var(--border-muted);
  border-left:4px solid var(--red);
  border-radius:var(--r-md);
  padding:18px 18px 18px 48px;
  position:relative;
}
.notice-list li::before{
  content:"!";position:absolute;left:14px;top:18px;
  display:flex;align-items:center;justify-content:center;
  width:24px;height:24px;border-radius:50%;
  background:linear-gradient(180deg,var(--fire) 0%,var(--red) 100%);
  color:#FFFFFF;
  font-family:var(--font-num);font-weight:700;font-size:16px;
  line-height:1;
}
.notice-list h3{
  font-size:18px;font-weight:900;margin-bottom:6px;
  color:#FFFFFF;
}
.notice-list p{
  font-size:15px;color:var(--text-muted);
  font-weight:600;line-height:1.8;
}

/* =========================================================
   Final CTA
   ========================================================= */
.final-cta{
  position:relative;
  background:
    radial-gradient(80% 60% at 50% 0%,rgba(0,118,182,.4) 0%,rgba(5,5,5,0) 70%),
    linear-gradient(180deg,#101014 0%,#050505 100%);
  color:#FFFFFF;text-align:center;
  padding:48px 20px;
  overflow:hidden;
}
.final-cta::before{
  content:"";position:absolute;inset:0;z-index:0;
  background:repeating-linear-gradient(115deg,rgba(0,184,230,0) 0 38px,rgba(0,184,230,.06) 38px 40px);
  pointer-events:none;
}
.final-cta-inner{
  position:relative;z-index:1;
  max-width:var(--maxw);margin:0 auto;
}
.final-cta h2{
  font-size:clamp(24px,6vw,40px);
  font-weight:900;margin-bottom:12px;line-height:1.2;
}
.final-cta p{
  font-size:16px;color:var(--text-secondary);font-weight:600;
}
.final-cta .btn-ghost{margin-top:16px;}

/* =========================================================
   Footer
   ========================================================= */
.site-footer{
  background:#000000;color:var(--text-muted);
  text-align:center;
  padding:36px 20px 28px;
}
.footer-logo{
  height:40px;width:auto;margin:0 auto 12px;
}
.footer-clinics{
  font-size:14px;font-weight:900;
  color:#FFFFFF;margin-bottom:16px;
}
.footer-nav{
  display:flex;flex-wrap:wrap;justify-content:center;
  gap:8px 18px;font-size:14px;margin-bottom:18px;
}
.footer-nav a{color:var(--text-muted);font-weight:800;}
.copyright{font-size:11px;color:#666666;}

/* =========================================================
   Fixed mobile CTA bar
   ========================================================= */
.fixed-cta{
  position:fixed;left:0;right:0;bottom:0;z-index:60;
  display:flex;
  padding:8px 10px;
  background:#0A0A0A;
  border-top:1px solid var(--border-muted);
}
.fixed-cta a{
  font-weight:900;text-align:center;
  border-radius:var(--r-sm);
}
.fixed-book{
  flex:1;
  min-height:54px;
  background:linear-gradient(180deg,#FF3B30 0%,#B00000 100%);
  color:#FFFFFF;
  border:2px solid #FFFFFF;
  box-shadow:var(--sh-cta);
  padding:8px 6px;
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  line-height:1.2;
}
.fixed-book-main{
  font-size:clamp(15px,4.6vw,18px);
  font-weight:900;letter-spacing:.01em;
  white-space:nowrap;
}
.fixed-book-sub{
  font-size:11px;font-weight:800;
  color:var(--yellow);
  white-space:nowrap;margin-top:1px;
}
.fixed-book:active{
  transform:translateY(4px);
  box-shadow:0 0 0 #5A0000;
}

/* =========================================================
   Tablet & PC (min-width:768px)
   スマホ完成形を中央寄せ + グリッド多列化
   ========================================================= */
@media (min-width:768px){
  body{
    background:#000000;
    padding-bottom:0;
  }
  main{
    max-width:var(--maxw);
    margin-left:auto;margin-right:auto;
    background:var(--bg-primary);
  }
  .site-header{
    max-width:var(--maxw);
    margin-left:auto;margin-right:auto;
  }
  .site-footer{
    max-width:var(--maxw);
    margin-left:auto;margin-right:auto;
  }
  /* section padding: x=40 / y=72 */
  .section{padding:72px 40px;}
  .fv{padding:64px 40px 72px;}
  .campaign{padding:64px 40px 72px;}
  .final-cta{padding:72px 40px;}
  /* multi-column grids */
  .reason-list{grid-template-columns:1fr 1fr;}
  .worry-list{grid-template-columns:1fr 1fr;}
  .notice-list{grid-template-columns:1fr 1fr;}
  .flow-list{grid-template-columns:1fr 1fr;}
  .case-list{grid-template-columns:1fr 1fr 1fr;}
  /* fixed CTA centered to container */
  .fixed-cta{
    max-width:var(--maxw);
    left:50%;transform:translateX(-50%);
  }
  /* FV model: wider FV → sits in the right gutter, less text overlap */
  .fv-model{width:46%;max-width:400px;right:2%;bottom:200px;opacity:.85;}
  /* CTA buttons more assertive on PC */
  .btn{max-width:560px;}
}

/* ============================================================
   ★ 予約フォーム ウィジェット（B版コア・DR/ダークテーマ）
   ============================================================ */
.booking-widget{
  background:linear-gradient(180deg, var(--bg-secondary) 0%, var(--bg-primary) 100%);
  padding:64px 16px;
  border-top:1px solid var(--border-muted);
  border-bottom:1px solid var(--border-muted);
  scroll-margin-top:80px;       /* sticky header 72px + 8px buffer */
}
/* スティッキーヘッダー下に隠れないよう、アンカーターゲット全般に余白を確保 */
main[id="top"], section[id]{ scroll-margin-top:80px; }
.booking-widget-inner{
  max-width:720px;margin:0 auto;color:var(--text-primary);
}
.booking-widget .section-label{
  font-family:var(--font-num);font-size:13px;font-weight:700;letter-spacing:.22em;
  color:var(--cyan);text-align:center;margin-bottom:6px;
}
.booking-widget .section-title{
  font-size:28px;font-weight:900;line-height:1.45;text-align:center;
  color:var(--text-primary);margin-bottom:18px;
}
.booking-widget .bw-hl{
  background:var(--yellow);
  color:#0A0A0A;font-weight:900;
  padding:2px 12px;border-radius:4px;
  display:inline-block;
}
.booking-lead{
  font-size:14.5px;line-height:1.85;text-align:center;color:var(--text-secondary);
  margin-bottom:10px;
}
.booking-lead strong{color:var(--yellow);font-weight:700;}
.booking-subnote{
  font-size:12.5px;line-height:1.7;text-align:center;color:var(--yellow);
  background:rgba(255,210,74,.08);border:1px dashed rgba(255,210,74,.45);
  border-radius:8px;padding:10px 12px;margin:0 auto 22px;max-width:560px;
}

.booking-form{display:flex;flex-direction:column;gap:18px;max-width:560px;margin:0 auto;}
.bf-loading,.bf-empty{
  font-size:13.5px;color:var(--text-muted);text-align:center;padding:14px 0;
}
.bf-slots{border:none;padding:0;margin:0;}
.bf-legend{
  font-size:15px;font-weight:900;margin-bottom:10px;color:var(--text-primary);
  padding-left:10px;border-left:3px solid var(--cyan);
}
.bf-slots-host{display:flex;flex-direction:column;gap:14px;}
.bf-slot-day{
  background:var(--bg-card);border:1px solid var(--border-muted);
  border-radius:10px;padding:12px 12px 14px;
}
.bf-day{
  font-size:14px;font-weight:900;margin-bottom:8px;color:var(--text-primary);
  padding-left:6px;border-left:3px solid var(--cyan);
}
.bf-slot-chips{display:flex;flex-wrap:wrap;gap:8px;}
.bf-slot-chip{
  position:relative;cursor:pointer;
  font-size:14px;font-weight:700;color:var(--text-secondary);
  background:rgba(255,255,255,.04);
  border:2px solid var(--border-muted);border-radius:999px;
  padding:8px 14px;transition:.15s;
}
.bf-slot-chip input{
  position:absolute;opacity:0;pointer-events:none;width:0;height:0;
}
.bf-slot-chip:has(input:checked),
.bf-slot-chip.is-selected{
  background:var(--cyan);color:var(--text-inverse);
  border-color:var(--cyan);
  box-shadow:0 0 0 4px rgba(0,184,230,.18);
}

.bf-contact{border:none;padding:0;margin:0;display:flex;flex-direction:column;gap:14px;}
.bf-row{display:flex;flex-direction:column;gap:6px;}
.bf-label{font-size:14px;font-weight:700;color:var(--text-primary);}
.bf-req{
  display:inline-block;font-size:11px;font-weight:700;color:var(--text-inverse);
  background:var(--yellow);padding:1px 8px;border-radius:4px;margin-left:4px;
}
.bf-input{
  font-family:inherit;font-size:16px;line-height:1.5;
  padding:12px 14px;border:1.5px solid var(--border-muted);border-radius:8px;
  background:rgba(255,255,255,.04);color:var(--text-primary);
  -webkit-appearance:none;
}
.bf-input:focus{
  outline:none;border-color:var(--cyan);
  box-shadow:0 0 0 3px rgba(0,184,230,.25);
}
.bf-hint{font-size:11.5px;color:var(--text-muted);}
.bf-error{
  background:rgba(215,25,32,.12);border:1px solid var(--red);color:#ffb0b0;
  font-size:13px;padding:10px 12px;border-radius:8px;font-weight:700;
}
.bf-submit{
  margin-top:6px;cursor:pointer;border:none;font-family:inherit;
}
.bf-submit:disabled{opacity:.6;cursor:not-allowed;}
.bf-note{
  font-size:11.5px;color:var(--text-muted);text-align:center;line-height:1.7;
}

.bf-success{
  background:rgba(0,184,230,.06);border:1px solid var(--cyan);
  border-radius:10px;padding:24px 18px;text-align:center;max-width:560px;margin:0 auto;
}
.bf-success-title{
  font-size:20px;font-weight:900;color:var(--cyan);margin-bottom:12px;
}
.bf-success p{font-size:14.5px;line-height:1.8;margin-bottom:8px;color:var(--text-primary);}
.bf-success-slot{
  display:inline-block;background:rgba(255,210,74,.1);border:1px dashed var(--yellow);
  padding:8px 14px;border-radius:8px;font-weight:700;color:var(--yellow);
  margin:6px 0 10px;
}
.bf-success-note{font-size:12px;color:var(--text-muted);margin-top:12px;}

/* ============ マニフェスト（働く男を、徹底的に支援する／FV直下）============ */
.manifesto{
  background:linear-gradient(180deg,#0a0a0d 0%,#101014 100%);
  color:#fff;padding:48px 20px;
  border-top:1px solid rgba(0,184,230,.25);
  border-bottom:1px solid rgba(0,184,230,.25);
  text-align:center;
}
.manifesto .mf-en{
  font-family:var(--font-num);font-size:13px;font-weight:700;letter-spacing:.3em;
  color:var(--cyan);margin-bottom:10px;
}
.mf-title{
  font-size:clamp(24px,6.8vw,40px);font-weight:900;line-height:1.35;
  margin-bottom:18px;letter-spacing:.01em;
}
.mf-lead{
  font-size:15px;line-height:2;color:#d7dde3;font-weight:600;
  max-width:560px;margin:0 auto 28px;text-align:left;
}
.mf-policies{
  list-style:none;margin:0 auto;padding:0;max-width:560px;
  display:flex;flex-direction:column;gap:12px;text-align:left;
}
.mf-policies li{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(0,184,230,.22);border-left:3px solid var(--cyan);
  border-radius:8px;padding:14px 16px;
}
.mf-no{
  display:inline-block;font-family:var(--font-num);font-size:12px;font-weight:800;
  letter-spacing:.14em;color:var(--cyan);margin-bottom:6px;
}
.mf-p-title{font-size:17px;font-weight:900;line-height:1.5;margin-bottom:4px;color:#fff;}
.mf-p-desc{font-size:14px;line-height:1.75;color:#aab4bd;font-weight:600;}
