/* =============================================================================
 *  KT CLINIC — フロントページ
 *  2026-07-26 モック（KTトップ_全体_モック.html）に合わせて全面刷新
 *  すべてのセレクタは .kt-top 配下にスコープしている
 * ========================================================================== */

.kt-top .hd{display:flex;align-items:center;gap:1.5rem;padding:1rem 2.5rem;max-width:102.5rem;margin:0 auto;}
.kt-top .hd-logo{display:flex;align-items:center;gap:0.8rem;}
.kt-top .hd-badge{width:3rem;height:3rem;border:1px solid var(--gold);border-radius:50%;
            display:flex;align-items:center;justify-content:center;
            font-family:var(--serif);font-size:1.15rem;color:var(--gold-deep);letter-spacing:.02em;}
.kt-top .hd-name{font-family:var(--serif);font-size:1.4rem;font-weight:600;letter-spacing:.06em;line-height:1.15;}
.kt-top .hd-name small{display:block;font-family:var(--sans);font-size:.66rem;font-weight:400;
                 letter-spacing:.06em;color:var(--sub);margin-top:.25rem;}
.kt-top .hd-nav{display:flex;gap:1.7rem;font-size:.9rem;margin-left:auto;}
.kt-top .hd-nav a{padding:.4rem 0;transition:color .2s;}
.kt-top .hd-nav a:hover{color:var(--gold-deep);}
.kt-top .hd-actions{display:flex;gap:.75rem;margin-left:1.5rem;}
.kt-top .hd-web, .kt-top .hd-tel{display:flex;align-items:center;gap:.6rem;padding:.6rem 1.15rem;
                  line-height:1.25;border-radius:999px;}
.kt-top .hd-web{background:var(--gold);color:#fff;}
.kt-top .hd-web:hover{background:var(--gold-deep);}
.kt-top .hd-tel{border:1px solid var(--gold-line);}
.kt-top .hd-web b, .kt-top .hd-tel b{font-size:.92rem;font-weight:700;letter-spacing:.03em;}
.kt-top .hd-web span, .kt-top .hd-tel span{display:block;font-size:.65rem;font-weight:400;}
.kt-top .hd-tel b{color:var(--gold-deep);}
/* -----------------------------------------------------------------------------
 *  既存CSS（style.css / components.css）との衝突を打ち消す
 *  ─ 同名クラスが先に定義されており、こちらで指定していないプロパティが
 *    そのまま効いてしまうため、明示的に戻している。
 *    例：components.css の .hero{height:100vh} が効き、FVが画面いっぱいになる。
 * -------------------------------------------------------------------------- */
.kt-top .hero{height:auto;}
.kt-top .hero-title{margin-bottom:0;}
.kt-top .btn{font-size:1rem;font-weight:400;justify-content:flex-start;}
.kt-top .faq-q,
.kt-top .faq-a{display:block;width:auto;height:auto;background:none;border-radius:0;
               flex-shrink:1;align-items:normal;justify-content:normal;font-family:inherit;}
.kt-top .faq-q{display:inline;}

.kt-top .hero{position:relative;min-height:41.25rem;
        background:var(--fv-pc) right center / cover no-repeat;overflow:hidden;}
.kt-top .hero::after{content:"";position:absolute;inset:0;z-index:1;
    background:linear-gradient(to right,
      #fff 0%, #fff 24%,
      rgba(255,255,255,.92) 38%, rgba(255,255,255,.55) 52%,
      rgba(255,255,255,.18) 66%, rgba(255,255,255,0) 82%);}
/* 2026-07-27 PCは文字の始まりを少し内側へ。ヘッダーのロゴ位置とも揃う */
.kt-top .hero-inner{position:relative;z-index:2;max-width:93.75rem;margin:0 auto;
              min-height:41.25rem;padding:0 2.5rem 0 6rem;display:flex;align-items:center;}
.kt-top .hero-text{width:48%;padding:4rem 0;}
.kt-top .hero-depts{display:inline-flex;align-items:center;gap:.9rem;font-size:.8rem;font-weight:500;
              letter-spacing:.12em;color:var(--gold-deep);margin:0 0 1.4rem;white-space:nowrap;}
.kt-top .hero-depts::before{content:"";width:30px;height:1px;background:var(--gold-line);}
.kt-top .hero-title{font-family:var(--serif);font-size:3rem;font-weight:500;line-height:1.6;
              letter-spacing:.04em;margin:0;color:var(--ink);}
.kt-top .hero-lead{font-size:.95rem;line-height:2.1;color:var(--sub);margin:1.9rem 0 2.4rem;}
.kt-top .hero-ctas{display:flex;gap:1rem;flex-wrap:wrap;}
.kt-top .btn{display:inline-flex;align-items:center;gap:.75rem;padding:1rem 1.9rem;
       line-height:1.25;border-radius:999px;transition:all .25s;}
.kt-top .btn .ic{width:1.25rem;height:1.25rem;flex:none;}
.kt-top .btn b{font-size:1rem;font-weight:600;letter-spacing:.04em;}
.kt-top .btn small{display:block;font-size:.68rem;font-weight:400;letter-spacing:.02em;}
.kt-top .btn .ar{font-size:1.1rem;line-height:1;margin-left:.2rem;transition:transform .25s;}
.kt-top .btn:hover .ar{transform:translateX(3px);}
.kt-top .btn-gold{background:var(--gold);color:#fff;box-shadow:0 6px 18px rgba(184,154,94,.28);}
.kt-top .btn-gold:hover{background:var(--gold-deep);box-shadow:0 8px 22px rgba(184,154,94,.36);}
.kt-top .btn-line{background:rgba(255,255,255,.88);border:1px solid var(--gold-line);color:var(--ink);}
.kt-top .btn-line b{color:var(--gold-deep);}
.kt-top .btn-line:hover{background:#fff;border-color:var(--gold);}
/* 2026-08-01 背景を白へ（ともちん指示）。もとは var(--cream2) */
.kt-top .dep{background:#fff;padding:6.5rem 2.5rem 7rem;}
.kt-top .dep-inner{max-width:76rem;margin:0 auto;}
.kt-top .dep-head{text-align:center;margin-bottom:3.75rem;}
.kt-top .dep-orn{width:40px;height:1px;background:var(--gold);opacity:.7;margin:0 auto 1.75rem;}
.kt-top .dep-h2{font-family:var(--serif);font-size:2.25rem;font-weight:500;letter-spacing:.06em;
          line-height:1.55;margin:0 0 1.4rem;}
.kt-top .dep-sub{font-size:.93rem;line-height:2.05;color:var(--sub);margin:0 auto;max-width:44rem;}
.kt-top .dep-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;
            background:#fff;border:1px solid var(--line);overflow:hidden;
            box-shadow:0 14px 40px rgba(62,56,47,.06);}
.kt-top .dcard{display:flex;flex-direction:column;position:relative;overflow:hidden;
         transition:background .3s;}
.kt-top .dcard + .dcard{border-left:1px solid var(--line);}
.kt-top .dcard:hover{background:#FDFCFA;}
.kt-top .dcard-visual{position:relative;aspect-ratio:4/3;background:var(--ac-bg);overflow:hidden;}
.kt-top .dcard-visual img{width:100%;height:100%;object-fit:cover;display:block;
                    transition:transform .6s cubic-bezier(.2,.6,.2,1);}
.kt-top .dcard:hover .dcard-visual img{transform:scale(1.045);}
.kt-top .dcard-visual::after{content:"";position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(to bottom,rgba(255,255,255,0) 55%,rgba(255,255,255,.28) 100%),
               var(--ac);mix-blend-mode:multiply;opacity:.10;}
.kt-top .dcard-body{padding:2rem 1.9rem 2.1rem;display:flex;flex-direction:column;flex:1;}
.kt-top .dcard-name{font-family:var(--serif);font-size:1.35rem;font-weight:600;letter-spacing:.05em;
              color:var(--ac);margin:0 0 1.35rem;text-align:center;}
.kt-top .dcard-desc{font-size:.875rem;line-height:2;color:var(--sub);margin:0 0 1.8rem;flex:1;}
.kt-top .dcard-more{display:inline-flex;align-items:center;justify-content:center;gap:.7rem;
              font-size:.85rem;font-weight:500;letter-spacing:.05em;color:var(--ac);
              padding-top:1.15rem;border-top:1px solid var(--line);}
.kt-top .dcard-more .circ{width:1.85rem;height:1.85rem;border:1px solid var(--ac);border-radius:50%;
                    display:flex;align-items:center;justify-content:center;font-size:.85rem;
                    line-height:1;transition:all .25s;}
.kt-top .dcard:hover .dcard-more .circ{background:var(--ac);color:#fff;}
.kt-top .gyn{--ac:var(--gyn); --ac-bg:var(--gyn-bg);}
.kt-top .derm{--ac:var(--derm);--ac-bg:var(--derm-bg);}
.kt-top .cos{--ac:var(--cos); --ac-bg:var(--cos-bg);}
.kt-top .dep .gyn, .kt-top .dep .derm, .kt-top .dep .cos, .kt-top .mnu .gyn, .kt-top .mnu .derm, .kt-top .mnu .cos{--ac:var(--gold-deep); --ac-bg:var(--gold-soft);}
.kt-top .dep .dcard-visual::after{background:linear-gradient(to bottom,
    rgba(255,255,255,0) 55%,rgba(255,255,255,.28) 100%);opacity:1;mix-blend-mode:normal;}
/* 2026-08-01 背景とグラデーションを白へ。写真も少しだけ強く見せる（ともちん指示）
   もとは var(--cream2) と rgba(252,250,245,…) のクリーム色だった。
   ::after の数値を下げるほど写真がはっきり出る。上げると文字が読みやすくなる。 */
.kt-top .feat{position:relative;background:#fff;padding:7rem 2.5rem 7.5rem;overflow:hidden;isolation:isolate;}
.kt-top .feat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:46%;z-index:-2;
    background:var(--kt-feat-img) left center/cover no-repeat;
    -webkit-mask-image:linear-gradient(to right,#000 0%,#000 52%,transparent 100%);
    mask-image:linear-gradient(to right,#000 0%,#000 52%,transparent 100%);}
.kt-top .feat::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
    background:
      radial-gradient(ellipse 30rem 18rem at 14% 26%, rgba(255,255,255,.68) 0%, rgba(255,255,255,0) 70%),
      linear-gradient(to right,
      rgba(255,255,255,.30) 0%, rgba(255,255,255,.42) 26%,
      rgba(255,255,255,.58) 46%, rgba(255,255,255,.74) 70%, rgba(255,255,255,.80) 100%);}
.kt-top .feat-inner{position:relative;max-width:78rem;margin:0 auto;display:grid;
              grid-template-columns:23rem 1fr;gap:4.5rem;align-items:start;}
.kt-top .feat-head{text-align:left;padding-top:.35rem;}
.kt-top .feat-h2{font-family:var(--serif);font-size:2.1rem;font-weight:500;letter-spacing:.06em;
           line-height:1.65;margin:0 0 1.5rem;}
.kt-top .feat-sub{font-size:.9rem;line-height:2.1;color:var(--sub);margin:0;}
.kt-top .feat-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;}
.kt-top .feat-item{padding:2.4rem 2.2rem;background:rgba(255,255,255,.55);
             -webkit-backdrop-filter:blur(10px) saturate(115%);backdrop-filter:blur(10px) saturate(115%);
             border:1px solid rgba(255,255,255,.72);
             box-shadow:0 10px 30px rgba(62,56,47,.06);
             transition:background .3s, box-shadow .3s, transform .3s;}
.kt-top .feat-item:hover{background:rgba(255,255,255,.74);
                   box-shadow:0 16px 38px rgba(62,56,47,.11);transform:translateY(-2px);}
.kt-top .feat-ic{width:2.5rem;height:2.5rem;color:var(--gold);display:block;margin:0 auto 1.15rem;}
/* assets/img/feat-01.svg 〜 feat-04.svg を置いたときの表示。（2026-08-01）
   SVGは形だけを使い、色はCSSの --gold を当てる。だからSVGは単色で作ればよい。
   SVG自身の色をそのまま出したい場合は、下の mask の2行を
   background:var(--kt-ic) center/contain no-repeat; に置き換える。 */
.kt-top .feat-ic--img{background:currentColor;
    -webkit-mask:var(--kt-ic) center/contain no-repeat;
            mask:var(--kt-ic) center/contain no-repeat;}
.kt-top .feat-t{font-family:var(--serif);font-size:1.22rem;font-weight:600;letter-spacing:.04em;
          line-height:1.7;color:var(--ink);margin:0 0 1rem;text-align:center;}
.kt-top .feat-d{font-size:.875rem;line-height:2.05;color:var(--sub);margin:0;}
/* 背景画像はテンプレート側から --kt-cmp-img で渡す（assets/img/campaign-bg.jpg） */
.kt-top .cmp{background:#F8F8F6 var(--kt-cmp-img) center/cover no-repeat;
           padding:7rem 2.5rem 7.5rem;}
.kt-top .cmp-inner{max-width:76rem;margin:0 auto;}
.kt-top .cmp-head{text-align:center;margin-bottom:3.25rem;}
.kt-top .cmp-h2{font-family:var(--serif);font-size:2.25rem;font-weight:500;letter-spacing:.06em;
          line-height:1.55;margin:0;}
.kt-top .cmp-grid{overflow:hidden;}
.kt-top .cmp-track{display:flex;gap:1.5rem;width:max-content;
             animation:cmpSlide 44s linear infinite;}
.kt-top .cmp-grid:hover .cmp-track{animation-play-state:paused;}
.kt-top .cmp-card{flex:0 0 18rem;}
@keyframes cmpSlide{
    from{transform:translateX(0);}
    to{transform:translateX(calc(-50% - .75rem));}
  }
@media (prefers-reduced-motion:reduce){
  .kt-top .cmp-track{animation:none;}
}
.kt-top .cmp-card{background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;
            transition:box-shadow .25s, transform .25s;}
.kt-top .cmp-card:hover{box-shadow:0 14px 34px rgba(62,56,47,.09);transform:translateY(-3px);}
.kt-top .cmp-img{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--gold-soft);}
.kt-top .cmp-img img{width:100%;height:100%;object-fit:cover;display:block;
               transition:transform .6s cubic-bezier(.2,.6,.2,1);}
.kt-top .cmp-card:hover .cmp-img img{transform:scale(1.05);}
.kt-top .cmp-badge{position:absolute;top:0;left:0;background:var(--gold);color:#fff;
             font-size:.68rem;font-weight:700;letter-spacing:.12em;padding:.4rem .7rem;}
.kt-top .cmp-body{padding:1.5rem 1.35rem 1.5rem;display:flex;flex-direction:column;flex:1;}
/* 2026-08-04 期限は画像の中から出して、ジャンルの行の右端に置く（案A）。
   画像に重ねると、バナーの文字や人物と施術ごとに衝突していた。
   **同じ指定が page-cosmetic.css / front-page.css の両方にある。**
   マークアップは inc/campaign-card.php の1本なので、直すときは両方直すこと。 */
.kt-top .cmp-meta{display:flex;align-items:baseline;gap:.8rem;margin:0 0 .7rem;}
.kt-top .cmp-genre{font-size:.7rem;letter-spacing:.1em;color:var(--gold-deep);margin:0;}
.kt-top .cmp-period{margin-left:auto;font-size:.72rem;letter-spacing:.04em;color:var(--sub);
              white-space:nowrap;font-variant-numeric:tabular-nums;}
.kt-top .cmp-title{font-family:var(--serif);font-size:1.1rem;font-weight:600;letter-spacing:.03em;
             line-height:1.65;margin:0 0 1.1rem;}
.kt-top .cmp-prices{margin:0 0 1.35rem;padding-top:.9rem;border-top:1px solid var(--line);flex:1;}
.kt-top .cmp-prow{display:flex;flex-wrap:wrap;align-items:baseline;
                  justify-content:space-between;gap:.15rem .6rem;}
.kt-top .cmp-prow + .cmp-prow{margin-top:.45rem;}
/* ラベルが長い施術（例：マリオネットライン・ほうれい線）でも価格が枠外に出ないよう、
   ラベルは縮み、入らない場合は価格が次の行へ回り込む */
.kt-top .cmp-plabel{font-size:.75rem;color:var(--sub);flex:1 1 auto;min-width:0;
                    overflow-wrap:anywhere;line-height:1.7;}
/* キャンペーン価格だと分かるよう赤字にし、桁を揃える */
.kt-top .cmp-price{font-family:var(--serif);font-size:1.18rem;font-weight:600;color:#C0392B;
                   font-variant-numeric:tabular-nums;
                   flex:0 0 auto;margin-left:auto;
             letter-spacing:.02em;}
.kt-top .cmp-tax{font-family:var(--sans);font-size:.66rem;font-weight:400;color:var(--sub);
           margin-left:.2rem;}
.kt-top .cmp-btns{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;}
.kt-top .cmp-btn{display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.7rem .4rem;
           font-size:.78rem;font-weight:600;letter-spacing:.04em;transition:all .2s;
           white-space:nowrap;}
.kt-top .cmp-ar{font-size:.9rem;line-height:1;transition:transform .2s;}
.kt-top .cmp-btn:hover .cmp-ar{transform:translateX(2px);}
.kt-top .cmp-btn--sec{border:1px solid var(--gold-line);color:var(--gold-deep);}
.kt-top .cmp-btn--sec:hover{background:var(--gold-soft);}
.kt-top .cmp-btn--pri{background:var(--gold);color:#fff;}
.kt-top .cmp-btn--pri:hover{background:var(--gold-deep);}
.kt-top .cmp-more{text-align:center;margin-top:3rem;}
.kt-top .cmp-more a{display:inline-flex;align-items:center;gap:1rem;font-size:1rem;font-weight:600;
              letter-spacing:.06em;color:var(--gold-deep);padding:1.15rem 3.2rem;
              background:#fff;border:1.4px solid var(--gold);border-radius:50px;
              box-shadow:0 4px 14px rgba(62,56,47,.07);transition:all .25s;}
.kt-top .cmp-more a:hover{background:var(--gold);border-color:var(--gold);color:#fff;
                    box-shadow:0 9px 24px rgba(184,154,94,.30);transform:translateY(-2px);}
.kt-top .cmp-more a span{transition:transform .2s;}
.kt-top .cmp-more a:hover span{transform:translateX(3px);}
.kt-top .mnu{background:#fff;padding:7rem 2.5rem 7.5rem;}
.kt-top .mnu-inner{max-width:76rem;margin:0 auto;}
.kt-top .mnu-head{text-align:center;margin-bottom:2.75rem;}
.kt-top .mnu-h2{font-family:var(--serif);font-size:2.25rem;font-weight:500;letter-spacing:.06em;
          line-height:1.55;margin:0 0 1.4rem;}
.kt-top .mnu-sub{font-size:.93rem;line-height:2.05;color:var(--sub);margin:0 auto;max-width:52rem;}
.kt-top .mnu-tabs{display:flex;justify-content:center;gap:1.15rem;margin-bottom:3.25rem;}
.kt-top .mnu-tab{appearance:none;cursor:pointer;font-family:var(--serif);font-size:1.05rem;
           font-weight:500;letter-spacing:.16em;color:var(--sub);
           display:inline-flex;align-items:center;gap:1.15rem;white-space:nowrap;
           padding:1.05rem 2.1rem;border-radius:10px;
           background:#fff;border:1.4px solid #DEDDD9;color:#8C8A85;
           transition:background .25s,border-color .25s,color .25s,box-shadow .25s;}
.kt-top .mnu-tab:hover{color:var(--ac);border-color:var(--gold-line);}
.kt-top .mnu-tab[aria-selected="true"]{background:#fff;border-color:var(--ac);
                                 color:var(--ac);box-shadow:0 2px 10px rgba(62,56,47,.07);}
.kt-top .mnu-tab:focus-visible{outline:none;}
.kt-top .mnu-tab:focus-visible{outline:2px solid var(--ac);outline-offset:3px;}
.kt-top .mnu-caret{width:0;height:0;flex:none;border-left:5px solid transparent;
             border-right:5px solid transparent;border-top:6px solid currentColor;opacity:.5;
             transition:opacity .25s;}
.kt-top .mnu-tab[aria-selected="true"] .mnu-caret{opacity:.85;}
.kt-top .mnu-panel{display:none;}
.kt-top .mnu-panel.is-active{display:block;}
.kt-top .mnu-cat + .mnu-cat{margin-top:3.25rem;}
.kt-top .mnu-cat-title{font-family:var(--serif);font-size:1.15rem;font-weight:600;letter-spacing:.05em;
                 color:var(--ac);margin:0 0 1.35rem;}
.kt-top .mnu-items{column-count:3;column-gap:2.5rem;}
.kt-top .mnu-item{display:flex;align-items:center;gap:.75rem;padding:.9rem .25rem;break-inside:avoid;
            border-bottom:1px solid #E3E1DC;font-size:.9rem;transition:color .2s;}
.kt-top .mnu-item:hover{color:var(--ac);}
.kt-top .mnu-item-name{flex:1;}
.kt-top .mnu-badge--new{background:var(--gold);color:#fff;font-weight:700;flex:none;
                  font-size:.66rem;letter-spacing:.06em;padding:.2rem .5rem;}
.kt-top .mnu-arrow{flex:none;color:#C9C2B6;font-size:.95rem;transition:transform .2s;}
.kt-top .mnu-item:hover .mnu-arrow{transform:translateX(3px);}
.kt-top .mnu-more{text-align:center;margin-top:3rem;}
.kt-top .mnu-more a{display:inline-flex;align-items:center;gap:.8rem;font-size:.9rem;font-weight:500;
              letter-spacing:.05em;color:var(--gold-deep);padding:.9rem 2rem;
              border:1px solid var(--gold-line);transition:all .25s;}
.kt-top .mnu-more a:hover{background:var(--gold);border-color:var(--gold);color:#fff;}
.kt-top .doc{background:#fff;padding:7rem 2.5rem 7.5rem;}
.kt-top .doc-inner{max-width:76rem;margin:0 auto;}
.kt-top .doc-head{text-align:center;margin-bottom:3.25rem;}
.kt-top .doc-h2{font-family:var(--serif);font-size:2.25rem;font-weight:500;letter-spacing:.06em;
          line-height:1.55;margin:0 0 1.4rem;}
.kt-top .doc-sub{font-size:.93rem;line-height:2.05;color:var(--sub);margin:0;}
.kt-top .doc-grid{display:grid;grid-template-columns:repeat(var(--doc-cols,4),minmax(0,19rem));justify-content:center;gap:1.5rem;}
.kt-top .doc-card{text-align:center;transition:transform .25s;}
.kt-top .doc-card:hover{transform:translateY(-3px);}
.kt-top .doc-photo{aspect-ratio:3/4;overflow:hidden;margin-bottom:1.25rem;
             background:linear-gradient(135deg,#FCFAF5 0%,#EFEAE0 100%);
             display:flex;align-items:center;justify-content:center;}
.kt-top .doc-photo img{width:100%;height:100%;object-fit:cover;display:block;
                 transition:transform .6s cubic-bezier(.2,.6,.2,1);}
.kt-top .doc-card:hover .doc-photo img{transform:scale(1.04);}
.kt-top .doc-photo svg{width:38%;height:auto;color:#D8D0C2;}
.kt-top .doc-specs{display:flex;gap:.3rem;justify-content:center;margin-top:.85rem;flex-wrap:wrap;}
.kt-top .doc-spec{font-size:.66rem;letter-spacing:.1em;padding:.22rem .6rem;}
/* 科目チップの色は inc/specialties.php が <head> に出す変数を使う。（2026-08-01）
   出どころはカレンダーの配色（inc/calendar.php の kt_get_specialties()）1箇所。
   ★ ここに色の値を書かないこと。医師紹介ページと食い違う原因になる。
   形成外科（pla）と美容外科（cos）は別の色。以前は同じ色にまとめていた。 */
.kt-top .doc-spec--gyn {background:var(--kt-gyn-bg); color:var(--kt-gyn-tx);}
.kt-top .doc-spec--derm{background:var(--kt-derm-bg);color:var(--kt-derm-tx);}
.kt-top .doc-spec--pla {background:var(--kt-pla-bg); color:var(--kt-pla-tx);}
.kt-top .doc-spec--cos {background:var(--kt-cos-bg); color:var(--kt-cos-tx);}
.kt-top .doc-name{font-family:var(--serif);font-size:1.15rem;font-weight:600;letter-spacing:.05em;
            margin:0 0 .35rem;}
.kt-top .doc-furi{font-size:.7rem;letter-spacing:.1em;color:var(--sub);margin:0 0 .5rem;}
.kt-top .doc-pos{font-size:.75rem;letter-spacing:.1em;color:var(--sub);margin:0;}
.kt-top .doc-card{display:flex;flex-direction:column;}
.kt-top .doc-more{text-align:center;margin-top:3rem;}
.kt-top .doc-more a{display:inline-flex;align-items:center;gap:.8rem;font-size:.9rem;font-weight:500;
              letter-spacing:.05em;color:var(--gold-deep);padding:.9rem 2rem;
              border:1px solid var(--gold-line);transition:all .25s;}
.kt-top .doc-more a:hover{background:var(--gold);border-color:var(--gold);color:#fff;}
.kt-top .cal{background:#fff;padding:7rem 2.5rem 7.5rem;}
.kt-top .cal-inner{max-width:64rem;margin:0 auto;}
.kt-top .cal-head{text-align:center;margin-bottom:2.5rem;}
.kt-top .cal-h2{font-family:var(--serif);font-size:2.25rem;font-weight:500;letter-spacing:.06em;
          line-height:1.55;margin:0 0 1.4rem;}
.kt-top .cal-sub{font-size:.93rem;line-height:2.05;color:var(--sub);margin:0;}
.kt-top .cal-tabs{display:flex;justify-content:center;gap:1.15rem;margin-bottom:2rem;}
.kt-top .cal-tab{cursor:pointer;font-family:var(--serif);font-size:1.05rem;font-weight:500;
           letter-spacing:.16em;color:var(--sub);display:inline-flex;align-items:center;
           gap:1.15rem;white-space:nowrap;padding:1.05rem 2.1rem;border-radius:10px;
           background:#fff;border:1.4px solid #DEDDD9;color:#8C8A85;
           transition:background .25s,border-color .25s,color .25s,box-shadow .25s;}
.kt-top .cal-tab:hover{color:var(--ac);border-color:var(--gold-line);}
.kt-top .cal .gyn, .kt-top .cal .skin{--ac:var(--gold-deep);}
.kt-top .cal-tab[aria-selected="true"]{background:#fff;border-color:var(--ac);
                                 color:var(--ac);box-shadow:0 2px 10px rgba(62,56,47,.07);}
.kt-top .cal-caret{width:0;height:0;flex:none;border-left:5px solid transparent;
             border-right:5px solid transparent;border-top:6px solid currentColor;opacity:.5;}
.kt-top .cal-months{display:flex;justify-content:center;gap:.5rem;margin-bottom:1.5rem;}
.kt-top .cal-mo{cursor:pointer;font-size:.88rem;letter-spacing:.08em;color:var(--sub);
          padding:.55rem 1.5rem;border:1px solid var(--line);background:#FCFAF5;
          border-radius:999px;transition:all .2s;}
.kt-top .cal-mo:hover{border-color:var(--gold-line);color:var(--gold-deep);}
.kt-top .cal-mo[aria-selected="true"]{background:var(--gold);border-color:var(--gold);color:#fff;}
.kt-top .cal-panel{display:none;}
.kt-top .cal-scroll{overflow-x:auto;scrollbar-width:none;}
.kt-top .cal-scroll::-webkit-scrollbar{display:none;}
/* 担当科の印が最大3つ付くため、44remではセルが狭く名前と印が折り返す。
   49remに広げてある（2026-07-30） */
.kt-top .cal-tbl{min-width:49rem;background:#fff;border:1px solid var(--line);}
.kt-top .cal-ym{text-align:center;font-family:var(--serif);font-size:1.1rem;letter-spacing:.08em;
          padding:1rem;border-bottom:1px solid var(--line);color:var(--ac);}
.kt-top .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);}
.kt-top .cal-dh{text-align:center;font-size:.75rem;letter-spacing:.1em;color:var(--sub);
          padding:.7rem 0;background:#fff;border-bottom:1px solid var(--line);}
.kt-top .cal-dh.sun{color:#C0736F;}
.kt-top .cal-c{min-height:5.6rem;padding:.5rem .45rem;border-right:1px solid var(--line);
         border-bottom:1px solid var(--line);}
.kt-top .cal-c:nth-child(7n+7){border-right:none;}
.kt-top .cal-c.empty{background:#FAFAF9;}
.kt-top .cal-c.closed{background:#FAFAF9;}
.kt-top .cal-d{font-size:.8rem;color:var(--sub);margin-bottom:.35rem;}
.kt-top .cal-c.sun .cal-d, .kt-top .cal-c.holi .cal-d{color:#C0736F;}
.kt-top .cal-dr{margin-bottom:.3rem;}
.kt-top .cal-dr-h{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap;}
.kt-top .cal-dr-n{font-size:.72rem;line-height:1.5;color:var(--ink);}
.kt-top .cal-dr-t{display:block;font-size:.66rem;line-height:1.5;color:var(--sub);}
/* 担当科の印（2026-07-30 追加）。色は kt_get_specialties() が持つ */
.kt-top .cal-dr-tags{display:inline-flex;gap:.15rem;flex:none;}
.kt-top .cal-tag{display:inline-flex;align-items:center;justify-content:center;flex:none;
                 width:1.05rem;height:1.05rem;border-radius:3px;font-style:normal;
                 font-size:.62rem;font-weight:600;line-height:1;color:#fff;letter-spacing:0;}
.kt-top .cal-leg{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.4rem;margin:0 0 1.1rem;}
.kt-top .cal-leg-i{display:inline-flex;align-items:center;gap:.45rem;font-size:.82rem;letter-spacing:.03em;}
.kt-top .cal-leg .cal-tag{width:1.15rem;height:1.15rem;font-size:.66rem;}
.kt-top .cal-closed{display:block;text-align:center;font-size:.72rem;color:#9A948A;
              padding-top:.6rem;}
.kt-top .cal-none{font-size:.72rem;color:#D2CCC1;}
.kt-top .cal-hint{display:none;}
.kt-top .cal-panel.is-active{display:block;}
.kt-top .col{background:#fff;padding:7rem 2.5rem 7.5rem;}
.kt-top .col-inner{max-width:76rem;margin:0 auto;}
.kt-top .col-head{text-align:center;margin-bottom:3rem;}
.kt-top .col-h2{font-family:var(--serif);font-size:2.25rem;font-weight:500;letter-spacing:.06em;
          line-height:1.55;margin:0 0 1rem;}
.kt-top .col-sub{font-size:.93rem;line-height:2.05;color:var(--sub);margin:0;}
.kt-top .col-foot{text-align:center;margin-top:3rem;}
.kt-top .col-more{display:inline-flex;align-items:center;gap:.8rem;font-size:.9rem;
            font-weight:500;letter-spacing:.05em;color:var(--gold-deep);padding:.9rem 2rem;
            border:1px solid var(--gold-line);transition:all .25s;white-space:nowrap;}
.kt-top .col-more:hover{background:var(--gold);border-color:var(--gold);color:#fff;}
.kt-top .col-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:0 -2rem;}
.kt-top .col-card{display:flex;flex-direction:column;padding:0 2rem;transition:transform .25s;}
.kt-top .col-card + .col-card{border-left:1px solid var(--line);}
.kt-top .col-card:hover{transform:translateY(-3px);}
.kt-top .col-thumb{aspect-ratio:16/10;overflow:hidden;background:var(--gold-soft);margin-bottom:1.15rem;}
.kt-top .col-thumb img{width:100%;height:100%;object-fit:cover;display:block;
                 transition:transform .6s cubic-bezier(.2,.6,.2,1);}
.kt-top .col-card:hover .col-thumb img{transform:scale(1.05);}
.kt-top .col-meta{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;}
.kt-top .col-cat{font-size:.68rem;letter-spacing:.1em;padding:.22rem .65rem;}
.kt-top .col-cat--gyn{background:var(--gyn-bg); color:var(--gyn);}
.kt-top .col-cat--derm{background:var(--derm-bg);color:var(--derm);}
.kt-top .col-cat--cos{background:var(--cos-bg); color:var(--cos);}
.kt-top .col-date{font-size:.72rem;letter-spacing:.06em;color:var(--sub);}
.kt-top .col-title{font-family:var(--serif);font-size:1.12rem;font-weight:600;letter-spacing:.03em;
             line-height:1.75;margin:0 0 .75rem;}
.kt-top .col-card:hover .col-title{color:var(--gold-deep);}
.kt-top .col-ex{font-size:.83rem;line-height:1.95;color:var(--sub);margin:0;}
.kt-top .fst{background:#fff;padding:7rem 2.5rem 7.5rem;}
.kt-top .fst-inner{max-width:76rem;margin:0 auto;}
.kt-top .fst-head{text-align:center;margin-bottom:3.25rem;}
.kt-top .fst-h2{font-family:var(--serif);font-size:2.25rem;font-weight:500;letter-spacing:.06em;
          line-height:1.55;margin:0 0 1.4rem;}
.kt-top .fst-sub{font-size:.93rem;line-height:2.05;color:var(--sub);margin:0 auto;max-width:50rem;}
.kt-top .fst-cards{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:stretch;}
.kt-top .fst-card{background:#fff;border:1px solid var(--line);border-radius:16px;
            box-shadow:0 2px 12px rgba(62,56,47,.045);
            padding:2.5rem 2.4rem;display:flex;flex-direction:column;}
.kt-top .fst-card-h{font-family:var(--serif);font-size:1.42rem;font-weight:600;letter-spacing:.05em;
              margin:0 0 1rem;text-align:center;}
.kt-top .fst-card-d{font-size:.87rem;line-height:2;color:var(--sub);margin:0 0 2rem;}
.kt-top .fst-tbl{margin-bottom:0;flex:1;display:flex;flex-direction:column;}
.kt-top .fst-hrow, .kt-top .fst-row{display:grid;grid-template-columns:1fr 5.4rem 5.4rem;
                     column-gap:.75rem;align-items:center;}
.kt-top .fst-hrow{padding:0 0 .7rem;}
.kt-top .fst-hlabel{font-size:.72rem;letter-spacing:.1em;color:var(--sub);text-align:center;}
.kt-top .fst-row{padding:1.7rem 0;border-top:1px solid var(--line);flex:1;}
/* 「形成外科・美容外科」はPCでは1行、スマホでは中黒を消して2行に分ける */
.kt-top .fst-brk{display:none;}
.kt-top .fst-dot{font-style:normal;}
.kt-top .fst-dep{font-family:var(--serif);font-size:1.1rem;font-weight:600;letter-spacing:.04em;
           color:var(--gold-deep);margin:0 0 .35rem;}
.kt-top .fst-mark{display:flex;align-items:center;justify-content:center;}
.kt-top .fst-mark i{display:block;width:1.3rem;height:1.3rem;border:1.5px solid var(--gold-deep);
              border-radius:50%;}
.kt-top .fst-mark.none i{width:1rem;height:0;border:none;border-top:1.5px solid #CFC8BB;border-radius:0;}
.kt-top .fst-note{margin:0;padding-top:1.35rem;border-top:1px solid var(--line);
            font-size:.79rem;line-height:1.95;color:var(--ink);}
.kt-top .fst-steps{display:flex;flex-direction:column;gap:1.6rem;margin-bottom:2.25rem;}
.kt-top .fst-step{display:grid;grid-template-columns:2.6rem 1fr;column-gap:1.15rem;align-items:start;}
.kt-top .fst-num{width:2.6rem;height:2.6rem;border-radius:50%;background:var(--gold);color:#fff;
           display:flex;align-items:center;justify-content:center;font-family:var(--serif);
           font-size:1.02rem;font-weight:600;line-height:1;}
.kt-top .fst-t{font-size:1rem;font-weight:700;letter-spacing:.03em;margin:.35rem 0 .4rem;}
.kt-top .fst-d{grid-column:2;font-size:.83rem;line-height:1.9;color:var(--sub);margin:0;}
.kt-top .fst-btn{align-self:center;margin-top:auto;display:inline-flex;align-items:center;gap:1.1rem;
           padding:1rem 2.2rem;border:1.4px solid var(--gold);border-radius:999px;
           color:var(--gold-deep);font-size:.95rem;font-weight:600;letter-spacing:.06em;
           transition:all .25s;}
.kt-top .fst-btn:hover{background:var(--gold);color:#fff;}
.kt-top .fst-btn .ar{transition:transform .2s;}
.kt-top .fst-btn:hover .ar{transform:translateX(3px);}
.kt-top .faq{background:#fff;padding:7rem 2.5rem 7.5rem;}
.kt-top .faq-inner{max-width:56rem;margin:0 auto;}
.kt-top .faq-head{text-align:center;margin-bottom:2.75rem;}
.kt-top .faq-h2{font-family:var(--serif);font-size:2.25rem;font-weight:500;letter-spacing:.06em;
          line-height:1.55;margin:0 0 1.4rem;}
.kt-top .faq-sub{font-size:.93rem;line-height:2.05;color:var(--sub);margin:0;}
.kt-top .faq-item{border-bottom:1px solid var(--line);}
.kt-top .faq-cats{display:flex;justify-content:center;flex-wrap:wrap;gap:.55rem;margin-bottom:2.25rem;}
.kt-top .faq-cat{cursor:pointer;font-size:.85rem;letter-spacing:.06em;color:var(--sub);
           padding:.6rem 1.4rem;border:1px solid var(--line);border-radius:999px;
           background:#fff;transition:all .2s;white-space:nowrap;}
.kt-top .faq-cat:hover{border-color:var(--gold-line);color:var(--gold-deep);}
.kt-top .faq-cat[aria-selected="true"]{background:var(--gold);border-color:var(--gold);color:#fff;}
.kt-top .faq-list .faq-item.is-hidden{display:none;}
.kt-top .faq-list .faq-item{border-top:none;}
.kt-top .faq-list{border-top:1px solid var(--line);}
.kt-top .faq-sum{list-style:none;cursor:pointer;display:flex;align-items:center;gap:1rem;
           padding:1.5rem 0;font-size:.95rem;letter-spacing:.03em;transition:color .2s;}
.kt-top .faq-sum::-webkit-details-marker{display:none;}
.kt-top .faq-sum:hover{color:var(--gold-deep);}
.kt-top .faq-q{flex:none;color:var(--gold);font-size:.9rem;}
.kt-top .faq-t{flex:1;line-height:1.75;}
.kt-top .faq-tg{flex:none;color:var(--gold);font-size:1.25rem;font-weight:300;line-height:1;
          transition:transform .3s;}
.kt-top .faq-item[open] .faq-tg{transform:rotate(45deg);}
.kt-top .faq-a{padding:0 0 1.5rem 2.4rem;font-size:.85rem;line-height:2;color:var(--sub);}
.kt-top .faq-more{text-align:center;margin-top:2.75rem;}
.kt-top .faq-more a{display:inline-flex;align-items:center;gap:.8rem;font-size:.9rem;font-weight:500;
              letter-spacing:.05em;color:var(--gold-deep);padding:.9rem 2rem;
              border:1px solid var(--gold-line);transition:all .25s;}
.kt-top .faq-more a:hover{background:var(--gold);border-color:var(--gold);color:#fff;}
.kt-top .info{background:#fff;padding:7rem 2.5rem 7.5rem;}
.kt-top .info-inner{max-width:76rem;margin:0 auto;}
.kt-top .info-head{text-align:center;margin-bottom:3.25rem;}
.kt-top .info-h2{font-family:var(--serif);font-size:2.25rem;font-weight:500;letter-spacing:.06em;
           line-height:1.55;margin:0;}
.kt-top .info-box{background:#fff;border:1px solid var(--line);border-radius:16px;
            box-shadow:0 2px 12px rgba(62,56,47,.045);
            padding:2.75rem 2.5rem;margin-bottom:1.5rem;}
.kt-top .info-box-t{font-family:var(--serif);font-size:1.35rem;font-weight:600;letter-spacing:.05em;
              margin:0 0 2rem;text-align:center;}
.kt-top .hours + .hours{margin-top:2.5rem;}
.kt-top .hours-name{font-family:var(--serif);font-size:1.1rem;font-weight:600;letter-spacing:.05em;
              color:var(--gold-deep);margin:0 0 1rem;}
.kt-top .hours-hint{display:none;text-align:center;font-size:.72rem;color:#A39B8E;margin:0 0 .6rem;}
.kt-top .hours-scroll{overflow-x:auto;scrollbar-width:none;}
.kt-top .hours-scroll::-webkit-scrollbar{display:none;}
.kt-top .hours-tbl{display:grid;grid-template-columns:11rem repeat(7,1fr);min-width:44rem;
             --tl:#E3E1DC;
             border-top:1px solid var(--tl);border-left:1px solid var(--tl);}
.kt-top .hours-h, .kt-top .hours-lbl, .kt-top .hours-c{border-right:1px solid var(--tl);
                               border-bottom:1px solid var(--tl);}
.kt-top .hours-h{background:#fff;color:var(--sub);font-size:.8rem;letter-spacing:.1em;
           text-align:center;padding:.85rem .3rem;}
.kt-top .hours-lbl{background:#fff;text-align:center;padding:1.5rem .8rem;font-size:.85rem;
             line-height:1.9;color:var(--ink);}
.kt-top .hours-lbl b{display:block;font-weight:600;}
.kt-top .hours-c{display:flex;flex-direction:column;align-items:center;justify-content:center;
           gap:.35rem;padding:1rem .3rem;font-size:1.05rem;color:var(--ink);}
.kt-top .hours-c.off{background:#FAFAF9;color:#9A948A;font-size:.8rem;}
.kt-top .hours-c small{font-size:.68rem;color:var(--sub);line-height:1.5;}
.kt-top .hours-note{margin:1.1rem 0 0;font-size:.8rem;line-height:1.95;color:var(--sub);}
.kt-top .info-btn{display:flex;justify-content:center;margin-top:2.5rem;}
.kt-top .info-btn a{display:inline-flex;align-items:center;gap:1rem;padding:1rem 2.4rem;
              border:1.4px solid var(--gold);border-radius:999px;color:var(--gold-deep);
              font-size:.95rem;font-weight:600;letter-spacing:.06em;transition:all .25s;}
.kt-top .info-btn a:hover{background:var(--gold);color:#fff;}
.kt-top .info-btn .ar{transition:transform .2s;}
.kt-top .info-btn a:hover .ar{transform:translateX(3px);}
.kt-top .news{position:relative;background:var(--cream2) var(--kt-news-img) center/cover no-repeat;
         padding:7rem 2.5rem 7.5rem;}
.kt-top .news-inner{max-width:60rem;margin:0 auto;}
.kt-top .news-head{text-align:center;margin-bottom:2.75rem;}
.kt-top .news-h2{font-family:var(--serif);font-size:2.25rem;font-weight:500;letter-spacing:.06em;
           line-height:1.55;margin:0;}
.kt-top .news-list{border-top:1px solid rgba(62,56,47,.10);}
.kt-top .news-item{display:grid;grid-template-columns:6.5rem 5.5rem 1fr 1.5rem;align-items:center;
             gap:1.25rem;padding:1.35rem .5rem;border-bottom:1px solid rgba(62,56,47,.10);
             transition:background .2s;}
.kt-top .news-item:hover{background:rgba(255,255,255,.6);}
.kt-top .news-date{font-size:.8rem;letter-spacing:.06em;color:var(--sub);}
.kt-top .news-tag{font-size:.68rem;letter-spacing:.08em;text-align:center;padding:.25rem .3rem;
            background:#F2F2F0;color:var(--sub);}
.kt-top .news-tag--gyn{background:var(--gyn-bg); color:var(--gyn);}
.kt-top .news-tag--derm{background:var(--derm-bg);color:var(--derm);}
.kt-top .news-tag--cos{background:var(--cos-bg); color:var(--cos);}
.kt-top .news-title{font-size:.92rem;line-height:1.75;}
.kt-top .news-item:hover .news-title{color:var(--gold-deep);}
.kt-top .news-ar{color:#C9C2B6;font-size:.9rem;text-align:right;transition:transform .2s;}
.kt-top .news-item:hover .news-ar{transform:translateX(3px);color:var(--gold);}
.kt-top .news-more{text-align:center;margin-top:2.75rem;}
.kt-top .news-more a{display:inline-flex;align-items:center;gap:.8rem;font-size:.9rem;font-weight:500;
               letter-spacing:.05em;color:var(--gold-deep);padding:.9rem 2rem;
               border:1px solid var(--gold-line);transition:all .25s;}
.kt-top .news-more a:hover{background:var(--gold);border-color:var(--gold);color:#fff;}
@media (max-width:1080px){
  .kt-top .hd{flex-wrap:wrap;padding:1rem 1.25rem;}
  .kt-top .hd-nav{order:5;width:100%;margin:.5rem -1.25rem 0;padding:0 1.25rem;gap:1.35rem;font-size:.84rem;
            flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scrollbar-width:none;
            -webkit-overflow-scrolling:touch;}
  .kt-top .hd-nav::-webkit-scrollbar{display:none;}
  .kt-top .hd-nav a{white-space:nowrap;}
  .kt-top .hd-actions{margin-left:auto;}
  /* 2026-07-27 スマホの高さは中身の量ではなく、写真の縦横比（4:5）で決める。
     min-height を 0 にしていたため、文字を減らした結果それに合わせて低くなり、
     縦長のスマホ用画像を入れても上端しか見えていなかった。 */
  .kt-top .hero{min-height:min(125vw,34rem);background-image:var(--fv-sp);
                background-position:center center;}
  /* 文字は下揃え。白は下から立ち上げ、上半分は写真をそのまま見せる。
     被写体は画像の上半分に置くこと（下半分は白く抜ける）。 */
  .kt-top .hero::after{background:linear-gradient(to bottom,
      rgba(255,255,255,0) 0%,   rgba(255,255,255,.04) 24%,
      rgba(255,255,255,.30) 38%,rgba(255,255,255,.74) 48%,
      rgba(255,255,255,.93) 58%,rgba(255,255,255,.97) 100%);}
  .kt-top .hero-inner{min-height:min(125vw,34rem);padding:0 1.25rem;align-items:flex-end;}
  .kt-top .hero-text{width:100%;padding:0 0 2.5rem;}
  .kt-top .hero-title{font-size:2rem;}
  /* 2026-07-27 スマホはキャッチコピーまでに絞る。
     リード文はラベルと内容が重複し、写真を覆ってしまうため非表示。
     WEB予約は画面下の固定バー（.sp-cta）があるので、ここでは出さない。 */
  .kt-top .hero-lead{display:none;}
  .kt-top .hero-ctas .btn-gold{display:none;}
  .kt-top .hero-title{margin-bottom:1.6rem;}
  .kt-top .dep{padding:4.5rem 1.25rem 5rem;}
  .kt-top .dep-h2{font-size:1.6rem;}
  .kt-top .dep-grid{grid-template-columns:1fr;}
  .kt-top .dcard + .dcard{border-left:none;border-top:1px solid var(--line);}
  .kt-top .feat{padding:13rem 1.25rem 4.5rem;}
  .kt-top .feat::before{left:0;right:0;top:0;bottom:auto;width:auto;height:20rem;
      background-position:center 22%;
      -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 52%,transparent 100%);
      mask-image:linear-gradient(to bottom,#000 0%,#000 52%,transparent 100%);}
  .kt-top .feat::after{background:
      radial-gradient(ellipse 22rem 12rem at 50% 88%, rgba(255,255,255,.48) 0%, rgba(255,255,255,0) 72%),
      linear-gradient(to bottom,
        rgba(255,255,255,.24) 0%, rgba(255,255,255,.36) 34%,
        rgba(255,255,255,.80) 62%, rgba(255,255,255,.92) 80%, rgba(255,255,255,.94) 100%);}
  .kt-top .feat-inner{grid-template-columns:1fr;gap:2.5rem;}
  .kt-top .feat-h2{font-size:1.6rem;}
  .kt-top .feat-head{padding-top:0;}
  .kt-top .feat-grid{gap:1rem;}
  .kt-top .feat-item{padding:1.9rem 1.5rem;}
  .kt-top .dcard-visual{aspect-ratio:16/9;}
  .kt-top .news{padding:4.5rem 1.25rem 5rem;}
  .kt-top .news-h2{font-size:1.6rem;}
  .kt-top .news-item{grid-template-columns:auto auto 1fr;gap:.5rem .8rem;padding:1.25rem .25rem;}
  .kt-top .news-date{grid-column:1;}
  .kt-top .news-tag{grid-column:2;justify-self:start;padding:.25rem .6rem;}
  .kt-top .news-title{grid-column:1 / -1;}
  .kt-top .news-ar{display:none;}
  .kt-top .news-more a{width:100%;justify-content:center;}
  .kt-top .info{padding:4.5rem 1.25rem 5rem;}
  .kt-top .info-h2{font-size:1.6rem;}
  .kt-top .info-box{padding:1.75rem 1.35rem;border-radius:14px;}
  .kt-top .info-box-t{font-size:1.2rem;margin-bottom:1.5rem;}
  .kt-top .hours-scroll{margin:0 -1.35rem;padding:0 1.35rem;}
  .kt-top .hours-tbl{min-width:34rem;grid-template-columns:6.5rem repeat(7,1fr);}
  .kt-top .hours-lbl{padding:1.1rem .35rem;font-size:.76rem;line-height:1.7;}
  .kt-top .hours-h{font-size:.78rem;padding:.75rem .2rem;}
  .kt-top .hours-c{font-size:.95rem;padding:.85rem .2rem;}
  .kt-top .hours-hint{display:block;}
  .kt-top .info-btn a{width:100%;justify-content:center;}
  .kt-top .faq{padding:4.5rem 1.25rem 5rem;}
  .kt-top .faq-h2{font-size:1.6rem;}
  .kt-top .faq-sub{text-align:left;}
  .kt-top .faq-cats{margin:0 -1.25rem 1.75rem;padding:0 1.25rem;gap:.45rem;flex-wrap:nowrap;
              justify-content:flex-start;overflow-x:auto;scrollbar-width:none;}
  .kt-top .faq-cats::-webkit-scrollbar{display:none;}
  .kt-top .faq-cat{padding:.5rem 1.1rem;font-size:.8rem;}
  .kt-top .faq-sum{padding:1.25rem 0;gap:.75rem;}
  .kt-top .faq-a{padding-left:2.1rem;}
  .kt-top .faq-more a{width:100%;justify-content:center;}
  .kt-top .col{padding:4.5rem 1.25rem 5rem;}
  .kt-top .col-h2{font-size:1.6rem;}
  .kt-top .col-sub{text-align:left;}
  .kt-top .col-more{width:100%;justify-content:center;}
  .kt-top .col-grid{display:flex;grid-template-columns:none;gap:1rem;overflow-x:auto;margin:0 -1.25rem;
              scroll-snap-type:x mandatory;scroll-padding-left:1.25rem;
              margin:0 -1.25rem;padding:0 1.25rem .75rem;
              scrollbar-width:none;-webkit-overflow-scrolling:touch;}
  .kt-top .col-grid::-webkit-scrollbar{display:none;}
  .kt-top .col-card{flex:0 0 74%;scroll-snap-align:start;padding:0;}
  .kt-top .col-card + .col-card{border-left:none;}
  .kt-top .col-foot{margin-top:2rem;}
  .kt-top .fst{padding:4.5rem 1.25rem 5rem;}
  .kt-top .fst-h2{font-size:1.6rem;}
  .kt-top .fst-sub{text-align:left;}
  .kt-top .fst-cards{grid-template-columns:1fr;gap:1rem;}
  .kt-top .fst-card{padding:1.85rem 1.5rem;border-radius:14px;}
  .kt-top .fst-hrow, .kt-top .fst-row{grid-template-columns:1fr 4.6rem 4.6rem;}
  .kt-top .fst-dot{display:none;}
  .kt-top .fst-brk{display:inline;}
  .kt-top .fst-card-h{font-size:1.22rem;}
  .kt-top .fst-btn{align-self:stretch;justify-content:center;}
  .kt-top .cal{padding:4.5rem 1.25rem 5rem;}
  .kt-top .cal-h2{font-size:1.6rem;}
  .kt-top .cal-sub{text-align:left;}
  .kt-top .cal-tabs{margin:0 -1.25rem 1.5rem;padding:.25rem 1.25rem;gap:.6rem;overflow-x:auto;
              justify-content:flex-start;scrollbar-width:none;}
  .kt-top .cal-tabs::-webkit-scrollbar{display:none;}
  .kt-top .cal-tab{padding:.85rem 1.1rem;font-size:.9rem;gap:.75rem;letter-spacing:.1em;}
  .kt-top .cal-scroll{margin:0 -1.25rem;padding:0 1.25rem;}
  .kt-top .cal-hint{display:block;text-align:center;font-size:.72rem;color:#A39B8E;margin:-.4rem 0 .7rem;}
  .kt-top .cal-ym{text-align:left;padding-left:1rem;}
  .kt-top .doc{padding:4.5rem 1.25rem 5rem;}
  .kt-top .doc-h2{font-size:1.6rem;}
  .kt-top .doc-grid{grid-template-columns:1fr 1fr;gap:1rem;}
  .kt-top .doc-more a{width:100%;justify-content:center;}
  .kt-top .mnu{padding:4.5rem 1.25rem 5rem;}
  .kt-top .mnu-h2{font-size:1.6rem;}
  .kt-top .mnu-sub{text-align:left;}
  .kt-top .mnu-tabs{margin:0 -1.25rem 2.5rem;padding:.25rem 1.25rem;gap:.6rem;overflow-x:auto;
              justify-content:flex-start;scrollbar-width:none;}
  .kt-top .mnu-tabs::-webkit-scrollbar{display:none;}
  .kt-top .mnu-tab{padding:.85rem 1.1rem;font-size:.9rem;gap:.75rem;letter-spacing:.1em;}
  .kt-top .mnu-items{column-count:1;}
  .kt-top .mnu-more a{width:100%;justify-content:center;}
  .kt-top .cmp{padding:4.5rem 1.25rem 5rem;}
  .kt-top .cmp-h2{font-size:1.6rem;}
  .kt-top .cmp-grid{grid-template-columns:1fr 1fr;gap:1rem;}
  .kt-top .cmp-more a{width:100%;justify-content:center;}
}
@media (max-width:720px){
  .kt-top .cmp-grid{overflow-x:auto;scroll-snap-type:x mandatory;
              margin:0 -1.25rem;padding:0 1.25rem .75rem;scroll-padding-left:1.25rem;
              scrollbar-width:none;-webkit-overflow-scrolling:touch;}
  .kt-top .cmp-grid::-webkit-scrollbar{display:none;}
  .kt-top .cmp-track{animation:none;gap:.9rem;width:auto;}
  .kt-top .cmp-card{flex:0 0 74%;scroll-snap-align:start;}
  .kt-top .cmp-card.is-dup{display:none;}
  .kt-top .cmp-more{margin-top:2rem;}
  .kt-top .hero-lead br, .kt-top .dep-sub br, .kt-top .pc-br{display:none;}
  .kt-top .dep-sub{text-align:left;}
  .kt-top .feat-grid{grid-template-columns:1fr;}
  .kt-top .feat{padding:12rem 1.25rem 4.5rem;}
  .kt-top .feat::before{height:17rem;}
}
@media (max-width:520px){
  .kt-top .hd-actions{width:100%;justify-content:center;margin:.6rem 0 0;}
  .kt-top .hero-ctas .btn{width:100%;justify-content:center;}
}
