/* ============ 名古屋デンタルガイド トップページ（2026リデザイン） ============ */
:root{
  /* 落ち着いた深みのあるティール（旧:明るすぎる#4FB0C6） */
  --teal:#2c8392; --teal-d:#1d6573; --teal-dd:#134b56; --teal-l:#7fc0cb;
  /* ごく控えめな真鍮(ブラス)の差し色 */
  --gold:#bf9a5b; --gold-d:#9c7c41;
  --ink:#15323a; --ink-2:#42606b; --mut:#6a858e;
  /* 純白ではなく温かみのあるアイボリー地 */
  --paper:#fcfbf8; --soft:#f1f5f4; --mist:#e6f1f2; --line:rgba(20,49,58,.10);
  --dark:#0b2930; --dark-2:#0e333b;
  --r:18px; --r-l:26px; --shadow:0 18px 50px -22px rgba(15,40,48,.34);
  --shadow-s:0 8px 24px -14px rgba(15,40,48,.28);
  --ease:cubic-bezier(.22,.61,.36,1); --ease2:cubic-bezier(.16,1,.3,1);
  --fsans:"Zen Kaku Gothic New","Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Segoe UI",sans-serif;
  --fserif:"Zen Old Mincho","Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  --flatin:"Fraunces",Georgia,"Times New Roman",serif;
  --maxw:1200px;
}
.dm-top *{box-sizing:border-box;margin:0;padding:0}
/* オープニング・イントロ（最先端ver）：脈動ロゴ→タイプオン→アイリス開閉でヒーロー */
.dm-intro{position:fixed;inset:0;z-index:9999;background:radial-gradient(ellipse at 50% 50%,#0e333b 0%,#06181d 70%,#03101a 100%);display:grid;place-items:center;overflow:hidden}
.dm-intro.done{display:none}
.dm-intro .ii-grid{position:absolute;inset:-2px;z-index:0;opacity:.18;background:
  linear-gradient(rgba(127,192,203,.18) 1px,transparent 1px) 0 0/52px 52px,
  linear-gradient(90deg,rgba(127,192,203,.18) 1px,transparent 1px) 0 0/52px 52px;
  mask-image:radial-gradient(ellipse at 50% 50%,#000 0%,#000 35%,transparent 75%)}
.dm-intro .ii{display:flex;flex-direction:column;align-items:center;gap:22px;position:relative;z-index:3;text-align:center;padding:0 24px}
.dm-intro .ii-logo-wrap{position:relative;display:grid;place-items:center;width:min(82vw,520px);height:auto;opacity:0}
.dm-intro .ii-mark{width:100%;height:auto;max-width:520px;border-radius:0;background:none;display:block;object-fit:contain;filter:brightness(0) invert(1) drop-shadow(0 0 14px rgba(127,192,203,.6))}
.dm-intro .ii-name{display:none}
.dm-intro .ii-ring{display:none}
.dm-intro .ii-ring.r2{display:none}
.dm-intro .ii-name{font-weight:700;letter-spacing:.18em;color:#eafaff;font-size:1.05rem;opacity:0;text-shadow:0 0 12px rgba(127,192,203,.5)}
.dm-intro .ii-copy{font-family:var(--fserif);color:#cfeaf0;font-size:clamp(1.05rem,2vw,1.45rem);letter-spacing:.06em;opacity:0;text-shadow:0 0 10px rgba(44,131,146,.4)}
.dm-intro .ii-line{height:1px;width:0;background:linear-gradient(90deg,transparent,rgba(127,192,203,.9),transparent);border-radius:2px}
.dm-intro .ii-iris{display:none}
.dm-intro .ii-scan{position:absolute;left:0;right:0;top:50%;height:2px;z-index:4;
  background:linear-gradient(90deg,transparent,#eafaff 45%,#ffffff 50%,#eafaff 55%,transparent);
  box-shadow:0 0 16px 2px rgba(127,192,203,.95),0 0 40px 8px rgba(44,131,146,.8);
  opacity:0;transform:translateY(-50%) scaleX(0);transform-origin:center;will-change:transform,opacity}
.dm-intro .ii-flash{position:absolute;left:0;right:0;top:50%;height:2px;background:#fff;z-index:7;opacity:0;pointer-events:none;transform:translateY(-50%) scaleY(0);transform-origin:center;
  box-shadow:0 0 22px 4px rgba(255,255,255,.9),0 0 60px 14px rgba(127,192,203,.7)}
.dm-intro .ii-panels{position:absolute;inset:0;z-index:6;display:flex;pointer-events:none}
.dm-intro .ii-panels i{flex:1;height:100%;background:transparent}
.dm-intro .ii-spk{position:absolute;inset:0;z-index:1;pointer-events:none}
.dm-top{font-family:var(--fsans);color:var(--ink);background:var(--paper);line-height:1.8;-webkit-font-smoothing:antialiased;overflow-x:clip}
.dm-top img{max-width:100%;display:block}
.dm-top a{color:inherit;text-decoration:none}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,5vw,48px)}
.eyebrow{font-family:var(--flatin);font-size:.95rem;letter-spacing:.13em;color:var(--gold-d);font-weight:600;text-transform:uppercase;font-style:italic}
/* 暗い背景のセクションでは自動でティールの明色に統一（場当たりのインライン指定を廃止） */
.band .eyebrow,.band-stance .eyebrow,.treat-head .eyebrow{color:var(--teal-l)}

/* 進捗バー */
.dm-progress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--teal-l),var(--teal));z-index:120;transition:width .1s linear}
/* カスタムカーソル（デスクトップのみJSで有効化） */
.dm-cursor{position:fixed;top:0;left:0;width:9px;height:9px;border-radius:50%;background:var(--teal);pointer-events:none;z-index:200;transform:translate(-50%,-50%);mix-blend-mode:multiply;transition:width .25s,height .25s,opacity .25s;opacity:0}
.dm-cursor.ring{width:9px;height:9px;background:rgba(44,131,146,.18);border:1.5px solid var(--teal)}
.cursor-on .dm-cursor{opacity:1}
/* ヒーロー画像は固定して背景に残し、その上を「ステージ」がスクロールで覆っていく */
.dm-stage{position:relative;z-index:3;background:var(--paper)}

/* ヘッダー */
.dm-header{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;
  padding:14px clamp(20px,5vw,48px);transition:background .4s,backdrop-filter .4s,box-shadow .4s,padding .4s}
.dm-header.solid{background:rgba(255,255,255,.78);backdrop-filter:saturate(1.4) blur(14px);box-shadow:0 1px 0 var(--line);padding-top:10px;padding-bottom:10px}
.dm-logo{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.02em;color:#fff;transition:color .4s}
.dm-header.solid .dm-logo{color:var(--ink)}
.dm-logo .mark{height:38px;width:auto;display:block;flex:0 0 auto;object-fit:contain;filter:drop-shadow(0 1px 2px rgba(0,0,0,.15));transition:filter .4s}
.dm-header .dm-logo{font-size:0}
.dm-header:not(.solid) .dm-logo .mark{filter:brightness(0) invert(1) drop-shadow(0 1px 3px rgba(0,0,0,.5))}
.dm-foot .dm-logo .mark{height:32px;filter:brightness(0) invert(1) drop-shadow(0 1px 2px rgba(0,0,0,.3))}
.dm-nav{display:flex;gap:26px;font-size:.86rem;color:rgba(255,255,255,.92);transition:color .4s}
.dm-header.solid .dm-nav{color:var(--ink-2)}
.dm-nav a{position:relative;padding:4px 0}
.dm-nav a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:1.5px;background:var(--teal);transition:width .3s var(--ease)}
.dm-nav a:hover::after{width:100%}
@media(max-width:820px){.dm-nav{display:none}}

/* ============ ヒーロー ============ */
.hero{position:relative;z-index:2;min-height:100svh;display:flex;align-items:center;overflow:hidden;background:transparent}
.hero-media{position:fixed;inset:0;z-index:1}
.hero-media .ph{position:absolute;inset:0;background:
   radial-gradient(120% 90% at 70% 20%,#1b5566 0%,#0e2c34 60%);}
.hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-media .hero-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;pointer-events:none}
.hero-media .hero-seq-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;pointer-events:none;display:none}
@media(max-width:860px){
  .hero-media{inset:auto!important;top:0!important;left:0!important;right:0!important;bottom:auto!important;width:100vw!important;height:100lvh!important}
  .hero-media .hero-vid{display:none}
  .hero-media .hero-seq-img{display:block;object-position:center center}
}
.hero-media .grad{position:absolute;inset:0;background:
   linear-gradient(105deg,rgba(12,40,48,.92) 0%,rgba(14,44,52,.62) 42%,rgba(44,131,146,.30) 100%);}
.hero-media .grain{position:absolute;inset:0;opacity:.06;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.hero-spot{position:absolute;width:60vw;height:60vw;border-radius:50%;left:var(--mx,60%);top:var(--my,30%);transform:translate(-50%,-50%);
   background:radial-gradient(circle,rgba(127,192,203,.22),transparent 60%);pointer-events:none;transition:left .6s var(--ease2),top .6s var(--ease2);z-index:1}
@keyframes kenburns{from{transform:scale(1.06) translate(0,0)}to{transform:scale(1.18) translate(-1.5%,-1.5%)}}
/* ヒーロー：チェアーのオーラ＋上昇するキラキラ（JSで生成・スクロールで強まる） */
.hero-aura{position:absolute;left:50%;top:48%;width:62vmin;height:62vmin;transform:translate(-50%,-50%);z-index:2;pointer-events:none;
  background:radial-gradient(circle,rgba(127,192,203,.5),rgba(44,131,146,.14) 40%,transparent 68%);
  filter:blur(14px);mix-blend-mode:screen;opacity:.5;animation:heroAura 5.5s ease-in-out infinite}
@keyframes heroAura{0%,100%{transform:translate(-50%,-50%) scale(.9)}50%{transform:translate(-50%,-50%) scale(1.1)}}
.hero-sparks{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;mix-blend-mode:screen;opacity:.7}
.hero-sparks i{position:absolute;bottom:-12px;border-radius:50%;background:rgba(206,242,247,.95);
  box-shadow:0 0 8px 2px rgba(127,192,203,.85);opacity:0;will-change:transform,opacity}
@media(prefers-reduced-motion:reduce){.hero-aura,.hero-sparks{display:none}}
@media(max-width:860px){.hero{min-height:120svh!important;height:auto!important;align-items:flex-start!important;padding-top:8svh!important}.hero h1{margin-top:6svh!important}}
.hero-inner{position:relative;z-index:3;color:#fff;max-width:920px}
.hero-badge{display:inline-flex;align-items:center;gap:8px;font-size:.8rem;color:#eaffff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);
   padding:7px 15px;border-radius:999px;backdrop-filter:blur(6px);margin-bottom:26px}
.hero-badge .dot{width:7px;height:7px;border-radius:50%;background:var(--teal-l);box-shadow:0 0 0 4px rgba(127,192,203,.25)}
.hero-tag{display:flex;align-items:center;gap:11px;color:rgba(255,255,255,.86);font-size:clamp(.95rem,1.45vw,1.12rem);font-weight:500;letter-spacing:.05em;margin-bottom:16px;
  opacity:0;transform:translateY(12px);transition:opacity .85s .3s var(--ease),transform .85s .3s var(--ease)}
.hero-tag::before{display:none}
.hero.in .hero-tag{opacity:1;transform:none}
.hero h1{font-size:clamp(2.1rem,5.4vw,3.95rem);line-height:1.22;font-weight:700;letter-spacing:.01em;margin-bottom:22px}
.hero h1 .word{display:inline-block;overflow:hidden;vertical-align:top}
.hero h1 .word>span{display:inline-block;transform:translateY(110%);transition:transform .9s var(--ease2)}
.hero.in h1 .word>span{transform:translateY(0)}
.hero h1 .accent{color:var(--teal-l)}
.hero p.lead{font-size:clamp(1rem,1.7vw,1.22rem);color:rgba(255,255,255,.9);max-width:640px;line-height:1.95;
   opacity:0;transform:translateY(18px);transition:opacity .9s .5s var(--ease),transform .9s .5s var(--ease)}
.hero.in p.lead{opacity:1;transform:none}
.hero p.lead b{color:var(--teal-l);font-weight:700}

/* Our stance セクションの前後：スクロール連動で全面白フラッシュ */
.stance-flash{position:fixed;inset:0;z-index:80;pointer-events:none;will-change:background;background:transparent}

/* Our stance：スクロール連動アニメ用に transition を切る */
.band-stance .stance-grid > .reveal{transition:none!important;will-change:transform,opacity}
.band-stance .quote-l,.band-stance .quote-r{display:inline-block;will-change:transform,opacity;transition:none;text-wrap:balance;word-break:keep-all;overflow-wrap:break-word}

/* 「Our stance」バンド：3Dの歯を背景に、テキストを上に重ねる */
.stance-grid{display:block;position:relative}
.stance-grid > .reveal{position:relative;z-index:2;max-width:none}
.tooth3d{position:relative;inset:auto;z-index:1;width:100%;height:360px;max-width:420px;margin:20px auto 8px;pointer-events:none}
.tooth3d canvas{position:relative;z-index:1;display:block;width:100%!important;height:100%!important}
.tooth3d::before{content:"";position:absolute;inset:-8%;z-index:0;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle at 50% 46%,rgba(159,217,228,.55),rgba(44,131,146,.22) 40%,transparent 68%);
  filter:blur(22px);animation:auraPulse 4.5s ease-in-out infinite}
.tooth3d::after{content:"";position:absolute;inset:18%;z-index:0;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(127,192,203,.35),transparent 70%);filter:blur(8px);
  animation:auraPulse 4.5s ease-in-out infinite reverse}
@keyframes auraPulse{0%,100%{transform:scale(.95);opacity:.75}50%{transform:scale(1.07);opacity:1}}
@media(max-width:820px){.stance-grid{grid-template-columns:1fr}.tooth3d{max-width:280px;margin:6px auto 0}}
@media(max-width:860px){
  .tooth3d{position:relative!important;inset:auto!important;width:100%!important;height:150px!important;max-width:240px!important;margin:10px auto 0!important}
  .band-stance .stance-grid{padding-bottom:0}
  .band-stance .stance-grid{padding-top:clamp(28px,6vw,52px)!important;padding-bottom:clamp(28px,6vw,52px)!important}
}
@media(prefers-reduced-motion:reduce){.tooth3d::before,.tooth3d::after{animation:none}}
.hero .hero-cta{margin-top:30px;display:flex;gap:14px;flex-wrap:wrap;opacity:0;transition:opacity .9s .7s}
.hero.in .hero-cta{opacity:1}
.hero-note{position:absolute;bottom:26px;left:0;right:0;z-index:3;text-align:center;color:rgba(255,255,255,.85);font-size:.82rem}
.scrollcue{display:none}
.scrollcue::after{content:"";position:absolute;left:50%;top:8px;width:4px;height:7px;border-radius:2px;background:#fff;transform:translateX(-50%);animation:cue 1.8s var(--ease) infinite}
@keyframes cue{0%{opacity:0;transform:translate(-50%,0)}40%{opacity:1}100%{opacity:0;transform:translate(-50%,12px)}}

/* ボタン */
.btn{display:inline-flex;align-items:center;gap:9px;font-size:.92rem;font-weight:600;padding:13px 24px;border-radius:999px;
   transition:transform .35s var(--ease2),box-shadow .35s,background .3s,color .3s;will-change:transform}
.btn-primary{background:var(--teal);color:#fff;box-shadow:0 12px 30px -10px rgba(44,131,146,.7)}
.btn-primary:hover{box-shadow:0 18px 40px -10px rgba(44,131,146,.85)}
.btn-ghost{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.35)}
.btn-ghost:hover{background:rgba(255,255,255,.18)}
.btn-line{color:var(--teal-d);border:1px solid var(--line);background:#fff}
.btn-line:hover{border-color:var(--teal);color:var(--teal-dd)}

/* セクション共通 */
.sec{padding-top:clamp(64px,9vw,120px);padding-bottom:clamp(64px,9vw,120px);position:relative}
.sec-head{max-width:700px;margin-bottom:clamp(40px,5vw,56px)}
.sec-head h2{font-size:clamp(1.75rem,3.6vw,2.6rem);font-weight:700;line-height:1.35;letter-spacing:.01em;margin:.5rem 0 .7rem;word-break:keep-all;overflow-wrap:break-word}
.sec-head p{color:var(--ink-2);font-size:1.08rem;line-height:1.9;word-break:keep-all;overflow-wrap:break-word}
.reveal{opacity:0;transform:translateY(34px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal[data-d="1"]{transition-delay:.08s}.reveal[data-d="2"]{transition-delay:.16s}.reveal[data-d="3"]{transition-delay:.24s}
.reveal[data-d="4"]{transition-delay:.32s}.reveal[data-d="5"]{transition-delay:.40s}

/* 監修者 信頼バー */
.trust{background:var(--soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.trust .row{display:flex;align-items:center;gap:26px;flex-wrap:wrap;padding-top:30px;padding-bottom:30px}
.trust .ava{width:64px;height:64px;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center;font-weight:700;font-size:20px;flex:0 0 auto;box-shadow:var(--shadow-s)}
.trust .who b{font-size:1.1rem}.trust .who span{color:var(--ink-2);font-size:.95rem}
.trust .creds{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.trust .creds i{font-style:normal;font-size:.8rem;color:var(--teal-dd);background:#fff;border:1px solid var(--line);padding:5px 12px;border-radius:999px}
.trust .sub{margin-left:auto;max-width:300px;color:var(--ink-2);font-size:.9rem;line-height:1.8}
@media(max-width:760px){.trust .sub{margin-left:0}}

/* Bento グリッド */
.bento{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
.card{position:relative;border-radius:var(--r-l);overflow:hidden;background:#fff;border:1px solid var(--line);
   min-height:200px;display:flex;transition:transform .5s var(--ease2),box-shadow .5s;transform-style:preserve-3d;will-change:transform}
.card:hover{box-shadow:var(--shadow)}
.card .glow{position:absolute;inset:0;opacity:0;transition:opacity .4s;background:radial-gradient(circle at var(--gx,50%) var(--gy,50%),rgba(255,255,255,.5),transparent 45%);pointer-events:none;z-index:3}
.card:hover .glow{opacity:1}
.card .inner{position:relative;z-index:2;padding:24px;display:flex;flex-direction:column;justify-content:flex-end;width:100%;transform:translateZ(26px)}
.card .kicker{font-size:.72rem;letter-spacing:.14em;color:var(--teal-d);font-weight:600;margin-bottom:auto;text-transform:uppercase}
.card h3{font-size:1.18rem;font-weight:700;letter-spacing:.01em}
.card .arr{margin-top:10px;color:var(--teal-d);font-size:.82rem;display:inline-flex;align-items:center;gap:6px;transition:gap .3s}
.card:hover .arr{gap:11px}
/* テキストカード（写真なし）：ティール＋タイポ */
.card.text{background:linear-gradient(160deg,#fff 0%,var(--mist) 100%)}
.card.text .num{position:absolute;right:18px;top:14px;font-family:var(--flatin);font-size:3.4rem;color:rgba(44,131,146,.16);line-height:1;font-weight:700;z-index:1}
.card.text:hover{background:linear-gradient(160deg,var(--mist) 0%,#dff0f4 100%)}
/* 写真カード */
.card.photo{color:#fff;background:var(--dark)}
.card.photo .ph,.card.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;transition:transform 1.1s var(--ease2)}
.card.photo .ph{background:linear-gradient(150deg,#1d5566,#0e2c34)}
.card.photo::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(12,40,48,.15) 0%,rgba(12,40,48,.85) 100%)}
.card.photo:hover img,.card.photo:hover .ph{transform:scale(1.07)}
.card.photo .kicker{color:var(--teal-l)}
.card.photo .arr{color:#fff}
.card .phlabel{position:absolute;z-index:1;inset:0;display:grid;place-items:center;color:rgba(255,255,255,.55);font-size:.7rem;letter-spacing:.1em}
/* スパン */
.c-12{grid-column:span 12}.c-8{grid-column:span 8}.c-7{grid-column:span 7}.c-6{grid-column:span 6}
.c-5{grid-column:span 5}.c-4{grid-column:span 4}.c-3{grid-column:span 3}
.tall{min-height:330px}.mid{min-height:260px}
@media(max-width:900px){.bento{grid-template-columns:repeat(6,1fr)}.c-8,.c-7,.c-6,.c-5{grid-column:span 6}.c-4,.c-3{grid-column:span 3}}
@media(max-width:560px){.bento{grid-template-columns:repeat(2,1fr);gap:12px}.c-12,.c-8,.c-7,.c-6,.c-5,.c-4,.c-3{grid-column:span 2}.card{min-height:160px}.tall,.mid{min-height:180px}}

/* 症状：左固定見出し＋右縦リスト（右だけスクロール） */
.symptom-split{background:#ffffff;position:relative;overflow:clip}
/* 控えめな背景写真：セクション全面に固定（sticky）で敷く（グレースケール＋低不透明度） */
.symp-bg-wrap{position:absolute;inset:0;overflow:clip;z-index:0;pointer-events:none}
.symp-bg{display:block;position:sticky;top:3vh;width:min(62vw,800px);height:min(95vh,980px);max-width:none;
  margin-left:clamp(-150px,-8vw,-80px);
  object-fit:cover;object-position:55% 24%;
  filter:grayscale(1) contrast(1.04) brightness(1.03);opacity:.55;user-select:none}
.symp-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(260px,1fr) 1.9fr;gap:clamp(28px,5vw,72px);align-items:start}
.symp-aside{position:sticky;top:76px;padding-top:clamp(220px,40vh,460px)}
.symp-aside h2{font-size:clamp(1.8rem,3.2vw,2.7rem);font-weight:700;line-height:1.32;letter-spacing:.01em;margin:.5rem 0 .9rem;text-wrap:balance;word-break:keep-all}
.symp-aside p{color:var(--mut);line-height:1.9;margin-bottom:1.5rem}
.symp-list{display:flex;flex-direction:column;gap:14px}
.symp-item{display:flex;align-items:center;gap:clamp(14px,2vw,26px);padding:clamp(20px,2.4vw,30px) clamp(20px,2.5vw,34px);
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-s);
  transition:transform .4s var(--ease2),box-shadow .4s,border-color .3s}
.symp-item:hover{transform:translateY(-3px);border-color:var(--teal);box-shadow:0 22px 50px -26px rgba(15,40,48,.5)}
.symp-no{font-family:var(--flatin);font-size:clamp(1.8rem,2.6vw,2.4rem);color:rgba(44,131,146,.26);line-height:1;flex:0 0 auto;width:clamp(42px,4vw,60px);transition:color .9s var(--ease)}
.symp-item.in .symp-no{color:rgba(44,131,146,.5)}
.symp-list .symp-item:nth-child(1) .symp-no{transition-delay:0.00s}
.symp-list .symp-item:nth-child(2) .symp-no{transition-delay:0.06s}
.symp-list .symp-item:nth-child(3) .symp-no{transition-delay:0.12s}
.symp-list .symp-item:nth-child(4) .symp-no{transition-delay:0.18s}
.symp-list .symp-item:nth-child(5) .symp-no{transition-delay:0.24s}
.symp-list .symp-item:nth-child(6) .symp-no{transition-delay:0.30s}
.symp-list .symp-item:nth-child(7) .symp-no{transition-delay:0.36s}
.symp-list .symp-item:nth-child(8) .symp-no{transition-delay:0.42s}
.symp-body{flex:1 1 auto;min-width:0}
.symp-body .kicker{font-family:var(--flatin);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-d)}
.symp-body h3{font-size:clamp(1.1rem,1.7vw,1.32rem);font-weight:700;color:var(--ink);margin:.12rem 0 .3rem}
.symp-body p{color:var(--mut);font-size:.92rem;line-height:1.85;letter-spacing:.01em;margin:0}
.symp-arr{flex:0 0 auto;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;
  color:var(--teal-d);font-size:1.05rem;transition:transform .3s var(--ease2),background .3s,color .3s,border-color .3s}
.symp-item:hover .symp-arr{background:var(--teal);color:#fff;border-color:var(--teal);transform:translateX(3px)}
@media(max-width:860px){.symptom-split{padding-top:0!important}.symp-grid{grid-template-columns:1fr;gap:24px}.symp-aside{position:static;padding-top:22vh}
  .symp-bg{display:none!important}
  .symptom-split{position:relative;overflow:visible}
  .symp-bg-wrap{position:sticky!important;top:0!important;left:0!important;right:0!important;width:100%!important;height:100svh!important;margin:0!important;
    background:url("/wp-content/themes/dental-media/photos/cheek-pain.webp?v=2") center 30% / cover no-repeat!important;
    filter:grayscale(1) contrast(1.04) brightness(1.03)!important;opacity:.4!important;z-index:0!important;overflow:hidden!important}
  .symp-grid{position:relative;z-index:1;margin-top:-100svh!important}}

/* 新着記事：3列の記事カード（カテゴリ・日付・タイトル・抜粋・矢印） */
.news-grid .wp-block-query>.wp-block-post-template{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2vw,28px);padding:0;margin:0;list-style:none}
.news-grid .wp-block-query>.wp-block-post-template>li{list-style:none;margin:0;padding:0}
/* 新着記事：洗練された「紙のノート」カード */
.news-card{background:linear-gradient(180deg,#fdfcf9 0%,#f8f6f0 100%);
  border:1px solid #ece7dd;border-radius:12px;
  padding:clamp(24px,2.1vw,32px) clamp(22px,2vw,30px) clamp(20px,1.8vw,26px) clamp(30px,2.6vw,40px);
  transition:transform .4s var(--ease2),box-shadow .4s,border-color .3s;
  display:flex;flex-direction:column;gap:.6rem;height:100%;position:relative;overflow:hidden;
  box-shadow:0 1px 1px rgba(60,50,35,.04),0 14px 34px -24px rgba(40,32,20,.35)}
/* ノートの余白線（左の縦罫） */
.news-card::before{content:"";position:absolute;left:clamp(18px,1.7vw,26px);top:0;bottom:0;width:1px;
  background:linear-gradient(180deg,transparent,rgba(196,120,110,.32) 12%,rgba(196,120,110,.32) 88%,transparent);opacity:.7}
/* 綴じ穴のような上部アクセント（極小・上品） */
.news-card::after{content:"";position:absolute;left:clamp(30px,2.6vw,40px);right:clamp(22px,2vw,30px);top:0;height:2px;
  background:linear-gradient(90deg,var(--teal),transparent);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease2)}
.news-card:hover{transform:translateY(-5px);border-color:#e0d8ca;
  box-shadow:0 2px 3px rgba(60,50,35,.05),0 30px 56px -28px rgba(40,32,20,.42)}
.news-card:hover::after{transform:scaleX(1)}
.news-meta{display:flex!important;align-items:center;gap:.7rem;font-size:.76rem;color:var(--mut);margin:0}
.news-axis a,.news-axis{font-family:var(--flatin);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-d);font-style:italic;text-decoration:none}
.news-date{font-family:var(--flatin);color:#a99f8c;letter-spacing:.08em}
.news-title{margin:.15rem 0 .5rem!important;font-family:var(--fserif,Georgia,serif);font-size:clamp(1.08rem,1.45vw,1.26rem)!important;font-weight:700!important;line-height:1.55!important;color:#2a2118;
  padding-bottom:.7rem;border-bottom:1px solid rgba(120,105,80,.14)}
.news-title a{color:inherit;text-decoration:none;background-image:linear-gradient(var(--teal-d),var(--teal-d));background-position:0 100%;background-repeat:no-repeat;background-size:0 1px;transition:background-size .4s var(--ease2)}
.news-card:hover .news-title a{background-size:100% 1px}
.news-excerpt{margin:0!important;font-size:.9rem;line-height:1.85;color:#5c5344;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.news-excerpt p{margin:0}
.news-more{margin:auto 0 0!important;font-size:.82rem;color:var(--teal-d);font-weight:600;display:flex;align-items:center;gap:6px;padding-top:.7rem}
.news-more span{transition:transform .3s var(--ease2)}
.news-card:hover .news-more span{transform:translateX(4px)}
@media(max-width:960px){.news-grid .wp-block-query>.wp-block-post-template{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.news-grid .wp-block-query>.wp-block-post-template{grid-template-columns:1fr}}

/* 治療：スクロール連動の横スクロール・ギャラリー（中央が拡大／見出しは上部固定） */
.treat-scroll{position:relative;height:360vh;background:#06171c;padding-top:0!important;padding-bottom:0!important;margin-top:0}
.treat-sticky{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;flex-direction:column;background:radial-gradient(120% 90% at 50% 12%,#0d2a32 0%,#06171c 62%)}
.treat-bg{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;opacity:.7;
  filter:contrast(1.05) saturate(1.1)}
.treat-bg-vid{position:absolute;inset:-6% -6% -6% -6%;width:112%;height:112%;object-fit:cover;object-position:center center;pointer-events:none;will-change:transform}
.treat-bg-3d{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.treat-bg-3d canvas{display:block;width:100%!important;height:100%!important}
/* 幻想的オーロラ（ゆっくり漂う光の帯） */
.treat-aura{position:absolute;inset:-20% -10%;z-index:0;pointer-events:none;mix-blend-mode:screen;opacity:.7;
  --px:0px;--py:0px;
  background:
    radial-gradient(40% 55% at 28% 35%,rgba(79,176,198,.34),transparent 62%),
    radial-gradient(45% 50% at 74% 60%,rgba(127,192,203,.3),transparent 64%),
    radial-gradient(38% 44% at 52% 22%,rgba(206,242,247,.22),transparent 60%);
  filter:blur(38px);animation:treatAura 18s ease-in-out infinite alternate}
@keyframes treatAura{
  0%{transform:translate3d(calc(-3% + var(--px)),calc(-2% + var(--py)),0) scale(1)}
  50%{transform:translate3d(calc(4% + var(--px)),calc(3% + var(--py)),0) scale(1.12)}
  100%{transform:translate3d(calc(-2% + var(--px)),calc(4% + var(--py)),0) scale(1.04)}}
/* 漂う光の粒子は非表示 */
.treat-dust{display:none}
.treat-dust--off{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;mix-blend-mode:screen}
.treat-dust i{position:absolute;border-radius:50%;background:rgba(206,242,247,.9);
  box-shadow:0 0 10px 2px rgba(127,192,203,.7);will-change:transform,opacity}
.treat-head,.treat-viewport{position:relative;z-index:2}
.treat-head{flex:0 0 auto;padding:clamp(74px,10vh,116px) 0 0;color:#eaffff}
.treat-head .eyebrow{color:var(--teal-l)}
.treat-head h2{font-size:clamp(1.8rem,3.4vw,2.7rem);font-weight:700;line-height:1.3;margin:.45rem 0 .5rem;color:#fff;
  text-shadow:0 0 34px rgba(127,192,203,.35)}
.treat-head p{color:rgba(234,255,255,.66)}
.treat-viewport{flex:1 1 auto;display:flex;align-items:center;overflow:hidden;width:100%;perspective:1700px;perspective-origin:50% 46%}
.treat-track{display:flex;gap:clamp(18px,2.4vw,32px);padding:0 calc(50vw - min(17vw,170px));will-change:transform;transform-style:preserve-3d}
.treat-card{position:relative;flex:0 0 auto;width:clamp(250px,30vw,348px);height:clamp(340px,52vh,452px);
  border-radius:20px;overflow:hidden;color:#fff;
  border:1px solid rgba(127,192,203,.18);
  box-shadow:0 30px 70px -34px rgba(0,0,0,.8),inset 0 0 0 1px rgba(255,255,255,.04);
  will-change:transform,opacity,filter;backface-visibility:hidden;transform-style:preserve-3d}
/* 反射床 */
.treat-card::after{content:"";position:absolute;left:6%;right:6%;bottom:-26%;height:26%;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,rgba(127,192,203,.28),transparent 70%);filter:blur(10px);transform:scaleY(-1);opacity:.5}
/* 斜め線は非表示。代わりに枠を光らせる（枠を1周する光の流れ） */
.treat-card .holo{display:none}
@property --frameAng{syntax:"<angle>";initial-value:0deg;inherits:false}
.treat-card .frame{position:absolute;inset:-1px;z-index:3;pointer-events:none;border-radius:21px;opacity:0;transition:opacity .6s;
  --frameAng:0deg;
  background:conic-gradient(from var(--frameAng),transparent 0deg,rgba(127,192,203,.1) 70deg,var(--teal-l) 110deg,rgba(206,242,247,.85) 130deg,var(--teal-l) 150deg,rgba(127,192,203,.1) 200deg,transparent 260deg,transparent 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;
  padding:1.5px}
.treat-card.is-center .frame{opacity:.85;animation:frameFlow 5.2s linear infinite}
@keyframes frameFlow{to{--frameAng:360deg}}
/* @property非対応ブラウザ向けフォールバック：静的なグロー枠 */
@supports not (background:conic-gradient(from var(--frameAng),red,blue)){
  .treat-card.is-center .frame{background:none;box-shadow:0 0 0 2px var(--teal-l),0 0 24px rgba(127,192,203,.7)}
}
.treat-card.is-center{border-color:rgba(127,192,203,.42);
  box-shadow:0 54px 104px -32px rgba(0,0,0,.82),0 0 0 1px rgba(127,192,203,.34),0 0 34px rgba(79,176,198,.28),inset 0 0 34px rgba(79,176,198,.08)}
.treat-card.is-center .holo{opacity:1;animation:holoSweep 3.4s ease-in-out infinite}
@keyframes holoSweep{0%,100%{background-position:-140% 0}50%{background-position:140% 0}}
.treat-card.text{background:linear-gradient(157deg,var(--dark-2),var(--teal-dd))}
.treat-card.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.treat-card .ov{position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,23,28,.1) 30%,rgba(6,23,28,.72) 66%,rgba(6,23,28,.96) 100%)}
/* 未来的スクロール進捗 */
.treat-prog{position:absolute;left:50%;bottom:clamp(20px,4vh,40px);transform:translateX(-50%);z-index:3;
  display:flex;align-items:center;gap:10px;pointer-events:none}
.treat-prog .bar{position:relative;width:min(38vw,340px);height:2px;border-radius:2px;background:rgba(127,192,203,.2);overflow:hidden}
.treat-prog .bar>i{position:absolute;left:0;top:0;bottom:0;width:0%;background:linear-gradient(90deg,var(--teal),#cef2f7);
  box-shadow:0 0 12px rgba(127,192,203,.8)}
.treat-prog .cnt{font-family:var(--flatin);font-size:.72rem;letter-spacing:.14em;color:rgba(206,242,247,.8);min-width:44px}
.tc-no{position:absolute;right:20px;top:12px;font-family:var(--flatin);font-size:3.8rem;color:rgba(255,255,255,.16);line-height:1}
.tc-body{position:absolute;inset:auto 0 0 0;padding:clamp(20px,2.4vw,30px);z-index:1}
.tc-body .kicker{display:none}
.tc-body h3{font-size:clamp(1.4rem,2.1vw,1.78rem);font-weight:800;margin:0 0 .45rem;line-height:1.3;color:#fff;
  text-shadow:0 2px 14px rgba(0,0,0,.75),0 0 26px rgba(6,23,28,.6);letter-spacing:.01em}
.tc-body p{font-size:.96rem;line-height:1.8;letter-spacing:.01em;color:#fff;margin:0 0 .8rem;text-shadow:0 1px 10px rgba(0,0,0,.8)}
.tc-arr{display:inline-flex;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.4);align-items:center;justify-content:center;transition:background .3s,border-color .3s,transform .3s}
.treat-card.is-center .tc-arr{background:var(--teal);border-color:var(--teal)}
@media(prefers-reduced-motion:reduce),(max-width:860px){
  .treat-scroll{height:auto}
  .treat-sticky{position:static;height:auto;display:block}
  .treat-head{padding:0 0 clamp(24px,4vw,40px)}
  .treat-viewport{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:12px}
  .treat-track{transform:none!important;padding:0 clamp(20px,5vw,48px)}
  .treat-card{opacity:1;transform:none;width:clamp(230px,76vw,300px);height:380px}
  .treat-card.is-center{transform:none}
}

/* 症状カルーセル（旧・未使用） */
.symptom{background:var(--paper)}
.caro{position:relative}
.caro-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;scrollbar-width:none;cursor:grab}
.caro-track::-webkit-scrollbar{display:none}
.caro-track.drag{cursor:grabbing}
.caro-track .card{flex:0 0 clamp(240px,30%,320px);scroll-snap-align:start;min-height:300px}
.caro-ui{display:flex;align-items:center;gap:14px;margin-top:22px}
.caro-dots{display:flex;gap:7px}
.caro-dots button{width:8px;height:8px;border-radius:50%;border:0;background:var(--line);cursor:pointer;transition:width .3s,background .3s;padding:0}
.caro-dots button.on{width:24px;background:var(--teal);border-radius:5px}
.caro-arrows{margin-left:auto;display:flex;gap:8px}
.caro-arrows button{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:#fff;cursor:pointer;color:var(--teal-d);display:grid;place-items:center;font-size:18px;transition:.3s}
.caro-arrows button:hover{border-color:var(--teal);background:var(--soft)}
/* 症状カルーセルのモーション（上品にカッコよく） */
.caro-track .card{opacity:0;transform:translateX(70px);transition:opacity .85s var(--ease2),transform .85s var(--ease2),box-shadow .5s,filter .6s,scale .55s var(--ease2)}
.caro.in .caro-track .card{opacity:1;transform:none}
.caro.in .caro-track .card:nth-child(1){transition-delay:.04s}
.caro.in .caro-track .card:nth-child(2){transition-delay:.12s}
.caro.in .caro-track .card:nth-child(3){transition-delay:.20s}
.caro.in .caro-track .card:nth-child(4){transition-delay:.28s}
.caro.in .caro-track .card:nth-child(5){transition-delay:.36s}
.caro.in .caro-track .card:nth-child(6){transition-delay:.44s}
.caro-track .card.is-active{scale:1.035;box-shadow:0 26px 60px -24px rgba(19,48,60,.5);z-index:3}
.caro-track .card:not(.is-active){filter:brightness(.985) saturate(.95);opacity:.82;scale:.965}
.caro-track .card.is-active .arr{gap:12px}
.caro-track .card.photo.is-active img,.caro-track .card.photo.is-active .ph{transform:scale(1.08)}
.caro-progress{flex:1;max-width:120px;height:3px;background:var(--line);border-radius:3px;overflow:hidden}
.caro-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--teal-l),var(--teal));border-radius:3px}
.caro-progress i.run{width:100%;transition:width 4.2s linear}
@media(prefers-reduced-motion:reduce){.caro-track .card{opacity:1!important;transform:none!important;scale:1!important;filter:none!important}.caro-progress{display:none}}

/* ダークな見せ場バンド（理念 / 専門性） */
.band{background:var(--dark);color:#fff;position:relative;overflow:hidden}
.band .wrap{position:relative;z-index:2}
.band .glowbg{position:absolute;width:50vw;height:50vw;border-radius:50%;right:-10%;top:-20%;background:radial-gradient(circle,rgba(44,131,146,.22),transparent 60%);z-index:0}
.band .quote{font-family:var(--fserif);font-size:clamp(1.6rem,4vw,2.8rem);line-height:1.5;letter-spacing:.02em;max-width:50vw}
.m-br{display:none}
@media(max-width:860px){.m-br{display:inline}.band .quote{font-size:clamp(1.2rem,5.2vw,1.7rem)!important;max-width:92vw!important;line-height:1.65!important;letter-spacing:0!important}
  .band .by{font-size:.74rem!important;margin-top:14px!important;color:rgba(255,255,255,.6)!important}
}
.band .quote .em{color:var(--teal-l)}
.band .by{margin-top:22px;color:rgba(255,255,255,.7);font-size:.92rem}
.band-split{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center}
.band-split .pho{border-radius:var(--r-l);overflow:hidden;position:relative;background:transparent}
.band-split .pho img{display:block;width:100%;height:auto}
@media(max-width:820px){.band-split{grid-template-columns:1fr}}

/* 費用カード */
/* 費用セクション：画像＋リンクの2カラム */
.cost-split{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(28px,4vw,64px);align-items:center}
.cost-visual{position:relative;border-radius:var(--r-l);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:4/3.4;background:var(--dark)}
.cost-visual img{width:100%;height:100%;object-fit:cover;display:block}
.cost-visual-cap{position:absolute;left:0;right:0;bottom:0;padding:clamp(20px,2.4vw,32px);
  background:linear-gradient(180deg,transparent,rgba(6,23,28,.82));color:#fff}
.cost-visual-cap span{font-family:var(--fserif);font-size:clamp(1.15rem,1.7vw,1.5rem);line-height:1.5;font-weight:700;text-shadow:0 2px 14px rgba(0,0,0,.6)}
.cost-right .sec-head{margin-bottom:26px}
.cost-grid{display:flex;flex-direction:column;gap:14px}
@media(max-width:860px){.cost-split{grid-template-columns:1fr;gap:26px}.cost-visual{aspect-ratio:16/10}}
.cost-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px 24px;transition:.4s var(--ease2);display:flex;align-items:center;justify-content:space-between;box-shadow:0 1px 1px rgba(15,40,48,.03)}
.cost-card:hover{border-color:var(--teal);transform:translateY(-3px);box-shadow:var(--shadow-s)}
.cost-card b{font-weight:700;font-size:1.06rem;color:var(--ink)}
.cost-card span{font-size:1.1rem;transition:transform .3s var(--ease2)}
.cost-card:hover span{transform:translateX(4px)}
@media(max-width:760px){.cost-grid{grid-template-columns:1fr}}

/* すべての治療メニュー：索引グリッド（カテゴリ色＋ホバー立体感） */
.treat-index{background:linear-gradient(180deg,var(--paper),#f4f1ea)}
.ti-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2vw,28px)}
.ti-group{position:relative;background:#fff;border:1px solid #ece7dd;border-radius:18px;overflow:hidden;
  padding:clamp(20px,1.9vw,26px) clamp(18px,1.7vw,24px);
  box-shadow:0 1px 2px rgba(60,50,35,.04),0 14px 34px -26px rgba(40,32,20,.34);
  transition:transform .4s var(--ease2),box-shadow .4s,border-color .3s}
/* カテゴリ色のアクセントバー（上端） */
.ti-group::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg,var(--teal),var(--teal-l));opacity:.9;transform:scaleX(.4);transform-origin:left;transition:transform .5s var(--ease2)}
.ti-group:hover{transform:translateY(-4px);border-color:#e0d8ca;box-shadow:0 2px 4px rgba(60,50,35,.05),0 30px 56px -30px rgba(40,32,20,.42)}
.ti-group:hover::before{transform:scaleX(1)}
/* カテゴリ別のアクセント色 */
.ti-group:nth-child(1)::before{background:linear-gradient(90deg,#2c8392,#7fc0cb)}
.ti-group:nth-child(2)::before{background:linear-gradient(90deg,#3a8f6d,#8fd0af)}
.ti-group:nth-child(3)::before{background:linear-gradient(90deg,#9c7c41,#d7b878)}
.ti-group:nth-child(4)::before{background:linear-gradient(90deg,#4a6ea8,#9db6dd)}
.ti-group:nth-child(5)::before{background:linear-gradient(90deg,#a85f8f,#dda9c8)}
.ti-group:nth-child(6)::before{background:linear-gradient(90deg,#2c8392,#7fc0cb)}
.ti-group:nth-child(7)::before{background:linear-gradient(90deg,#c47a6e,#e6b3a8)}
.ti-group h3{display:flex;align-items:center;gap:.6rem;font-size:1.04rem;font-weight:700;color:var(--ink);margin:.1rem 0 .85rem;padding-bottom:.65rem;
  border-bottom:1px solid rgba(120,105,80,.14);letter-spacing:.02em}
/* カテゴリアイコン（丸チップ） */
.ti-ic{flex:0 0 auto;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:var(--teal-d);
  background:linear-gradient(150deg,#f0f8fa,#e2f0f3);box-shadow:inset 0 0 0 1px rgba(44,131,146,.14)}
.ti-ic svg{width:19px;height:19px}
.ti-ic{transition:transform .45s var(--ease2)}
.ti-group:hover .ti-ic{transform:translateY(-3px) scale(1.05)}
@media(prefers-reduced-motion:reduce){.ti-ic{transition:none}.ti-group:hover .ti-ic{transform:none}}
/* 記事数バッジ */
.ti-count{margin-left:auto;font-family:var(--flatin);font-size:.72rem;font-weight:600;color:var(--teal-d);
  background:#f0f8fa;border:1px solid rgba(44,131,146,.18);border-radius:999px;padding:.14rem .6rem;letter-spacing:.04em}
/* カテゴリ別アイコンチップの色 */
.ti-group:nth-child(2) .ti-ic{color:#2f7a58;background:linear-gradient(150deg,#eef8f2,#ddefe5);box-shadow:inset 0 0 0 1px rgba(58,143,109,.16)}
.ti-group:nth-child(3) .ti-ic{color:#8a6c33;background:linear-gradient(150deg,#faf6ee,#f1e8d5);box-shadow:inset 0 0 0 1px rgba(156,124,65,.18)}
.ti-group:nth-child(4) .ti-ic{color:#40619c;background:linear-gradient(150deg,#f0f4fb,#e1e9f6);box-shadow:inset 0 0 0 1px rgba(74,110,168,.16)}
.ti-group:nth-child(5) .ti-ic{color:#96527f;background:linear-gradient(150deg,#faf1f7,#f3e2ee);box-shadow:inset 0 0 0 1px rgba(168,95,143,.16)}
.ti-group:nth-child(7) .ti-ic{color:#b06a5e;background:linear-gradient(150deg,#fbf2f0,#f5e2de);box-shadow:inset 0 0 0 1px rgba(196,122,110,.18)}
/* ハブ記事の強調ボタン */
.ti-group .ti-hub{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 .55rem;
  padding:.62rem .85rem;border-radius:10px;font-size:.95rem;font-weight:700;color:var(--teal-dd);
  background:linear-gradient(135deg,#eef7f9,#e0eff3);border:1px solid rgba(44,131,146,.2);
  transition:transform .3s var(--ease2),box-shadow .3s,background .3s}
.ti-group .ti-hub span{color:var(--teal-d);opacity:.85}
.ti-group .ti-hub:hover{transform:translateY(-1px);background:linear-gradient(135deg,#e4f2f5,#d3e9ee);box-shadow:0 8px 18px -12px rgba(44,131,146,.5);padding-left:.85rem}
.ti-group a{display:flex;align-items:center;justify-content:space-between;gap:8px;position:relative;
  padding:.52rem .55rem;margin:0 -.55rem;font-size:.93rem;line-height:1.5;color:var(--ink-2);border-radius:8px;
  transition:color .25s,background .25s,padding .25s}
.ti-group a span{color:var(--teal-d);font-size:.9rem;opacity:.45;transition:transform .25s,opacity .25s}
.ti-group a:hover{color:var(--teal-dd);background:#f3f8fb;padding-left:.85rem;font-weight:500}
.ti-group a:hover span{opacity:1;transform:translateX(3px)}
@media(max-width:960px){.ti-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.ti-grid{grid-template-columns:1fr}}

/* 監修者・編集方針セクション（信頼の要素を1つに統合） */
.author-sec{background:var(--soft);padding:clamp(56px,7vw,96px) 0!important}
.author-card{display:grid;grid-template-columns:.6fr 1.4fr;gap:0;border-radius:var(--r-l);overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);align-items:stretch}
.author-card .pho{position:relative;background:#fff;min-height:300px}
.author-card .pho img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 25%}
.author-card .body{padding:clamp(26px,2.8vw,40px) clamp(26px,3vw,44px)}
.author-card h3{font-size:1.5rem;font-weight:700;margin:0 0 .3rem;color:var(--ink);letter-spacing:.01em}
.author-card .role{color:var(--teal-d);font-size:.95rem;margin:0 0 1rem;line-height:1.6;font-weight:500}
.author-card ul{list-style:none;margin:0 0 1.1rem;display:flex;flex-wrap:wrap;gap:.5rem;padding:0}
.author-card ul li{position:relative;color:var(--teal-dd);font-size:.82rem;background:var(--soft);border:1px solid var(--line);padding:.32rem .8rem;border-radius:999px;line-height:1.5}
.author-card .policy{font-size:.98rem;line-height:1.95;color:var(--ink-2);margin:0 0 1.2rem}
.author-card .policy b{color:var(--ink);font-weight:700}
.author-card .btn-line{padding:11px 22px;font-size:.92rem}
@media(max-width:860px){.author-card{grid-template-columns:1fr!important}.author-card .pho{min-height:320px!important;background:#fff!important}.author-card .pho img{object-position:center 20%!important}.author-card h3{font-size:1.32rem}}

/* 新着 */
.news a.item{display:flex;align-items:center;gap:14px;padding:18px 6px;border-bottom:1px solid var(--line);transition:.3s}
.news a.item:hover{padding-left:14px}
.news a.item .ix{color:var(--teal-d);font-size:18px}
.news a.item span{font-size:1rem}

/* フッター */
.dm-foot{background:var(--dark);color:rgba(255,255,255,.74);padding:54px 0 38px;font-size:.86rem}
.dm-foot .top{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;align-items:start;margin-bottom:26px}
.dm-foot a{color:rgba(255,255,255,.74)}.dm-foot a:hover{color:#fff}
.dm-foot .note{max-width:520px;line-height:1.8}
.dm-foot .legal{border-top:1px solid rgba(255,255,255,.12);padding-top:18px;font-size:.78rem;color:rgba(255,255,255,.5)}

/* レスポンシブ余白 */
@media(max-width:560px){.hero{min-height:120svh}}

/* ===== アクセシビリティ：動きを減らす ===== */
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .hero h1 .word>span{transform:none!important}
  .reveal{opacity:1!important;transform:none!important}
  .hero p.lead,.hero .hero-cta{opacity:1!important;transform:none!important}
  .dm-cursor,.hero-spot{display:none!important}
}

/* D1: ヒーロー主導線のさりげないグロー（3.4s周期） */
.hero .btn-primary{animation:dmCtaGlow 3.4s ease-in-out infinite}
@keyframes dmCtaGlow{
  0%,100%{box-shadow:0 12px 30px -10px rgba(44,131,146,.7)}
  50%{box-shadow:0 12px 34px -8px rgba(44,131,146,.95),0 0 22px rgba(127,192,203,.35)}
}
@media(prefers-reduced-motion:reduce){.hero .btn-primary{animation:none}}

/* D2: モバイル固定CTA（ヒーロー通過後に表示・トップのみ） */
.dm-mcta{position:fixed;left:50%;bottom:18px;transform:translate(-50%,72px);z-index:110;
  display:none;align-items:center;gap:8px;background:var(--teal);color:#fff;font-size:.92rem;font-weight:700;
  padding:13px 26px;border-radius:999px;text-decoration:none;letter-spacing:.03em;
  box-shadow:0 14px 34px -10px rgba(19,75,86,.65);opacity:0;
  transition:transform .5s var(--ease2),opacity .5s var(--ease2)}
.dm-mcta.show{transform:translate(-50%,0);opacity:1}
@media(max-width:860px){.dm-mcta{display:inline-flex}}
@media(prefers-reduced-motion:reduce){.dm-mcta{transition:opacity .3s}}
