/* =============================================================================
 *  KT CLINIC — 婦人科ページ
 *  2026-07-27 モック（KT婦人科_モック.html）に合わせて全面刷新
 *  セレクタは .kt-gyn 配下にスコープしている
 * ========================================================================== */

/* 既存CSS（components.css）との衝突を打ち消す */
.kt-gyn .hero{height:auto;}
.kt-gyn .hero-title{margin-bottom:0;}
.kt-gyn .btn{font-size:1rem;font-weight:400;justify-content:flex-start;}
.kt-gyn .faq-q,
.kt-gyn .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-gyn .faq-q{display:inline;}

.kt-gyn .pc-br{display:inline;}
.kt-gyn .hd-logo{display:flex;align-items:center;gap:0.8rem;}
.kt-gyn .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-gyn .hd-name{font-family:var(--serif);font-size:1.4rem;font-weight:600;letter-spacing:.06em;line-height:1.15;}
.kt-gyn .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-gyn .hd-nav{display:flex;gap:1.7rem;font-size:.9rem;margin-left:auto;}
.kt-gyn .hd-nav a{padding:.4rem 0;transition:color .2s;}
.kt-gyn .hd-nav a:hover{color:var(--gold-deep);}
.kt-gyn .hd-actions{display:flex;gap:.75rem;margin-left:1.5rem;}
.kt-gyn .hd-web, .kt-gyn .hd-tel{display:flex;align-items:center;gap:.6rem;padding:.6rem 1.15rem;
                  line-height:1.25;border-radius:999px;}
.kt-gyn .hd-web{background:var(--gold);color:#fff;}
.kt-gyn .hd-web:hover{background:var(--gold-deep);}
.kt-gyn .hd-tel{border:1px solid var(--gold-line);}
.kt-gyn .hd-web b, .kt-gyn .hd-tel b{font-size:.92rem;font-weight:700;letter-spacing:.03em;}
.kt-gyn .hd-web span, .kt-gyn .hd-tel span{display:block;font-size:.65rem;font-weight:400;}
.kt-gyn .hd-tel b{color:var(--gold-deep);}
/* 2026-07-27 FVのグラデーションを白へ。皮膚科・形成外科と同じ。 */
.kt-gyn .hero{position:relative;min-height:38rem;background:#fff;overflow:hidden;}
.kt-gyn .hero::before{content:"";position:absolute;inset:0;z-index:0;
    background:var(--fv-pc) right 22% / cover no-repeat;}
.kt-gyn .hero::after{content:"";position:absolute;inset:0;z-index:1;
    background:linear-gradient(to right,
      rgba(255,255,255,.95) 0%, rgba(255,255,255,.9) 20%,
      rgba(255,255,255,.72) 34%, rgba(255,255,255,.42) 48%,
      rgba(255,255,255,.14) 64%, rgba(255,255,255,0) 78%);}
.kt-gyn .hero-inner{position:relative;z-index:2;max-width:93.75rem;margin:0 auto;
              min-height:38rem;padding:0 2.5rem 0 6rem;display:flex;align-items:center;}
.kt-gyn .hero-text{width:50%;padding:4rem 0;}
.kt-gyn .hero-depts{display:inline-flex;align-items:center;gap:.9rem;font-size:.8rem;font-weight:500;
              letter-spacing:.12em;color:var(--gyn);margin:0 0 1.4rem;white-space:nowrap;}
.kt-gyn .hero-depts::before{content:"";width:30px;height:1px;background:var(--gyn);opacity:.5;}
.kt-gyn .hero-title{font-family:var(--serif);font-size:clamp(1.9rem,2.6vw,2.4rem);font-weight:500;line-height:1.65;
              letter-spacing:.04em;margin:0;color:var(--ink);}
.kt-gyn .hero-lead{font-size:.95rem;line-height:2.1;color:#5A5248;margin:1.9rem 0 2.4rem;}
.kt-gyn .hero-ctas{display:flex;gap:1rem;flex-wrap:wrap;}
.kt-gyn .btn{display:inline-flex;align-items:center;gap:.75rem;padding:1rem 1.9rem;
       line-height:1.25;border-radius:999px;transition:all .25s;}
.kt-gyn .btn .ic{width:1.25rem;height:1.25rem;flex:none;}
.kt-gyn .btn b{font-size:1rem;font-weight:600;letter-spacing:.04em;}
.kt-gyn .btn small{display:block;font-size:.68rem;font-weight:400;letter-spacing:.02em;}
.kt-gyn .btn .ar{font-size:1.1rem;line-height:1;margin-left:.2rem;transition:transform .25s;}
.kt-gyn .btn:hover .ar{transform:translateX(3px);}
.kt-gyn .btn-gold{background:var(--gold);color:#fff;box-shadow:0 6px 18px rgba(184,154,94,.28);}
.kt-gyn .btn-gold:hover{background:var(--gold-deep);box-shadow:0 8px 22px rgba(184,154,94,.36);}
.kt-gyn .btn-line{background:rgba(255,255,255,.88);border:1px solid var(--gold-line);color:var(--ink);}
.kt-gyn .btn-line b{color:var(--gold-deep);}
.kt-gyn .btn-line:hover{background:#fff;border-color:var(--gold);}
.kt-gyn .dep .gyn, .kt-gyn .dep .derm, .kt-gyn .dep .cos, .kt-gyn .mnu .gyn, .kt-gyn .mnu .derm, .kt-gyn .mnu .cos{--ac:var(--gold-deep); --ac-bg:var(--gold-soft);}
.kt-gyn .mnu{background:#fff;padding:7rem 2.5rem 7.5rem;}
.kt-gyn .mnu-inner{max-width:76rem;margin:0 auto;}
.kt-gyn .mnu-head{text-align:center;margin-bottom:2.75rem;}
.kt-gyn .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-gyn .mnu-sub{font-size:.93rem;line-height:2.05;color:var(--sub);margin:0 auto;max-width:52rem;}
.kt-gyn .mnu-panel{display:block;}
.kt-gyn #mt-gyn:checked  ~ .mnu-panel.gyn, .kt-gyn #mt-derm:checked ~ .mnu-panel.derm, .kt-gyn #mt-cos:checked  ~ .mnu-panel.cos{display:block;}
.kt-gyn .mnu-cat + .mnu-cat{margin-top:3.25rem;}
.kt-gyn .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-gyn .mnu-items{column-count:3;column-gap:2.5rem;}
.kt-gyn .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-gyn .mnu-item:hover{color:var(--ac);}
.kt-gyn .mnu-item-name{flex:1;}
.kt-gyn .mnu-badge--new{background:var(--gold);color:#fff;font-weight:700;flex:none;
                  font-size:.66rem;letter-spacing:.06em;padding:.2rem .5rem;}
.kt-gyn .mnu-arrow{flex:none;color:#C9C2B6;font-size:.95rem;transition:transform .2s;}
.kt-gyn .mnu-item:hover .mnu-arrow{transform:translateX(3px);}
.kt-gyn .mnu-more{text-align:center;margin-top:3rem;}
.kt-gyn .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-gyn .mnu-more a:hover{background:var(--gold);border-color:var(--gold);color:#fff;}
.kt-gyn .cal{background:#fff;padding:7rem 2.5rem 7.5rem;}
.kt-gyn .cal-inner{max-width:64rem;margin:0 auto;}
.kt-gyn .cal-head{text-align:center;margin-bottom:2.5rem;}
.kt-gyn .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-gyn .cal-sub{font-size:.93rem;line-height:2.05;color:var(--sub);margin:0;}
.kt-gyn .cal .gyn, .kt-gyn .cal .skin{--ac:var(--gold-deep);}
.kt-gyn .cal-months{display:flex;justify-content:center;gap:.5rem;margin-bottom:1.5rem;}
.kt-gyn .cal-mo[aria-selected="true"]{background:var(--gold);border-color:var(--gold);color:#fff;}
.kt-gyn .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-gyn .cal-mo:hover{border-color:var(--gold-line);color:var(--gold-deep);}
.kt-gyn .cal-panel{display:none;}
.kt-gyn .cal-panel.is-active{display:block;}
.kt-gyn .cal-scroll{overflow-x:auto;scrollbar-width:none;}
.kt-gyn .cal-scroll::-webkit-scrollbar{display:none;}
/* 担当科の印が最大3つ付くため、44remではセルが狭く名前と印が折り返す。
   49remに広げてある（2026-07-30） */
.kt-gyn .cal-tbl{min-width:49rem;background:#fff;border:1px solid var(--line);}
.kt-gyn .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-gyn .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);}
.kt-gyn .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-gyn .cal-dh.sun{color:#C0736F;}
.kt-gyn .cal-c{min-height:5.6rem;padding:.5rem .45rem;border-right:1px solid var(--line);
         border-bottom:1px solid var(--line);}
.kt-gyn .cal-c:nth-child(7n/**/+7){border-right:none;}
.kt-gyn .cal-c.empty{background:#FAFAF9;}
.kt-gyn .cal-c.closed{background:#FAFAF9;}
.kt-gyn .cal-d{font-size:.8rem;color:var(--sub);margin-bottom:.35rem;}
.kt-gyn .cal-c.sun .cal-d, .kt-gyn .cal-c.holi .cal-d{color:#C0736F;}
.kt-gyn .cal-dr{margin-bottom:.3rem;}
.kt-gyn .cal-dr-h{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap;}
.kt-gyn .cal-dr-n{font-size:.72rem;line-height:1.5;color:var(--ink);}
.kt-gyn .cal-dr-t{display:block;font-size:.66rem;line-height:1.5;color:var(--sub);}
/* 担当科の印（2026-07-30 追加）。色は kt_get_specialties() が持つ */
.kt-gyn .cal-dr-tags{display:inline-flex;gap:.15rem;flex:none;}
.kt-gyn .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-gyn .cal-leg{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.4rem;margin:0 0 1.1rem;}
.kt-gyn .cal-leg-i{display:inline-flex;align-items:center;gap:.45rem;font-size:.82rem;letter-spacing:.03em;}
.kt-gyn .cal-leg .cal-tag{width:1.15rem;height:1.15rem;font-size:.66rem;}
.kt-gyn .cal-closed{display:block;text-align:center;font-size:.72rem;color:#9A948A;
              padding-top:.6rem;}
.kt-gyn .cal-none{font-size:.72rem;color:#D2CCC1;}
.kt-gyn .cal-hint{display:none;}
.kt-gyn .faq-inner{max-width:56rem;margin:0 auto;}
.kt-gyn .faq-head{text-align:center;margin-bottom:2.75rem;}
.kt-gyn .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-gyn .faq-sub{font-size:.93rem;line-height:2.05;color:var(--sub);margin:0;}
.kt-gyn .faq-item{border-bottom:1px solid var(--line);}
.kt-gyn #fc-visit:checked ~ .faq-list .faq-item, .kt-gyn #fc-pay:checked ~ .faq-list .faq-item, .kt-gyn #fc-gyn:checked ~ .faq-list .faq-item, .kt-gyn #fc-skin:checked ~ .faq-list .faq-item{display:none;}
.kt-gyn #fc-visit:checked ~ .faq-list .faq-item.visit, .kt-gyn #fc-pay:checked ~ .faq-list .faq-item.pay, .kt-gyn #fc-gyn:checked ~ .faq-list .faq-item.gyn, .kt-gyn #fc-skin:checked ~ .faq-list .faq-item.skin{display:block;}
.kt-gyn .faq-list .faq-item{border-top:none;}
.kt-gyn .faq-list{border-top:1px solid var(--line);}
.kt-gyn .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-gyn .faq-sum::-webkit-details-marker{display:none;}
.kt-gyn .faq-sum:hover{color:var(--gold-deep);}
.kt-gyn .faq-q{flex:none;color:var(--gold);font-size:.9rem;}
.kt-gyn .faq-t{flex:1;line-height:1.75;}
.kt-gyn .faq-tg{flex:none;color:var(--gold);font-size:1.25rem;font-weight:300;line-height:1;
          transition:transform .3s;}
.kt-gyn .faq-item[open] .faq-tg{transform:rotate(45deg);}
.kt-gyn .faq-a{padding:0 0 1.5rem 2.4rem;font-size:.85rem;line-height:2;color:var(--sub);}
.kt-gyn .faq-more{text-align:center;margin-top:2.75rem;}
.kt-gyn .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-gyn .faq-more a:hover{background:var(--gold);border-color:var(--gold);color:#fff;}
@media (max-width:1080px){
  .kt-gyn .faq{padding:4.5rem 1.25rem 5rem;}
  .kt-gyn .faq-h2{font-size:1.6rem;}
  .kt-gyn .faq-sub{text-align:left;}
  .kt-gyn .faq-sum{padding:1.25rem 0;gap:.75rem;}
  .kt-gyn .faq-a{padding-left:2.1rem;}
  .kt-gyn .faq-more a{width:100%;justify-content:center;}
  .kt-gyn .cal{padding:4.5rem 1.25rem 5rem;}
  .kt-gyn .cal-h2{font-size:1.6rem;}
  .kt-gyn .cal-sub{text-align:left;}
  .kt-gyn .cal-scroll{margin:0 -1.25rem;padding:0 1.25rem;}
  .kt-gyn .cal-hint{display:block;text-align:center;font-size:.72rem;color:#A39B8E;margin:-.4rem 0 .7rem;}
  .kt-gyn .cal-ym{text-align:left;padding-left:1rem;}
  .kt-gyn .mnu{padding:4.5rem 1.25rem 5rem;}
  .kt-gyn .mnu-h2{font-size:1.6rem;}
  .kt-gyn .mnu-sub{text-align:left;}
  .kt-gyn .mnu-items{column-count:1;}
  .kt-gyn .mnu-more a{width:100%;justify-content:center;}
}
.kt-gyn .drc{background:#fff;padding:7rem 2.5rem 7.5rem;}
.kt-gyn .drc-inner{max-width:70rem;margin:0 auto;}
.kt-gyn .drc-head{text-align:center;margin-bottom:3.5rem;}
.kt-gyn .drc-h2{font-family:var(--serif);font-size:2.25rem;font-weight:500;letter-spacing:.06em;
          line-height:1.55;margin:0;}
.kt-gyn .drc-body{display:grid;grid-template-columns:20rem minmax(0,30rem);gap:3.25rem;
            align-items:center;justify-content:center;}
.kt-gyn .drc-photo{aspect-ratio:3/4;overflow:hidden;border-radius:4px;background:var(--gold-soft);}
.kt-gyn .drc-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.kt-gyn .drc-pos{display:inline-flex;align-items:center;gap:.75rem;font-size:.78rem;font-weight:500;
           letter-spacing:.12em;color:var(--gyn);margin:0 0 1rem;}
.kt-gyn .drc-pos::before{content:"";width:26px;height:1px;background:var(--gyn);opacity:.5;}
.kt-gyn .drc-name{font-family:var(--serif);font-size:2rem;font-weight:600;letter-spacing:.08em;
            margin:0 0 .4rem;line-height:1.3;}
.kt-gyn .drc-furi{font-size:.78rem;letter-spacing:.1em;color:var(--sub);margin:0 0 2rem;}
.kt-gyn .drc-msg{font-size:.95rem;line-height:2.15;color:var(--ink);margin:0 0 2.25rem;
           padding-left:1.4rem;border-left:2px solid var(--gold-line);}
.kt-gyn .drc-more{margin-top:0;}
.kt-gyn .drc-more a{display:inline-flex;align-items:center;gap:.8rem;font-size:.88rem;font-weight:500;
              letter-spacing:.05em;color:var(--gold-deep);padding:.9rem 2rem;
              border:1px solid var(--gold-line);transition:all .25s;}
.kt-gyn .drc-more a:hover{background:var(--gold);border-color:var(--gold);color:#fff;}
.kt-gyn .flw{background:var(--cream2);padding:7rem 2.5rem 7.5rem;}
.kt-gyn .flw-inner{max-width:60rem;margin:0 auto;}
.kt-gyn .flw-head{text-align:center;margin-bottom:3.25rem;}
.kt-gyn .flw-h2{font-family:var(--serif);font-size:2.25rem;font-weight:500;letter-spacing:.06em;
          line-height:1.55;margin:0 0 1.1rem;}
.kt-gyn .flw-sub{font-size:.92rem;line-height:2.05;color:var(--sub);margin:0;}
.kt-gyn .flw-list{position:relative;}
.kt-gyn .flw-item{display:grid;grid-template-columns:3.5rem 1fr;gap:1.5rem;align-items:start;
            padding:0 0 2.25rem;position:relative;}
.kt-gyn .flw-item:last-child{padding-bottom:0;}
.kt-gyn .flw-item::before{content:"";position:absolute;left:1.7rem;top:3.5rem;bottom:0;
                    width:1px;background:var(--gold-line);}
.kt-gyn .flw-item:last-child::before{display:none;}
.kt-gyn .flw-num{width:3.5rem;height:3.5rem;border:1.4px solid var(--gold);border-radius:50%;
           display:flex;align-items:center;justify-content:center;background:#fff;
           font-family:var(--serif);font-size:1.2rem;font-weight:600;color:var(--gold-deep);
           position:relative;z-index:1;}
.kt-gyn .flw-t{font-family:var(--serif);font-size:1.15rem;font-weight:600;letter-spacing:.04em;
         margin:.55rem 0 .5rem;}
.kt-gyn .flw-d{font-size:.86rem;line-height:2;color:var(--sub);margin:0;}
@media (max-width:1080px){
  .kt-gyn .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;}
  .kt-gyn .hd-nav::-webkit-scrollbar{display:none;}
  .kt-gyn .hd-nav a{white-space:nowrap;}
  .kt-gyn .hd-actions{margin-left:auto;}
  .kt-gyn .pc-br{display:none;}
  .kt-gyn .hero{min-height:40rem;}
  .kt-gyn .hero::before{background:var(--fv-sp) center 8% / auto 125% no-repeat;}
  .kt-gyn .hero::after{background:linear-gradient(to bottom,
      rgba(255,255,255,.5) 0%,  rgba(255,255,255,.85) 13%,
      rgba(255,255,255,.9) 32%, rgba(255,255,255,.86) 62%,
      rgba(255,255,255,.5) 79%, rgba(255,255,255,.16) 93%,
      rgba(255,255,255,.05) 100%);}
  .kt-gyn .hero-inner{min-height:0;padding:0 1.25rem;}
  .kt-gyn .hero-text{width:100%;padding:5.5rem 0 3rem;}
  .kt-gyn .hero-depts{font-size:.72rem;letter-spacing:.1em;margin-bottom:1.1rem;}
  .kt-gyn .hero-depts::before{width:22px;}
  .kt-gyn .hero-title{font-size:clamp(1.1rem,5.5vw,1.5rem);letter-spacing:.01em;line-height:1.75;}
  .kt-gyn .hero-lead{font-size:.84rem;line-height:1.95;margin:1.4rem 0 2rem;}
  .kt-gyn .hero-lead br{display:none;}
  .kt-gyn .drc{padding:4.5rem 1.25rem 5rem;}
  .kt-gyn .drc-h2{font-size:1.6rem;}
  .kt-gyn .drc-head{margin-bottom:2.25rem;}
  .kt-gyn .drc-body{grid-template-columns:1fr;gap:2rem;}
  .kt-gyn .drc-photo{max-width:17rem;margin:0 auto;}
  .kt-gyn .drc-name{font-size:1.6rem;}
  .kt-gyn .drc-furi{margin-bottom:1.5rem;}
  .kt-gyn .drc-msg{font-size:.86rem;line-height:2;padding-left:1.1rem;margin-bottom:2rem;}
  .kt-gyn .drc-more a{width:100%;justify-content:center;}
  .kt-gyn .flw{padding:4.5rem 1.25rem 5rem;}
  .kt-gyn .flw-h2{font-size:1.6rem;}
  .kt-gyn .flw-sub{font-size:.86rem;}
  .kt-gyn .flw-item{grid-template-columns:2.75rem 1fr;gap:1.1rem;padding-bottom:1.85rem;}
  .kt-gyn .flw-item::before{left:1.35rem;top:2.75rem;}
  .kt-gyn .flw-num{width:2.75rem;height:2.75rem;font-size:1rem;}
  .kt-gyn .flw-t{font-size:1.02rem;margin-top:.35rem;}
  .kt-gyn .flw-d{font-size:.8rem;line-height:1.95;}
}
@media (max-width:559px){
  .kt-gyn .hero-ctas{flex-direction:column;}
  .kt-gyn .hero-ctas .btn{width:100%;justify-content:center;}
}
