/* クリニックの窓口 by Esforco — SWELL Override CSS v1 */
@import url('https://fonts.googleapis.com/css2?family=Zen+Old+Mincho:wght@400;700;900&family=Outfit:wght@300;400;500;600;700;800&family=Noto+Sans+JP:wght@300;400;500;600;700;800;900&display=swap');

:root{
  --cl-ink:#222e3a;
  --cl-ink-l:#5a6777;
  --cl-ink-ll:#95a0ac;
  --cl-bg:#ffffff;
  --cl-bg-gray:#f5f6f8;
  --cl-bg-warm:#faf8f6;
  --cl-bg-card:#ffffff;
  --cl-border:#e4e8ec;
  --cl-border-l:#eef0f3;
  --cl-primary:#e05d6f;
  --cl-primary-h:#c94d5e;
  --cl-primary-pale:#fdf0f2;
  --cl-accent:#3a8fd4;
  --cl-accent-pale:#eef5fb;
  --cl-green:#2fa87e;
  --cl-green-pale:#edf8f3;
  --cl-dark:#1a2332;
  --cl-ff-head:'Zen Old Mincho',serif;
  --cl-ff-en:'Outfit',sans-serif;
  --cl-ff-body:'Noto Sans JP',sans-serif;
  --cl-radius:8px;
}

/* ==========================
   GLOBAL
   ========================== */
body{background:var(--cl-bg)!important;color:var(--cl-ink);font-family:var(--cl-ff-body);overflow-x:hidden!important;-webkit-font-smoothing:antialiased}
html{overflow-x:hidden!important}

/* ==========================
   HEADER 全ページ
   ========================== */
.l-header{background:#fff!important;border-bottom:1px solid var(--cl-border)!important;transition:all .3s!important}
.l-header .c-headLogo img{max-height:44px;width:auto}
.l-header__inner{max-width:1080px!important}
.c-gnav>li>a{font-size:13px!important;font-weight:500!important;color:var(--cl-ink-l)!important;font-family:var(--cl-ff-body)!important}
.c-gnav>li>a:hover{color:var(--cl-primary)!important}
.c-menuBtn{color:var(--cl-ink)!important}

/* ==========================
   FOOTER 全ページ
   ========================== */
.l-footer{background:var(--cl-dark)!important;color:#fff!important;padding:0!important;margin-top:0!important}
.l-footer__inner{max-width:1080px!important;margin:0 auto!important;padding:48px clamp(16px,3vw,40px) 20px!important}
.l-footer__widgetArea{border:none!important}
.l-footer .copyright{color:rgba(255,255,255,.12)!important;font-family:var(--cl-ff-en)!important;font-size:10px!important;letter-spacing:1px!important;padding:16px 0 0!important;border-top:1px solid rgba(255,255,255,.06)!important;margin-top:32px!important}
.l-footer .copyright a{color:rgba(255,255,255,.12)!important}
.l-footer a{color:rgba(255,255,255,.35)!important;text-decoration:none!important}
.l-footer a:hover{color:#fff!important}
.l-footer .widget,.l-footer .widget_text{color:rgba(255,255,255,.35)!important}
.l-footer .widget-title,.l-footer h3,.l-footer h4{color:rgba(255,255,255,.15)!important;font-family:var(--cl-ff-en)!important;font-size:10px!important;font-weight:600!important;letter-spacing:2px!important;text-transform:uppercase!important;border:none!important;padding:0!important;background:none!important;margin-bottom:14px!important}
.l-footer .widget-title::before,.l-footer .widget-title::after,.l-footer h3::before,.l-footer h3::after{display:none!important}
.l-footer ul{list-style:none!important;padding:0!important}
.l-footer li{padding:0!important;border:none!important;margin-bottom:7px!important}
.l-footer li::before,.l-footer li::marker{display:none!important;content:''!important}
.l-footer li a{font-size:12px!important;color:rgba(255,255,255,.35)!important}
.l-footer li a:hover{color:#fff!important}
.p-fixBtnWrap{display:none!important}

/* 全ページ共通 */
.p-breadcrumb{font-size:12px!important;color:var(--cl-ink-ll)!important;background:var(--cl-bg-gray)!important;padding:12px clamp(16px,3vw,40px)!important}
.p-breadcrumb a{color:var(--cl-ink-l)!important}
.l-topTitleArea,.c-pageTitle{background:var(--cl-bg-gray)!important}
.c-pageTitle .c-pageTitle__ttl{font-family:var(--cl-ff-head)!important;letter-spacing:.04em!important}
.l-mainContent,.l-article{background:var(--cl-bg)!important}
.post_content h2{font-family:var(--cl-ff-head)!important;letter-spacing:.04em!important}
.post_content a{color:var(--cl-primary)!important}
.-menuOpen .c-spMenu{background:var(--cl-bg)!important}
.c-spMenu a{color:var(--cl-ink)!important}

/* ==========================
   TOP PAGE — SWELLラッパー完全解除
   ========================== */
body.home #content,body.home #content.l-content,body.home #content.l-container,body.home .l-content.l-container,body.home #main_content,body.home main,body.home .l-mainContent,body.home .l-mainContent__inner,body.home .l-content__main,body.home .l-article,body.home .post_content{max-width:100%!important;width:100%!important;padding:0!important;margin:0!important;overflow:visible!important;float:none!important}
body.home .l-content{display:block!important;gap:0!important}
body.home .l-content__main{flex:1 1 100%!important}
body.home .l-sidebar,body.home #sidebar{display:none!important}
body.home .l-footer{margin-top:0!important}
body.home .l-body,body.home .l-bodyContent,body.home #wrapper{margin-bottom:0!important;padding-bottom:0!important}
body.home .p-breadcrumb,body.home .c-pageTitle,body.home .l-topTitleArea,body.home .p-articleMetas,body.home .p-mainVisual,body.home .w-frontTop,body.home .w-frontBottom,body.home .p-homeContent,body.home .p-beforeFooter,body.home .w-beforeFooter,body.home .l-fixHeader,body.home .c-mvBg{display:none!important}

/* 全セクション100vw */
.cl-sec,.cl-cta{width:100vw!important;position:relative!important;left:50%!important;right:50%!important;margin-left:-50vw!important;margin-right:-50vw!important;margin-top:0!important;margin-bottom:0!important;box-sizing:border-box!important}

/* ==========================
   SECTION LABELS
   ========================== */
.cl-h{font-family:var(--cl-ff-head)!important;font-size:clamp(20px,2.6vw,28px)!important;font-weight:900!important;line-height:1.45!important;letter-spacing:.04em!important;margin:0!important;border:none!important;padding:0!important;background:none!important;color:inherit!important}
.cl-h::before,.cl-h::after{display:none!important}
.cl-hd{margin-bottom:clamp(28px,4vw,40px)}
.cl-hd.ct{text-align:center}
.cl-sec{padding:clamp(48px,7vw,80px) clamp(16px,3vw,40px)!important;background:var(--cl-bg)}
.cl-bg-gray{background:var(--cl-bg-gray)!important}

/* ==========================
   HERO
   ========================== */
.cl-hero{position:relative;overflow:hidden;width:100vw;left:50%;margin-left:-50vw;margin-top:-80px!important;z-index:1;background:linear-gradient(135deg,#fdf6f1 0%,#fef9f7 40%,#f0f6fb 100%)}
.cl-hero-bg{position:absolute;inset:0;z-index:0}
.cl-hero-bg::after{content:'';position:absolute;top:-50%;right:-20%;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(224,93,111,.06),transparent 70%)}
.cl-hero-inner{position:relative;max-width:1080px;margin:0 auto;padding:calc(64px + clamp(48px,6vw,72px)) clamp(16px,3vw,40px) clamp(48px,6vw,72px);text-align:center;z-index:1}
.cl-hero-catch{font-family:var(--cl-ff-head)!important;font-size:clamp(22px,3.5vw,34px)!important;font-weight:900!important;line-height:1.5!important;letter-spacing:.04em!important;margin:0 0 16px!important;border:none!important;padding:0!important;background:none!important;color:var(--cl-ink)!important}
.cl-hero-catch::before,.cl-hero-catch::after{display:none!important}
.cl-hero-catch em{font-style:normal;color:var(--cl-primary)}
.cl-hero-desc{color:var(--cl-ink-l);font-size:14px;line-height:1.8}

/* ==========================
   SEARCH
   ========================== */
.cl-srch{position:relative;z-index:10;margin-top:-20px;padding:0 clamp(16px,3vw,40px);width:100vw;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;box-sizing:border-box;margin-bottom:0!important}
.cl-srch-box{background:var(--cl-bg-card);padding:24px 28px;box-shadow:0 4px 24px rgba(0,0,0,.06),0 1px 4px rgba(0,0,0,.03);max-width:780px;margin:0 auto;border-radius:12px}
.cl-srch-title{font-size:15px;font-weight:700;margin-bottom:16px;display:flex;align-items:center;gap:8px}
.cl-srch-title svg{color:var(--cl-primary)}
.cl-srch-row{display:flex;gap:8px;align-items:flex-end}
.cl-srch-f{flex:1}
.cl-srch-f label{display:block;font-size:11px;font-weight:600;color:var(--cl-ink-l);margin-bottom:4px}
.cl-srch-f select,.cl-srch-f input[type="text"]{width:100%;padding:10px 12px;border:1.5px solid var(--cl-border)!important;border-radius:6px!important;font-size:13px;font-family:var(--cl-ff-body);color:var(--cl-ink);background:var(--cl-bg-gray);transition:.2s;appearance:none;-webkit-appearance:none;box-shadow:none!important;outline:none}
.cl-srch-f select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6' fill='%235a6777'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:28px;cursor:pointer}
.cl-srch-f input:focus,.cl-srch-f select:focus{border-color:var(--cl-primary)!important;box-shadow:0 0 0 3px var(--cl-primary-pale)!important}
.cl-srch-btn{background:var(--cl-primary);color:#fff;border:none;padding:10px 28px;font-size:13px;font-weight:700;border-radius:6px!important;cursor:pointer;transition:.2s;white-space:nowrap;font-family:var(--cl-ff-body)}
.cl-srch-btn:hover{background:var(--cl-primary-h)}
.cl-srch-tags{margin-top:12px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.cl-srch-tags>span{font-size:11px;font-weight:600;color:var(--cl-ink-ll)}
.cl-srch-tags a{font-size:11px;color:var(--cl-ink-l)!important;padding:2px 10px;border:1px solid var(--cl-border);border-radius:100px;transition:.2s;font-weight:500;text-decoration:none!important}
.cl-srch-tags a:hover{border-color:var(--cl-primary);color:var(--cl-primary)!important;background:var(--cl-primary-pale)}

/* ==========================
   APPROACH (3-TAB)
   ========================== */
.cl-approach{max-width:1080px;margin:0 auto}
.cl-approach-tabs{display:flex;border-bottom:2px solid var(--cl-border);margin-bottom:0}
.cl-approach-tab{flex:1;text-align:center;padding:14px 12px;font-size:14px;font-weight:700;color:var(--cl-ink-l);border:none;background:none;border-bottom:3px solid transparent;margin-bottom:-2px;cursor:pointer;font-family:var(--cl-ff-body);transition:.2s}
.cl-approach-tab:hover{color:var(--cl-primary)}
.cl-approach-tab.active{color:var(--cl-primary);border-bottom-color:var(--cl-primary)}
.cl-approach-panel{display:none;padding:36px 0 0}
.cl-approach-panel.active{display:block}
.cl-panel-intro{text-align:center;color:var(--cl-ink-l);font-size:13px;margin-bottom:28px}
.cl-panel-more{text-align:center;margin-top:28px}
.cl-link-more{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--cl-primary)!important;padding:10px 24px;border:1.5px solid var(--cl-primary)!important;border-radius:6px;transition:.2s;text-decoration:none!important}
.cl-link-more:hover{background:var(--cl-primary);color:#fff!important}

/* ==========================
   SYMPTOMS
   ========================== */
.cl-symptom-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.cl-symptom-card{background:var(--cl-bg-gray);border:1px solid var(--cl-border-l);border-radius:var(--cl-radius);padding:20px 16px;text-align:center;transition:.25s;display:block;text-decoration:none!important;color:var(--cl-ink)!important}
.cl-symptom-card:hover{background:#fff;border-color:var(--cl-primary);box-shadow:0 4px 16px rgba(224,93,111,.08);transform:translateY(-2px);color:var(--cl-ink)!important}
.cl-symptom-icon{width:48px;height:48px;border-radius:50%;background:#fff;margin:0 auto 10px;display:grid;place-items:center;font-size:22px;border:1px solid var(--cl-border-l)}
.cl-symptom-card:hover .cl-symptom-icon{background:var(--cl-primary-pale);border-color:transparent}
.cl-symptom-name{font-size:14px;font-weight:700;margin-bottom:4px}
.cl-symptom-list{margin-top:10px;text-align:left}
.cl-symptom-list span{display:block;font-size:12px;color:var(--cl-ink-l);padding:2px 0}
.cl-symptom-list span::before{content:'›';margin-right:4px;color:var(--cl-primary);font-weight:600}

/* ==========================
   DISEASE
   ========================== */
.cl-disease-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.cl-disease-card{background:var(--cl-bg-gray);border:1px solid var(--cl-border-l);border-radius:var(--cl-radius);padding:20px 16px;transition:.25s}
.cl-disease-card:hover{background:#fff;border-color:var(--cl-accent);box-shadow:0 4px 16px rgba(58,143,212,.08);transform:translateY(-2px)}
.cl-disease-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.cl-disease-icon{width:36px;height:36px;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:18px;border:1px solid var(--cl-border-l);flex-shrink:0}
.cl-disease-card:hover .cl-disease-icon{background:var(--cl-accent-pale);border-color:transparent}
.cl-disease-name{font-size:14px;font-weight:700}
.cl-disease-list a{display:block;font-size:12px;color:var(--cl-ink-l)!important;padding:3px 0;transition:.15s;text-decoration:none!important}
.cl-disease-list a::before{content:'›';margin-right:4px;color:var(--cl-accent);font-weight:600}
.cl-disease-list a:hover{color:var(--cl-accent)!important}

/* ==========================
   DEPARTMENT GROUPS
   ========================== */
.cl-dept-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.cl-dept-group{background:var(--cl-bg-gray);border:1px solid var(--cl-border-l);border-radius:var(--cl-radius);padding:20px}
.cl-dept-title{font-size:13px;font-weight:700;margin-bottom:10px;padding-bottom:8px;border-bottom:2px solid var(--cl-border);display:flex;align-items:center;gap:6px}
.cl-dot{width:8px;height:8px;border-radius:50%;background:var(--cl-green)}
.cl-dept-list{display:flex;flex-wrap:wrap;gap:6px}
.cl-dept-list a{font-size:12px;color:var(--cl-ink-l)!important;padding:4px 12px;background:#fff;border:1px solid var(--cl-border);border-radius:100px;transition:.2s;text-decoration:none!important}
.cl-dept-list a:hover{border-color:var(--cl-green);color:var(--cl-green)!important;background:var(--cl-green-pale)}

/* ==========================
   AREA
   ========================== */
.cl-area-tabs{display:flex;gap:0;border-bottom:2px solid var(--cl-border);margin-bottom:20px;max-width:1080px;margin-left:auto;margin-right:auto;overflow-x:auto;scrollbar-width:none}
.cl-area-tabs::-webkit-scrollbar{display:none}
.cl-area-tab{padding:10px 18px;font-size:13px;font-weight:600;color:var(--cl-ink-l);cursor:pointer;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-2px;transition:.2s;background:none;border-top:none;border-left:none;border-right:none;font-family:var(--cl-ff-body)}
.cl-area-tab:hover,.cl-area-tab.active{color:var(--cl-primary);border-bottom-color:var(--cl-primary)}
.cl-area-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;max-width:1080px;margin:0 auto}
.cl-area-a{display:flex;align-items:center;justify-content:center;padding:10px;background:var(--cl-bg-card);border:1px solid var(--cl-border);border-radius:6px;font-size:13px;font-weight:600;transition:.2s;text-decoration:none!important;color:var(--cl-ink)!important}
.cl-area-a:hover{border-color:var(--cl-primary);color:var(--cl-primary)!important;background:var(--cl-primary-pale)}

/* ==========================
   DOCTOR CARDS
   ========================== */
.cl-doc-scroll{display:flex;gap:16px;overflow-x:auto;padding:0 clamp(16px,3vw,40px) 20px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.cl-doc-scroll::-webkit-scrollbar{display:none}
.cl-doc-card{flex-shrink:0;width:260px;scroll-snap-align:start;background:var(--cl-bg-gray);border:1px solid var(--cl-border-l);border-radius:var(--cl-radius);overflow:hidden;transition:.25s;text-decoration:none!important;color:var(--cl-ink)!important;display:block}
.cl-doc-card:hover{border-color:var(--cl-primary);box-shadow:0 4px 16px rgba(0,0,0,.06);transform:translateY(-2px);color:var(--cl-ink)!important}
.cl-doc-img{aspect-ratio:4/3;background:linear-gradient(135deg,#e8eef4,#d8dee6);display:grid;place-items:center;position:relative;overflow:hidden;background-size:cover;background-position:center}
.cl-doc-placeholder{font-size:40px;opacity:.3}
.cl-doc-sample{position:absolute;bottom:8px;right:8px;font-size:9px;font-weight:600;color:#fff;background:rgba(0,0,0,.35);padding:2px 8px;border-radius:4px;font-family:var(--cl-ff-en)}
.cl-doc-body{padding:14px 16px}
.cl-doc-dept{display:inline-block;font-size:10px;font-weight:600;color:var(--cl-primary);background:var(--cl-primary-pale);padding:2px 8px;border-radius:4px;margin-bottom:6px}
.cl-doc-name{font-family:var(--cl-ff-head);font-size:15px;font-weight:700;margin-bottom:4px}
.cl-doc-clinic{font-size:12px;color:var(--cl-ink-l);margin-bottom:4px}
.cl-doc-area{font-size:11px;color:var(--cl-ink-ll)}

/* ==========================
   BLOG
   ========================== */
.cl-blog-scroll{display:flex;gap:16px;overflow-x:auto;padding:0 clamp(16px,3vw,40px) 20px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.cl-blog-scroll::-webkit-scrollbar{display:none}
.cl-blog-card{flex-shrink:0;width:280px;scroll-snap-align:start;transition:.25s;text-decoration:none!important;color:var(--cl-ink)!important;display:block;background:var(--cl-bg-card);border:1px solid var(--cl-border-l);border-radius:var(--cl-radius);overflow:hidden}
.cl-blog-card:hover{border-color:var(--cl-primary);box-shadow:0 4px 16px rgba(0,0,0,.06);transform:translateY(-2px);color:var(--cl-ink)!important}
.cl-blog-card:hover .cl-blog-img-in{transform:scale(1.04)}
.cl-blog-img{aspect-ratio:16/9;overflow:hidden}
.cl-blog-img-in{width:100%;height:100%;background-size:cover;background-position:center;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.cl-blog-date{font-family:var(--cl-ff-en);font-size:11px;color:var(--cl-ink-ll);letter-spacing:.5px;margin:14px 16px 4px}
.cl-blog-t{font-size:13px;font-weight:700;line-height:1.6;padding:0 16px;margin-bottom:10px}
.cl-blog-cat{display:inline-block;margin:0 16px 16px;font-size:10px;color:var(--cl-accent);border:1px solid var(--cl-accent);padding:1px 8px;border-radius:100px}
.cl-more{display:flex;justify-content:center;margin-top:20px}
.cl-more a{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--cl-ink)!important;padding:10px 0;border-bottom:1.5px solid var(--cl-primary);transition:.3s;text-decoration:none!important}
.cl-more a:hover{color:var(--cl-primary)!important;border-color:var(--cl-primary)}

/* ==========================
   CTA
   ========================== */
.cl-cta{text-align:center;color:#fff;padding:clamp(48px,7vw,80px) clamp(16px,3vw,40px)!important;position:relative;overflow:hidden;background:linear-gradient(135deg,#1a2332 0%,#1e3a54 50%,#1a3d3a 100%)!important}
.cl-cta-bg{position:absolute;inset:0;background-size:cover;background-position:center}
.cl-cta-bg::after{content:'';position:absolute;inset:0;background:rgba(26,35,50,.85)}
.cl-cta-in{position:relative;z-index:2;max-width:800px;margin:0 auto}
.cl-cta-h{font-family:var(--cl-ff-head)!important;font-size:clamp(20px,3vw,30px)!important;font-weight:900!important;letter-spacing:.06em!important;line-height:1.55!important;margin:0 0 12px 0!important;color:#fff!important;border:none!important;padding:0!important;background:none!important}
.cl-cta-h::before,.cl-cta-h::after{display:none!important}
.cl-cta-p{font-size:13px;color:rgba(255,255,255,.4);margin-bottom:28px}
.cl-cta-btns{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.cl-cta-pr{display:inline-flex;align-items:center;gap:6px;background:var(--cl-primary);color:#fff!important;padding:13px 36px;font-size:14px;font-weight:700;border-radius:6px;text-decoration:none!important;transition:.25s;border:none!important}
.cl-cta-pr:hover{background:var(--cl-primary-h);transform:translateY(-2px);box-shadow:0 8px 24px rgba(224,93,111,.3);color:#fff!important}
.cl-cta-sc{display:inline-flex;align-items:center;color:rgba(255,255,255,.6)!important;padding:13px 32px;font-size:13px;font-weight:500;border:1.5px solid rgba(255,255,255,.18)!important;border-radius:6px;text-decoration:none!important;transition:.25s}
.cl-cta-sc:hover{border-color:rgba(255,255,255,.5)!important;color:#fff!important;background:rgba(255,255,255,.04)}

/* ==========================
   COMPANY
   ========================== */
.cl-company{max-width:680px;margin:0 auto;width:100%;border-collapse:collapse}
.cl-company tr{border-bottom:1px solid var(--cl-border)!important}
.cl-company th{text-align:left;padding:14px 20px 14px 0;font-size:12px;font-weight:600;color:var(--cl-ink-l);width:120px;vertical-align:top}
.cl-company td{padding:14px 0;font-size:13px;line-height:1.9}
.cl-company td a{color:var(--cl-primary)!important}

/* ==========================
   RESPONSIVE
   ========================== */
@media(max-width:768px){
  .cl-hero-inner{padding-top:calc(64px + 40px);padding-bottom:40px}
  .cl-srch-row{flex-direction:column}
  .cl-srch-box{padding:20px}
  .cl-symptom-grid,.cl-disease-grid{grid-template-columns:repeat(2,1fr)}
  .cl-dept-grid{grid-template-columns:1fr}
  .cl-approach-tab{font-size:12px;padding:10px 8px}
  .cl-doc-card{width:240px}
  .cl-blog-card{width:250px}
  .cl-cta-btns{flex-direction:column;align-items:center}
  .cl-area-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:480px){
  .cl-hero{margin-top:-64px}
  .cl-symptom-grid,.cl-disease-grid{grid-template-columns:1fr 1fr}
  .cl-area-grid{grid-template-columns:repeat(2,1fr)}
}
