@charset "UTF-8";

/* ===========================================================================
   いりたに内科かかりつけクリニック — 泌尿器科ランディングページ
   style.css — 統合スタイルシート

   構成:
     PART 1. ベーススタイル（リセット・CSS変数・全セクション）
     PART 2. FLOATING CTA v3
     PART 3. 修正・調整用CSS（クライアント要望反映）
   ※ 元HTMLの<style>ブロックの記述順を維持しています
   =========================================================================== */


/* ===========================================================================
   PART 1. ベーススタイル
   =========================================================================== */
/* ========================================================
   TOKENS
======================================================== */
:root{
  --iv:#FAF8F4; --cr:#EDEBE5; --cdk:#E2DED6;
  --wb:#2A2420; --wd:#3D3530; --wm:#6B5F57; --wg:#9A8E86; --wl:#C8BFB6;
  --go:#ff8901; --gl:#ffb347; --gp:#ffe4b8;
  --fd:'ZEN Maru Gothic',sans-serif;
  --fs:'ZEN Kaku Gothic New',sans-serif;
  --fn:'ZEN Kaku Gothic New','Hiragino Kaku Gothic ProN',sans-serif;
  --nb:'Noto Sans JP','Hiragino Kaku Gothic ProN',sans-serif;
  --silk:cubic-bezier(.25,.46,.45,.94);
  --out:cubic-bezier(.16,1,.3,1);
  --spring:cubic-bezier(.34,1.56,.64,1);
  --cmax:1200px; --cp:0 44px;
}

/* ========================================================
   RESET
======================================================== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px}
body{
  font-family:var(--fn);color:var(--wb);background:var(--iv);
  overflow-x:hidden;max-width:100%;line-height:1.8;font-weight:300;
  -webkit-font-smoothing:antialiased;cursor:none;
}
img{display:block;max-width:100%}
a{text-decoration:none;color:inherit}
button{cursor:none}

/* ========================================================
   CUSTOM CURSOR
======================================================== */
#cursor{
  position:fixed;width:8px;height:8px;border-radius:50%;
  background:var(--go);pointer-events:none;z-index:9999;
  transform:translate(-50%,-50%);transition:width .3s var(--out),height .3s var(--out),background .3s,opacity .3s;
  mix-blend-mode:normal;
}
#cursor-ring{
  position:fixed;width:36px;height:36px;border-radius:50%;
  border:1px solid rgba(184,154,106,.55);pointer-events:none;z-index:9998;
  transform:translate(-50%,-50%);transition:width .4s var(--out),height .4s var(--out),border-color .3s,opacity .3s;
}
body:hover #cursor{opacity:1}
body.cursor-hover #cursor{width:14px;height:14px;background:var(--gl)}
body.cursor-hover #cursor-ring{width:52px;height:52px;border-color:rgba(255,137,1,.35)}
body.cursor-drag #cursor-ring{width:64px;height:64px;border-style:dashed;border-color:rgba(255,137,1,.5)}

/* ========================================================
   PAGE TRANSITION OVERLAY
======================================================== */
#page-cover{
  position:fixed;inset:0;background:var(--wb);z-index:10000;
  transform-origin:top;
}

/* ========================================================
   SMOOTH SCROLL WRAPPER
======================================================== */
#smooth-wrapper{overflow:hidden;position:fixed;inset:0;will-change:transform}
#smooth-content{will-change:transform}

/* ========================================================
   LAYOUT
======================================================== */
.W{max-width:var(--cmax);margin:0 auto;padding:var(--cp)}
.lbl{
  display:block;font-family:var(--fd);font-size:11px;
  letter-spacing:.4em;text-transform:uppercase;color:var(--go);margin-bottom:18px;
}
.ttl-lg{font-family:var(--nb);font-weight:600;font-size:clamp(28px,4vw,52px);line-height:1.32}
.ttl-md{font-family:var(--nb);font-weight:600;font-size:clamp(22px,3vw,40px);line-height:1.36}
.bar{width:48px;height:1px;background:linear-gradient(90deg,var(--go),transparent);margin:24px 0}
.bar-c{margin:24px auto}
.split-line{overflow:hidden;display:block}
.split-word{display:inline-block;transform:translateY(110%);opacity:0}

/* ========================================================
   TEXT WRAPPING PREVENTION
======================================================== */
/* Section headings: single-line where possible */
.c-head .ttl-lg,
.symp-head .ttl-md,
.flow-head .ttl-md,
.feats .ttl-md,
.doc-nm,
.faq-sb-t {
  white-space: normal;
  word-break: keep-all;
  overflow-wrap: break-word;
  max-width: 100%;
}
/* Trust-bar item labels stay compact */
.tb-label { white-space: nowrap; }
/* CTA title—allow natural breaks but not mid-word */
.cta-ttl { word-break: keep-all; }
/* c-bar-ttl single line */
.c-bar-ttl { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media(max-width:768px){
  .c-bar-ttl { white-space: normal; }
  .tb-label  { white-space: normal; font-size:10px; }
}

/* ========================================================
   BUTTONS — SONAR + SHIMMER
======================================================== */
.btn-wrap{display:inline-block;position:relative}

/* ---- Primary gold button (small) ---- */
.btn-g{
  display:inline-flex;align-items:center;gap:11px;
  background:linear-gradient(105deg,#ff8901 0%,#ffaa38 50%,#ff8901 100%);
  background-size:200% 100%;
  color:#fff;padding:16px 40px;
  font-size:12px;letter-spacing:.18em;font-family:var(--nb);font-weight:600;
  position:relative;overflow:hidden;
  box-shadow:0 4px 18px rgba(255,137,1,.3),inset 0 1px 0 rgba(255,255,255,.18);
  transition:background-position .5s var(--silk),box-shadow .4s var(--silk),transform .35s var(--spring);
}
/* shimmer sweep */
.btn-g::before{
  content:'';position:absolute;top:0;left:-75%;width:50%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);
  transform:skewX(-18deg);
  transition:none;
}
.btn-g:hover::before{
  left:130%;transition:left .6s var(--silk);
}
/* fill sweep */
.btn-g::after{
  content:'';position:absolute;inset:0;background:var(--gl);
  transform:scaleX(0);transform-origin:right;transition:transform .5s var(--silk);z-index:0;
}
.btn-g:hover::after{transform:scaleX(1);transform-origin:left}
.btn-g:hover{box-shadow:0 10px 36px rgba(255,137,1,.55),inset 0 1px 0 rgba(255,255,255,.22);background-position:100% 0;transform:translateY(-2px);}
.btn-g span{position:relative;z-index:1;display:flex;align-items:center;gap:11px;color:#fff;}

.btn-o{
  display:inline-flex;align-items:center;justify-content:center;gap:11px;
  border:1px solid rgba(255,255,255,.55);color:#fff;padding:16px 40px;
  font-size:12px;letter-spacing:.14em;font-family:var(--nb);font-weight:500;
  transition:border-color .35s,background .35s,box-shadow .35s,transform .35s var(--spring);
  white-space:nowrap;
}
.btn-o:hover{border-color:var(--go);background:rgba(255,137,1,.1);
  box-shadow:0 6px 22px rgba(255,137,1,.22);transform:translateY(-2px);}

/* ---- Primary gold button (large) — subtle sonar ---- */
.btn-gl-wrap{
  display:inline-block;position:relative;align-self:flex-start;
}
/* ソナー：1本のみ、薄く・ゆっくり */
.btn-gl-wrap::before{
  content:'';
  position:absolute;inset:-3px;
  border:1px solid rgba(255,137,1,.25);
  animation:sonar-ring 4s ease-out infinite;
  pointer-events:none;opacity:0;
}
.btn-gl-wrap::after{display:none !important}
@keyframes sonar-ring{
  0%  {transform:scale(1);   opacity:.45}
  65% {opacity:.1}
  100%{transform:scale(1.22);opacity:0}
}

.btn-gl{
  display:inline-flex;align-items:center;gap:12px;
  background:linear-gradient(105deg,#ff8901 0%,#ffaa38 50%,#ff8901 100%);
  background-size:200% 100%;
  color:#fff;padding:18px 52px;
  font-size:13px;letter-spacing:.18em;font-family:var(--nb);font-weight:600;
  position:relative;overflow:hidden;
  box-shadow:0 6px 24px rgba(255,137,1,.35),inset 0 1px 0 rgba(255,255,255,.2);
  transition:background-position .5s var(--silk),box-shadow .4s var(--silk),transform .35s var(--spring);
  z-index:1;
}
/* shimmer sweep */
.btn-gl::before{
  content:'';position:absolute;top:0;left:-75%;width:50%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);
  transform:skewX(-18deg);
  animation:btn-shimmer 3.5s ease-in-out infinite;
}
@keyframes btn-shimmer{
  0%,40%{left:-75%}
  55%,100%{left:130%}
}
/* fill sweep */
.btn-gl::after{
  content:'';position:absolute;inset:0;background:var(--gl);
  transform:scaleX(0);transform-origin:right;
  transition:transform .5s var(--silk);z-index:0;
}
.btn-gl:hover::after{transform:scaleX(1);transform-origin:left}
.btn-gl:hover{
  box-shadow:0 14px 44px rgba(255,137,1,.6),inset 0 1px 0 rgba(255,255,255,.25);
  transform:translateY(-3px);
  background-position:100% 0;
}
.btn-gl span{position:relative;z-index:1;display:flex;align-items:center;gap:12px;color:#fff;}

/* ripple on click */
.btn-gl .ripple{
  position:absolute;border-radius:50%;
  background:rgba(255,255,255,.28);
  transform:scale(0);animation:ripple-burst .6s ease-out forwards;
  pointer-events:none;z-index:2;
}
@keyframes ripple-burst{
  to{transform:scale(4.5);opacity:0}
}

.btn-gi{
  display:inline-flex;align-items:center;justify-content:center;gap:11px;
  border:1px solid rgba(255,137,1,.55);color:#fff;
  padding:18px 52px;font-size:13px;letter-spacing:.14em;
  font-family:var(--nb);font-weight:500;
  transition:border-color .4s,background .4s,box-shadow .4s,transform .35s var(--spring);
  box-shadow:inset 0 0 0 0 rgba(255,137,1,0);
  white-space:nowrap;
}
.btn-gi:hover{
  border-color:var(--go);background:rgba(255,137,1,.1);
  box-shadow:0 8px 28px rgba(255,137,1,.25);
  transform:translateY(-2px);
}

/* ========================================================
   HEADER
======================================================== */
.hd{
  position:fixed;top:0;left:0;right:0;z-index:200;height:76px;padding:0 52px;
  display:flex;align-items:center;justify-content:space-between;
  transition:background .7s var(--silk),box-shadow .7s var(--silk),height .5s var(--silk);
}
/* 初期状態：ヒーロー上では透過 */
.hd::before{
  content:'';position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(20,14,11,.55) 0%,transparent 100%);
  transition:opacity .6s;
}
/* スクロール後：上品なフロスト */
.hd.on{
  height:68px;
  background:rgba(250,248,244,.96);
  backdrop-filter:blur(20px) saturate(160%);
  -webkit-backdrop-filter:blur(20px) saturate(160%);
  box-shadow:0 1px 0 rgba(184,154,106,.18);
}
.hd.on::before{opacity:0}

/* ロゴ */
.hd-logo{display:flex;align-items:center}
.hd-logo-img{
  height:42px;width:auto;max-width:220px;
  object-fit:contain;
  /* スクロール前は白抜き / スクロール後は通常表示 */
  filter:brightness(0) invert(1);
  transition:filter .4s,opacity .4s;
}
.hd.on .hd-logo-img{
  filter:none;
}
@media(max-width:768px){
  .hd-logo-img{height:32px;max-width:180px;}
}

/* ナビ */
.hd-nav{display:flex;align-items:center;gap:36px}
.hd-nav a{
  font-size:11.5px;letter-spacing:.13em;
  color:rgba(255,255,255,.82);font-weight:400;
  position:relative;padding-bottom:3px;
  transition:color .35s var(--silk);
}
.hd-nav a::after{
  content:'';position:absolute;bottom:0;left:50%;right:50%;height:1px;
  background:var(--go);transition:left .4s var(--silk),right .4s var(--silk);
}
.hd-nav a:hover{color:#fff}
.hd-nav a:hover::after{left:0;right:0}
.hd.on .hd-nav a{color:var(--wm)}
.hd.on .hd-nav a:hover{color:var(--go)}

/* CTAボタン */
.hd-cta{
  display:inline-flex;align-items:center;justify-content:center;
  background:linear-gradient(105deg,#ff8901 0%,#ffaa38 50%,#ff8901 100%);
  background-size:200% 100%;
  color:#fff!important;
  padding:0 26px;
  height:38px;
  line-height:1;
  font-size:11px!important;letter-spacing:.18em!important;
  font-weight:600;
  font-family:var(--nb)!important;
  position:relative;overflow:hidden;
  box-shadow:0 3px 14px rgba(255,137,1,.28),inset 0 1px 0 rgba(255,255,255,.18);
  transition:background-position .5s var(--silk),box-shadow .4s var(--silk),transform .35s var(--spring);
  white-space:nowrap;
  vertical-align:middle;
}
.hd-cta::before{
  content:'';position:absolute;top:0;left:-70%;width:45%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);
  transform:skewX(-18deg);
  animation:btn-shimmer 4s ease-in-out infinite;
}
.hd-cta::after{
  content:'';position:absolute;inset:0;background:linear-gradient(105deg,#ffaa38,#ffc46a);
  transform:scaleX(0);transform-origin:right;
  transition:transform .45s var(--silk);z-index:0;
}
.hd-cta:hover::after{transform:scaleX(1);transform-origin:left}
.hd-cta:hover{box-shadow:0 8px 28px rgba(255,137,1,.5),inset 0 1px 0 rgba(255,255,255,.22);transform:translateY(-2px);background-position:100% 0;}
.hd-cta span{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;color:#fff}

/* ハンバーガー */
.ham{display:none;flex-direction:column;gap:6px;cursor:pointer;background:none;border:none;padding:8px}
.ham span{
  display:block;width:22px;height:1px;
  background:#fff;transition:transform .4s var(--silk),opacity .4s,background .4s;
}
.hd.on .ham span{background:var(--wd)}
.ham.on span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.ham.on span:nth-child(2){opacity:0}
.ham.on span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* モバイルメニュー */
.mm{
  display:none;position:fixed;inset:0;background:rgba(250,248,244,.98);z-index:190;
  flex-direction:column;align-items:center;justify-content:center;gap:28px;
  opacity:0;pointer-events:none;transition:opacity .5s var(--silk);
}
.mm.on{opacity:1;pointer-events:all}
.mm a{font-family:var(--fs);font-size:22px;font-weight:300;color:var(--wd);letter-spacing:.1em;transition:color .3s}
.mm a:hover{color:var(--go)}
.mm-tel{margin-top:14px;padding-top:24px;border-top:1px solid var(--cdk);text-align:center}
.mm-tel a{font-family:var(--fd);font-size:28px;color:var(--wb);letter-spacing:.08em}

/* Progress bar */
#progress-bar{
  position:fixed;top:0;left:0;height:2px;z-index:300;
  background:linear-gradient(90deg,var(--go),var(--gl));
  transform-origin:left;transform:scaleX(0);
}

/* ========================================================
   HERO — FULL BLEED with Three.js canvas
======================================================== */
.hero{
  position:relative;width:100%;height:100vh;min-height:820px;
  overflow:hidden;display:flex;align-items:flex-end;
  padding-top:96px; /* ヘッダー(76px)+余白20px：縦が狭い時の見出しとの接触を防止 */
}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg img{
  width:100%;height:100%;object-fit:cover;object-position:center 35%;
  will-change:transform;
}
/* ========================================================
   HERO CAROUSEL — Cinematic
======================================================== */
.hs-slide{
  position:absolute;inset:0;opacity:0;
  transition:opacity 2s cubic-bezier(.4,0,.2,1);
  will-change:opacity;
}
.hs-slide.hs-active{opacity:1}
.hs-slide img{
  width:100%;height:100%;object-fit:cover;object-position:center 35%;
  transform:scale(1.08);
  transition:transform 8.5s cubic-bezier(.25,.46,.45,.94);
}
.hs-slide.hs-active img{transform:scale(1.0)}

/* 写真にかかる上品なカラーグレーディング */
.hs-slide::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,
    rgba(10,7,6,.15) 0%,
    transparent 30%,
    transparent 55%,
    rgba(10,7,6,.3) 100%
  );
  mix-blend-mode:multiply;
}

/* サイドドットナビ（右中央） */
.hs-dots{
  position:absolute;right:32px;top:50%;transform:translateY(-50%);
  z-index:6;display:flex;flex-direction:column;gap:12px;
}
.hs-dot{
  width:2px;height:20px;background:rgba(255,255,255,.25);
  cursor:pointer;transition:background .4s,height .4s,transform .4s;
  border:none;padding:0;
}
.hs-dot.active{
  background:var(--go);height:36px;
}
.hs-dot:hover{background:rgba(184,154,106,.6);transform:scaleX(1.5)}

/* タイムプログレスバー（スライド下辺） */
.hs-progress{
  position:absolute;bottom:0;left:0;right:0;z-index:6;height:2px;
  background:rgba(255,255,255,.1);
}
.hs-progress-fill{
  height:100%;background:linear-gradient(90deg,var(--go),var(--gl));
  width:0%;animation:hs-tick 5.5s linear infinite;
}
@keyframes hs-tick{
  from{width:0%}
  to{width:100%}
}

/* hero overlay — よりシネマ的に */
.hero-ov{
  position:absolute;inset:0;z-index:2;
  background:
    linear-gradient(0deg,  rgba(8,5,4,.94) 0%,  rgba(8,5,4,.35) 32%, transparent 60%),
    linear-gradient(90deg, rgba(8,5,4,.62) 0%,  rgba(8,5,4,.1) 45%, transparent 65%),
    linear-gradient(180deg,rgba(8,5,4,.45) 0%,  transparent 18%);
}
.hero-vein{
  position:absolute;inset:0;z-index:3;pointer-events:none;
  background:
    linear-gradient(128deg,transparent 24%,rgba(184,154,106,.07) 42%,transparent 60%);
}
.hero-con{position:relative;z-index:4;padding:0 0 40px 80px;max-width:512px}
.hero-ey{
  font-family:var(--nb);font-size:11px;letter-spacing:.4em;
  text-transform:uppercase;color:var(--go);margin-bottom:28px;
  opacity:0;transform:translateY(20px);font-weight:500;
}
.hero-ttl{
  font-family:var(--nb);font-weight:700;
  font-size:clamp(26px,4.2vw,58px);
  color:#FDFBF7;line-height:1.42;margin-bottom:24px;
}
.hero-ttl .line{overflow:hidden;display:block}
.hero-ttl .word{display:inline-block;transform:translateY(110%)}
.hero-ttl em{font-style:normal;color:var(--gl)}
.hero-tags{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:46px;opacity:0}
.hero-tag{display:flex;align-items:center;gap:9px;font-size:12px;color:rgba(255,255,255,.85);letter-spacing:.06em;font-family:var(--nb);font-weight:500;}
.hero-tag::before{content:'';width:4px;height:4px;border-radius:50%;background:var(--go);flex-shrink:0}
.hero-btns{display:flex;gap:14px;flex-wrap:wrap;opacity:0}
.hero-btns .btn-g,.hero-btns .btn-o{min-width:220px;justify-content:center;padding:16px 32px;text-align:center;}

/* Scroll indicator */
.hero-scr{
  position:absolute;bottom:40px;right:56px;z-index:5;
  display:flex;flex-direction:column;align-items:center;gap:10px;opacity:0;
}
.hero-scr-line{
  width:1px;height:0;background:linear-gradient(180deg,var(--go),transparent);
  transition:height 1s var(--out);
}
.hero-scr-txt{
  font-family:var(--fd);font-size:9px;letter-spacing:.4em;
  text-transform:uppercase;color:rgba(255,255,255,.4);writing-mode:vertical-rl;
}
.hero-strip{
  position:absolute;bottom:0;left:0;right:0;z-index:5;height:3px;
  background:linear-gradient(90deg,var(--go),var(--gl),var(--go));opacity:.7;
  transform:scaleX(0);transform-origin:left;
}

/* ========================================================
   TRUST BAR — 信頼実績バー
======================================================== */
.trust-bar{
  background:var(--wb);position:relative;z-index:1;overflow:hidden;
}
.trust-bar::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(184,154,106,.35) 30%,rgba(184,154,106,.35) 70%,transparent);
}
.trust-bar::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(184,154,106,.2) 30%,rgba(184,154,106,.2) 70%,transparent);
}
.tb-inner{
  max-width:var(--cmax);margin:0 auto;padding:0 44px;
  display:grid;grid-template-columns:repeat(5,1fr);
}
.tb-item{
  padding:32px 24px;display:flex;flex-direction:column;align-items:center;gap:10px;
  position:relative;text-align:center;
  transition:background .45s var(--silk);
}
.tb-item:not(:last-child)::after{
  content:'';position:absolute;right:0;top:20%;bottom:20%;
  width:1px;background:rgba(184,154,106,.15);
}
.tb-item:hover{background:rgba(184,154,106,.05)}
.tb-icon{
  width:32px;height:32px;color:var(--go);opacity:.8;
  transition:transform .45s var(--spring),opacity .35s;
}
.tb-item:hover .tb-icon{transform:translateY(-3px) scale(1.08);opacity:1}
.tb-num{
  font-family:var(--fd);font-size:26px;font-weight:400;color:var(--iv);
  letter-spacing:.04em;line-height:1;
}
.tb-num span{font-size:13px;color:var(--go);margin-left:2px;letter-spacing:.05em}
.tb-label{font-size:11px;color:rgba(250,248,244,.55);letter-spacing:.08em;line-height:1.5}

/* ========================================================
   CONCERNS
======================================================== */
.concerns{
  position:relative;padding:128px 0;background:var(--iv);overflow:hidden;
}
.concerns::before{
  content:'';position:absolute;inset:-30%;pointer-events:none;z-index:0;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='800' height='600'%3E%3Cfilter id='m'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.012 0.008' numOctaves='5' seed='2'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncR type='gamma' amplitude='0.9' exponent='1.2' offset='0.08'/%3E%3CfeFuncG type='gamma' amplitude='0.88' exponent='1.15' offset='0.07'/%3E%3CfeFuncB type='gamma' amplitude='0.84' exponent='1.1' offset='0.06'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23m)' opacity='0.5'/%3E%3C/svg%3E") center/900px;
  opacity:.45;
}
.concerns::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--gp),transparent);z-index:1}
.concerns>.W{position:relative;z-index:1}

.c-head{display:grid;grid-template-columns:1fr 1fr;gap:88px;align-items:end;margin-bottom:80px}
.c-intro{font-size:14px;color:var(--wm);line-height:2.1;letter-spacing:.03em}

.c-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:1px;background:var(--cdk);
}
.ci{
  background:var(--iv);padding:22px 28px;display:flex;align-items:flex-start;gap:16px;
  position:relative;overflow:hidden;
  transition:background .45s var(--silk),transform .3s var(--silk);
  opacity:0;transform:translateY(18px);
}
.ci::after{
  content:'';position:absolute;bottom:0;left:0;width:0;height:1px;
  background:var(--go);transition:width .5s var(--silk);
}
.ci:hover{background:var(--cr);transform:translateY(-2px)}
.ci:hover::after{width:100%}
.ci.in{opacity:1;transform:none}
.ci-n{font-family:var(--fd);font-size:14px;color:var(--go);flex-shrink:0;padding-top:1px;font-weight:400;letter-spacing:.05em}
.ci-t{font-size:13px;color:var(--wd);line-height:1.75;letter-spacing:.03em}

.c-bar{
  margin-top:0;
  background:var(--wb);position:relative;overflow:hidden;
}
.c-bar::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--go),var(--gl),transparent)}
.c-bar-in{display:grid;grid-template-columns:1fr auto;align-items:center;gap:60px;padding:56px 64px}
.c-bar-txt{color:var(--iv)}
.c-bar-ttl{font-family:var(--fs);font-size:clamp(16px,1.8vw,24px);font-weight:300;color:var(--iv);margin-bottom:10px;line-height:1.6;word-break:keep-all;}
.c-bar-sub{font-size:13px;color:rgba(250,248,244,.55);line-height:1.9;letter-spacing:.02em}
.c-bar-btns{display:flex;flex-direction:column;gap:10px;flex-shrink:0;min-width:240px;width:240px}
.c-bar-btns .btn-g,.c-bar-btns .btn-gi{display:flex;width:100%;justify-content:center;text-align:center;padding:16px 20px;}
.c-bar-btns .btn-gi{font-size:13px;letter-spacing:.1em;}
.c-bar-btns .btn-gl-wrap{display:block!important;width:100%}

/* ========================================================
   ABOUT — full-bleed split
======================================================== */
.about{position:relative;background:var(--wd);overflow:hidden}
.about::before{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:0;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='800' height='600'%3E%3Cfilter id='md'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.008 0.012' numOctaves='6' seed='8'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncR type='gamma' amplitude='0.25' exponent='0.8' offset='0.12'/%3E%3CfeFuncG type='gamma' amplitude='0.22' exponent='0.78' offset='0.11'/%3E%3CfeFuncB type='gamma' amplitude='0.2' exponent='0.75' offset='0.1'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23md)' opacity='0.6'/%3E%3C/svg%3E") center/900px;
  opacity:.22;
}
.about>.about-grid{position:relative;z-index:1}
.about-grid{display:grid;grid-template-columns:1fr 1fr;min-height:680px;align-items:stretch;}
.about-img{position:relative;overflow:hidden;}
.about-img img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;
  filter:brightness(.7) saturate(.88);
}
.about-img-ov{position:absolute;inset:0;background:linear-gradient(90deg,transparent 55%,var(--wd) 100%)}
.about-img-lbl{
  position:absolute;bottom:36px;left:0;background:var(--go);
  color:var(--wb);padding:10px 26px;font-size:10px;letter-spacing:.3em;text-transform:uppercase;font-weight:500;
}
.about-con{padding:108px 72px 108px 64px;color:var(--iv);display:flex;flex-direction:column;justify-content:center}
.about-con .lbl{color:var(--go)}
.about-ttl{font-family:var(--nb);font-size:clamp(22px,2.8vw,38px);font-weight:600;line-height:1.48;margin-bottom:28px;color:var(--iv)}
.about-body{font-size:14px;color:rgba(250,248,244,.72);line-height:2.1;letter-spacing:.03em;margin-bottom:36px}
.otags{display:flex;flex-wrap:wrap;gap:10px}
.ot{
  border:1px solid rgba(255,137,1,.4);color:var(--gp);
  padding:7px 20px;font-size:12px;letter-spacing:.1em;
  transition:background .3s,border-color .3s;
}
.ot:hover{background:rgba(184,154,106,.12);border-color:var(--go)}

/* ========================================================
   SYMPTOMS — 2×2 grid with icons
======================================================== */
.symp{position:relative;padding:128px 0 0;background:var(--iv);overflow:hidden}
.symp::before{
  content:'';position:absolute;inset:-30%;pointer-events:none;z-index:0;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='700' height='500'%3E%3Cfilter id='ms'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.015' numOctaves='4' seed='5'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncR type='gamma' amplitude='0.95' exponent='1.1' offset='0.04'/%3E%3CfeFuncG type='gamma' amplitude='0.93' exponent='1.08' offset='0.04'/%3E%3CfeFuncB type='gamma' amplitude='0.9' exponent='1.05' offset='0.04'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23ms)' opacity='0.35'/%3E%3C/svg%3E") center/800px;
  opacity:.42;
}
.symp>.W{position:relative;z-index:1}
.symp-head{text-align:center;margin-bottom:72px}

/* 2×2 symptom grid */
.symp-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:1px;background:var(--cdk);
}
.sg-cell{
  background:var(--iv);padding:52px 52px 48px;
  position:relative;overflow:hidden;
  transition:background .5s var(--silk);
}
.sg-cell::before{
  content:'';position:absolute;bottom:0;left:0;right:0;
  height:2px;background:linear-gradient(90deg,var(--go),transparent);
  transform:scaleX(0);transform-origin:left;
  transition:transform .6s var(--silk);
}
.sg-cell:hover{background:var(--cr)}
.sg-cell:hover::before{transform:scaleX(1)}

/* Icon */
.sg-icon{
  width:52px;height:52px;margin-bottom:24px;
  color:var(--go);opacity:.85;
  transition:transform .5s var(--spring),opacity .4s;
}
.sg-cell:hover .sg-icon{transform:translateY(-4px) scale(1.05);opacity:1}

/* Category label */
.cat-l{
  font-family:var(--fd);font-size:11px;letter-spacing:.4em;text-transform:uppercase;
  color:var(--go);margin-bottom:20px;display:flex;align-items:center;gap:14px;
}
.cat-l::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,var(--gp),transparent)}
.sl{list-style:none;display:flex;flex-direction:column;gap:8px;margin:0}
.si{
  display:flex;align-items:flex-start;gap:14px;font-size:13.5px;color:var(--wd);
  line-height:1.7;letter-spacing:.03em;padding:13px 16px;
  background:transparent;border-left:2px solid transparent;
  transition:border-color .35s,background .35s,transform .35s var(--silk);
}
.si:hover{border-left-color:var(--go);background:rgba(184,154,106,.06);transform:translateX(5px)}
.sd{
  width:16px;height:16px;border-radius:50%;
  border:1px solid var(--go);flex-shrink:0;margin-top:2px;
  display:flex;align-items:center;justify-content:center;
}
.sd::after{content:'';width:5px;height:5px;border-radius:50%;background:var(--go)}

/* disease tags strip below grid */
.dp{background:var(--wb);padding:52px 60px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:44px;align-items:start}
.dp-c{margin:0}
.dp-ct{font-family:var(--fs);font-size:13px;font-weight:500;color:var(--iv);margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid rgba(184,154,106,.22);letter-spacing:.06em}
.dp-tags{display:flex;flex-wrap:wrap;gap:8px}
.dtag{
  background:transparent;border:1px solid rgba(184,154,106,.28);
  padding:6px 16px;font-size:12px;color:rgba(250,248,244,.65);letter-spacing:.04em;
  transition:border-color .35s,color .35s,background .35s,transform .25s;cursor:default;
}
.dtag:hover{border-color:var(--go);color:var(--gl);background:rgba(184,154,106,.08);transform:translateY(-2px)}
.dtag.hl{background:rgba(184,154,106,.1);border-color:rgba(255,137,1,.45);color:var(--gl)}
.dp-cta{display:flex;flex-direction:column;justify-content:center;gap:16px;border-left:1px solid rgba(184,154,106,.18);padding-left:44px}
.dp-cta-t{font-size:13px;color:rgba(250,248,244,.55);line-height:2;letter-spacing:.03em}
.dp-cta .btn-g,.dp-cta .dp-cta-btn{color:#fff!important;font-weight:600;justify-content:center;letter-spacing:.18em;width:100%;padding:16px 24px;font-family:var(--nb);box-shadow:0 6px 24px rgba(255,137,1,.35);transition:background-position .5s,box-shadow .4s,transform .35s;}
.dp-cta .btn-g span{color:#fff!important;}
.dp-cta .btn-g:hover{box-shadow:0 8px 32px rgba(255,137,1,.4);transform:translateY(-2px);}

/* ========================================================
   FEATURES — with image cards
======================================================== */
.feats{position:relative;padding:128px 0;background:var(--cr);overflow:hidden}
.feats::before{
  content:'';position:absolute;inset:-30%;pointer-events:none;z-index:0;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='700' height='500'%3E%3Cfilter id='mf2'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.01 0.015' numOctaves='5' seed='12'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncR type='gamma' amplitude='0.9' exponent='1.15' offset='0.07'/%3E%3CfeFuncG type='gamma' amplitude='0.88' exponent='1.12' offset='0.06'/%3E%3CfeFuncB type='gamma' amplitude='0.85' exponent='1.1' offset='0.05'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23mf2)' opacity='0.45'/%3E%3C/svg%3E") center/900px;
  opacity:.5;
}
.feats>.W{position:relative;z-index:1}
.f-head{display:grid;grid-template-columns:300px 1fr;gap:88px;align-items:end;margin-bottom:68px}
.f-head-r{font-size:14px;color:var(--wm);line-height:2.1;letter-spacing:.03em}
.f-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;background:var(--cdk)}
.fc{
  background:var(--iv);overflow:hidden;position:relative;
  transition:box-shadow .5s;
}
.fc:hover{box-shadow:0 16px 48px rgba(42,36,32,.1)}
.fc-img{aspect-ratio:4/3;overflow:hidden;position:relative}
.fc-img img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .9s var(--silk);filter:brightness(.84) saturate(.8);
  will-change:transform;
}
.fc:hover .fc-img img{transform:scale(1.08)}
.fc-img-ov{position:absolute;inset:0;background:linear-gradient(0deg,rgba(42,36,32,.44) 0%,transparent 58%)}
.fc-body{padding:32px 28px 38px}
.fc-n{font-family:var(--fd);font-size:28px;color:var(--cdk);font-weight:300;line-height:1;margin-bottom:12px;transition:color .4s}
.fc:hover .fc-n{color:rgba(184,154,106,.35)}
.fc-ttl{font-family:var(--fs);font-size:16px;font-weight:500;color:var(--wb);margin-bottom:10px;line-height:1.5}
.fc-txt{font-size:13px;color:var(--wm);line-height:2;letter-spacing:.02em}
.fc-det{margin-top:18px;padding-top:18px;border-top:1px solid var(--cdk)}
.fdi{display:flex;gap:10px;align-items:flex-start;font-size:12px;color:var(--wm);line-height:1.7;margin-bottom:7px}
.fdd{width:4px;height:4px;border-radius:50%;background:var(--go);flex-shrink:0;margin-top:6px}

/* ========================================================
   FLOW — dark BG with image
======================================================== */
.flow{position:relative;padding:128px 0;overflow:hidden;background:var(--wb);}
.flow-bg{position:absolute;inset:0;z-index:0}
.flow-bg img{width:100%;height:100%;object-fit:cover;filter:brightness(.18) saturate(.38);}
.flow-ov{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(24,18,14,.55) 0%,rgba(16,12,10,.75) 100%)}
.flow-mb{
  position:absolute;inset:0;z-index:2;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='800' height='600'%3E%3Cfilter id='mfl'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.007 0.01' numOctaves='5' seed='14'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncR type='gamma' amplitude='0.35' exponent='0.9' offset='0.13'/%3E%3CfeFuncG type='gamma' amplitude='0.32' exponent='0.88' offset='0.12'/%3E%3CfeFuncB type='gamma' amplitude='0.3' exponent='0.85' offset='0.11'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23mfl)' opacity='0.5'/%3E%3C/svg%3E") center/900px;
  opacity:.15;
}
.flow>.W{position:relative;z-index:3}
.flow-head{text-align:center;margin-bottom:88px}
.flow-head .lbl{display:block}
.flow-head .ttl-md{color:var(--iv)}

/* Timeline — PC: horizontal, no animated line */
.flow-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative}
.flow-line{display:none}
.fstep{padding:0 28px;position:relative;text-align:center}
.fstep:not(:last-child)::after{
  content:'';position:absolute;
  top:23px;right:calc(-50% + 26px);left:calc(50% + 26px);
  height:1px;
  background:linear-gradient(90deg,rgba(184,154,106,.3),rgba(184,154,106,.05));
}
.fs-n{
  width:48px;height:48px;border:1px solid rgba(255,137,1,.5);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--fd);font-size:14px;color:var(--go);letter-spacing:.08em;
  margin:0 auto 28px;background:rgba(22,16,13,.9);position:relative;z-index:1;
  transition:background .5s var(--silk),color .5s,border-color .5s,transform .4s var(--spring);
  box-shadow:0 0 0 8px rgba(184,154,106,.05);
}
.fstep:hover .fs-n{
  background:var(--go);color:var(--wb);border-color:var(--go);
  transform:scale(1.1);box-shadow:0 0 0 12px rgba(184,154,106,.08);
}
.fs-t{
  font-family:var(--fs);font-size:15px;font-weight:500;color:var(--iv);
  margin-bottom:14px;text-align:center;line-height:1.5;letter-spacing:.03em;
}
.fs-b{
  font-size:13px;color:rgba(250,248,244,.5);line-height:1.9;
  text-align:center;letter-spacing:.03em;
}
.flow-note{
  margin-top:56px;text-align:center;font-size:12px;color:rgba(250,248,244,.32);
  letter-spacing:.05em;padding:18px 36px;border:1px solid rgba(255,137,1,.2);
  max-width:560px;margin-left:auto;margin-right:auto;
}

/* ========================================================
   DOCTOR
======================================================== */
.doc{padding:128px 0;background:var(--iv)}
.doc-grid{display:grid;grid-template-columns:400px 1fr;gap:88px;align-items:start}
.doc-vis{position:sticky;top:108px}
.doc-frame{position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--cr)}
.doc-frame img{width:100%;height:100%;object-fit:cover;object-position:top center}
.doc-ph{width:100%;height:100%;background:linear-gradient(145deg,#E8E4DE,#D5D0C8);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}
.doc-acc{position:absolute;bottom:-18px;right:-18px;width:68%;height:68%;border:1px solid var(--gp);z-index:-1}
.doc-badge{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--wb);color:var(--iv);padding:10px 20px;font-size:11px;letter-spacing:.14em;margin-top:22px;
}
.doc-bd{width:6px;height:6px;border-radius:50%;background:var(--go)}
.doc-sub{margin-top:16px;aspect-ratio:4/3;overflow:hidden}
.doc-sub img{width:100%;height:100%;object-fit:cover;filter:brightness(.82) saturate(.8);transition:transform .9s var(--silk)}
.doc-sub:hover img{transform:scale(1.05)}
.doc-info{padding-top:8px}
.doc-nb{margin-bottom:32px}
.doc-lbl{font-family:var(--fd);font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--go);margin-bottom:10px}
.doc-nm{font-family:var(--fs);font-size:clamp(20px,2.5vw,32px);font-weight:400;color:var(--wb);margin-bottom:5px;line-height:1.3}
.doc-msg{
  font-family:var(--fs);font-size:15px;font-weight:300;line-height:2.1;color:var(--wd);
  padding:28px 32px;border-left:2px solid var(--go);background:var(--cr);
  margin-bottom:32px;font-style:italic;
}
.car-t{font-family:var(--fd);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--go);margin-bottom:13px;display:flex;align-items:center;gap:12px}
.car-t::after{content:'';flex:1;height:1px;background:var(--cdk)}
.car-ph{background:var(--cr);padding:20px 22px;font-size:13px;color:var(--wg);letter-spacing:.05em;font-style:italic;border-left:1px solid var(--cdk);margin-bottom:28px}

/* ========================================================
   FAQ
======================================================== */
.faq{position:relative;padding:120px 0 140px;background:var(--cr);overflow:hidden}
.faq::before{
  content:'';position:absolute;inset:-30%;pointer-events:none;z-index:0;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='700' height='500'%3E%3Cfilter id='mfq'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.009 0.013' numOctaves='4' seed='17'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncR type='gamma' amplitude='0.92' exponent='1.2' offset='0.06'/%3E%3CfeFuncG type='gamma' amplitude='0.9' exponent='1.18' offset='0.05'/%3E%3CfeFuncB type='gamma' amplitude='0.87' exponent='1.15' offset='0.05'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23mfq)' opacity='0.4'/%3E%3C/svg%3E") center/900px;
  opacity:.52;
}
.faq>.W{position:relative;z-index:1}
.faq-lay{display:grid;grid-template-columns:260px 1fr;gap:64px;align-items:start}
.faq-sb{position:sticky;top:108px}
.faq-sb-t{font-family:var(--nb);font-size:clamp(20px,2.4vw,32px);font-weight:500;color:var(--wb);line-height:1.5;margin-bottom:20px}
.faq-sb-b{font-size:13px;color:var(--wm);line-height:2;margin-bottom:0}
.faq-vis{margin-top:32px;aspect-ratio:3/4;overflow:hidden}
.faq-vis img{width:100%;height:100%;object-fit:cover;filter:brightness(.8) saturate(.78);transition:transform .9s var(--silk)}
.faq-vis:hover img{transform:scale(1.05)}
.faq-list{display:flex;flex-direction:column;gap:0}
.faq-item{background:var(--iv);overflow:hidden;border-bottom:1px solid var(--cdk)}
.faq-item:first-child{border-top:1px solid var(--cdk)}
.faq-q{
  display:flex;align-items:flex-start;gap:20px;padding:26px 28px;cursor:none;
  transition:background .3s;font-size:14px;font-weight:400;color:var(--wd);
  letter-spacing:.03em;line-height:1.7;user-select:none;
}
.faq-q:hover{background:rgba(237,235,229,.7)}
.faq-qm{font-family:var(--fd);font-size:20px;color:var(--go);font-weight:500;flex-shrink:0;line-height:1.3}
.faq-qt{flex:1;padding-top:2px}
.faq-tog{width:18px;height:18px;flex-shrink:0;position:relative;margin-top:4px}
.faq-tog::before,.faq-tog::after{content:'';position:absolute;background:var(--wg);transition:transform .45s var(--silk),opacity .45s}
.faq-tog::before{width:12px;height:1px;top:50%;left:50%;transform:translate(-50%,-50%)}
.faq-tog::after{width:1px;height:12px;top:50%;left:50%;transform:translate(-50%,-50%)}
.faq-item.open .faq-tog::after{transform:translate(-50%,-50%) rotate(90deg);opacity:0}
.faq-ans{max-height:0;overflow:hidden;transition:max-height .6s var(--silk)}
.faq-ai{padding:0 28px 28px 68px;font-size:13px;color:var(--wm);line-height:2.1;letter-spacing:.02em;padding-top:4px}

/* ========================================================
   ACCESS
======================================================== */
.access{padding:128px 0;background:var(--iv)}
.acc-lay{display:grid;grid-template-columns:1fr 1.2fr;gap:80px;align-items:start}
.acc-lbl{
  font-family:var(--fd);font-size:10px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--go);margin-bottom:13px;display:flex;align-items:center;gap:12px;
}
.acc-lbl::after{content:'';width:22px;height:1px;background:var(--gp)}
.acc-blk{margin-bottom:36px}
.acc-addr{font-size:14px;line-height:2;color:var(--wd);letter-spacing:.03em}
.acc-tel-l{font-size:11px;color:var(--wg);letter-spacing:.15em;margin-bottom:5px}
.acc-tel{
  font-family:var(--fd);font-size:30px;color:var(--wb);letter-spacing:.06em;font-weight:400;
  transition:color .3s;
}
.acc-tel:hover{color:var(--go)}
.hrs-w{overflow-x:auto;margin-bottom:28px}
.hrs-t{width:100%;border-collapse:collapse;font-size:13px}
.hrs-t th{background:var(--wb);color:var(--iv);padding:12px;font-weight:400;letter-spacing:.08em;text-align:center;font-size:12px}
.hrs-t th:first-child{text-align:left;min-width:110px}
.hrs-t td{padding:12px;border-bottom:1px solid var(--cdk);text-align:center;color:var(--wd);transition:background .3s}
.hrs-t td:first-child{text-align:left;color:var(--wm);font-size:12px;letter-spacing:.05em}
.hrs-t tr:hover td{background:var(--cr)}
.hrs-t tr:nth-child(even) td{background:var(--cr)}
.hrs-t tr:nth-child(even):hover td{background:var(--cdk)}
.hco{color:var(--go);font-weight:500}
.hcv{font-size:11px;color:var(--wg)}
.hcc{color:var(--wl)}
.map-wrap{border:1px solid var(--cdk);overflow:hidden}
.map-f{width:100%;height:420px;border:none;display:block}

/* ========================================================
   CTA — refined split layout
======================================================== */
.cta{position:relative;overflow:hidden;background:var(--wb)}
.cta-bg{position:absolute;inset:0;z-index:0}
.cta-bg img{
  width:100%;height:100%;object-fit:cover;
  filter:brightness(.14) saturate(.25);
}
.cta-ov{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(105deg,rgba(16,11,9,.96) 0%,rgba(30,22,18,.85) 50%,rgba(16,11,9,.96) 100%);
}
.cta-wm{
  position:absolute;right:0;top:0;bottom:0;width:46%;z-index:2;
  pointer-events:none;overflow:hidden;
}
.cta-wm img{
  width:100%;height:100%;object-fit:cover;
  opacity:.10;
  filter:brightness(1.2) saturate(.4) blur(1px);
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.6) 35%,rgba(0,0,0,.6) 100%);
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.6) 35%,rgba(0,0,0,.6) 100%);
}
.cta-line{
  position:absolute;left:50%;top:0;bottom:0;
  width:1px;background:linear-gradient(180deg,transparent,rgba(184,154,106,.15) 30%,rgba(184,154,106,.15) 70%,transparent);
  z-index:2;pointer-events:none;
}
.cta-ring{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:50%;border:1px solid rgba(184,154,106,.08);pointer-events:none;z-index:3}
.cta-r1{width:500px;height:500px}
.cta-r2{width:800px;height:800px;border-color:rgba(184,154,106,.04)}

/* inner layout: 2 columns — message left, action right */
.cta>.W{
  position:relative;z-index:6;
  display:grid;grid-template-columns:1fr 1fr;
  gap:0;min-height:520px;
}
.cta-l{
  padding:100px 64px 100px 0;
  border-right:1px solid rgba(184,154,106,.15);
  display:flex;flex-direction:column;justify-content:center;
}
.cta-r{
  padding:100px 0 100px 80px;
  display:flex;flex-direction:column;justify-content:center;gap:32px;
}
.cta-ey{
  font-family:var(--fd);font-size:11px;letter-spacing:.44em;
  text-transform:uppercase;color:var(--go);margin-bottom:24px;
  opacity:0;transform:translateY(20px);
}
.cta-ttl{
  font-family:var(--nb);font-size:clamp(20px,2.8vw,38px);
  font-weight:600;color:var(--iv);line-height:1.52;margin-bottom:22px;word-break:keep-all;
}
.cta-body{
  font-size:13px;color:rgba(250,248,244,.55);line-height:2.1;
  letter-spacing:.03em;
}
/* Right panel */
.cta-points{display:flex;flex-direction:column;gap:18px;margin-bottom:8px}
.cta-pt{
  display:flex;align-items:flex-start;gap:16px;
  padding:20px 24px;background:rgba(250,248,244,.04);
  border:1px solid rgba(255,137,1,.15);
  transition:background .3s,border-color .3s;
}
.cta-pt:hover{background:rgba(184,154,106,.07);border-color:rgba(255,137,1,.35)}
.cta-pt-icon{
  width:36px;height:36px;border:1px solid var(--go);border-radius:50%;
  flex-shrink:0;display:flex;align-items:center;justify-content:center;
  color:var(--go);font-family:var(--fd);font-size:13px;
}
.cta-pt-body{}
.cta-pt-t{font-size:13px;font-weight:500;color:var(--iv);margin-bottom:4px;letter-spacing:.04em}
.cta-pt-s{font-size:12px;color:rgba(250,248,244,.45);line-height:1.7}
.cta-btns{display:flex;flex-direction:column;gap:10px;align-items:stretch;width:100%;}
.cta-btns .btn-gl-wrap{width:100%;display:block!important;}
.cta-btns .btn-gl{width:100%;justify-content:center;padding:18px 24px;}
.cta-tel-row{
  margin-top:8px;display:flex;flex-direction:column;align-items:stretch;gap:8px;
  padding-top:20px;border-top:1px solid rgba(184,154,106,.2);
}
.cta-tel-btn{width:100%;justify-content:center;}
.cta-tl{font-family:var(--fd);font-size:10px;letter-spacing:.35em;text-transform:uppercase;color:var(--wg)}
.cta-tn{
  font-family:var(--fd);font-size:28px;color:var(--iv);
  letter-spacing:.1em;font-weight:300;transition:color .3s;
}
.cta-tn:hover{color:var(--gl)}
.cta-th{font-size:11px;color:var(--wg);letter-spacing:.05em;margin-top:2px}
/* cta-tel / cta-btns — replaced by new layout above */

/* ========================================================
   FOOTER
======================================================== */
.ft{background:#191511;padding:68px 44px 40px}
.ft-in{
  max-width:var(--cmax);margin:0 auto;display:grid;grid-template-columns:1.2fr 1fr 1fr;
  gap:60px;padding-bottom:48px;border-bottom:1px solid rgba(184,154,106,.15);margin-bottom:30px;
}
.ft-nm{font-family:var(--fs);font-size:15px;font-weight:400;color:var(--iv);margin-bottom:5px;letter-spacing:.05em}
.ft-dt{font-family:var(--fd);font-size:10px;color:var(--go);letter-spacing:.3em;text-transform:uppercase;margin-bottom:18px}
.ft-ad{font-size:12px;color:rgba(250,248,244,.42);line-height:2;letter-spacing:.03em;font-style:normal}
.ft-nt{font-family:var(--fd);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--go);margin-bottom:18px}
.ft-nl{list-style:none;display:flex;flex-direction:column;gap:9px}
.ft-nl a{font-size:12px;color:rgba(250,248,244,.42);letter-spacing:.05em;transition:color .3s,translateX .3s}
.ft-nl a:hover{color:var(--go)}
.ft-bt{max-width:var(--cmax);margin:0 auto;display:flex;align-items:center;justify-content:space-between}
.ft-cp{font-size:11px;color:rgba(250,248,244,.22);letter-spacing:.05em}

/* ========================================================
   SECTION SEPARATORS — flat layout (clip-path removed)
======================================================== */

/* Subtle top-border accent lines between sections */
.concerns,.about,.symp,.feats,.flow,.doc,.faq,.access,.cta{
  clip-path:none !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
}


/* ========================================================
   RESPONSIVE TRUST BAR
======================================================== */
@media(max-width:1024px){
  .tb-inner{grid-template-columns:repeat(3,1fr);padding:0 32px}
  .tb-item:nth-child(3)::after{display:none}
}

@media(max-width:768px){
  .tb-inner{grid-template-columns:1fr 1fr;padding:0 20px}
  .tb-item:nth-child(2)::after{display:none}
  .tb-item:nth-child(5){grid-column:1/-1}
}
/* ========================================================
   RESPONSIVE 1024
======================================================== */
@media(max-width:1024px){
  :root{--cp:0 32px}
  .hd{padding:0 32px}
  .hd-nav{display:none}
  .ham{display:flex}
  .mm{display:flex}
  body{cursor:auto}
  #cursor,#cursor-ring{display:none}

  .hero-con{padding:0 0 80px 44px;max-width:512px}
  .hero-scr{right:36px}

  /* Concerns */
  .c-head{grid-template-columns:1fr;gap:32px;margin-bottom:56px}
  .c-grid{grid-template-columns:repeat(2,1fr)}

  /* About */
  .about-grid{grid-template-columns:1fr;min-height:auto}
  .about-img{min-height:420px}
  .about-img-ov{background:linear-gradient(0deg,var(--wd) 0%,transparent 60%)}
  .about-con{padding:64px 44px}

  /* Symptoms */
  .symp-grid{grid-template-columns:1fr 1fr}
  .sg-cell{padding:40px 36px}
  /* Features */
  .f-head{grid-template-columns:1fr;gap:24px;margin-bottom:48px}
  .f-grid{grid-template-columns:repeat(2,1fr)}
  .f-head-r{max-width:600px}
  /* CTA */
  .cta>.W{grid-template-columns:1fr}
  .cta-l{padding:72px 0 48px;border-right:none;border-bottom:1px solid rgba(184,154,106,.15)}
  .cta-r{padding:48px 0 72px}
  .cta-wm{display:none}

  /* Flow */
  .flow-steps{grid-template-columns:repeat(2,1fr);gap:3px;background:rgba(184,154,106,.12)}
  .fstep{padding:36px 28px;background:rgba(22,16,13,.6)}
  .fstep::after{display:none}
  .fstep:not(:last-child)::after{display:none}
  .fs-t,.fs-b{text-align:center}

  /* Doctor */
  .doc-grid{grid-template-columns:300px 1fr;gap:52px}
  .doc-vis{position:relative;top:0}

  /* FAQ */
  .faq-lay{grid-template-columns:1fr;gap:44px}
  .faq-sb{position:relative;top:0;display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:start}
  .faq-vis{margin-top:0;aspect-ratio:16/9}
  /* Access */
  .acc-lay{grid-template-columns:1fr;gap:52px}

  /* Footer */
  .ft-in{grid-template-columns:1fr 1fr;gap:44px}
  .ft{padding:56px 32px 36px}
}

/* ========================================================
   RESPONSIVE 768
======================================================== */
@media(max-width:768px){
  :root{--cp:0 24px}
  .hd{padding:0 24px;height:62px}

  /* Hero */
  .hero{align-items:flex-end;min-height:680px;padding-top:82px} /* SPはヘッダー62px+20px */
  .hero-con{padding:0 24px 60px;max-width:100%}
  .hero-ttl{font-size:clamp(23px,7vw,38px)}
  .hero-tags{flex-direction:column;gap:10px;margin-bottom:32px}
  .hero-btns{flex-direction:column;gap:10px}
  .btn-g,.btn-o{padding:15px 24px;justify-content:center;font-size:13px}
  .hero-scr{display:none}
  .hs-dots{right:14px;gap:8px}
  .hs-dot{height:14px}
  .hs-dot.active{height:24px}

  /* Trust bar */
  /* (handled in diagonal cuts block above) */

  /* Concerns */
  .c-grid{grid-template-columns:1fr}
  .ci{padding:18px 20px}
  .c-bar-in{padding:32px 28px;grid-template-columns:1fr}
  .c-bar-btns{width:100%}

  /* About */
  .about-con{padding:52px 24px}
  .about-img{min-height:340px}

  /* Symptoms */
  .symp-grid{grid-template-columns:1fr}
  .sg-cell{padding:36px 24px}
  .dp{grid-template-columns:1fr;padding:32px 24px}
  .dp-cta{border-left:none;padding-left:0;border-top:1px solid rgba(184,154,106,.2);padding-top:28px}

  /* Features */
  .feats{padding:80px 0}
  .f-grid{grid-template-columns:1fr}

  /* Flow */
  .flow{padding:80px 0}
  .flow-head{margin-bottom:60px}
  .flow-steps{grid-template-columns:1fr;gap:0}
  .fstep{
    text-align:left;
    display:grid;grid-template-columns:56px 1fr;
    gap:0 20px;align-items:start;
    padding:32px 24px;
    border-bottom:1px solid rgba(184,154,106,.12);
    position:relative;
  }
  .fstep::after{display:none}
  .fstep:last-child{border-bottom:none}
  .fs-n{
    margin:0;width:46px;height:46px;font-size:14px;
    grid-row:1/3;align-self:start;margin-top:2px;
  }
  .fs-t{text-align:left;font-size:15px;margin-bottom:8px;grid-column:2}
  .fs-b{text-align:left;grid-column:2;font-size:13px}

  /* Doctor */
  .doc{padding:80px 0}
  .doc-grid{grid-template-columns:1fr;gap:44px}
  .doc-vis{max-width:100%;width:100%;position:static;}
  .doc-frame{max-width:340px;margin:0 auto;}
  .doc-badge{justify-content:center;}

  /* FAQ */
  .faq{padding:80px 0}
  .faq-sb{grid-template-columns:1fr}
  .faq-vis{aspect-ratio:3/2}
  .faq-q{padding:20px 22px;gap:16px}
  .faq-ai{padding:0 22px 22px;padding-top:8px}
  /* CTA */
  .cta-wm{display:none}

  /* Access */
  .access{padding:80px 0}
  .acc-imgs{grid-template-columns:1fr}
  .acc-half{display:none}
  .hrs-t th,.hrs-t td{padding:9px 7px;font-size:11px}

  /* CTA */
  .cta-l{padding:60px 0 36px}
  .cta-r{padding:36px 0 60px}
  .cta-btns{flex-direction:column;align-items:stretch}
  .cta-tel-row{flex-direction:column;align-items:flex-start;gap:14px}
  .cta-tn{font-size:26px}
  .cta-r1{width:280px;height:280px}
  .cta-r2{width:460px;height:460px}

  /* Footer */
  .ft-in{grid-template-columns:1fr;gap:36px}
  .ft{padding:48px 24px 32px}
  .ft-bt{flex-direction:column;gap:10px;text-align:center}
}

/* Icon float keyframe */
@keyframes icon-float{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-5px)}
}
.sg-cell:hover .sg-icon{
  animation:icon-float 2.8s ease-in-out infinite;
  opacity:1;
}

@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .hero-bg img,.flow-bg img,.cta-bg img{transform:none!important}
}


/* ===========================================================================
   PART 2. FLOATING CTA v3
   =========================================================================== */
/* ========================================================
   FLOATING CTA v3
   共通トークン（既存 :root を上書きしない独立変数）
======================================================== */
#floating-cta-wrap {
  --fcta-dark:   rgba(30, 24, 20, 0.97);
  --fcta-gold:   rgba(212,185,138,1);
  --fcta-gold-d: rgba(184,154,106,1);
  --fcta-gold-t: rgba(212,185,138,0);
  --fcta-ivory:  rgba(250,248,244,1);
  --fcta-out:    cubic-bezier(0.16, 1, 0.3, 1);
  --fcta-silk:   cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* ========================================================
   KEYFRAMES
======================================================== */

/* PC 入場：右からスライドイン */
@keyframes fcta-enter-right {
  0%   { transform: translateX(28px); opacity: 0; }
  100% { transform: translateX(0);    opacity: 1; }
}

/* SP 入場：下からフェードイン */
@keyframes fcta-enter-up {
  0%   { transform: translateY(24px); opacity: 0; }
  100% { transform: translateY(0);    opacity: 1; }
}

/* 縦 shimmer（上→下）PC用 */
@keyframes fcta-shimmer-v {
  0%   { transform: translateY(-110%) skewY(-4deg); opacity: 0;  }
  5%   {                                             opacity: 1;  }
  38%  { transform: translateY(210%)  skewY(-4deg); opacity: 0;  }
  100% { transform: translateY(210%)  skewY(-4deg); opacity: 0;  }
}

/* SP 呼吸 */
@keyframes fcta-breathe-sp {
  0%,100% {
    box-shadow:
      0 1px 2px   rgba(0,0,0,0.28),
      0 6px 18px  rgba(0,0,0,0.34),
      0 20px 44px rgba(0,0,0,0.26),
      inset 0 1px 0 rgba(212,185,138,0.22);
  }
  50% {
    box-shadow:
      0 1px 2px   rgba(0,0,0,0.28),
      0 8px 22px  rgba(0,0,0,0.38),
      0 24px 52px rgba(0,0,0,0.30),
      inset 0 1px 0 rgba(212,185,138,0.22),
      0 0 0 1px   rgba(184,154,106,0.09);
  }
}

/* ========================================================
   PC LAYOUT（768px 以上）
   ラッパー：画面右・縦中央
======================================================== */
@media (min-width: 768px) {

  #floating-cta-wrap {
    position: fixed;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    bottom: auto;
    left: auto;
    z-index: 8500;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    padding: 0;
    pointer-events: none;
    animation: fcta-enter-right 0.82s var(--fcta-out) 2.6s both;
    max-width: clamp(120px, 12vw, 160px);
  }

  #floating-cta-wrap.floating-cta-ready {
    pointer-events: auto;
  }

  /* ---- 縦カードコンテナ ---- */
  .floating-cta-inner {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: clamp(120px, 12vw, 148px);
    box-sizing: border-box;
    border-radius: 6px 0 0 6px;  /* 右端は画面端に接する */
    position: relative;
    overflow: hidden;

    background: var(--fcta-dark);
    backdrop-filter: blur(24px) saturate(1.3);
    -webkit-backdrop-filter: blur(24px) saturate(1.3);

    box-shadow:
      -1px 0  0   rgba(212,185,138,0.18),
      -4px 0  16px rgba(0,0,0,0.30),
      -12px 0 36px rgba(0,0,0,0.24),
      -24px 0 60px rgba(0,0,0,0.16),
      inset 1px 0 0 rgba(212,185,138,0.08);

    transition: box-shadow 0.4s ease, width 0.4s var(--fcta-out);
  }

  /* 左端 1px ゴールドライン（縦版） */
  .floating-cta-inner::before {
    content: '';
    position: absolute;
    top: 0; left: 0; bottom: 0;
    width: 1px;
    background: linear-gradient(
      to bottom,
      var(--fcta-gold-t) 0%,
      var(--fcta-gold-d) 25%,
      var(--fcta-gold)   50%,
      var(--fcta-gold-d) 75%,
      var(--fcta-gold-t) 100%
    );
    opacity: 0.65;
    z-index: 5;
    transition: opacity 0.4s ease;
  }

  .floating-cta-inner:hover::before {
    opacity: 1;
  }

  /* 縦 shimmer */
  .floating-cta-inner::after {
    content: '';
    position: absolute;
    left: 0; right: 0;
    height: 70%;
    background: linear-gradient(
      to bottom,
      transparent             0%,
      transparent            20%,
      rgba(212,185,138,0.022) 42%,
      rgba(232,213,168,0.045) 50%,
      rgba(212,185,138,0.022) 58%,
      transparent            80%,
      transparent           100%
    );
    transform: translateY(-110%) skewY(-4deg);
    animation: fcta-shimmer-v 16s linear 4.8s infinite;
    pointer-events: none;
    z-index: 4;
  }

  /* ---- ボタン共通（縦） ---- */
  .floating-cta-btn {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 22px 16px;
    position: relative;
    overflow: hidden;
    text-decoration: none;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.35s ease;
    z-index: 2;
    min-height: 120px;
  }

  /* ホバー：下からゴールドがにじむ */
  .floating-cta-btn::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(
      ellipse 120% 80% at 50% 110%,
      rgba(184,154,106,0.12) 0%,
      transparent 70%
    );
    opacity: 0;
    transition: opacity 0.45s ease;
    pointer-events: none;
  }

  .floating-cta-btn:hover::before { opacity: 1; }

  /* hover shimmer（縦スイープ） */
  .floating-cta-btn::after {
    content: '';
    position: absolute;
    left: 0; right: 0;
    top: -80%;
    height: 65%;
    background: linear-gradient(
      to bottom,
      transparent,
      rgba(212,185,138,0.04) 35%,
      rgba(232,213,168,0.07) 50%,
      rgba(212,185,138,0.04) 65%,
      transparent
    );
    transform: skewY(-3deg);
    pointer-events: none;
    transition: none;
  }

  .floating-cta-btn:hover::after {
    top: 120%;
    transition: top 1.15s cubic-bezier(0.4, 0, 0.2, 1);
  }

  .floating-cta-btn:active {
    transform: scale(0.972) !important;
    transition: transform 0.10s ease !important;
  }

  /* 電話ボタン：わずかにゴールド寄り */
  .floating-cta-btn--tel {
    background: rgba(184,154,106,0.05);
  }
  .floating-cta-btn--tel:hover {
    background: rgba(184,154,106,0.09);
  }

  /* ---- アイコン（縦レイアウト） ---- */
  .floating-cta-icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1px solid rgba(212,185,138,0.22);
    color: rgba(212,185,138,0.80);
    transition:
      color 0.3s ease,
      border-color 0.3s ease,
      transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1),
      background 0.3s ease;
  }

  .floating-cta-btn:hover .floating-cta-icon {
    color: rgba(232,213,168,1);
    border-color: rgba(212,185,138,0.60);
    background: rgba(184,154,106,0.10);
    transform: scale(1.10);
  }

  /* ---- テキスト（縦・中央揃え） ---- */
  .floating-cta-text {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    text-align: center;
  }

  .floating-cta-label {
    font-family: 'ZEN Kaku Gothic New', sans-serif;
    font-size: 9px;
    font-weight: 400;
    letter-spacing: 0.20em;
    color: rgba(250,248,244,0.42);
    line-height: 1;
    white-space: nowrap;
    text-transform: uppercase;
    transition: color 0.3s ease;
  }

  .floating-cta-btn:hover .floating-cta-label {
    color: rgba(212,185,138,0.75);
  }

  .floating-cta-main {
    font-family: 'ZEN Kaku Gothic New', sans-serif;
    font-size: 11.5px;
    font-weight: 500;
    letter-spacing: 0.14em;
    color: rgba(250,248,244,0.90);
    line-height: 1.35;
    white-space: pre-line;    /* 改行を許可 */
    transition: color 0.3s ease;
    text-align: center;
  }

  .floating-cta-btn:hover .floating-cta-main {
    color: #FAF8F4;
  }

  .floating-cta-tel {
    font-family: 'ZEN Maru Gothic', sans-serif;
    font-size: 13.5px;
    font-weight: 400;
    letter-spacing: 0.08em;
    color: rgba(212,185,138,0.92);
    line-height: 1;
    white-space: nowrap;
    transition: color 0.3s ease;
  }

  .floating-cta-btn:hover .floating-cta-tel {
    color: rgb(232,213,168);
  }

  /* ---- 横線区切り（縦レイアウト） ---- */
  .floating-cta-divider {
    width: auto;
    height: 1px;
    margin: 0 16px;
    flex-shrink: 0;
    background: linear-gradient(
      to right,
      transparent 0%,
      rgba(212,185,138,0.20) 20%,
      rgba(212,185,138,0.30) 50%,
      rgba(212,185,138,0.20) 80%,
      transparent 100%
    );
    position: relative;
    z-index: 3;
  }

  /* ---- 補助テキスト（縦カード：非表示 / タブで代替） ---- */
  .floating-cta-note {
    display: none;  /* 右サイドでは省略、ツールチップ代わりに title 属性で補完 */
  }

  /* ---- アクセシビリティ ---- */
  .floating-cta-btn:focus-visible {
    outline: 1px solid rgba(212,185,138,0.55);
    outline-offset: -1px;
  }
}

/* ========================================================
   SP LAYOUT（〜767px）
   下部固定・横2分割（v2 デザインを踏襲）
======================================================== */
@media (max-width: 767px) {

  #floating-cta-wrap {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    top: auto;
    transform: none;
    z-index: 8500;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0 12px max(16px, calc(env(safe-area-inset-bottom, 0px) + 10px));
    box-sizing: border-box;
    width: 100%;
    max-width: 100vw;
    overflow-x: hidden;
    pointer-events: none;
    animation: fcta-enter-up 0.80s var(--fcta-out) 2.6s both;
  }

  #floating-cta-wrap.floating-cta-ready {
    pointer-events: auto;
  }

  /* ---- パネル（横） ---- */
  .floating-cta-inner {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    width: 100%;
    max-width: calc(100vw - 24px);
    min-height: 64px;
    border-radius: 4px;
    box-sizing: border-box;
    position: relative;
    overflow: hidden;

    background: var(--fcta-dark);
    backdrop-filter: blur(24px) saturate(1.3);
    -webkit-backdrop-filter: blur(24px) saturate(1.3);

    box-shadow:
      0 1px 2px   rgba(0,0,0,0.28),
      0 6px 18px  rgba(0,0,0,0.34),
      0 20px 44px rgba(0,0,0,0.26),
      inset 0 1px 0 rgba(212,185,138,0.22);

    animation: fcta-breathe-sp 2.8s ease-in-out 3.5s infinite;
  }

  /* 上部ゴールドライン */
  .floating-cta-inner::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 1px;
    background: linear-gradient(
      90deg,
      transparent 0%,
      rgba(212,185,138,0.30) 10%,
      rgba(232,213,168,1.00) 50%,
      rgba(212,185,138,0.30) 90%,
      transparent 100%
    );
    z-index: 5;
  }

  /* 横 shimmer */
  .floating-cta-inner::after {
    content: '';
    position: absolute;
    top: 0; bottom: 0;
    width: 80%;
    background: linear-gradient(
      105deg,
      transparent             0%,
      transparent            25%,
      rgba(212,185,138,0.025) 42%,
      rgba(232,213,168,0.048) 50%,
      rgba(212,185,138,0.025) 58%,
      transparent            75%,
      transparent           100%
    );
    transform: translateX(-115%) skewX(-6deg);
    animation: fcta-shimmer-v 16s linear 4.8s infinite;  /* shimmer-v を流用 */
    pointer-events: none;
    z-index: 4;
  }

  /* SP: 縦 shimmer KF を横に再利用するため上書き */
  @keyframes fcta-shimmer-v {
    0%   { transform: translateX(-115%) skewX(-6deg); opacity: 0;  }
    5%   {                                             opacity: 1;  }
    38%  { transform: translateX(215%)  skewX(-6deg); opacity: 0;  }
    100% { transform: translateX(215%)  skewX(-6deg); opacity: 0;  }
  }

  /* ボタン（横） */
  .floating-cta-btn {
    flex: 1;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 12px 14px;
    position: relative;
    overflow: hidden;
    text-decoration: none;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.35s ease;
    z-index: 2;
  }

  .floating-cta-btn::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(
      ellipse 80% 100% at 50% 100%,
      rgba(184,154,106,0.10) 0%,
      transparent 75%
    );
    opacity: 0;
    transition: opacity 0.45s ease;
    pointer-events: none;
  }
  .floating-cta-btn:hover::before { opacity: 1; }
  .floating-cta-btn::after { display: none; }

  .floating-cta-btn:active {
    transform: scale(0.972) !important;
    transition: transform 0.10s ease !important;
  }

  .floating-cta-btn--tel {
    background: rgba(184,154,106,0.05);
  }

  .floating-cta-icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border: 1px solid rgba(212,185,138,0.22);
    color: rgba(212,185,138,0.80);
    transition:
      color 0.3s ease,
      border-color 0.3s ease,
      transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1),
      background 0.3s ease;
  }

  .floating-cta-text {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }

  .floating-cta-label {
    font-family: 'ZEN Kaku Gothic New', sans-serif;
    font-size: 9px;
    font-weight: 400;
    letter-spacing: 0.18em;
    color: rgba(250,248,244,0.42);
    line-height: 1;
    white-space: nowrap;
    text-transform: uppercase;
    transition: color 0.3s ease;
  }

  .floating-cta-main {
    font-family: 'ZEN Kaku Gothic New', sans-serif;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.12em;
    color: rgba(250,248,244,0.90);
    line-height: 1;
    white-space: nowrap;
    transition: color 0.3s ease;
  }

  .floating-cta-tel {
    font-family: 'ZEN Maru Gothic', sans-serif;
    font-size: 15px;
    font-weight: 400;
    letter-spacing: 0.08em;
    color: rgba(212,185,138,0.92);
    line-height: 1;
    white-space: nowrap;
    transition: color 0.3s ease;
  }

  /* 縦線区切り（SP） */
  .floating-cta-divider {
    width: 1px;
    height: auto;
    margin: 0;
    flex-shrink: 0;
    align-self: stretch;
    background: linear-gradient(
      to bottom,
      transparent 0%,
      rgba(212,185,138,0.22) 18%,
      rgba(212,185,138,0.32) 50%,
      rgba(212,185,138,0.22) 82%,
      transparent 100%
    );
    position: relative;
    z-index: 3;
  }

  /* 補助テキスト */
  .floating-cta-note {
    font-family: 'ZEN Kaku Gothic New', 'Hiragino Kaku Gothic ProN', sans-serif;
    font-size: 8.5px;
    font-weight: 300;
    letter-spacing: 0.24em;
    color: rgba(184,154,106,0.40);
    margin-top: 8px;
    text-align: center;
    pointer-events: none;
    user-select: none;
    display: flex;
    align-items: center;
    gap: 8px;
  }

  .floating-cta-note::before,
  .floating-cta-note::after {
    content: '';
    display: block;
    width: 18px;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(184,154,106,0.42));
    flex-shrink: 0;
  }
  .floating-cta-note::after {
    background: linear-gradient(90deg, rgba(184,154,106,0.42), transparent);
  }

  .floating-cta-btn:focus-visible {
    outline: 1px solid rgba(212,185,138,0.55);
    outline-offset: -1px;
  }
}


/* ===========================================================================
   PART 3. 修正・調整用CSS（クライアント要望反映）
   =========================================================================== */
/* ====================================================
   1. 全体の明るさ調整
   - 写真の暗いオーバーレイを軽減
   - 背景写真の brightness を上げる
==================================================== */

/* HEROのオーバーレイを軽減 */
.hero-ov{
  background:
    linear-gradient(0deg,  rgba(8,5,4,.78) 0%,  rgba(8,5,4,.18) 32%, transparent 60%) !important,
    linear-gradient(90deg, rgba(8,5,4,.42) 0%,  rgba(8,5,4,.05) 45%, transparent 65%) !important,
    linear-gradient(180deg,rgba(8,5,4,.28) 0%,  transparent 18%) !important;
}

/* HEROスライド画像のグレーディング軽減 */
.hs-slide::after{
  background:linear-gradient(180deg,
    rgba(10,7,6,.05) 0%,
    transparent 30%,
    transparent 60%,
    rgba(10,7,6,.18) 100%
  ) !important;
}

/* ABOUT 写真の暗さを軽減 */
.about-img img{
  filter:brightness(.92) saturate(1) !important;
}

/* FLOW 背景写真の暗さを軽減 */
.flow-bg img{
  filter:brightness(.32) saturate(.55) !important;
}
.flow-ov{
  background:linear-gradient(180deg,rgba(28,22,18,.45) 0%,rgba(20,16,14,.62) 100%) !important;
}

/* CTA 背景写真の暗さを軽減 */
.cta-bg img{
  filter:brightness(.22) saturate(.4) !important;
}
.cta-ov{
  background:linear-gradient(105deg,rgba(20,14,12,.92) 0%,rgba(40,30,24,.78) 50%,rgba(20,14,12,.92) 100%) !important;
}

/* FAQビジュアルや特徴カード写真の明るさを少し上げる */
.faq-vis img{
  filter:brightness(.92) saturate(.9) !important;
}
.fc-img img{
  filter:brightness(.95) saturate(.92) !important;
}
.doc-sub img{
  filter:brightness(.95) saturate(.92) !important;
}

/* ====================================================
   2. 文字色のコントラスト強化（読みやすく）
==================================================== */

/* :root を上書きして本文/サブテキストを濃くする */
:root{
  --wm:#4A3F38; /* was #6B5F57 — 濃いブラウン */
  --wg:#6E5F55; /* was #9A8E86 */
  --wl:#A89A8E; /* was #C8BFB6 */
}

/* 背景が黒系の上の薄文字を明るく */
.tb-label{ color:rgba(250,248,244,.82) !important; }
.dp-cta-t{ color:rgba(250,248,244,.78) !important; }
.dtag{ color:rgba(250,248,244,.85) !important; }
.fs-b{ color:rgba(250,248,244,.78) !important; }
.cta-body{ color:rgba(250,248,244,.82) !important; }
.cta-pt-s{ color:rgba(250,248,244,.7) !important; }
.cta-th{ color:rgba(250,248,244,.6) !important; }
.c-bar-sub{ color:rgba(250,248,244,.78) !important; }
.flow-note{ color:rgba(250,248,244,.6) !important; border-color:rgba(255,137,1,.4) !important; }
.ft-ad{ color:rgba(250,248,244,.7) !important; }
.ft-nl a{ color:rgba(250,248,244,.7) !important; }
.ft-cp{ color:rgba(250,248,244,.5) !important; }

/* 白/ベージュ背景の上の本文 */
.c-intro{ color:#3D3530 !important; }
.f-head-r{ color:#3D3530 !important; }
.fc-txt{ color:#3D3530 !important; }
.fdi{ color:#4A3F38 !important; }
.faq-sb-b{ color:#4A3F38 !important; }
.faq-q{ color:#2A2420 !important; }
.faq-ai{ color:#3D3530 !important; }
.acc-addr{ color:#2A2420 !important; }
.acc-addr span{ color:#4A3F38 !important; }
.hrs-t td{ color:#2A2420 !important; }
.hrs-t td:first-child{ color:#3D3530 !important; }
.si{ color:#2A2420 !important; }

/* ====================================================
   3. 文字サイズ拡大（高齢者にも読みやすく）
==================================================== */

/* 本文ベースのline-heightを少し詰めない */
body{ line-height:1.85 !important; font-weight:400 !important; }

/* 見出し */
.ttl-lg{ font-size:clamp(34px,4.6vw,60px) !important; line-height:1.4 !important; }
.ttl-md{ font-size:clamp(26px,3.4vw,46px) !important; line-height:1.4 !important; }
.lbl{ font-size:13px !important; letter-spacing:.36em !important; }

/* HEROタイトル（−5px ほど縮小） */
.hero-ttl{
  font-size:clamp(25px,4.1vw,59px) !important;
  line-height:1.5 !important;
  font-weight:700 !important;
}
.hero-tag{ font-size:14px !important; }
.hero-ey{ font-size:13px !important; letter-spacing:.36em !important; }

/* HEROボタン */
.hero-btns .btn-g,
.hero-btns .btn-o{
  font-size:15px !important;
  padding:20px 40px !important;
  letter-spacing:.16em !important;
  min-width:240px !important;
}

/* TRUST BAR */
.tb-num{ font-size:22px !important; }
.tb-num span{ font-size:12px !important; }
.tb-label{ font-size:13px !important; line-height:1.6 !important; }

/* CONCERNS（本文 +3px） */
.c-intro{ font-size:19px !important; line-height:2 !important; }
.ci-n{ font-size:18px !important; }
.ci-t{ font-size:18px !important; line-height:1.75 !important; }
.c-bar-ttl{ font-size:clamp(18px,2vw,26px) !important; }
.c-bar-sub{ font-size:17px !important; }

/* ABOUT（本文 +3px） */
.about-ttl{ font-size:clamp(24px,3vw,42px) !important; line-height:1.5 !important; }
.about-body{ font-size:19px !important; line-height:2 !important; }
.ot{ font-size:14px !important; padding:9px 22px !important; }

/* SYMPTOMS（本文 +3px） */
.cat-l{ font-size:15px !important; letter-spacing:.32em !important; }
.si{ font-size:19px !important; line-height:1.75 !important; padding:14px 18px !important; }
.dp-ct{ font-size:16px !important; }
.dtag{ font-size:15px !important; padding:8px 18px !important; }
.dp-cta-t{ font-size:16px !important; }

/* FEATURES（本文 +3px） */
.fc-n{ font-size:30px !important; }
.fc-ttl{ font-size:20px !important; line-height:1.55 !important; }
.fc-txt{ font-size:17px !important; line-height:1.95 !important; }
.fdi{ font-size:15px !important; line-height:1.75 !important; }
.f-head-r{ font-size:19px !important; line-height:2 !important; }

/* FLOW（本文 +3px） */
.fs-t{ font-size:18px !important; line-height:1.55 !important; }
.fs-b{ font-size:17px !important; line-height:1.9 !important; }
.flow-note{ font-size:15px !important; }

/* DOCTOR（本文 +3px） */
.doc-nm{ font-size:clamp(22px,2.6vw,34px) !important; }
.doc-msg{ font-size:19px !important; line-height:2.05 !important; }
.car-ph{ font-size:16px !important; }

/* FAQ（本文 +3px） */
.faq-sb-t{ font-size:clamp(22px,2.6vw,34px) !important; }
.faq-sb-b{ font-size:18px !important; line-height:2 !important; }
.faq-q{ font-size:18px !important; line-height:1.7 !important; padding:28px 30px !important; }
.faq-qm{ font-size:24px !important; }
.faq-ai{ font-size:18px !important; line-height:2 !important; padding:0 30px 28px 70px !important; }

/* CTA（本文 +3px） */
.cta-ttl{ font-size:clamp(22px,3vw,42px) !important; line-height:1.55 !important; }
.cta-body{ font-size:18px !important; line-height:2.05 !important; }
.cta-pt-t{ font-size:16px !important; }
.cta-pt-s{ font-size:15px !important; line-height:1.75 !important; }
.cta-tn{ font-size:30px !important; }

/* ACCESS（本文 +3px） */
.acc-lbl{ font-size:13px !important; letter-spacing:.32em !important; }
.acc-addr{ font-size:18px !important; line-height:2 !important; }
.acc-tel-l{ font-size:13px !important; }
.acc-tel{ font-size:32px !important; }
.acc-addr span{ font-size:17px !important; }

/* 診療時間表（本文 +3px） */
.hrs-t{ font-size:14px !important; }
.hrs-t th{ padding:14px 8px !important; font-size:14px !important; letter-spacing:.06em !important; }
.hrs-t th:first-child{ min-width:120px; }
.hrs-t td{ padding:14px 8px !important; font-size:13px !important; line-height:1.55; }
.hrs-time{ display:inline-block; margin-top:3px; font-size:12px; color:var(--wg); font-family:var(--fd); letter-spacing:.04em; }
.hrs-notes{
  font-size:16px !important;
  color:#4A3F38 !important;
  line-height:2 !important;
  margin-top:14px !important;
  letter-spacing:.02em;
}

/* ボタン全般を拡大 */
.btn-g{ font-size:14px !important; padding:18px 42px !important; letter-spacing:.16em !important; }
.btn-gl{ font-size:15px !important; padding:20px 52px !important; letter-spacing:.16em !important; }
.btn-o{ font-size:14px !important; padding:18px 36px !important; letter-spacing:.12em !important; }
.btn-gi{ font-size:14px !important; padding:20px 42px !important; letter-spacing:.12em !important; }

/* ====================================================
   4. ヘッダー：ロゴ拡大 / ナビ文字拡大
==================================================== */

/* ヘッダー高さを少し増やしてロゴを大きく */
.hd{ height:88px !important; padding:0 56px !important; }
.hd.on{ height:78px !important; }

.hd-logo-img{
  height:54px !important;
  max-width:280px !important;
}
.hd.on .hd-logo-img{ height:50px !important; }

/* PCナビ文字拡大 */
.hd-nav{ gap:30px !important; }
.hd-nav a{
  font-size:14.5px !important;
  letter-spacing:.10em !important;
  font-weight:500 !important;
}

/* CTAボタン（ヘッダー） */
.hd-cta{
  font-size:13px !important;
  height:44px !important;
  padding:0 28px !important;
  letter-spacing:.14em !important;
}

/* タブレットでナビ文字をやや小さく */
@media(max-width:1180px){
  .hd-nav{ gap:22px !important; }
  .hd-nav a{ font-size:13.5px !important; letter-spacing:.06em !important; }
}

/* SP */
@media(max-width:768px){
  .hd{ height:70px !important; padding:0 22px !important; }
  .hd-logo-img{ height:42px !important; max-width:220px !important; }
  .hd.on{ height:66px !important; }
  .hd.on .hd-logo-img{ height:40px !important; }
}

/* ====================================================
   5. HEROのCTA強調（信頼感を保ちつつ目立つ）
==================================================== */

/* HEROボタンに少し強い影と発色 */
.hero-btns .btn-g{
  box-shadow:0 8px 26px rgba(255,137,1,.45),inset 0 1px 0 rgba(255,255,255,.22) !important;
}

/* HERO アウトラインボタン（電話）の視認性UP */
.hero-btns .btn-o{
  border-color:rgba(255,255,255,.85) !important;
  background:rgba(255,255,255,.06);
  color:#fff !important;
  font-weight:600 !important;
}
.hero-btns .btn-o:hover{
  background:rgba(255,137,1,.18) !important;
  border-color:var(--gl) !important;
}

/* ====================================================
   6. モバイルメニューがフローティングバナーに被らないように
==================================================== */
.mm{
  padding-bottom:160px !important;
  padding-top:80px !important;
  justify-content:flex-start !important;
  overflow-y:auto !important;
  -webkit-overflow-scrolling:touch;
}
.mm a{ font-size:20px !important; padding:8px 0; }
.mm-tel a{ font-size:26px !important; }

/* ====================================================
   7. body 下部余白（フローティングバナー被り防止）
==================================================== */
@media(max-width:767px){
  body{ padding-bottom:88px; }
  /* footer も少し余白 */
  .ft{ padding-bottom:24px !important; }
}

/* ====================================================
   8. フローティングバナー：オレンジ系に変更
   既存のダーク系を上書き
==================================================== */
#floating-cta-wrap{
  --fcta-dark: linear-gradient(135deg,#ff8901 0%,#ffa733 50%,#ff8901 100%);
  --fcta-gold: rgba(255,255,255,1);
  --fcta-gold-d: rgba(255,255,255,.85);
}

/* 共通：パネル */
.floating-cta-inner{
  background:linear-gradient(135deg,#ff8901 0%,#ffa733 50%,#ff8901 100%) !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}

/* 上部ライン */
.floating-cta-inner::before{
  background:rgba(255,255,255,.85) !important;
}

/* shimmer は色だけ調整 */
.floating-cta-inner::after{
  background:linear-gradient(105deg,transparent 0%,transparent 25%,rgba(255,255,255,.18) 42%,rgba(255,255,255,.32) 50%,rgba(255,255,255,.18) 58%,transparent 75%,transparent 100%) !important;
}

/* アイコン：白枠＋白アイコン */
.floating-cta-icon{
  border-color:rgba(255,255,255,.85) !important;
  color:#fff !important;
  background:rgba(255,255,255,.12) !important;
}

/* ラベル＆メイン文字：白で読みやすく */
.floating-cta-label{
  color:rgba(255,255,255,.95) !important;
  font-weight:600 !important;
  letter-spacing:.18em !important;
}
.floating-cta-main{
  color:#fff !important;
  font-weight:700 !important;
  text-shadow:0 1px 2px rgba(180,80,0,.25);
}
.floating-cta-tel{
  color:#fff !important;
}

/* 区切り線 */
.floating-cta-divider{
  background:linear-gradient(to bottom,transparent 0%,rgba(255,255,255,.55) 18%,rgba(255,255,255,.85) 50%,rgba(255,255,255,.55) 82%,transparent 100%) !important;
}

/* 電話ボタンの差別化 */
.floating-cta-btn--tel{ background:rgba(255,255,255,.06) !important; }
.floating-cta-btn--tel:hover{ background:rgba(255,255,255,.16) !important; }

/* ホバー時の背景 */
.floating-cta-btn:hover .floating-cta-icon{
  background:#fff !important;
  color:#ff8901 !important;
  border-color:#fff !important;
}
.floating-cta-btn:hover .floating-cta-label{
  color:#fff !important;
}
.floating-cta-btn:hover .floating-cta-main{
  color:#fff !important;
}

/* PC：右サイド固定の幅とパディング調整 */
@media(min-width:768px){
  #floating-cta-wrap{
    max-width:clamp(132px,12vw,168px) !important;
  }
  .floating-cta-inner{
    width:clamp(132px,12vw,160px) !important;
    box-shadow:
      -2px 0 0 rgba(255,255,255,.25),
      -6px 0 22px rgba(255,137,1,.25),
      -16px 0 48px rgba(255,137,1,.18) !important;
  }
  .floating-cta-btn{
    padding:24px 14px !important;
    min-height:118px !important;
  }
  .floating-cta-icon{
    width:40px !important;
    height:40px !important;
  }
  .floating-cta-label{ font-size:10px !important; }
  .floating-cta-main{ font-size:13.5px !important; letter-spacing:.10em !important; }
  /* 区切り：横線 */
  .floating-cta-divider{
    height:1px !important;
    margin:0 14px !important;
    background:linear-gradient(to right,transparent 0%,rgba(255,255,255,.55) 20%,rgba(255,255,255,.85) 50%,rgba(255,255,255,.55) 80%,transparent 100%) !important;
  }
}

/* SP：下部固定（横3分割：電話・アクセス・WEB予約） */
@media(max-width:767px){
  #floating-cta-wrap{
    padding:0 0 max(8px,env(safe-area-inset-bottom,0px)) 0 !important;
  }
  .floating-cta-inner{
    border-radius:0 !important;
    max-width:100% !important;
    width:100% !important;
    min-height:72px !important;
    box-shadow:
      0 -2px 0 rgba(255,255,255,.35),
      0 -8px 24px rgba(255,137,1,.28),
      0 -20px 48px rgba(255,137,1,.18) !important;
  }
  .floating-cta-btn{
    padding:13px 6px !important;
    flex-direction:column !important;
    gap:6px !important;
    min-height:72px !important;
  }
  .floating-cta-icon{
    width:30px !important;
    height:30px !important;
  }
  .floating-cta-text{
    align-items:center !important;
    gap:3px !important;
  }
  .floating-cta-label{
    font-size:9px !important;
    letter-spacing:.14em !important;
  }
  .floating-cta-main{
    font-size:13px !important;
    letter-spacing:.06em !important;
    line-height:1.2 !important;
  }
  /* 区切り：縦線 */
  .floating-cta-divider{
    width:1px !important;
    height:auto !important;
    margin:10px 0 !important;
    background:linear-gradient(to bottom,transparent 0%,rgba(255,255,255,.6) 20%,rgba(255,255,255,.9) 50%,rgba(255,255,255,.6) 80%,transparent 100%) !important;
  }
  .floating-cta-note{ display:none !important; }
}

/* ====================================================
   9. TOPに戻るボタン
==================================================== */
#to-top{
  position:fixed;
  right:24px;
  bottom:24px;
  width:48px;
  height:48px;
  border-radius:50%;
  background:linear-gradient(135deg,#2A2420,#3D3530);
  color:#fff;
  border:1px solid rgba(255,137,1,.45);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  z-index:9000;
  opacity:0;
  visibility:hidden;
  transform:translateY(8px);
  transition:opacity .35s ease,visibility .35s ease,transform .35s ease,background .25s ease,box-shadow .25s ease;
  box-shadow:0 6px 20px rgba(0,0,0,.22);
  padding:0;
  font-family:var(--nb);
}
#to-top.show{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
#to-top:hover{
  background:linear-gradient(135deg,#ff8901,#ffaa38);
  box-shadow:0 8px 24px rgba(255,137,1,.45);
  border-color:#ffaa38;
  transform:translateY(-2px);
}
#to-top svg{ width:18px; height:18px; }
#to-top span{
  position:absolute;
  font-size:9px;
  letter-spacing:.12em;
  bottom:-16px;
  left:50%;
  transform:translateX(-50%);
  color:rgba(42,36,32,.5);
  white-space:nowrap;
}

/* SP：フローティングバナーの上に配置 */
@media(max-width:767px){
  #to-top{
    right:14px;
    bottom:96px;
    width:42px;
    height:42px;
  }
  #to-top span{ display:none; }
}

/* PC：フローティングバナー（右サイド）と被らない */
@media(min-width:768px){
  #to-top{
    right:clamp(150px,13vw,184px);
    bottom:32px;
  }
}

/* ====================================================
   10. 追加微調整：横スクロール防止
==================================================== */
html,body{ overflow-x:hidden; max-width:100%; }
.W{ max-width:100%; box-sizing:border-box; }
img,iframe{ max-width:100%; }

/* SP：診療時間表のセル幅を確保 */
@media(max-width:768px){
  .hrs-t th,.hrs-t td{ padding:10px 4px !important; font-size:12px !important; }
  .hrs-t td:first-child{ min-width:78px; font-size:11px !important; }
  .hrs-time{ font-size:10.5px; }
  .hrs-w{ overflow-x:auto; }
}

/* SP：HEROボタンのwidth調整 */
@media(max-width:768px){
  .hero-btns .btn-g,.hero-btns .btn-o{
    min-width:0 !important;
    width:100%;
  }
}

/* SP：concerns グリッドの文字サイズ（本文 +3px） */
@media(max-width:768px){
  .ci-t{ font-size:17px !important; }
}

/* SP：症状カードのpadding調整（アイコン削除後の余白整理）＋本文 +3px */
.sg-cell{ padding-top:46px !important; }
@media(max-width:768px){
  .sg-cell{ padding:36px 26px !important; }
  .si{ font-size:18px !important; padding:12px 14px !important; }
  .cat-l{ font-size:14px !important; letter-spacing:.24em !important; margin-bottom:18px !important; }
}

/* FAQ：開閉時の上下余白 */
.faq-tog::before,.faq-tog::after{ background:#ff8901 !important; }
.faq-tog::before,.faq-tog::after{ width:14px; height:1.5px; }
.faq-tog::after{ width:1.5px; height:14px; }

/* よくある症状や疾患カードのレイアウトを少し落ち着かせる */
.sg-cell::before{ background:linear-gradient(90deg,#ff8901,transparent) !important; }
.sg-cell .sd{ border-color:#ff8901 !important; }
.sg-cell .sd::after{ background:#ff8901 !important; }
.si:hover{ border-left-color:#ff8901 !important; background:rgba(255,137,1,.07) !important; }

/* ====================================================
   11. SP：フローティングバナー存在時にmm-telを少し上げる
==================================================== */
@media(max-width:1024px){
  .mm-tel{ margin-top:8px !important; }
}

/* ============================================================
   12. レスポンシブ最終調整 — fluid scaling
   PC版を理想形として、画面幅に応じて自然にスケール
   （上の固定px値より後に書くことで cascade で優先される）
============================================================ */

/* ---------- 見出し（fluid） ---------- */
.ttl-lg{
  font-size:clamp(26px, 3.5vw, 52px) !important;
  line-height:1.42 !important;
  letter-spacing:.01em;
}
.ttl-md{
  font-size:clamp(22px, 2.9vw, 42px) !important;
  line-height:1.45 !important;
  letter-spacing:.01em;
}

/* ラベル類は小さく抑えて落ち着いた印象に */
.lbl,.acc-lbl,.car-t,.cta-ey,.doc-lbl,.ft-nt,.ft-dt{
  font-size:clamp(11px, 0.85vw, 13px) !important;
  letter-spacing:.32em !important;
}

/* ---------- HERO ---------- */
.hero-ttl{
  font-size:clamp(22px, calc(3.6vw + 4px), 56px) !important;
  line-height:1.5 !important;
}
.hero-ey{ font-size:clamp(11px, 0.9vw, 13px) !important; letter-spacing:.34em !important; }
.hero-tag{ font-size:clamp(13px, 1.05vw, 15px) !important; }

/* ---------- セクション見出し（個別） ---------- */
.about-ttl{
  font-size:clamp(22px, 2.7vw, 38px) !important;
  line-height:1.5 !important;
}
.cta-ttl{
  font-size:clamp(20px, 2.7vw, 38px) !important;
  line-height:1.5 !important;
}
.fc-ttl{ font-size:clamp(16px, 1.4vw, 20px) !important; line-height:1.55 !important; }
.fs-t{   font-size:clamp(15px, 1.3vw, 18px) !important; line-height:1.55 !important; }
.faq-sb-t{ font-size:clamp(22px, 2.5vw, 34px) !important; line-height:1.5 !important; }
.doc-nm{   font-size:clamp(22px, 2.4vw, 32px) !important; line-height:1.4 !important; }
.c-bar-ttl{ font-size:clamp(16px, 1.55vw, 24px) !important; line-height:1.6 !important; }
.cta-pt-t{ font-size:clamp(13px, 1.05vw, 16px) !important; }
.dp-ct{    font-size:clamp(13px, 1.1vw, 16px) !important; }
.cat-l{    font-size:clamp(13px, 1.05vw, 15px) !important; letter-spacing:.30em !important; }

/* ---------- 主要本文（PC=18-19px） ---------- */
.c-intro,.about-body,.f-head-r,.doc-msg,.faq-sb-b,.faq-ai,.si{
  font-size:clamp(15px, calc(0.6vw + 11px), 19px) !important;
  line-height:1.95 !important;
}

/* ---------- 標準本文（PC=17px） ---------- */
.fc-txt,.fs-b,.cta-body,.acc-addr,.ci-t,.c-bar-sub,.faq-q{
  font-size:clamp(14px, calc(0.5vw + 10px), 17px) !important;
  line-height:1.88 !important;
}
.faq-q{ line-height:1.65 !important; }

/* ---------- 補助／注釈（PC=14-15px） ---------- */
.fdi,.cta-pt-s,.tb-label,.dp-cta-t,.flow-note,.car-ph,.hrs-notes,
.acc-addr span,.dtag,.ot{
  font-size:clamp(12.5px, calc(0.4vw + 10px), 15px) !important;
  line-height:1.85 !important;
}
.acc-tel-l{ font-size:clamp(11px, 0.85vw, 13px) !important; letter-spacing:.18em !important; }

/* ---------- 数字／番号系 ---------- */
.acc-tel{ font-size:clamp(24px, 2.3vw, 32px) !important; letter-spacing:.05em !important; }
.cta-tn{  font-size:clamp(22px, 2.1vw, 30px) !important; }
.tb-num{  font-size:clamp(16px, 1.5vw, 22px) !important; }
.tb-num span{ font-size:clamp(10px, 0.8vw, 12px) !important; }
.fc-n{    font-size:clamp(22px, 2.1vw, 30px) !important; }
.ci-n{    font-size:clamp(13px, 1.15vw, 16px) !important; }
.faq-qm{  font-size:clamp(18px, 1.6vw, 22px) !important; }

/* ---------- ボタン（fluid） ---------- */
.btn-g,.btn-o,.btn-gi{
  font-size:clamp(13px, 1vw, 15px) !important;
  padding:clamp(14px, 1.3vw, 18px) clamp(24px, 2.6vw, 40px) !important;
  letter-spacing:.14em !important;
}
.btn-gl{
  font-size:clamp(14px, 1.05vw, 16px) !important;
  padding:clamp(15px, 1.4vw, 20px) clamp(28px, 3vw, 48px) !important;
  letter-spacing:.14em !important;
}
.hd-cta{
  font-size:clamp(11px, 0.95vw, 13px) !important;
  padding:0 clamp(20px, 1.9vw, 28px) !important;
  height:clamp(38px, 3.2vw, 44px) !important;
}

/* ---------- セクション余白（fluid） ---------- */
.concerns,.feats,.flow,.doc,.access{
  padding-top:clamp(64px, 8.5vw, 128px) !important;
  padding-bottom:clamp(64px, 8.5vw, 128px) !important;
}
.symp{ padding-top:clamp(64px, 8.5vw, 128px) !important; padding-bottom:0 !important; }
.faq{
  padding-top:clamp(64px, 8vw, 120px) !important;
  padding-bottom:clamp(72px, 9.2vw, 140px) !important;
}

/* ---------- 日本語の自然な折り返し ---------- */
.hero-ttl,.about-ttl,.cta-ttl,.fc-ttl,.fs-t,.faq-sb-t,.doc-nm,
.c-bar-ttl,.faq-q,.cta-pt-t,.dp-ct,.ttl-lg,.ttl-md{
  word-break:keep-all;
  overflow-wrap:break-word;
}
.c-intro,.about-body,.fc-txt,.fs-b,.cta-body,
.acc-addr,.faq-sb-b,.faq-ai,.si,.ci-t,.dp-cta-t,
.doc-msg,.cta-pt-s,.flow-note,.fdi,.tb-label,.f-head-r,.c-bar-sub{
  word-break:keep-all;
  overflow-wrap:break-word;
  line-break:strict;
}

/* ============================================================
   タブレット（max-width:1024px）— 中間段階の自然な調整
============================================================ */
@media(max-width:1024px){
  :root{ --cp:0 28px; }

  /* セクション内グリッド間隔をタイトに */
  .c-head{ gap:48px !important; margin-bottom:56px !important; }
  .f-head{ gap:40px !important; margin-bottom:52px !important; }
  .doc-grid{ gap:48px !important; }
  .faq-lay{ gap:40px !important; }

  /* CTA bar */
  .c-bar-in{ padding:44px 44px !important; gap:36px !important; }
  .c-bar-btns{ min-width:220px !important; width:220px !important; }

  /* 症状カード */
  .sg-cell{ padding:42px 38px !important; }
  .dp{ padding:44px 44px !important; gap:36px !important; }

  /* HEROレイアウト */
  .hero-con{ padding:0 0 76px 38px !important; }

  /* CTA縦並び切替時 */
  .cta-l{ padding:80px 0 56px !important; }
  .cta-r{ padding:56px 0 80px !important; }

  /* About */
  .about-con{ padding:80px 44px !important; }

  /* Doctor 写真 */
  .doc-vis{ width:300px !important; }

  /* 診療時間表 */
  .hrs-t{ font-size:13px !important; }
  .hrs-t th,.hrs-t td{ padding:12px 6px !important; }
}

/* ============================================================
   モバイル（max-width:767px）— 可読性・タップ性を最優先
============================================================ */
@media(max-width:767px){
  :root{ --cp:0 20px; }

  /* 見出しのSP最小値（最低限の可読性） */
  .hero-ttl{
    font-size:clamp(22px, 6.2vw, 30px) !important;
    line-height:1.55 !important;
  }
  .ttl-lg{ font-size:clamp(22px, 5.8vw, 30px) !important; line-height:1.5 !important; }
  .ttl-md{ font-size:clamp(20px, 5.4vw, 28px) !important; line-height:1.5 !important; }
  .about-ttl{ font-size:clamp(21px, 5.6vw, 28px) !important; line-height:1.55 !important; }
  .cta-ttl{   font-size:clamp(20px, 5.4vw, 28px) !important; line-height:1.55 !important; }
  .fc-ttl{ font-size:16.5px !important; line-height:1.55 !important; }
  .fs-t{   font-size:16px !important; line-height:1.55 !important; }
  .faq-sb-t{ font-size:22px !important; line-height:1.5 !important; }
  .doc-nm{   font-size:22px !important; line-height:1.4 !important; }
  .c-bar-ttl{ font-size:17px !important; line-height:1.55 !important; }

  /* 主要本文：最低15px確保 */
  .c-intro,.about-body,.f-head-r,.doc-msg{
    font-size:15.5px !important; line-height:1.92 !important;
  }
  .si,.faq-ai,.faq-sb-b{
    font-size:15px !important; line-height:1.88 !important;
  }
  .fc-txt,.fs-b,.cta-body,.acc-addr,.ci-t,.c-bar-sub{
    font-size:14.5px !important; line-height:1.85 !important;
  }
  .faq-q{
    font-size:15.5px !important; line-height:1.65 !important;
    padding:20px 22px !important;
  }
  .faq-qm{ font-size:20px !important; }
  .faq-ai{ padding:0 22px 22px 56px !important; }

  /* 補助テキスト */
  .fdi,.cta-pt-s,.tb-label,.dp-cta-t,.flow-note,.hrs-notes,.car-ph,.dtag{
    font-size:13px !important; line-height:1.8 !important;
  }
  .ot{ font-size:12px !important; padding:7px 16px !important; }

  /* セクション余白：圧縮 */
  .concerns,.feats,.flow,.doc,.access,.symp{
    padding-top:60px !important;
    padding-bottom:60px !important;
  }
  .faq{ padding-top:60px !important; padding-bottom:72px !important; }
  .symp{ padding-bottom:0 !important; }
  .symp-head,.flow-head{ margin-bottom:42px !important; }

  /* ヒーロー余白 */
  .hero-con{ padding:0 22px 56px !important; max-width:100% !important; }
  .hero-tag{ font-size:13px !important; }

  /* ボタン：タッチ範囲確保（44px以上） */
  .btn-g,.btn-o,.btn-gi,.btn-gl{
    font-size:14px !important;
    padding:15px 22px !important;
    min-height:50px;
    letter-spacing:.10em !important;
  }
  .hero-btns .btn-g,.hero-btns .btn-o{
    width:100%;
    min-width:0 !important;
    justify-content:center;
  }
  .hd-cta{ font-size:11px !important; padding:0 14px !important; height:36px !important; letter-spacing:.10em !important; }

  /* Trust bar */
  .tb-item{ padding:24px 18px !important; gap:8px !important; }
  .tb-num{ font-size:17px !important; }
  .tb-label{ font-size:12px !important; line-height:1.55 !important; }

  /* 症状カード */
  .sg-cell{ padding:32px 22px !important; padding-top:36px !important; }

  /* CTA bar */
  .c-bar-in{ padding:30px 22px !important; gap:22px !important; }

  /* ABOUT */
  .about-con{ padding:48px 22px !important; }

  /* Footer */
  .ft{ padding-bottom:24px !important; }
  .ft-in{ padding-bottom:36px !important; }

  /* 電話番号系 */
  .acc-tel{ font-size:26px !important; }
  .cta-tn{  font-size:24px !important; }

  /* DOCTOR 写真 */
  .doc-frame{ max-width:300px !important; }

  /* ヘッダーロゴ */
  .hd-logo-img{ height:38px !important; max-width:200px !important; }
}

/* ============================================================
   小型スマホ（max-width:380px）— iPhone SE 等
============================================================ */
@media(max-width:380px){
  :root{ --cp:0 16px; }
  .hero-ttl{ font-size:21px !important; line-height:1.55 !important; }
  .ttl-md{   font-size:20px !important; }
  .about-ttl{ font-size:20px !important; }
  .cta-ttl{   font-size:19px !important; }
  .c-bar-ttl{ font-size:16px !important; }

  /* HEROボタン */
  .hero-btns .btn-g,.hero-btns .btn-o{
    font-size:13px !important;
    padding:14px 16px !important;
  }

  /* 診療時間表：超圧縮 */
  .hrs-t th,.hrs-t td{ padding:7px 2px !important; font-size:10.5px !important; }
  .hrs-t td:first-child{ font-size:10px !important; min-width:60px !important; }
  .hrs-time{ font-size:9.5px !important; }

  /* ヘッダー */
  .hd-logo-img{ height:32px !important; max-width:160px !important; }

  /* ボタン padding さらに圧縮 */
  .btn-g,.btn-o,.btn-gi,.btn-gl{ padding:14px 16px !important; }

  /* 電話番号 */
  .acc-tel{ font-size:24px !important; }
  .cta-tn{ font-size:22px !important; }
}

/* ============================================================
   横スクロール最終防止
============================================================ */
*{ min-width:0; }
body,.W,.tb-inner,.ft-in,.cta > .W,.hero-con,
.about-grid,.c-grid,.symp-grid,.f-grid,.flow-steps,.doc-grid,.faq-lay,.acc-lay{
  box-sizing:border-box; max-width:100%;
}
img,iframe,video{ max-width:100%; }

/* ============================================================
   13. 見出し階層の整理 — font-weight 調整
   大見出し: 600-700 / 中見出し・カード・ステップ: 700
   本文: 400 / 補足: 400
   日本語フォントのため 700 を採用してメリハリを出す
============================================================ */

/* ---------- 大見出し（既存の存在感を維持・若干強化） ---------- */
.ttl-lg,
.ttl-md,
.hero-ttl,
.about-ttl,
.cta-ttl,
.faq-sb-t{
  font-weight:700 !important;
}

/* ---------- 中見出し・カードタイトル・ステップタイトル ---------- */
/* 当院の特徴 カードタイトル */
.fc-ttl{ font-weight:700 !important; }

/* 診察・治療の流れ ステップタイトル */
.fs-t{ font-weight:700 !important; }

/* 症状カテゴリラベル（①尿のトラブル など） */
.cat-l{ font-weight:700 !important; }

/* CTA ポイントタイトル（"泌尿器科専門医が対応" 等） */
.cta-pt-t{ font-weight:700 !important; }

/* 疾患ラベル（"対象となる主な疾患" / "悪性腫瘍の早期発見"） */
.dp-ct{ font-weight:700 !important; }

/* CTAバータイトル（"少しでも気になる症状がある方は…"） */
.c-bar-ttl{ font-weight:700 !important; }

/* FAQ 質問タイトル */
.faq-q{ font-weight:700 !important; }
.faq-qt{ font-weight:700 !important; }

/* 医師紹介 名前 */
.doc-nm{ font-weight:700 !important; }

/* 医師紹介 サブラベル（経歴・所属学会） */
.car-t{ font-weight:600 !important; }

/* footer クリニック名（ブランド要素） */
.ft-nm{ font-weight:700 !important; }

/* セクション内 訴求リード（"少し気になる" 程度でも...） */
.dp-cta-t{ font-weight:500 !important; }

/* 専門医バッジ（doc-badge内）— 名前と並ぶアクセント要素 */
.doc-badge{ font-weight:600 !important; }

/* ヘッダーCTA（既に 600 だが念押し） */
.hd-cta{ font-weight:700 !important; }

/* HEROタグ（"泌尿器科専門医" 等の認証バッジ風要素） */
.hero-tag{ font-weight:500 !important; }

/* ---------- 本文・補足は 400 で軽く（読みやすさ優先） ---------- */
body{ font-weight:400 !important; }

.c-intro,
.about-body,
.f-head-r,
.fc-txt,
.fs-b,
.cta-body,
.acc-addr,
.faq-sb-b,
.faq-ai,
.si,
.ci-t,
.c-bar-sub,
.doc-msg,
.cta-pt-s,
.fdi,
.flow-note,
.car-ph,
.hrs-notes,
.tb-label,
.ft-ad{
  font-weight:400 !important;
}

/* 注釈・小キャプションは 300-400 で抑える（フォントによっては 300 が反映されない場合があるため 400 でも可） */
.acc-addr span,
.cta-th{
  font-weight:400 !important;
}

/* ---------- ラベル（小キャプス） — 中間ウェイトでアクセント ---------- */
.lbl,.acc-lbl,.cta-ey,.doc-lbl,.ft-nt,.ft-dt,.tb-num span{
  font-weight:500 !important;
}

/* TRUST BAR 数字部分は太く */
.tb-num{ font-weight:600 !important; }

/* CTAステップアイコン番号（円の中） */
.cta-pt-icon{ font-weight:600 !important; }
.fs-n{ font-weight:600 !important; }

/* 番号系（カード番号） */
.fc-n,.ci-n{ font-weight:400 !important; }

/* 電話番号系 */
.acc-tel,.cta-tn{ font-weight:500 !important; letter-spacing:.05em !important; }

/* ---------- 疾患タグ（dtag）— 通常本文 ---------- */
.dtag,.ot{ font-weight:400 !important; }
.dtag.hl{ font-weight:500 !important; }

/* ---------- ボタン — 既存通り 600-700 で押しやすさを担保 ---------- */
.btn-g,.btn-gl,.dp-cta-btn{ font-weight:700 !important; }
.btn-o,.btn-gi{ font-weight:500 !important; }

/* ============================================================
   14. カード・ボックス背景を完全な白 (#fff) に統一
   セクション全体の背景・模様付き背景・濃色背景は維持
   カード/ボックス内部だけを真っ白にしてメリハリを出す
============================================================ */

/* ---------- お悩みカード（concerns） ---------- */
.ci{ background:#ffffff !important; }
.ci:hover{ background:#f7f7f5 !important; }

/* ---------- 症状カード（symptoms） ---------- */
.sg-cell{ background:#ffffff !important; }
.sg-cell:hover{ background:#f7f7f5 !important; }

/* ---------- 特徴カード（features） ---------- */
.fc{ background:#ffffff !important; }

/* ---------- FAQアイテム ---------- */
.faq-item{ background:#ffffff !important; }
.faq-q:hover{ background:#f7f7f5 !important; }

/* ---------- 医師メッセージ（引用風ボックス） ---------- */
.doc-msg{ background:#ffffff !important; }

/* ---------- 経歴・所属学会ボックス ---------- */
.car-ph{ background:#ffffff !important; }

/* ---------- 医師写真フレーム placeholder 背景 ---------- */
.doc-frame{ background:#ffffff !important; }

/* ---------- マップラッパー ---------- */
.map-wrap{ background:#ffffff !important; }

/* ---------- 白いカードを背景から自然に浮かせる極めて控えめな影 ---------- */
.fc{
  box-shadow:0 1px 2px rgba(42,36,32,.04);
}
.fc:hover{
  box-shadow:0 16px 48px rgba(42,36,32,.10) !important;
}
.faq-item{ box-shadow:0 1px 2px rgba(42,36,32,.03); }

/* ---------- 注：以下のセクション背景・濃色背景は変更しない ---------- */
/* body / .concerns / .symp / .feats / .doc / .faq / .access （明色セクション） */
/* .about / .flow / .cta / .hero / .ft / .c-bar / .dp（濃色背景）             */
/* .hrs-t tr:nth-child(even) td（テーブル行：交互色は構造として維持）        */

/* ============================================================
   15. 追加修正
   ① FAQ 縦積み化 ／ ② Access白背景 ／ ③ カスタムカーソル削除
   ④ CTA装飾削除＋画像主役 ／ ⑤ ヘッダーナビ太字
   ⑥ CTAボタン文字 weight 900
============================================================ */

/* ---------- ① FAQ：2カラム → 縦積みレイアウト ---------- */
.faq-lay{
  display:block !important;
  grid-template-columns:none !important;
  gap:0 !important;
}
.faq-sb{
  position:relative !important;
  top:0 !important;
  margin-bottom:clamp(36px, 4.5vw, 56px) !important;
  display:block !important;
  grid-template-columns:none !important;
  max-width:880px;
}
.faq-sb-t{ margin-bottom:14px !important; }
.faq-sb-b{
  max-width:780px !important;
  font-size:clamp(15px, calc(0.55vw + 11px), 18px) !important;
  line-height:1.95 !important;
  margin-top:14px !important;
}
.faq-vis{ display:none !important; }

/* 質問項目を読みやすく拡大（中見出し相当） */
.faq-q{
  font-size:clamp(16px, calc(0.55vw + 12.5px), 19px) !important;
  font-weight:700 !important;
  line-height:1.6 !important;
  padding:clamp(22px, 2.1vw, 30px) clamp(22px, 2.4vw, 32px) !important;
}
.faq-qm{ font-size:clamp(20px, 1.8vw, 26px) !important; }
.faq-ai{
  font-size:clamp(15px, calc(0.4vw + 12px), 17px) !important;
  line-height:2 !important;
  padding:0 clamp(22px, 2.5vw, 32px) clamp(22px, 2.5vw, 28px) clamp(56px, 5.5vw, 76px) !important;
}

/* ---------- ② Access / 診療時間：完全な白 ---------- */
.access{ background:#ffffff !important; }
.hrs-w{ background:#ffffff !important; }
/* テーブル行：交互色はごく薄いグレーで読みやすさ維持 */
.hrs-t tr:nth-child(even) td{ background:#f7f7f5 !important; }
.hrs-t tr:hover td{ background:#efeeea !important; }
.hrs-t td{ background:#ffffff; }

/* ---------- ③ カスタムカーソル：標準カーソルに戻す ---------- */
#cursor,
#cursor-ring{ display:none !important; }
body{ cursor:auto !important; }
body.cursor-hover,
body.cursor-drag{ cursor:auto !important; }
button{ cursor:pointer !important; }
a{ cursor:pointer !important; }
.faq-q{ cursor:pointer !important; }
.fc{ cursor:default !important; }
.ci,.dtag,.si{ cursor:default !important; }
input,textarea,select{ cursor:auto !important; }
/* マグネティックホバー類のカスタム解除 */
body:hover #cursor,
body:hover #cursor-ring{ opacity:0 !important; }

/* ---------- ④ CTAセクション：装飾削除＋画像を主役に ---------- */
/* 装飾要素を非表示 */
.cta-wm,
.cta-ring,
.cta-line{ display:none !important; }

/* 中央仕切り線・左右パディング再設定 */
.cta-l{
  border-right:none !important;
  padding-right:0 !important;
}
.cta-r{ padding-left:0 !important; }
@media(min-width:1025px){
  .cta-l{ padding-right:48px !important; }
  .cta-r{ padding-left:48px !important; }
}

/* 画像を明るく（70%程度に） */
.cta-bg img{
  filter:brightness(.7) saturate(.92) !important;
}
/* オーバーレイを薄くして画像の存在感を残す（左右やや濃く・中央薄く） */
.cta-ov{
  background:linear-gradient(135deg,
    rgba(16,11,9,.55) 0%,
    rgba(16,11,9,.32) 50%,
    rgba(16,11,9,.55) 100%) !important;
}

/* CTAポイントカードの可読性確保（画像が明るくなる分、背景を強化） */
.cta-pt{
  background:rgba(0,0,0,.34) !important;
  border:1px solid rgba(255,255,255,.14) !important;
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}
.cta-pt:hover{
  background:rgba(0,0,0,.45) !important;
  border-color:rgba(255,137,1,.42) !important;
}

/* ---------- ⑤ ヘッダーナビ：太字化 ---------- */
.hd-nav a{
  font-family:var(--nb),'Hiragino Kaku Gothic ProN',sans-serif !important;
  font-weight:600 !important;
  letter-spacing:.08em !important;
}

/* スクロール後の濃色文字でも太字を維持 */
.hd.on .hd-nav a{ font-weight:600 !important; }

/* ---------- ⑥ CTAボタン：font-weight 900（Heavy） ---------- */
.btn-g,
.btn-gl,
.dp-cta-btn,
.hd-cta{
  font-weight:900 !important;
}
.btn-g span,
.btn-gl span,
.hd-cta span,
.dp-cta-btn span{
  font-weight:900 !important;
}
/* セカンダリ系（電話番号・アウトライン）はやや軽め */
.btn-gi,.btn-o{ font-weight:600 !important; }

/* ---------- ⑦ FAQ縦積みでのモバイル余白 ---------- */
@media(max-width:767px){
  .faq-sb{ margin-bottom:32px !important; }
  .faq-sb-b{ font-size:15px !important; }
  .faq-q{
    font-size:16px !important;
    padding:20px 22px !important;
  }
  .faq-qm{ font-size:20px !important; }
  .faq-ai{
    font-size:14.5px !important;
    padding:0 22px 22px 56px !important;
  }
}

/* ============================================================
   16. 追加修正
   ① ヘッダー全体を大きく
   ② 黒スモーク（暗いオーバーレイ）デザインを削除
   ③ SP の見出しを +3px
============================================================ */

/* ---------- ① ヘッダーを全体的に大きく ---------- */
.hd{
  height:104px !important;
  padding:0 64px !important;
}
.hd.on{
  height:88px !important;
}
.hd-logo-img{
  height:64px !important;
  max-width:320px !important;
}
.hd.on .hd-logo-img{
  height:58px !important;
}
/* ナビ：間隔と文字サイズを引き上げ */
.hd-nav{ gap:34px !important; }
.hd-nav a{
  font-size:16px !important;
}
/* CTAボタンも大きく */
.hd-cta{
  font-size:14px !important;
  height:50px !important;
  padding:0 32px !important;
  letter-spacing:.14em !important;
}
/* タブレット幅でも収まるように間隔調整 */
@media(max-width:1180px){
  .hd{ padding:0 40px !important; }
  .hd-nav{ gap:22px !important; }
  .hd-nav a{ font-size:14.5px !important; letter-spacing:.06em !important; }
  .hd-cta{ font-size:13px !important; padding:0 24px !important; }
}
/* SP用ヘッダーも少し大きめ */
@media(max-width:768px){
  .hd{ height:78px !important; padding:0 24px !important; }
  .hd.on{ height:74px !important; }
  .hd-logo-img{ height:46px !important; max-width:220px !important; }
  .hd.on .hd-logo-img{ height:44px !important; }
}
@media(max-width:380px){
  .hd{ height:70px !important; padding:0 18px !important; }
  .hd.on{ height:66px !important; }
  .hd-logo-img{ height:40px !important; max-width:180px !important; }
}

/* モバイルメニューの文字も大きく（ヘッダーに合わせて） */
.mm a{ font-size:22px !important; }
.mm-tel a{ font-size:30px !important; }
@media(max-width:380px){
  .mm a{ font-size:20px !important; }
  .mm-tel a{ font-size:26px !important; }
}

/* ---------- ② 黒スモーク（ダーク・オーバーレイ）デザインを削除 ---------- */

/* ヘッダー上部の黒スモーク（透過時の暗いグラデーション）を削除 */
.hd::before{ display:none !important; }
.hd{ background:transparent; }
/* スクロール後のヘッダーは既存の白系フロスト維持 */

/* HEROの黒スモークオーバーレイを削除 */
.hero-ov{ display:none !important; }

/* HEROスライドのカラーグレーディング（multiplyブレンド）も削除 */
.hs-slide::after{ display:none !important; }

/* HERO 上の細いゴールド帯（vein）も控えめに */
.hero-vein{ opacity:.4 !important; }

/* HERO テキスト：文字輪郭をふんわり浮かせる（広い黒モヤは避ける） */
.hero-ttl,
.hero-ey,
.hero-tag,
.hero-scr-txt{
  text-shadow:
    0 1px 5px rgba(0,0,0,.55),
    0 0 3px rgba(0,0,0,.45);
}
.hero-tag{ color:#ffffff !important; }
.hero-ey{ color:#ffd9a8 !important; }

/* 特徴カード画像の暗い fade（fc-img-ov）を削除 */
.fc-img-ov{ display:none !important; }
/* 特徴カード画像のフィルタ軽減（既に明るいが念押し） */
.fc-img img{ filter:brightness(1) saturate(1) !important; }

/* FLOW セクションの暗いオーバーレイを軽減（完全削除はしないが薄く） */
.flow-ov{
  background:linear-gradient(180deg,
    rgba(28,22,18,.40) 0%,
    rgba(20,16,14,.55) 100%) !important;
}
.flow-bg img{ filter:brightness(.42) saturate(.65) !important; }

/* ---------- ③ SP 見出しを +3px ---------- */
@media(max-width:767px){
  .hero-ttl{
    font-size:clamp(25px, 6.8vw, 33px) !important;
    line-height:1.55 !important;
  }
  .ttl-lg{   font-size:clamp(25px, 6.4vw, 33px) !important; line-height:1.5 !important; }
  .ttl-md{   font-size:clamp(23px, 6vw, 31px) !important; line-height:1.5 !important; }
  .about-ttl{ font-size:clamp(24px, 6.2vw, 31px) !important; line-height:1.55 !important; }
  .cta-ttl{   font-size:clamp(23px, 6vw, 31px) !important; line-height:1.55 !important; }
  .fc-ttl{    font-size:19.5px !important; line-height:1.55 !important; }
  .fs-t{      font-size:19px !important; line-height:1.55 !important; }
  .faq-sb-t{  font-size:25px !important; line-height:1.5 !important; }
  .doc-nm{    font-size:25px !important; line-height:1.4 !important; }
  .c-bar-ttl{ font-size:20px !important; line-height:1.55 !important; }
  /* FAQ質問も中見出しなので連動して大きく */
  .faq-q{ font-size:18px !important; }
}
@media(max-width:380px){
  /* 小型スマホでは少し抑える */
  .hero-ttl{ font-size:24px !important; }
  .ttl-md{   font-size:23px !important; }
  .about-ttl{ font-size:23px !important; }
  .cta-ttl{   font-size:22px !important; }
  .c-bar-ttl{ font-size:19px !important; }
  .fc-ttl{ font-size:18.5px !important; }
  .fs-t{ font-size:18px !important; }
}

/* ============================================================
   17. 日本語本文の改行を自然に
   word-break:keep-all と line-break:strict の組合せにより
   「・」「、」等でしか折り返せず細切れになる問題を解消
============================================================ */

/* 本文・中見出し・カードタイトル：自然な日本語折り返しに戻す */
.c-intro,
.about-body,
.fc-txt,
.fs-b,
.cta-body,
.acc-addr,
.faq-sb-b,
.faq-ai,
.si,
.ci-t,
.dp-cta-t,
.doc-msg,
.cta-pt-s,
.flow-note,
.fdi,
.tb-label,
.f-head-r,
.c-bar-sub,
.car-ph,
.hrs-notes,
.cta-th,
.fc-ttl,
.fs-t,
.faq-q,
.faq-qt,
.cta-pt-t,
.dp-ct,
.cat-l,
.c-bar-ttl,
.doc-nm,
.fc-ttl,
.fs-t{
  word-break:normal !important;
  line-break:auto !important;
  overflow-wrap:break-word !important;
  word-wrap:break-word !important;
}

/* 大見出し：keep-all を解除し、自然な改行に */
.about-ttl,
.cta-ttl,
.faq-sb-t,
.ttl-lg,
.ttl-md{
  word-break:normal !important;
  line-break:auto !important;
  overflow-wrap:break-word !important;
}

/* HEROタイトルは word-by-word アニメがあるため keep-all 維持 */
/* （.hero-ttl は触らない） */

/* 句読点や記号での不自然な折り返し位置を抑制 */
.c-intro,
.about-body,
.fc-txt,
.fs-b,
.cta-body,
.faq-sb-b,
.faq-ai,
.doc-msg{
  /* 行頭禁則文字を許容（ぶら下げ）して自然な行末・行頭に */
  hanging-punctuation:allow-end;
  text-spacing:auto;
}

/* ============================================================
   18. ヘッダーテキスト +3px
   ＋ CTAボタン統一・拡大（ファーストビュー除く）
============================================================ */

/* ---------- ① ヘッダーテキスト +3px ---------- */
.hd-nav a{
  font-size:19px !important;
}
.hd-cta{
  font-size:17px !important;
  padding:0 36px !important;
  height:54px !important;
  letter-spacing:.14em !important;
}
@media(max-width:1180px){
  .hd-nav a{ font-size:17.5px !important; letter-spacing:.06em !important; }
  .hd-cta{ font-size:15px !important; padding:0 26px !important; height:50px !important; }
}

/* ---------- ② 非HEROのCTAボタン：サイズ統一＋拡大 ---------- */
/* HERO の .hero-btns 内 .btn-g .btn-o は除外（既存サイズ維持） */

.c-bar-btns .btn-g,
.c-bar-btns .btn-gi,
.dp-cta-btn,
.access div[style*="flex-wrap"] .btn-g,
.access div[style*="flex-wrap"] .btn-o,
.cta-btns .btn-gl,
.cta-tel-btn,
.ft-in .btn-gl{
  font-size:clamp(15px, 1.15vw, 17px) !important;
  padding:clamp(18px, 1.9vw, 22px) clamp(28px, 2.8vw, 44px) !important;
  min-height:62px !important;
  letter-spacing:.12em !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}

/* ---------- ③ ペアボタンの幅統一 ---------- */

/* CONCERNS CTAバー：縦並び・列幅拡大 */
.c-bar-btns{
  min-width:320px !important;
  width:320px !important;
  gap:12px !important;
  flex-shrink:0 !important;
}
.c-bar-btns .btn-gl-wrap,
.c-bar-btns .btn-g,
.c-bar-btns .btn-gi{
  width:100% !important;
  box-sizing:border-box;
}

/* DISEASE タグ下のCTA：幅100% */
.dp-cta-btn{ width:100% !important; max-width:none !important; box-sizing:border-box; }
.dp-cta{ gap:14px !important; }

/* ACCESS のWEB予約＋電話：横並び・equal width */
.access div[style*="flex-wrap"]{
  display:flex !important;
  gap:14px !important;
  width:100% !important;
}
.access div[style*="flex-wrap"] > .btn-g,
.access div[style*="flex-wrap"] > .btn-o{
  flex:1 1 240px !important;
  min-width:0 !important;
  text-align:center;
  box-sizing:border-box;
}

/* 下部CTAセクション：縦積み・幅100% */
.cta-btns{
  width:100% !important;
  gap:12px !important;
}
.cta-btns .btn-gl-wrap,
.cta-btns .btn-gl{
  width:100% !important;
  box-sizing:border-box;
}
.cta-tel-row{ width:100% !important; }
.cta-tel-btn{ width:100% !important; box-sizing:border-box; }

/* フッターのWEB予約 */
.ft-in .btn-gl{
  width:100% !important;
  box-sizing:border-box;
}

/* ---------- ④ HEROボタンは現状維持（明示的に上書き防止） ---------- */
.hero-btns .btn-g,
.hero-btns .btn-o{
  /* 既存 section 12 の clamp サイズが適用される */
  min-height:auto !important;
}

/* ---------- ⑤ SP対応：横並び→縦積み・サイズ調整 ---------- */
@media(max-width:767px){
  /* ACCESS の横並びを縦積みに */
  .access div[style*="flex-wrap"]{
    flex-direction:column !important;
  }
  .access div[style*="flex-wrap"] > .btn-g,
  .access div[style*="flex-wrap"] > .btn-o{
    flex:1 1 auto !important;
    width:100% !important;
  }
  /* CTAバー：列幅100% */
  .c-bar-btns{
    width:100% !important;
    min-width:0 !important;
  }
  /* SP共通サイズ */
  .c-bar-btns .btn-g,
  .c-bar-btns .btn-gi,
  .dp-cta-btn,
  .access div[style*="flex-wrap"] .btn-g,
  .access div[style*="flex-wrap"] .btn-o,
  .cta-btns .btn-gl,
  .cta-tel-btn,
  .ft-in .btn-gl{
    font-size:15px !important;
    padding:18px 24px !important;
    min-height:56px !important;
  }
}

/* ============================================================
   19. フローステップタイトルの1行表示保険
   PC/タブレット幅では1行で収まるよう保証
   SPでは自動で折り返し（タイトル長さに応じて）
============================================================ */
@media(min-width:768px){
  .fs-t{
    white-space:nowrap;
    overflow:visible;
  }
}
/* タイトルが長い場合に備え、padding をやや圧縮 */
@media(min-width:769px) and (max-width:1024px){
  .fstep{ padding:36px 18px !important; }
  .fs-t{ font-size:clamp(15px, 1.7vw, 17px) !important; }
}

/* ============================================================
   20. HEROのCTAボタン：WEB予約と電話番号の幅を統一
============================================================ */
.hero-btns{
  display:flex !important;
  gap:14px !important;
  flex-wrap:wrap !important;
  align-items:stretch !important;
}
.hero-btns .btn-gl-wrap,
.hero-btns .btn-wrap{
  flex:1 1 0 !important;
  min-width:240px !important;
  max-width:300px !important;
  display:flex !important;
}
.hero-btns .btn-g,
.hero-btns .btn-o{
  width:100% !important;
  min-width:0 !important;
  flex:1 1 auto !important;
  justify-content:center !important;
  text-align:center !important;
  box-sizing:border-box !important;
}

/* SP：縦積みで幅100%・等幅 */
@media(max-width:768px){
  .hero-btns{ flex-direction:column !important; }
  .hero-btns .btn-gl-wrap,
  .hero-btns .btn-wrap{
    flex:1 1 auto !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
  }
  .hero-btns .btn-g,
  .hero-btns .btn-o{
    width:100% !important;
  }
}

/* ============================================================
   21. アニメーション軽量化のためのCSS最適化
   - GPU合成レイヤーを促進
   - 不要な再描画を抑制
============================================================ */

/* スクロール出現要素にハードウェアアクセラレーションを促進 */
.gsap-fade,
.gsap-l,
.gsap-r,
.gsap-scale,
.ci,
.fc,
.sg-cell,
.fstep,
.tb-item{
  transform:translateZ(0);
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}

/* 進行中のScrollTriggerが触る要素のみ will-change */
.hero-bg img,
.flow-bg img,
.cta-bg img{
  will-change:auto; /* 視差は無効化済みなので will-change 不要 */
}

/* 重い filter blur をフォールバック削除（GSAPからも削除済みだが念のため） */
.gsap-fade,
.gsap-l,
.gsap-r,
.gsap-scale{
  filter:none !important;
}

/* HEROカルーセル：transition 時間短縮（重さの主因のひとつ） */
.hs-slide img{
  transition:transform 6s cubic-bezier(.25,.46,.45,.94) !important;
}

/* 特徴カードホバー時の高負荷 box-shadow を軽量化 */
.fc{
  transition:box-shadow .35s ease, transform .25s ease !important;
}
.fc:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(42,36,32,.08) !important;
}

/* スクロール中の重い装飾を一時的に簡略化（モバイルのみ） */
@media(max-width:768px){
  /* SVGノイズ模様（::before の filter:turbulence）はモバイルで非表示にして負荷軽減 */
  .concerns::before,
  .symp::before,
  .feats::before,
  .flow-mb,
  .faq::before,
  .about::before{
    display:none !important;
  }
}

/* prefers-reduced-motion 対応強化：トランジション等もすべて短縮 */
@media(prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}

/* ============================================================
   22. TRUST BAR の文字サイズ統一
   "専門医在籍" "豊富な機器" "土曜診療" "訪問対応" "完全個室"
   親(.tb-num) と suffix(<span>) を同じサイズに揃える
============================================================ */
.tb-num,
.tb-num span{
  font-size:clamp(16px, 1.5vw, 22px) !important;
  letter-spacing:.04em !important;
  line-height:1.3 !important;
}
.tb-num span{
  /* 色は維持しつつ、サイズと太さを揃える */
  color:var(--go) !important;
  font-weight:inherit !important;
  margin-left:4px !important;
  letter-spacing:.04em !important;
}

/* SP用も連動 */
@media(max-width:767px){
  .tb-num,
  .tb-num span{
    font-size:17px !important;
  }
}
@media(max-width:380px){
  .tb-num,
  .tb-num span{
    font-size:15.5px !important;
  }
}

/* ============================================================
   23. HERO 電話番号ボタン：視認性確保
   オーバーレイ削除で白文字が見えなくなっていた問題を解消
   → 白ベタ背景 ＋ 濃色文字で常にはっきり見えるように
============================================================ */
.hero-btns .btn-o{
  background:#ffffff !important;
  border:1px solid #ffffff !important;
  color:#2A2420 !important;
  font-weight:700 !important;
  letter-spacing:.06em !important;
  box-shadow:0 4px 16px rgba(0,0,0,.22), 0 2px 4px rgba(0,0,0,.15) !important;
}
.hero-btns .btn-o:hover{
  background:var(--gl) !important;
  border-color:var(--gl) !important;
  color:#ffffff !important;
  box-shadow:0 8px 26px rgba(255,137,1,.50), 0 2px 6px rgba(0,0,0,.20) !important;
  transform:translateY(-2px);
}

/* ============================================================
   18. HERO 訴求バッジ — 雲形ふんわりデザイン
   3つの強み（泌尿器科専門医／エコー・膀胱鏡／土曜・訪問診療）を
   親しみのある丸みバッジとして大きく訴求する
============================================================ */
.hero-tags.hero-badges{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:wrap !important;
  gap:0 !important;
  margin-bottom:46px !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  max-width:560px !important;
}

.hero-badges .hero-tag.badge{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:6px !important;
  width:170px !important;
  height:170px !important;
  padding:14px 14px !important;
  text-align:center !important;
  font-family:var(--nb) !important;
  position:relative !important;
  letter-spacing:0 !important;
  text-shadow:none !important;
  color:#5b3a1f !important;
  box-shadow:
    0 12px 28px rgba(60,40,20,.22),
    0 2px 6px rgba(60,40,20,.10),
    inset 0 -8px 18px rgba(255,255,255,.22) !important;
  transition:transform .4s cubic-bezier(.22,1,.36,1) !important;
}

.hero-badges .hero-tag.badge::before{
  display:none !important;
}

.hero-badges .hero-tag.badge:hover{
  transform:translateY(-5px) rotate(.5deg) !important;
}

.hero-badges .badge--green{
  background:#C8DD8A !important;
  border-radius:62% 38% 58% 42% / 48% 56% 44% 52% !important;
  margin-right:-22px !important;
  margin-top:0 !important;
  z-index:3 !important;
}
.hero-badges .badge--yellow{
  background:#F4CF6F !important;
  border-radius:42% 58% 38% 62% / 56% 44% 56% 44% !important;
  margin-right:-22px !important;
  margin-top:46px !important;
  z-index:2 !important;
}
.hero-badges .badge--pink{
  background:#F2B0AC !important;
  border-radius:56% 44% 62% 38% / 44% 58% 42% 56% !important;
  margin-top:0 !important;
  z-index:1 !important;
}

.hero-badges .badge-label{
  display:inline-block !important;
  font-family:var(--nb) !important;
  font-size:13px !important;
  font-weight:600 !important;
  color:#7a4f2a !important;
  letter-spacing:.1em !important;
  position:relative !important;
  padding:0 18px !important;
  text-shadow:none !important;
  line-height:1 !important;
}
.hero-badges .badge-label::before,
.hero-badges .badge-label::after{
  content:'' !important;
  position:absolute !important;
  top:50% !important;
  width:10px !important;
  height:1.6px !important;
  background:#7a4f2a !important;
  opacity:.7 !important;
  border-radius:2px !important;
}
.hero-badges .badge-label::before{
  left:0 !important;
  transform:translateY(-50%) rotate(70deg) !important;
}
.hero-badges .badge-label::after{
  right:0 !important;
  transform:translateY(-50%) rotate(-70deg) !important;
}

.hero-badges .badge-icon{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:34px !important;
  height:34px !important;
  color:#6b4326 !important;
}
.hero-badges .badge-icon svg{
  width:100% !important;
  height:100% !important;
  display:block !important;
}

.hero-badges .badge-text{
  font-family:var(--nb) !important;
  font-size:17px !important;
  font-weight:700 !important;
  color:#5a3815 !important;
  line-height:1.45 !important;
  letter-spacing:.02em !important;
  margin:0 !important;
  text-shadow:none !important;
  word-break:keep-all !important;
}

/* タブレット（〜1024px） */
@media(max-width:1024px){
  .hero-tags.hero-badges{ max-width:520px !important; margin-bottom:40px !important; }
  .hero-badges .hero-tag.badge{ width:152px !important; height:152px !important; }
  .hero-badges .badge--yellow{ margin-top:40px !important; }
  .hero-badges .badge-text{ font-size:15.5px !important; }
  .hero-badges .badge-label{ font-size:12px !important; }
  .hero-badges .badge-icon{ width:30px !important; height:30px !important; }
}

/* スマホ（〜768px） */
@media(max-width:768px){
  .hero-tags.hero-badges{
    flex-direction:row !important;
    flex-wrap:wrap !important;
    justify-content:center !important;
    gap:0 !important;
    margin-bottom:30px !important;
    max-width:100% !important;
  }
  .hero-badges .hero-tag.badge{
    width:32vw !important;
    height:32vw !important;
    max-width:135px !important;
    max-height:135px !important;
    min-width:108px !important;
    min-height:108px !important;
    padding:10px 8px !important;
    gap:4px !important;
  }
  .hero-badges .badge--green{ margin-right:-14px !important; margin-top:0 !important; }
  .hero-badges .badge--yellow{ margin-right:-14px !important; margin-top:24px !important; }
  .hero-badges .badge--pink{ margin-top:0 !important; }
  .hero-badges .badge-label{ font-size:10px !important; padding:0 14px !important; }
  .hero-badges .badge-label::before,
  .hero-badges .badge-label::after{ width:7px !important; }
  .hero-badges .badge-icon{ width:24px !important; height:24px !important; }
  .hero-badges .badge-text{ font-size:13px !important; line-height:1.35 !important; }
}

/* 小型スマホ（〜380px） */
@media(max-width:380px){
  .hero-badges .hero-tag.badge{
    width:30vw !important;
    height:30vw !important;
    min-width:100px !important;
    min-height:100px !important;
  }
  .hero-badges .badge-text{ font-size:11.5px !important; }
  .hero-badges .badge-label{ font-size:9px !important; padding:0 11px !important; }
  .hero-badges .badge-icon{ width:20px !important; height:20px !important; }
  .hero-badges .badge--green{ margin-right:-10px !important; }
  .hero-badges .badge--yellow{ margin-right:-10px !important; margin-top:18px !important; }
}

/* ============================================================
   19. HEROキャッチ（hero-ey）— サブタイトル化
   "いりたに内科の泌尿器科" を視認しやすく、ヒーロー大見出しよりは控えめに
============================================================ */
.hero-ey{
  font-size:clamp(18px, 2vw, 26px) !important;
  letter-spacing:.08em !important;
  text-transform:none !important;
  font-weight:600 !important;
  margin-bottom:18px !important;
  line-height:1.5 !important;
}
@media(max-width:1024px){
  .hero-ey{ font-size:clamp(17px, 1.9vw, 23px) !important; letter-spacing:.06em !important; }
}
@media(max-width:768px){
  .hero-ey{ font-size:clamp(15px, 4.4vw, 20px) !important; letter-spacing:.04em !important; margin-bottom:14px !important; }
}
@media(max-width:380px){
  .hero-ey{ font-size:15px !important; }
}