@charset "utf-8";
/* ==========================================================================
   あさひ訪問治療院 / style.css  v2（2026-10-07 名刺準拠に改修）
   - 配色：名刺の「赤（あさひ・訪問）／青（訪問治療院・縦帯・保険の札）／黄（帯）／黒（本文）」
   - 文字：見出し＝丸ゴシック極太（M PLUS Rounded 1c 800）、本文＝角ゴシック（Noto Sans JP）
   - 構成・装飾（ピル型ボタン、◢、吹き出し、POINTの丸）は従来どおり
   ========================================================================== */
:root{
  --c-sky:#2B55A6;      /* 見出し・メインの青（名刺の青） */
  --c-sky2:#2B55A6;
  --c-sky-lt:#EEF3FB;   /* 淡い青の背景 */
  --c-sky-lt2:#DCE6F6;
  --c-mint:#D63D3F;      /* 主ボタン・強調（名刺の赤） */
  --c-green:#2B55A6;     /* 特長セクションの背景 */
  --c-green-dk:#1F3E86;  /* 白地の濃い青の文字 */
  --c-teal:#1F3E86;      /* ラベル・タグ（名刺の縦帯の紺） */
  --c-red-dk:#B3322E;
  --c-yellow:#F5D36E;    /* 名刺の黄色い帯 */
  --c-yellow-lt:#FDF6DC;
  --c-orange:#E0A526;
  --c-text:#222222;
  --c-nav:#333;
  --c-sub:#5c5c5c;
  --c-line:#d6d6d6;
  --c-gray:#f4f5f7;
  --c-white:#fff;
  --radius:6px;

  --ff:"Noto Sans JP","Hiragino Kaku Gothic ProN","ヒラギノ角ゴ ProN W3","游ゴシック体",YuGothic,"Yu Gothic","メイリオ",Meiryo,sans-serif;
  --ff-head:"M PLUS Rounded 1c","Zen Maru Gothic","Hiragino Maru Gothic ProN","ヒラギノ丸ゴ ProN W4",var(--ff);
  --ff-en:"Oswald","Noto Sans JP",sans-serif;

  --w-inner:1100px;
  --hh-pc:120px; --hh-md:80px; --hh-sp:62px;

  /* ▷ アイコン（mask用） */
  --ico-arw:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 14'%3E%3Cpath d='M1.5 1.6v10.8L10.6 7z' fill='none' stroke='black' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E");
  /* ◢ アイコン（カード右下） */
  --ico-corner:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M18 2.5V18H2.5z' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:var(--hh-pc);}
body{margin:0;font-family:var(--ff);font-size:17px;line-height:1.9;color:var(--c-text);background:var(--c-white);
  font-weight:400;letter-spacing:.03em;-webkit-font-smoothing:antialiased;text-size-adjust:100%;}
img{max-width:100%;height:auto;vertical-align:bottom;}
a{color:inherit;text-decoration:none;transition:opacity .3s,color .3s,background-color .3s;}
a:hover{opacity:.8;}
ul,ol{margin:0;padding:0;list-style:none;}
h1,h2,h3,h4,p,figure,dl,dd{margin:0;}
button{font-family:inherit;border:none;background:none;cursor:pointer;color:inherit;}
table{border-collapse:collapse;width:100%;}
svg{flex-shrink:0;}
.inner{width:100%;max-width:var(--w-inner);margin:0 auto;padding-inline:24px;}
.u-sp{display:none !important;}
.u-pc{display:block !important;}

/* ---------- 見出し ---------- */
.secHead{text-align:center;margin-bottom:48px;}
.secHead .tit{font-size:40px;font-weight:700;line-height:1.45;color:var(--c-sky);letter-spacing:.06em;}
.secHead .lead{margin-top:14px;font-size:17px;color:var(--c-text);}
.secHead--onGreen .tit{color:#fff;}
.secHead--onGreen .tit .mk{color:var(--c-yellow);}
.secHead--onGreen .lead{color:#fff;}

/* ---------- ボタン（ピル型＋▷） ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:14px;
  min-width:280px;padding:16px 38px;border-radius:50px;
  font-size:17px;font-weight:700;line-height:1.4;text-align:center;letter-spacing:.06em;
  background:var(--c-mint);color:#fff;
}
.btn .arw{width:11px;height:13px;background:currentColor;flex-shrink:0;
  -webkit-mask:var(--ico-arw) no-repeat center/contain;mask:var(--ico-arw) no-repeat center/contain;}
.btn--blue{background:var(--c-sky);}
.btn--teal{background:var(--c-teal);}
.btn--white{background:#fff;color:var(--c-sky);}
.btn--yellow{background:var(--c-yellow);color:var(--c-text);}
.btn--sm{min-width:0;padding:8px 22px;font-size:14px;gap:10px;}
.btn--icon{gap:10px;}

/* ==========================================================================
   header（ロゴ／上部タブ3色／ナビ）
   ========================================================================== */
.l-header{position:fixed;inset:0 0 auto 0;z-index:100;height:var(--hh-pc);background:#fff;}
.l-header .headInner{
  position:relative;height:100%;max-width:1400px;margin:0 auto;padding:0 32px;
  display:grid;grid-template-columns:auto 1fr;grid-template-rows:47px 1fr;align-items:center;
}
.logo,.fLogo{display:flex;flex-direction:row;align-items:center;gap:12px;line-height:1.15;}
.logo .logoMark,.fLogo .logoMark{flex-shrink:0;width:54px;height:54px;display:block;}
.logo .logoTxt,.fLogo .logoTxt{display:flex;flex-direction:column;min-width:0;}
.l-header .logo{grid-row:1 / 3;grid-column:1;}
.logo .logoSub,.fLogo .logoSub{font-size:12px;font-weight:700;color:var(--c-nav);letter-spacing:.08em;margin-bottom:4px;}
.logo .logoMain,.fLogo .logoMain{font-size:32px;font-weight:700;color:var(--c-sky);letter-spacing:.06em;white-space:nowrap;}

.headTabs{grid-row:1;grid-column:2;justify-self:end;align-self:start;display:flex;height:47px;}
.headTabs .tab{
  height:100%;display:flex;align-items:center;gap:8px;padding:0 24px;
  color:#fff;font-size:15px;font-weight:700;white-space:nowrap;
}
.headTabs li + li .tab{border-left:1px solid rgba(255,255,255,.55);}
.tab--blue{background:var(--c-sky2);}
.tab--green{background:var(--c-mint);}
.tab--teal{background:var(--c-teal);}

.l-header .gnav{grid-row:2;grid-column:2;justify-self:end;}
.l-header .gnav ul{display:flex;gap:30px;}
.l-header .gnav a{font-size:16px;font-weight:700;color:var(--c-nav);white-space:nowrap;}
.l-header .gnav a:hover{color:var(--c-sky);opacity:1;}
.l-header .navBtn{display:none;}

/* ==========================================================================
   blueBgWrap（KV〜ナビカードまでの淡い水色背景）
   ========================================================================== */
.blueBgWrap{background:var(--c-sky-lt);padding-bottom:100px;position:relative;overflow:hidden;}

/* ---------- KV ---------- */
.kvSect{position:relative;padding:calc(var(--hh-pc) + 56px) 0 110px;background:var(--c-sky-lt);}
.kvSect::before{ /* 背景の大きな白い円（参考サイトのうっすらした図形） */
  content:"";position:absolute;right:-6%;top:6%;width:62vw;max-width:880px;aspect-ratio:1;border-radius:50%;
  background:rgba(255,255,255,.55);pointer-events:none;
}
.kvSect .kvInner{
  position:relative;z-index:1;width:100%;max-width:1240px;margin:0 auto;padding-inline:32px;
  display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;
}
.kvSect .badge{
  display:inline-block;padding:6px 20px;border-radius:50px;background:var(--c-teal);
  color:#fff;font-size:14px;font-weight:700;letter-spacing:.08em;margin-bottom:22px;
}
.kvSect .copy .ln{display:block;white-space:nowrap;}
.kvSect .copy{font-size:clamp(34px,4.1vw,60px);font-weight:700;line-height:1.35;color:var(--c-sky);letter-spacing:.06em;}
.kvSect .sub{margin-top:14px;font-size:clamp(18px,1.9vw,24px);font-weight:700;line-height:1.55;color:var(--c-text);}
.kvSect .lead{margin-top:18px;font-size:17px;line-height:2;}
.kvSect .qual{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px;}
.kvSect .qual li{padding:4px 12px;border-radius:3px;background:#fff;color:var(--c-teal);font-size:13px;font-weight:700;}
.kvSect .kvBtns{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px;}
.kvSect .kvBtns .btn{min-width:250px;}

.kvSect .kvVisual{position:relative;}
.kvSlides{position:relative;aspect-ratio:3/2;}
.kvSlide{position:absolute;inset:0;opacity:0;transition:opacity .8s ease;pointer-events:none;}
.kvSlide.is-current{opacity:1;pointer-events:auto;}
.kvSlide .mainImg{height:100%;border-radius:var(--radius);overflow:hidden;background:#fff;}
.kvSlide .mainImg img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.04);transition:transform 6s ease-out;}
.kvSlide.is-current .mainImg img{transform:scale(1);}

/* 絵 → 吹き出し(0.6s) → 黄色い丸(1.5s) の順に表示 */
.kvSlide .fukidashi,.kvSlide .popBox{opacity:0;transition:opacity .6s ease,transform .6s ease;}
.kvSlide .fukidashi{transform:translateY(8px);}
.kvSlide .popBox{transform:scale(.7);}
.kvSlide.is-current .fukidashi{opacity:1;transform:translateY(0);transition-delay:.6s;}
.kvSlide.is-current .popBox{opacity:1;transform:scale(1);transition-delay:1.5s;}
.kvSlides:not(.is-js) .kvSlide:first-child,
.kvSlides:not(.is-js) .kvSlide:first-child .fukidashi,
.kvSlides:not(.is-js) .kvSlide:first-child .popBox{opacity:1;transform:none;}

/* 吹き出し：白地にミントの太い楕円枠（参考サイトKVの吹き出し） */
.kvSect .kvVisual .fukidashi{
  position:absolute;background:#fff;border:4px solid var(--c-mint);border-radius:50%;
  padding:22px 30px;font-size:16px;font-weight:700;line-height:1.5;text-align:center;
  color:var(--c-green-dk);white-space:nowrap;
}
.kvSect .kvVisual .fukidashi::before,
.kvSect .kvVisual .fukidashi::after{content:"";position:absolute;width:0;height:0;border-style:solid;}
.kvSect .kvVisual .fkTL{top:-34px;left:-30px;}
.kvSect .kvVisual .fkTL::before{bottom:-17px;left:42px;border-width:17px 6px 0 12px;border-color:var(--c-mint) transparent transparent transparent;transform:skewX(-18deg);}
.kvSect .kvVisual .fkTL::after{bottom:-10px;left:46px;border-width:11px 4px 0 7px;border-color:#fff transparent transparent transparent;transform:skewX(-18deg);}
.kvSect .kvVisual .fkBL{bottom:26px;left:-30px;}
.kvSect .kvVisual .fkBL::before{top:-17px;left:42px;border-width:0 6px 17px 12px;border-color:transparent transparent var(--c-mint) transparent;transform:skewX(18deg);}
.kvSect .kvVisual .fkBL::after{top:-10px;left:46px;border-width:0 4px 11px 7px;border-color:transparent transparent #fff transparent;transform:skewX(18deg);}

/* 黄色い丸：POINT番号入り（参考サイトの Step01 の丸） */
.kvSect .kvVisual .popBox{
  position:absolute;width:156px;height:156px;border-radius:50%;background:var(--c-yellow);
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  color:var(--c-text);line-height:1.2;
}
.popBox .pt{font-family:var(--ff-en);font-size:13px;letter-spacing:.14em;color:rgba(58,58,58,.55);}
.popBox .pn{font-family:var(--ff-en);font-size:30px;font-weight:500;color:rgba(58,58,58,.55);margin-bottom:4px;}
.popBox .pb{font-size:13.5px;font-weight:700;line-height:1.5;}
.kvSect .kvVisual .pbBR{right:-28px;bottom:-40px;}

.kvDots{display:flex;justify-content:center;gap:12px;margin-top:40px;}
.kvDots button{width:11px;height:11px;border-radius:50%;padding:0;background:#fff;border:2px solid var(--c-sky);transition:background-color .3s;}
.kvDots button.is-current{background:var(--c-sky);}

/* B案：顔を避けるため吹き出し位置を上書き */

.imgNote{display:none;}

/* ---------- about（水色の箱＋白文字：参考サイト「なんこう練太郎とは？」） ---------- */
.aboutSect{position:relative;z-index:1;margin-top:-40px;}
.aboutSect .aboutBox{
  background:var(--c-sky);color:#fff;border-radius:var(--radius);padding:50px 70px;
  display:grid;grid-template-columns:380px 1fr;gap:50px;align-items:center;
}
.aboutSect .aboutBox .imgCol img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);}
.aboutSect .aboutBox .tit{font-size:40px;font-weight:700;line-height:1.3;margin-bottom:18px;letter-spacing:.06em;}
.aboutSect .aboutBox .tit .sm{font-size:24px;margin-left:6px;white-space:nowrap;}
.aboutSect .aboutBox p{font-size:16.5px;line-height:2;font-weight:500;}
.aboutSect .aboutBox p + p{margin-top:12px;}
.aboutSect .aboutBox .btn{margin-top:26px;}

.aboutSect .targetBox{margin-top:40px;background:#fff;border-radius:var(--radius);padding:40px 44px 36px;}
.aboutSect .targetBox .boxTit{text-align:center;font-size:26px;font-weight:700;color:var(--c-sky);margin-bottom:24px;}
.aboutSect .targetBox ul{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.aboutSect .targetBox li{
  position:relative;background:var(--c-sky-lt);border-radius:var(--radius);
  padding:14px 16px 14px 50px;font-size:16px;font-weight:700;line-height:1.6;
}
.aboutSect .targetBox li::before{content:"";position:absolute;left:16px;top:50%;transform:translateY(-50%);width:22px;height:22px;border-radius:50%;background:var(--c-yellow);}
.aboutSect .targetBox li::after{content:"";position:absolute;left:23px;top:50%;width:6px;height:11px;border-right:2.5px solid var(--c-sky);border-bottom:2.5px solid var(--c-sky);transform:translateY(-64%) rotate(42deg);}
.aboutSect .targetNote{margin-top:18px;text-align:center;font-size:14.5px;color:var(--c-sub);}

/* ---------- navSect（写真左＋黄色丸アイコン＋水色見出し、右下◢） ---------- */
.navSect{padding-top:60px;}
.navSect .itemList{display:grid;grid-template-columns:1fr 1fr;gap:36px 40px;}
.navSect .itemList a{
  position:relative;display:grid;grid-template-columns:38% 1fr;height:100%;min-height:230px;
  background:#fff;border-radius:var(--radius);overflow:hidden;
}
.navSect .itemList .thumb img{width:100%;height:100%;object-fit:cover;}
.navSect .itemList .txtBox{padding:28px 26px 40px 24px;}
.navSect .itemList .titWrap{display:flex;align-items:center;gap:14px;margin-bottom:14px;}
.navSect .itemList .icon{width:58px;height:58px;border-radius:50%;background:var(--c-yellow);color:var(--c-sky);display:grid;place-items:center;flex-shrink:0;}
.navSect .itemList .tit{white-space:nowrap;font-size:clamp(19px,1.9vw,24px);font-weight:700;line-height:1.3;color:var(--c-sky);}
.navSect .itemList .txt{font-size:15.5px;line-height:1.85;}
.corner{position:absolute;right:14px;bottom:12px;width:16px;height:16px;background:var(--c-sky);
  -webkit-mask:var(--ico-corner) no-repeat center/contain;mask:var(--ico-corner) no-repeat center/contain;}

/* ---------- strength（緑のセクション：参考サイト「ねりLABO」） ---------- */
.strengthSect{
  position:relative;padding:100px 0 110px;background-color:var(--c-green);color:#fff;overflow:hidden;
  background-image:
    radial-gradient(circle at 8% 22%,rgba(255,255,255,.10) 0 70px,transparent 71px),
    radial-gradient(circle at 92% 14%,rgba(255,255,255,.08) 0 110px,transparent 111px),
    radial-gradient(circle at 86% 88%,rgba(255,255,255,.08) 0 80px,transparent 81px),
    radial-gradient(circle at 14% 92%,rgba(255,255,255,.06) 0 120px,transparent 121px);
}
.strengthSect .itemList{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;}
.strengthSect .itemList li{position:relative;background:#fff;color:var(--c-text);border-radius:var(--radius);padding:30px 30px 34px;}
.strengthSect .itemList .head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.strengthSect .itemList .icon{color:var(--c-green);}
.strengthSect .itemList .num{font-family:var(--ff-en);font-size:40px;font-weight:500;line-height:1;color:var(--c-yellow);
  -webkit-text-stroke:1.5px var(--c-green);letter-spacing:.04em;}
.strengthSect .itemList .tit{font-size:22px;font-weight:700;line-height:1.5;color:var(--c-green-dk);margin-bottom:12px;}
.strengthSect .itemList .txt{font-size:15.5px;line-height:1.95;}

/* ---------- menu ---------- */
.menuSect{padding:100px 0;}
.menuSect .menuList{display:grid;grid-template-columns:repeat(2,1fr);gap:30px;}
.menuSect .menuList li{position:relative;display:flex;flex-direction:column;background:#fff;border:2px solid var(--c-sky-lt);border-radius:var(--radius);overflow:hidden;}
.menuSect .menuList .thumb{aspect-ratio:16/7;overflow:hidden;background:var(--c-sky-lt);}
.menuSect .menuList .thumb img{width:100%;height:100%;object-fit:cover;}
.menuSect .menuList .body{padding:24px 28px 34px;flex:1;}
.menuSect .menuList .tit{display:flex;align-items:center;gap:10px;font-size:24px;font-weight:700;color:var(--c-sky);margin-bottom:8px;}
.menuSect .menuList .tit .dot{width:14px;height:14px;border-radius:50%;background:var(--c-yellow);box-shadow:0 0 0 3px #FBEBB5;flex-shrink:0;}
.menuSect .menuList .time{display:inline-block;margin-bottom:12px;padding:2px 12px;border-radius:3px;background:var(--c-teal);color:#fff;font-size:13px;font-weight:700;}
.menuSect .menuList .txt{font-size:15.5px;line-height:1.9;}
.menuSect .menuList li::after{content:"";position:absolute;right:14px;bottom:12px;width:16px;height:16px;background:var(--c-sky);
  -webkit-mask:var(--ico-corner) no-repeat center/contain;mask:var(--ico-corner) no-repeat center/contain;}

/* ---------- menu：あん摩・鍼灸の深掘り ---------- */
.menuSect .secHead .lead b{color:var(--c-teal);}
.menuDeep{position:relative;margin-bottom:44px;background:#fff;border:2px solid var(--c-sky-lt);border-radius:var(--radius);overflow:hidden;}
.menuDeep::after{content:"";position:absolute;right:14px;bottom:12px;width:16px;height:16px;background:var(--c-sky);
  -webkit-mask:var(--ico-corner) no-repeat center/contain;mask:var(--ico-corner) no-repeat center/contain;}
.menuDeep .thumb{aspect-ratio:16/5.4;overflow:hidden;background:var(--c-sky-lt);}
.menuDeep .thumb img{width:100%;height:100%;object-fit:cover;}
.menuDeep .body{padding:32px 40px 44px;}
.menuDeep .eyebrow{font-family:"Oswald",sans-serif;font-size:14px;font-weight:600;letter-spacing:.14em;color:var(--c-mint);}
.menuDeep .tit{display:flex;align-items:center;gap:12px;margin:2px 0 12px;font-size:32px;font-weight:700;color:var(--c-sky);line-height:1.4;}
.menuDeep .tit .dot{width:16px;height:16px;border-radius:50%;background:var(--c-yellow);box-shadow:0 0 0 4px #FBEBB5;flex-shrink:0;}
.menuDeep .tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;}
.menuDeep .tag{padding:2px 12px;border-radius:3px;background:var(--c-teal);color:#fff;font-size:13px;font-weight:700;}
.menuDeep .tag--line{background:#fff;color:var(--c-teal);box-shadow:inset 0 0 0 1.5px var(--c-teal);}
.menuDeep .body>.lead{font-size:16.5px;line-height:2;margin-bottom:26px;}
.deepGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px;}
.dcard{padding:20px 20px 22px;border-radius:var(--radius);background:var(--c-sky-lt);}
.dcard .dTit{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px;font-size:17px;font-weight:700;line-height:1.5;color:var(--c-teal);}
.dcard .dNum{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;margin-top:1px;border-radius:50%;background:var(--c-yellow);color:var(--c-text);font-family:"Oswald",sans-serif;font-size:14px;font-weight:600;}
.dcard p{font-size:14.5px;line-height:1.9;}
.dcard p b{color:var(--c-teal);}
.deepCols{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px;}
.dbox{padding:20px 22px;border-radius:var(--radius);border:2px solid var(--c-sky-lt);}
.dbox .dbTit{margin-bottom:12px;font-size:15.5px;font-weight:700;color:var(--c-sky);}
.dbox .check li{position:relative;padding-left:24px;margin-bottom:8px;font-size:15px;line-height:1.7;}
.dbox .check li::before{content:"";position:absolute;left:2px;top:.5em;width:12px;height:7px;border-left:3px solid var(--c-mint);border-bottom:3px solid var(--c-mint);transform:rotate(-45deg);}
.dbox .mini li{display:flex;gap:10px;align-items:flex-start;margin-bottom:9px;font-size:15px;line-height:1.7;}
.dbox .mini li span{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-top:2px;border-radius:50%;background:var(--c-mint);color:#fff;font-family:"Oswald",sans-serif;font-size:13px;font-weight:600;}
.menuDeep .insure{padding:14px 18px;border-radius:var(--radius);background:var(--c-yellow-lt);font-size:14.5px;line-height:1.85;}
.menuDeep .insure b{color:var(--c-teal);}
.compareBox{margin-bottom:56px;padding:28px 32px 26px;border-radius:var(--radius);background:var(--c-sky-lt);}
.compareBox .cmpTit{margin-bottom:16px;text-align:center;font-size:20px;font-weight:700;color:var(--c-sky);}
.cmpTable{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border-radius:var(--radius);overflow:hidden;}
.cmpTable th,.cmpTable td{padding:14px 16px;text-align:center;font-size:15px;line-height:1.6;border-bottom:1px solid var(--c-sky-lt);}
.cmpTable thead th{background:var(--c-sky);color:#fff;font-size:15.5px;font-weight:700;}
.cmpTable tbody th{width:24%;background:#f6fcfe;color:var(--c-teal);font-weight:700;}
.cmpTable tbody tr:last-child th,.cmpTable tbody tr:last-child td{border-bottom:0;}
.compareBox .cmpNote{margin-top:14px;font-size:14px;line-height:1.85;color:var(--c-sub);}
.subHead{position:relative;margin:0 0 22px;padding-left:22px;font-size:22px;font-weight:700;color:var(--c-sky);}
.subHead::before{content:"";position:absolute;left:0;top:50%;width:12px;height:12px;margin-top:-6px;border-radius:50%;background:var(--c-yellow);box-shadow:0 0 0 3px #FBEBB5;}
.menuSect .menuNote{margin-top:30px;padding:22px 26px;border-radius:var(--radius);background:var(--c-gray);font-size:14.5px;line-height:1.9;color:var(--c-sub);}

/* ---------- flow（淡い水色背景・黄色い丸） ---------- */
.flowSect{padding:100px 0;background:var(--c-sky-lt);}
.flowSect .stepList{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;}
.flowSect .stepList li{position:relative;background:#fff;border-radius:var(--radius);padding:26px 18px 26px;text-align:center;}
.flowSect .stepList li:not(:last-child)::after{content:"";position:absolute;right:-14px;top:50%;transform:translateY(-50%);z-index:1;
  border-left:11px solid var(--c-sky);border-top:9px solid transparent;border-bottom:9px solid transparent;}
.flowSect .stepList .st{display:block;font-family:var(--ff-en);font-size:15px;font-weight:500;letter-spacing:.12em;color:var(--c-sky);margin-bottom:10px;}
.flowSect .stepList .ic{width:74px;height:74px;margin:0 auto 14px;border-radius:50%;background:var(--c-yellow);color:var(--c-sky);display:grid;place-items:center;}
.flowSect .stepList .tit{font-size:18px;font-weight:700;color:var(--c-sky);margin-bottom:8px;line-height:1.45;}
.flowSect .stepList .txt{font-size:14px;line-height:1.8;text-align:left;}

/* ---------- price ---------- */
.priceSect{padding:100px 0;}
.priceTable{border-top:2px solid var(--c-sky);}
.priceTable tr{border-bottom:1px solid var(--c-line);}
.priceTable th,.priceTable td{padding:20px 18px;text-align:left;vertical-align:middle;}
.priceTable th{width:32%;background:var(--c-sky-lt);color:var(--c-teal);font-size:16.5px;font-weight:700;white-space:nowrap;}
.priceTable td{font-size:16px;}
.priceTable td .sub{display:block;margin-top:4px;font-size:14px;color:var(--c-sub);}
.priceSect .cautionBox{margin-top:32px;padding:28px 30px;border-radius:var(--radius);background:var(--c-yellow-lt);border:2px solid var(--c-orange);}
.priceSect .cautionBox .cTit{font-size:19px;font-weight:700;color:#8a5a00;margin-bottom:12px;}
.priceSect .cautionBox ul li{position:relative;padding-left:22px;font-size:15px;line-height:1.9;margin-bottom:6px;}
.priceSect .cautionBox ul li::before{content:"";position:absolute;left:4px;top:.72em;width:9px;height:9px;border-radius:50%;background:var(--c-orange);}

/* ---------- profile ---------- */
.profileSect{padding:100px 0;background:var(--c-sky-lt);}
.profileSect .profBox{background:#fff;border-radius:var(--radius);padding:50px;display:grid;grid-template-columns:320px 1fr;gap:46px;align-items:start;}
.profileSect .photo img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:var(--radius);}
.profileSect .photo .cap{margin-top:12px;text-align:center;font-size:13.5px;color:var(--c-sub);}
.profileSect .nameBlock{margin-bottom:22px;}
.profileSect .nameBlock .ruby{font-size:13px;color:var(--c-sub);letter-spacing:.14em;}
.profileSect .nameBlock .nm{font-size:38px;font-weight:700;line-height:1.3;color:var(--c-sky);letter-spacing:.1em;}
.profileSect .nameBlock .role{margin-top:6px;font-size:15px;font-weight:700;color:var(--c-teal);}
.profileSect .msg{font-size:16.5px;line-height:2;margin-bottom:24px;}
.profileSect .msg p + p{margin-top:14px;}
.profileSect .qualList{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px;}
.profileSect .qualList li{padding:4px 14px;border-radius:3px;background:var(--c-teal);color:#fff;font-size:13.5px;font-weight:700;}
.profileSect .careerList{border-top:2px solid var(--c-sky);}
.profileSect .careerList dl{display:grid;grid-template-columns:130px 1fr;gap:14px;padding:13px 4px;border-bottom:1px solid var(--c-line);font-size:15px;}
.profileSect .careerList dt{font-weight:700;color:var(--c-teal);}

/* ---------- faq ---------- */
.faqSect{padding:100px 0;}
.faqList li{margin-bottom:14px;background:var(--c-sky-lt);border-radius:var(--radius);overflow:hidden;border:2px solid transparent;transition:border-color .3s;}
.faqList li.is-open{border-color:var(--c-sky);background:#fff;}
.faqList .mark{
  display:grid;place-items:center;width:36px;height:36px;border-radius:50%;flex-shrink:0;
  font-family:var(--ff-en);font-size:19px;font-weight:500;line-height:1;color:#fff;background:var(--c-mint);
}
.faqList .a .mark{background:var(--c-sky);}
.faqList .q{position:relative;width:100%;display:flex;align-items:center;gap:16px;padding:18px 60px 18px 22px;text-align:left;font-size:17.5px;font-weight:700;line-height:1.6;}
.faqList .q::after{content:"";position:absolute;right:26px;top:50%;width:12px;height:12px;border-right:2.5px solid var(--c-sky);border-bottom:2.5px solid var(--c-sky);transform:translateY(-70%) rotate(45deg);transition:transform .3s;}
.faqList li.is-open .q::after{transform:translateY(-25%) rotate(225deg);}
.faqList .a{display:none;gap:16px;padding:4px 26px 24px 22px;font-size:16px;line-height:1.95;}
.faqList li.is-open .a{display:flex;align-items:flex-start;}

/* ---------- news（参考サイトの「お知らせ」） ---------- */
.newsSect{padding:90px 0;}
.newsSect .newsHead{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px;}
.newsSect .newsHead .tit{font-size:36px;font-weight:700;color:var(--c-sky);letter-spacing:.06em;}
.newsSect .newsList li{border-bottom:1px dashed var(--c-line);}
.newsSect .newsList a{display:grid;grid-template-columns:150px 120px 1fr;gap:18px;align-items:start;padding:18px 4px;}
.newsSect .newsList .date{font-size:15px;}
.newsSect .newsList .cat{padding:3px 8px;border-radius:3px;background:var(--c-teal);color:#fff;font-size:12.5px;font-weight:700;text-align:center;line-height:1.5;}
.newsSect .newsList .tit{font-size:15.5px;}

/* ---------- CTA（グレー帯：参考サイトのお問い合わせ帯） ---------- */
.ctaSect{padding:80px 0;background:var(--c-gray);text-align:center;}
.ctaSect .cTit{font-size:30px;font-weight:700;line-height:1.55;}
.ctaSect .cTxt{margin-top:14px;font-size:16.5px;}
.ctaSect .cBtns{display:flex;justify-content:center;flex-wrap:wrap;gap:18px;margin-top:30px;}
.ctaSect .cBtns .btn{min-width:320px;padding:18px 32px;}

/* ---------- contact ---------- */
.inquirySect{padding:100px 0;background:var(--c-sky-lt);}
.formBox{max-width:820px;margin:0 auto;background:#fff;border-radius:var(--radius);padding:48px 50px;}
.formRow{margin-bottom:26px;}
.formRow label.lb{display:block;font-size:16px;font-weight:700;margin-bottom:9px;}
.formRow .req,.formRow .any{display:inline-block;margin-left:8px;padding:1px 9px;border-radius:3px;color:#fff;font-size:11.5px;vertical-align:2px;}
.formRow .req{background:var(--c-mint);}
.formRow .any{background:#b5b5b5;}
.formRow input[type=text],.formRow input[type=email],.formRow input[type=tel],.formRow select,.formRow textarea{
  width:100%;padding:14px 16px;border:1.5px solid var(--c-line);border-radius:var(--radius);font:inherit;font-size:16px;color:var(--c-text);background:#fff;}
.formRow textarea{min-height:150px;resize:vertical;}
.formRow input:focus,.formRow select:focus,.formRow textarea:focus{outline:none;border-color:var(--c-sky);box-shadow:0 0 0 3px rgba(43,85,166,.18);}
.formRow .hint{margin-top:6px;font-size:13.5px;color:var(--c-sub);}
.formPrivacy{margin-bottom:26px;padding:18px 20px;border-radius:var(--radius);background:var(--c-gray);font-size:14px;line-height:1.85;color:var(--c-sub);}
.formSubmit{text-align:center;}

/* ---------- footer（水色＋白文字、白い枠ボタン） ---------- */
.l-footer{background:var(--c-sky);color:#fff;padding:60px 0 0;}
.l-footer a{color:#fff;}
.fLogo{justify-content:center;margin-bottom:40px;}
.fLogo .logoSub{color:#fff;}
.fLogo .logoMain{color:#fff;font-size:36px;}
.fLogo .logoMark{width:62px;height:62px;}
.l-footer .fBody{display:flex;justify-content:space-between;gap:40px;}
.l-footer .fNav{display:flex;gap:60px;}
.l-footer .fNav li{margin-bottom:10px;font-size:15px;font-weight:700;}
.l-footer .fNav a::before{content:"-";margin-right:8px;}
.l-footer .fBtns{display:flex;flex-direction:column;gap:10px;}
.l-footer .fBtn{display:flex;align-items:center;justify-content:center;gap:8px;min-width:200px;padding:9px 18px;border-radius:3px;background:#fff;font-size:14px;font-weight:700;}
.l-footer .fBtn--blue{color:var(--c-sky);}
.l-footer .fBtn--green{color:var(--c-mint);}
.l-footer .fBtn--teal{color:var(--c-teal);}
.l-footer .fInfo{margin-top:36px;padding-top:24px;border-top:1px solid rgba(255,255,255,.4);font-size:13.5px;text-align:center;}
.l-footer .copy{margin-top:40px;padding:16px;background:#fff;color:var(--c-text);font-size:12.5px;text-align:center;}
/* ゆりの花GUIDE クレジット（他のGUIDE配下サイトと同じ書式：白背景・中央・下線つきリンク） */
.ynh-credit__txt{font-size:inherit;}
.ynh-credit__link{text-decoration:none;padding-bottom:1px;transition:border-bottom-width .2s;}
.ynh-credit__link:hover,.ynh-credit__link:focus-visible{border-bottom-width:2px;}
.ynh-credit__link:focus-visible{outline:2px solid currentColor;outline-offset:2px;}
.ynh-credit--bottom{width:100%;margin:0;padding:22px 16px 26px;text-align:center;font-size:13px;line-height:1.6;letter-spacing:.04em;color:#5b6b78;background:#fff;opacity:1;}
.ynh-credit--bottom .ynh-credit__link{color:inherit;border-bottom:1px solid currentColor;}

.spCta{display:none;}

/* ---------- fade-in ---------- */
.u-anime{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease;}
.u-anime.is-show{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){.u-anime{opacity:1;transform:none;transition:none;}html{scroll-behavior:auto;}}

/* ==========================================================================
   〜1279px：ナビをハンバーガーへ（タブは残す）
   ========================================================================== */
@media screen and (max-width:1279px){
  html{scroll-padding-top:var(--hh-md);}
  .l-header{height:var(--hh-md);}
  .l-header .headInner{display:flex;align-items:center;gap:0;padding:0 0 0 24px;}
  .l-header .logo .logoMain{font-size:28px;}
  .l-header .logo .logoMark{width:48px;height:48px;}
  .headTabs{margin-left:auto;height:100%;}
  .headTabs .tab{flex-direction:column;justify-content:center;gap:2px;padding:0 16px;font-size:12.5px;}
  .l-header .navBtn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:72px;height:100%;background:#fff;}
  .l-header .navBtn span{display:block;width:26px;height:2.5px;border-radius:2px;background:var(--c-sky);transition:transform .3s,opacity .3s;}
  .l-header.is-navOpen .navBtn span:nth-child(1){transform:translateY(7.5px) rotate(45deg);}
  .l-header.is-navOpen .navBtn span:nth-child(2){opacity:0;}
  .l-header.is-navOpen .navBtn span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg);}
  .l-header .gnav{position:fixed;inset:var(--hh-md) 0 auto 0;background:#fff;max-height:0;overflow:hidden;transition:max-height .35s ease;box-shadow:0 8px 16px rgba(0,0,0,.06);}
  .l-header.is-navOpen .gnav{max-height:80vh;overflow-y:auto;}
  .l-header .gnav ul{display:block;max-width:var(--w-inner);margin:0 auto;padding:6px 24px 20px;}
  .l-header .gnav li{border-bottom:1px solid var(--c-sky-lt);}
  .l-header .gnav a{display:block;padding:15px 4px;font-size:16px;}
  .kvSect{padding-top:calc(var(--hh-md) + 50px);}
}

@media screen and (max-width:1080px){
  .kvSect .kvInner{gap:40px;}
  .aboutSect .aboutBox{grid-template-columns:1fr;padding:40px;}
  .aboutSect .aboutBox .imgCol{max-width:520px;}
  .navSect .itemList{grid-template-columns:1fr;}
  .flowSect .stepList{grid-template-columns:repeat(3,1fr);}
  .flowSect .stepList li:not(:last-child)::after{display:none;}
  .strengthSect .itemList{grid-template-columns:1fr;max-width:640px;margin:0 auto;}
  .profileSect .profBox{grid-template-columns:260px 1fr;padding:38px;gap:32px;}
  .l-footer .fBody{flex-direction:column;align-items:center;}
}

/* ==========================================================================
   SP
   ========================================================================== */
@media screen and (max-width:768px){
  html{scroll-padding-top:var(--hh-sp);}
  body{font-size:16px;line-height:1.85;padding-bottom:66px;}
  .u-sp{display:block !important;}
  .u-pc{display:none !important;}
  .inner{padding-inline:20px;}
  .btn{min-width:0;width:100%;padding:15px 24px;font-size:16px;}
  .btn--sm{width:auto;}

  .l-header{height:var(--hh-sp);box-shadow:0 1px 0 var(--c-sky-lt);}
  .l-header .headInner{padding-left:16px;}
  .l-header .logo{min-width:0;}
  .l-header .logo .logoSub{font-size:10px;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .l-header .logo .logoMain{font-size:21px;letter-spacing:.03em;}
  .l-header .logo .logoMark{width:38px;height:38px;}
  .l-header .logo{gap:8px;}
  .headTabs{display:none;}
  .l-header .navBtn{margin-left:auto;width:62px;}
  .l-header .gnav{inset:var(--hh-sp) 0 auto 0;}
  .l-header .gnav ul{padding:6px 20px 20px;}

  .blueBgWrap{padding-bottom:60px;}
  .kvSect{padding:calc(var(--hh-sp) + 30px) 0 80px;}
  .kvSect::before{width:120vw;right:-50%;top:40%;}
  .kvSect .kvInner{grid-template-columns:1fr;gap:56px;padding-inline:20px;}
  .kvSect .badge{font-size:12.5px;padding:5px 16px;margin-bottom:16px;}
  .kvSect .copy{font-size:40px;}
  .kvSect .lead{font-size:15.5px;}
  .kvSect .kvBtns{flex-direction:column;}
  .kvSect .kvBtns .btn{min-width:0;}
  .kvSect .kvVisual .fukidashi{padding:13px 18px;font-size:12.5px;border-width:3px;}
  .kvSect .kvVisual .fkTL{top:-30px;left:-8px;}
  .kvSect .kvVisual .fkBL{bottom:14px;left:-8px;}
  .kvSect .kvVisual .popBox{width:112px;height:112px;}
  .popBox .pt{font-size:10px;} .popBox .pn{font-size:21px;margin-bottom:2px;} .popBox .pb{font-size:11px;}
  .kvSect .kvVisual .pbBR{right:-6px;bottom:-34px;}
  .kvDots{margin-top:44px;}

  .secHead{margin-bottom:32px;}
  .secHead .tit{font-size:28px;}
  .secHead .lead{font-size:15.5px;}

  .aboutSect{margin-top:-30px;}
  .aboutSect .aboutBox{padding:26px 20px 30px;gap:22px;}
  .aboutSect .aboutBox .tit{font-size:28px;}
  .aboutSect .aboutBox .tit .sm{font-size:19px;}
  .aboutSect .aboutBox p{font-size:15.5px;}
  .aboutSect .targetBox{padding:28px 18px;margin-top:28px;}
  .aboutSect .targetBox .boxTit{font-size:20px;}
  .aboutSect .targetBox ul{grid-template-columns:1fr;gap:8px;}
  .aboutSect .targetBox li{font-size:15.5px;padding:12px 14px 12px 48px;}

  .navSect{padding-top:40px;}
  .navSect .itemList{gap:18px;}
  .navSect .itemList a{grid-template-columns:1fr;min-height:0;}
  .navSect .itemList .thumb{aspect-ratio:16/8;overflow:hidden;}
  .navSect .itemList .txtBox{padding:20px 20px 32px;}
  .navSect .itemList .icon{width:52px;height:52px;}
  .navSect .itemList .icon svg{width:28px;height:28px;}
  .navSect .itemList .tit{font-size:22px;}
  .navSect .itemList .txt{font-size:15px;}

  .strengthSect{padding:60px 0 64px;}
  .strengthSect .itemList{gap:18px;}
  .strengthSect .itemList li{padding:24px 20px 26px;}
  .strengthSect .itemList .tit{font-size:19px;}

  .menuSect{padding:60px 0;}
  .menuDeep{margin-bottom:30px;}
  .menuDeep .thumb{aspect-ratio:16/8;}
  .menuDeep .body{padding:22px 18px 30px;}
  .menuDeep .tit{font-size:24px;}
  .menuDeep .body>.lead{font-size:15px;line-height:1.95;}
  .deepGrid,.deepCols{grid-template-columns:1fr;gap:12px;}
  .compareBox{margin-bottom:38px;padding:20px 12px 18px;}
  .compareBox .cmpTit{font-size:16.5px;}
  .cmpTable th,.cmpTable td{padding:10px 6px;font-size:13px;}
  .cmpTable thead th{font-size:13px;}
  .cmpTable tbody th{width:26%;}
  .subHead{font-size:19px;}
  .menuSect .menuList{grid-template-columns:1fr;gap:18px;}
  .menuSect .menuList .body{padding:20px 20px 30px;}
  .menuSect .menuList .tit{font-size:21px;}

  .flowSect{padding:60px 0;}
  .flowSect .stepList{grid-template-columns:1fr;gap:12px;}
  .flowSect .stepList li{display:grid;grid-template-columns:62px 1fr;grid-template-areas:"st st" "ic body";gap:6px 14px;text-align:left;align-items:center;padding:18px;}
  .flowSect .stepList .st{grid-area:st;margin-bottom:0;}
  .flowSect .stepList .ic{grid-area:ic;margin:0;width:62px;height:62px;}
  .flowSect .stepList .stBody{grid-area:body;min-width:0;}
  .flowSect .stepList .tit{font-size:17px;margin-bottom:4px;}

  .priceSect{padding:60px 0;}
  .priceTable th,.priceTable td{display:block;width:100%;white-space:normal;}
  .priceTable th{padding:12px 14px;font-size:15.5px;}
  .priceTable td{padding:14px 14px 20px;font-size:15.5px;}
  .priceSect .cautionBox{padding:22px 18px;}

  .profileSect{padding:60px 0;}
  .profileSect .profBox{grid-template-columns:1fr;gap:24px;padding:24px 20px 30px;}
  .profileSect .photo img{aspect-ratio:4/3;}
  .profileSect .nameBlock .nm{font-size:30px;}
  .profileSect .careerList dl{grid-template-columns:1fr;gap:2px;padding:12px 2px;font-size:14.5px;}

  .faqSect{padding:60px 0;}
  .faqList .q{font-size:16px;padding:16px 50px 16px 16px;gap:12px;}
  .faqList .q::after{right:20px;}
  .faqList .a{padding:4px 18px 20px 16px;gap:12px;font-size:15px;}
  .faqList .mark{width:32px;height:32px;font-size:17px;}

  .newsSect{padding:56px 0;}
  .newsSect .newsHead .tit{font-size:28px;}
  .newsSect .newsList a{grid-template-columns:auto auto;grid-template-areas:"date cat" "tit tit";gap:6px 12px;padding:16px 2px;}
  .newsSect .newsList .date{grid-area:date;}
  .newsSect .newsList .cat{grid-area:cat;justify-self:start;}
  .newsSect .newsList .tit{grid-area:tit;}

  .ctaSect{padding:56px 0;}
  .ctaSect .cTit{font-size:22px;}
  .ctaSect .cTxt{font-size:15px;text-align:left;}
  .ctaSect .cBtns .btn{min-width:0;}

  .inquirySect{padding:60px 0;}
  .formBox{padding:26px 20px 30px;}

  .l-footer{padding-top:44px;}
  .fLogo{margin-bottom:28px;}
  .fLogo .logoMain{font-size:27px;}
  .fLogo .logoMark{width:50px;height:50px;}
  .l-footer .fNav{gap:28px;flex-wrap:wrap;justify-content:center;}
  .l-footer .fBtns{width:100%;}
  .ynh-credit--bottom{padding-bottom:calc(26px + 66px);}

  .spCta{display:block;position:fixed;inset:auto 0 0 0;z-index:90;padding:9px 14px;background:rgba(255,255,255,.96);box-shadow:0 -1px 0 var(--c-sky-lt);}
  .spCta a{display:flex;align-items:center;justify-content:center;gap:8px;padding:13px;border-radius:50px;background:var(--c-mint);color:#fff;font-size:16px;font-weight:700;}
}

@media screen and (max-width:1080px){
  .deepGrid{grid-template-columns:1fr;}
}


/* ==========================================================================
   v2 追加：名刺準拠のロゴ・見出し・強弱
   ========================================================================== */
/* 見出し類は丸ゴシック極太（名刺の「あさひ訪問治療院」の書体に近いもの） */
.secHead .tit,.kvSect .copy,.kvSect .sub,.logo .logoMain,.fLogo .logoMain,.aboutSect .aboutBox .tit,
.aboutSect .targetBox .boxTit,.navSect .itemList .tit,.strengthSect .itemList .tit,.menuDeep .tit,
.menuSect .menuList .tit,.subHead,.compareBox .cmpTit,.flowSect .stepList .tit,.profileSect .nameBlock .nm,
.newsSect .newsHead .tit,.ctaSect .cTit,.kvSect .kvVisual .fukidashi,.popBox .pb,.btn,.headTabs .tab,
.spCta a,.priceSect .cautionBox .cTit,.dcard .dTit,.dbox .dbTit,.faqList .q{font-family:var(--ff-head);}
.secHead .tit,.kvSect .copy,.aboutSect .aboutBox .tit,.profileSect .nameBlock .nm,.newsSect .newsHead .tit,
.ctaSect .cTit,.menuDeep .tit,.navSect .itemList .tit,.strengthSect .itemList .tit{font-weight:800;}

/* 見出し下の波線（ロゴ下のラインを模したもの） */
.secHead .tit::after{content:"";display:block;width:110px;height:13px;margin:14px auto 0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 14'%3E%3Cpath d='M2 9c14-7 26-7 40 0s26 7 40 0 22-6 36-2' fill='none' stroke='%232B55A6' stroke-width='3' stroke-linecap='round'/%3E%3Cpath d='M70 5c10-3 20-3 30-1' fill='none' stroke='%23D63D3F' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center/contain;}
.secHead--onGreen .tit::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 14'%3E%3Cpath d='M2 9c14-7 26-7 40 0s26 7 40 0 22-6 36-2' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round'/%3E%3Cpath d='M70 5c10-3 20-3 30-1' fill='none' stroke='%23F5D36E' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E");}

/* ---------- header：名刺の左の縦帯を上辺に。ロゴは名刺のマーク＋2色の院名 ---------- */
.l-header{border-top:6px solid var(--c-teal);}
.logo .logoMark,.fLogo .logoMark{width:auto;height:58px;aspect-ratio:auto;}
.logo .logoMain .lr,.fLogo .logoMain .lr{color:var(--c-mint);}
.logo .logoMain{font-size:33px;color:var(--c-sky);letter-spacing:.04em;}
.logo .logoSub{color:var(--c-sky);font-weight:700;}
.logo .logoSub .lr{color:var(--c-mint);}
.tab--blue{background:var(--c-sky);}
.tab--green{background:var(--c-mint);}
.tab--teal{background:var(--c-teal);}
.l-header .gnav a{font-weight:700;}

/* ---------- KV：名刺裏の「健康保険による訪問施術」の札と黄色い帯 ---------- */
.kvSect .badge{border-radius:8px;background:var(--c-sky);padding:8px 22px;font-size:16px;font-family:var(--ff-head);font-weight:800;letter-spacing:.06em;margin-bottom:8px;}
.kvSect .badgeNote{font-size:13px;color:var(--c-sub);margin-bottom:22px;}
.kvSect .copy{color:var(--c-sky);font-size:clamp(36px,4.4vw,64px);}
.kvSect .copy .ln + .ln{color:var(--c-mint);}
.kvSect .sub{display:inline;padding:2px 6px;color:var(--c-red-dk);font-weight:800;line-height:1.95;
  background:linear-gradient(transparent 12%,var(--c-yellow) 12%,var(--c-yellow) 92%,transparent 92%);
  -webkit-box-decoration-break:clone;box-decoration-break:clone;}
.kvSect .subWrap{margin-top:16px;}
.kvSect .lead{color:var(--c-text);}
.kvSect .qual li{color:var(--c-teal);box-shadow:inset 0 0 0 1.5px var(--c-sky-lt2);}
.btn--white{box-shadow:inset 0 0 0 2px var(--c-sky);}

/* 吹き出し：赤い太枠（太陽の色）＋青い文字 */
.kvSect .kvVisual .fukidashi{color:var(--c-sky);}
.popBox .pn{color:var(--c-mint);}
.popBox .pt{color:rgba(34,34,34,.6);}

/* ---------- 特長（青のセクション） ---------- */
.strengthSect .itemList .icon{color:var(--c-sky);}
.strengthSect .itemList .num{-webkit-text-stroke:1.5px var(--c-teal);}
.strengthSect .itemList .tit{color:var(--c-teal);}

/* 料金の注意 */
.priceSect .cautionBox{border-color:var(--c-yellow);}

/* ---------- footer：名刺の縦帯の紺。ロゴは名刺のマークをそのまま白地に ---------- */
.l-footer{background:var(--c-teal);}
.fLogo{flex-direction:column;gap:14px;}
.fLogo .logoImg{display:block;background:#fff;border-radius:12px;padding:14px 18px;}
.fLogo .logoImg img{display:block;width:200px;height:auto;}
.fLogo .logoTxt{align-items:center;}
.fLogo .logoSub{font-size:13px;margin:0;}
.l-footer .fBtn--blue{color:var(--c-sky);}
.l-footer .fBtn--green{color:var(--c-mint);}
.l-footer .fBtn--teal{color:var(--c-teal);}
.spCta a{font-weight:800;}

@media screen and (max-width:1279px){
  .l-header .logo .logoMain{font-size:28px;}
  .l-header .logo .logoMark{width:auto;height:50px;}
}
@media screen and (max-width:768px){
  .l-header{border-top-width:4px;}
  .l-header .logo .logoMain{font-size:21px;}
  .l-header .logo .logoMark{width:auto;height:40px;}
  .kvSect .badge{font-size:14px;padding:6px 16px;}
  .kvSect .badgeNote{font-size:12px;margin-bottom:16px;}
  .kvSect .copy{font-size:40px;}
  .secHead .tit::after{width:90px;height:11px;margin-top:10px;}
  .fLogo .logoImg img{width:160px;}
}

/* ==========================================================================
   v4 追加（2026-10-07）：院名変更・改稿に伴う収まりと改行の調整
   ========================================================================== */
.ib{display:inline-block;}
/* 日本語を文節の切れ目で改行（対応ブラウザ）。見出しは行の長さをそろえる */
h1,h2,h3,h4,.btn,.tab,.fBtn,.badge,.fukidashi,.pb,.boxTit,.dbTit,.cTit,.cmpTit,.role,.qualNote,.badgeNote,.aboutSect .targetBox li,.dbox .check li,.dbox .mini li,.priceTable th,.cmpTable th,.faqList .q,.kvSect .sub,.spCta a{word-break:auto-phrase;}
/* 長い文章は通常の改行（行末をそろえる）。最後の行が1〜2文字にならないようにだけ調整 */
.secHead .tit,.ctaSect .cTit,.aboutSect .targetBox .boxTit,.compareBox .cmpTit{text-wrap:balance;}
p,li,dd,td{text-wrap:pretty;}

/* ヘッダーの院名：「あさひ」を大きく、「訪問治療院」を一回り小さく（名刺の強弱） */
.logo .logoMain,.fLogo .logoMain{display:flex;align-items:baseline;white-space:nowrap;}
.logo .logoMain .lr{font-size:34px;letter-spacing:.03em;}
.logo .logoMain .lt{font-size:24px;letter-spacing:.02em;color:var(--c-sky);}
.logo .logoSub{font-size:12px;letter-spacing:.06em;margin-bottom:5px;}
.l-header .gnav ul{gap:26px;}

/* KV：一行見出しが枠からはみ出さない大きさに */
.kvSect .copy{font-size:clamp(34px,3.9vw,56px);}
.kvSect .badge{line-height:1.5;}
.kvSect .qual li{white-space:nowrap;}

/* 3つのご案内：見出しはどれも2行。本文の書き出し位置をそろえる */
.strengthSect .secHead .tit .mk{color:var(--c-yellow);}
.strengthSect .itemList .tit{min-height:3em;}
.strengthSect .itemList li{display:flex;flex-direction:column;}

/* メニュー：深掘りのカードが減ったぶんの余白 */
.menuDeep .body>.lead{margin-bottom:22px;}
.menuDeep .deepCols{align-items:stretch;}

/* 施術者紹介：経歴を外して短くなったぶん、写真と文章を中央でそろえる */
.profileSect .profBox{grid-template-columns:260px 1fr;align-items:center;}
.profileSect .qualList{margin-bottom:8px;}
.profileSect .qualNote{font-size:14px;color:var(--c-sub);margin-bottom:20px;}
.profileSect .msg{margin-bottom:0;}

/* フッター情報：区切りの途中で改行しない */
.l-footer .fInfo{line-height:2;}

/* 〜1365px：院名が長くなったため、ナビは早めにハンバーガーへ */
@media screen and (max-width:1365px){
  html{scroll-padding-top:var(--hh-md);}
  .l-header{height:var(--hh-md);}
  .l-header .headInner{display:flex;align-items:center;gap:0;padding:0 0 0 24px;}
  .headTabs{margin-left:auto;height:100%;}
  .headTabs .tab{flex-direction:column;justify-content:center;gap:2px;padding:0 16px;font-size:12.5px;}
  .l-header .navBtn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:72px;height:100%;background:#fff;}
  .l-header .navBtn span{display:block;width:26px;height:2.5px;border-radius:2px;background:var(--c-sky);transition:transform .3s,opacity .3s;}
  .l-header.is-navOpen .navBtn span:nth-child(1){transform:translateY(7.5px) rotate(45deg);}
  .l-header.is-navOpen .navBtn span:nth-child(2){opacity:0;}
  .l-header.is-navOpen .navBtn span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg);}
  .l-header .gnav{position:fixed;inset:var(--hh-md) 0 auto 0;background:#fff;max-height:0;overflow:hidden;transition:max-height .35s ease;box-shadow:0 8px 16px rgba(0,0,0,.06);}
  .l-header.is-navOpen .gnav{max-height:80vh;overflow-y:auto;}
  .l-header .gnav ul{display:block;max-width:var(--w-inner);margin:0 auto;padding:6px 24px 20px;}
  .l-header .gnav li{border-bottom:1px solid var(--c-sky-lt);}
  .l-header .gnav a{display:block;padding:15px 4px;font-size:16px;}
  .kvSect{padding-top:calc(var(--hh-md) + 50px);}
  .l-header .logo .logoMark{width:auto;height:52px;}
  .logo .logoMain .lr{font-size:31px;}
  .logo .logoMain .lt{font-size:22px;}
}
/* 〜1023px：上部のタブは「ご相談・お問い合わせ」だけ残す */
@media screen and (max-width:1023px){
  .headTabs li:not(:first-child){display:none;}
}
@media screen and (max-width:1080px){
  .profileSect .profBox{grid-template-columns:220px 1fr;}
}
@media screen and (max-width:768px){
  .l-header .logo .logoMark{width:auto;height:40px;}
  .l-header .logo .logoSub{font-size:9.5px;letter-spacing:.02em;}
  .logo .logoMain .lr{font-size:21px;}
  .logo .logoMain .lt{font-size:14.5px;}
  .kvSect .copy{font-size:clamp(28px,8.4vw,38px);}
  .kvSect .badge{font-size:13.5px;}
  .strengthSect .secHead .tit{font-size:21px;line-height:1.6;}
  .strengthSect .secHead .tit .mk{display:block;font-size:30px;}
  .strengthSect .itemList .tit{min-height:0;}
  .menuSect .secHead .lead .ib{display:inline;}
  .profileSect .profBox{grid-template-columns:1fr;justify-items:center;text-align:left;}
  .profileSect .photo{width:min(240px,70%);}
  .profileSect .photo img{aspect-ratio:3/4;}
  .profileSect .detail{width:100%;}
  .l-footer .fInfo{text-align:left;}
  .l-footer .fInfo .ib{display:inline;}
}

/* v4-2：実測で見つかったはみ出し・段差・泣き別れの修正 */
.ib{max-width:100%;}
.aboutSect .aboutBox{grid-template-columns:380px minmax(0,1fr);}
.aboutSect .aboutBox .tit{word-break:normal;}
.aboutSect .targetBox ul{grid-template-columns:repeat(3,minmax(0,1fr));}
.aboutSect .targetBox li,.cmpTable th,.cmpTable td,.priceTable th,.dbox .dbTit,.dbox .check li,.dbox .mini li,.faqList .q{text-wrap:balance;}
/* 3つのご案内：アイコン行・見出し・本文を、カード間で同じ高さの段にそろえる */
.strengthSect .itemList{grid-auto-rows:auto;}
@supports (grid-template-rows:subgrid){
  .strengthSect .itemList li{display:grid;grid-row:span 3;grid-template-rows:subgrid;row-gap:0;}
  .strengthSect .itemList .tit{min-height:0;}
}
@media screen and (max-width:1080px){
  .aboutSect .aboutBox{grid-template-columns:minmax(0,1fr);}
  .aboutSect .targetBox ul{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media screen and (max-width:768px){
  .aboutSect .targetBox ul{grid-template-columns:minmax(0,1fr);}
}

/* 文字サイズ「大・特大」のとき：カードの見出しはもともと大きいので拡大を止め、1行に収めて段差を防ぐ（本文は拡大される） */
.ynv-fs-on .navSect .itemList .tit{font-size:clamp(19px,1.9vw,24px) !important;}
.ynv-fs-on .strengthSect .itemList .tit{font-size:22px !important;}
.ynv-fs-on .flowSect .stepList .tit{font-size:18px !important;}
@media screen and (max-width:768px){
  .ynv-fs-on .navSect .itemList .tit{font-size:22px !important;}
  .ynv-fs-on .strengthSect .itemList .tit{font-size:19px !important;}
  .ynv-fs-on .flowSect .stepList .tit{font-size:17px !important;}
}

/* v4-3：比較表・ロゴ下の補足・名前欄・ボタンの改行 */
.cmpTable{table-layout:fixed;}
.cmpTable th,.cmpTable td{word-break:normal;overflow-wrap:anywhere;}
.btn,.priceSect .cautionBox .cTit,.profileSect .nameBlock .role{text-wrap:balance;}
.profileSect .nameBlock .role{word-break:normal;}
@media screen and (min-width:769px){
  .menuDeep .deepCols{grid-template-rows:auto 1fr;}
  .menuDeep .deepCols .dbox{display:grid;grid-row:span 2;grid-template-rows:subgrid;row-gap:0;}
}
@media screen and (max-width:768px){
  .aboutSect .aboutBox .tit .sm{display:block;margin:4px 0 0;}
}
@media screen and (max-width:420px){
  .l-header .logo .logoSub .subArea{display:none;}
}

/* v4-5：料金の目安は2行目に。フッターのナビはスマホで2列にそろえる */
.priceTable td .yen{display:block;}
@media screen and (max-width:768px){
  .l-footer .fNav{display:grid;grid-template-columns:repeat(2,max-content);column-gap:36px;justify-content:center;}
  .l-footer .fNav ul{display:contents;}
}

/* v4-6：短い説明文は文節で改行し行の長さをそろえる。320px幅の拡大表示でのはみ出し対策 */
.navSect .itemList .txt,.flowSect .stepList .txt,.ctaSect .cTxt{word-break:auto-phrase;text-wrap:balance;}
@media screen and (max-width:400px){
  .l-footer .fNav{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px;}
  .btn{padding-inline:18px;gap:10px;}
}
@media screen and (max-width:400px){
  .inner{padding-inline:16px;}
  .aboutSect .aboutBox{padding-inline:16px;}
  .btn .arw{flex-shrink:0;}
}

.newsSect .newsHead{flex-wrap:wrap;}
.newsSect .newsHead .btn--sm{flex-shrink:0;white-space:nowrap;}

/* v4-7：見出し「訪問鍼灸マッサージとは？」と比較表の見出し列は、語の途中で折り返さない */
.aboutSect .aboutBox .tit{word-break:auto-phrase;}
.cmpTable tbody th{word-break:auto-phrase;}
.ynv-fs-on .aboutSect .aboutBox .tit{font-size:40px !important;}
@media screen and (max-width:768px){
  .ynv-fs-on .aboutSect .aboutBox .tit{font-size:28px !important;}
  .ynv-fs-on .cmpTable th,.ynv-fs-on .cmpTable td{font-size:15px !important;}
}
@media screen and (max-width:400px){
  .aboutSect .aboutBox .tit,.ynv-fs-on .aboutSect .aboutBox .tit{font-size:25px !important;}
}

/* ===== 経営理念（v7：ヒーローの直下） ===== */
.rinenSect{background:var(--c-yellow-lt);border-top:6px solid var(--c-yellow);padding:54px 0 50px;}
.rinen{text-align:center;}
.rinen .rinLabel{display:inline-block;padding:3px 18px;border-radius:3px;background:var(--c-teal);color:#fff;font-size:14px;font-weight:700;letter-spacing:.2em;margin-bottom:18px;}
.rinen .rinMain{font-family:'M PLUS Rounded 1c','Noto Sans JP',sans-serif;font-weight:800;font-size:clamp(28px,3.2vw,40px);line-height:1.5;letter-spacing:.04em;color:var(--c-sky);margin:0 0 10px;}
.rinen .rinSub{font-family:'M PLUS Rounded 1c','Noto Sans JP',sans-serif;font-weight:800;font-size:clamp(19px,2vw,24px);line-height:1.6;color:var(--c-red-dk);margin:0 0 22px;}
.rinen .rinCols{display:flex;flex-direction:column;align-items:center;gap:4px;}
.rinen .rinTxt{font-size:17px;line-height:2;color:var(--c-text);}
.rinen .rinName{margin-top:20px;font-size:16px;font-weight:700;color:var(--c-green-dk);letter-spacing:.08em;}
@media (max-width:767px){
  .rinenSect{padding:38px 0 34px;border-top-width:5px;}
  .rinen .rinLabel{font-size:13px;margin-bottom:16px;}
  .rinen .rinMain{font-size:clamp(24px,6.8vw,30px);}
  .rinen .rinSub{font-size:18px;margin-bottom:16px;}
  .rinen .rinCols{gap:6px;}
  .rinen .rinTxt{font-size:16px;line-height:1.9;}
  .rinen .rinName{margin-top:16px;font-size:15px;}
}
.ynv-fs-on .rinen .rinMain,.ynv-fs-on .rinen .rinSub{font-size:inherit;}
.rinenSect + .aboutSect{margin-top:0;padding-top:48px;}
@media (max-width:767px){
  .rinenSect + .aboutSect{margin-top:0;padding-top:30px;}
  .rinen .rinTxt .ib:first-child{display:block;}
}

/* ==========================================================================
   v10（2026-10-12 公開用）：電話の案内、フォームの結果表示、施術者紹介（写真なし）、スマホ固定バー
   ========================================================================== */
.profileSect .profBox{display:block;max-width:760px;margin-left:auto;margin-right:auto;}

.inquirySect .telBox{max-width:820px;margin:0 auto 28px;padding:28px 24px 24px;background:#fff;border-radius:var(--radius);text-align:center;}
.telBox .telLead{font-size:16px;font-weight:700;}
.telBox .telNum{display:inline-flex;align-items:center;justify-content:center;gap:12px;margin-top:10px;font-family:var(--ff-head);font-size:38px;font-weight:800;letter-spacing:.06em;line-height:1.3;color:var(--c-sky);}
.telBox .telNum svg{width:30px;height:30px;flex-shrink:0;}
.telBox .telTime{margin-top:8px;font-size:14.5px;color:var(--c-sub);}

.hpRow{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;}
.formStatus{display:none;margin-top:20px;padding:14px 16px;border-radius:var(--radius);font-size:15.5px;line-height:1.8;text-align:left;outline:none;}
.formStatus.is-ok,.formStatus.is-err,.formStatus.is-wait{display:block;}
.formStatus.is-ok{background:#EEF3FB;border:2px solid var(--c-sky);color:var(--c-text);}
.formStatus.is-err{background:#FDECEA;border:2px solid #B3261E;color:#7A1812;}
.formStatus.is-wait{background:var(--c-gray);border:2px solid var(--c-line);color:var(--c-text);}
.formBox [aria-invalid="true"]{border-color:#B3261E;}
.formSubmit .btn:disabled{opacity:.6;cursor:wait;}

.l-footer .fInfo a{color:inherit;text-decoration:underline;white-space:nowrap;}

@media screen and (max-width:768px){
  .inquirySect .telBox{padding:22px 16px 20px;margin-bottom:20px;}
  .telBox .telNum{font-size:29px;gap:8px;}
  .telBox .telNum svg{width:24px;height:24px;}
  .spCta{display:flex;gap:8px;}
  .spCta a{flex:1 1 auto;white-space:nowrap;padding:13px 10px;}
  .spCta a.spTel{flex:0 0 auto;padding-left:16px;padding-right:16px;background:var(--c-sky);}
}
