/*
Theme Name: 岡本耳鼻咽喉科医院
Theme URI: http://etsureiokamoto.local
Description: 岡本耳鼻咽喉科医院 オリジナルテーマ（Figma忠実再現・手組み・レスポンシブ）。
Author: Novus Digital
Version: 1.0.13
Text Domain: okamoto-ent
*/


/* ============ 共有＋TOP（index） ============ */
:root{
  --white:#FFFFFF; --beige:#FAFBFA; --palegreen:#F5FAF8; --accent:#DDEEE8; --border:#E6EBE8;
  --green:#5C9E8A; --dark:#4A8876; --cta:#7BBDA6;
  --body:#4E5652; --heading:#31403A; --light:#8A9490;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{font-family:"Noto Sans JP",sans-serif;color:var(--body);background:var(--white);line-height:1.6;}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
.pc-only{display:block;} .sp-only{display:none;}
/* 音声読み上げ用（見出しの代替テキスト。画面上には表示しない） */
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0;}

/* ===== arrow link ===== */
.arrowlink{display:inline-flex;gap:10px;align-items:center;justify-content:center;
  font-weight:700;color:var(--green);font-size:16px;line-height:1.6;}
.arrowlink .tri{width:10px;height:10px;position:relative;transform:rotate(90deg);}
.arrowlink .tri svg{width:8.66px;height:7.5px;position:absolute;top:1.25px;left:0.67px;}

/* ===== section title ===== */
.sec-title{width:224px;height:89px;position:relative;margin:0 auto;}
.sec-title .ja{position:absolute;top:0;left:0;right:0;text-align:center;font-weight:700;color:var(--body);font-size:32px;line-height:1.6;}
.sec-title .en{position:absolute;top:51px;left:0;right:0;text-align:center;font-weight:400;color:var(--green);font-size:14px;line-height:1.6;letter-spacing:1.96px;}
.sec-title .bar{position:absolute;top:88px;left:92px;width:40px;height:2px;background:var(--green);}

/* ===== HEADER ===== */
.header{width:100%;background:var(--beige);position:sticky;top:0;z-index:100;}
.header-top{display:flex;align-items:center;justify-content:space-between;padding:20px 120px;max-width:1440px;margin:0 auto;}
.logo{font-weight:700;color:var(--body);font-size:32px;line-height:1.6;white-space:nowrap;}
.contact{display:flex;flex-direction:column;align-items:flex-end;gap:4px;width:auto;}
.contact .addr{font-weight:400;color:var(--dark);font-size:18px;line-height:1.6;letter-spacing:3.6px;text-align:right;width:100%;white-space:nowrap;}
.contact .tel{display:flex;gap:10px;align-items:center;justify-content:flex-end;width:100%;}
.contact .tel img{width:32px;height:36px;object-fit:cover;}
.contact .tel span{font-weight:700;color:var(--dark);font-size:32px;line-height:1.6;letter-spacing:6.4px;white-space:nowrap;}
.gnav{background:var(--green);display:flex;justify-content:center;padding:15px 28px 15px 52px;}
.gnav ul{width:1360px;max-width:100%;display:flex;gap:82px;list-style:none;}
.gnav a{font-weight:700;color:#fff;font-size:16px;line-height:1.6;letter-spacing:0.64px;white-space:nowrap;}
/* hamburger */
.hamburger{width:46px;cursor:pointer;flex-shrink:0;text-align:center;}
.hamburger .bars{position:relative;display:block;width:24px;height:18px;margin:0 auto;}
.hamburger .bars span{position:absolute;left:0;width:24px;height:2px;background:var(--body);}
.hamburger .bars span:nth-child(1){top:0;} .hamburger .bars span:nth-child(2){top:8px;} .hamburger .bars span:nth-child(3){top:16px;}
.hamburger .lbl{display:block;margin-top:6px;font-size:11px;font-weight:700;letter-spacing:0.5px;line-height:1;color:var(--dark);white-space:nowrap;}

/* ===== SPモバイルメニュー（オーバーレイ） ===== */
.m-menu{position:fixed;inset:0;z-index:200;background:var(--green);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:36px;opacity:0;visibility:hidden;transform:translateY(-12px);transition:opacity .3s ease,transform .3s ease,visibility .3s;}
.m-menu.open{opacity:1;visibility:visible;transform:translateY(0);}
.m-menu ul{list-style:none;display:flex;flex-direction:column;align-items:center;gap:34px;}
.m-menu a{color:#fff;font-weight:700;font-size:22px;letter-spacing:1px;}
.m-close{position:absolute;top:26px;right:24px;width:34px;height:34px;background:none;border:0;cursor:pointer;}
.m-close span{position:absolute;top:50%;left:0;width:34px;height:2px;background:#fff;}
.m-close span:nth-child(1){transform:rotate(45deg);}
.m-close span:nth-child(2){transform:rotate(-45deg);}

/* ===== FV ===== */
.fv{position:relative;height:672px;width:100%;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;padding:0 0 80px 120px;}
.fv .bg{position:absolute;inset:0;z-index:0;pointer-events:none;}
.fv .slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.2s ease;}
.fv .slide.is-active{opacity:1;}
.fv .box{position:relative;z-index:1;background:rgba(49,64,58,0.86);backdrop-filter:blur(1.5px);color:#fff;display:flex;flex-direction:column;gap:19px;padding:5px 11px;}
.fv .h1{font-weight:700;font-size:40px;line-height:1.67;letter-spacing:1.6px;white-space:nowrap;text-shadow:0 0 5.5px #4c6165;}
.fv .h2{font-weight:700;font-size:32px;line-height:1.39;letter-spacing:1.28px;width:456px;text-align:justify;text-shadow:0 0 5.5px rgba(76,97,101,0.25);}
.fv .lead{font-weight:500;font-size:24px;line-height:1.6;letter-spacing:0.72px;text-shadow:0 0 5.5px rgba(76,97,101,0.25);}
.fv .dots{position:absolute;z-index:2;bottom:30px;left:50%;transform:translateX(-50%);display:flex;gap:16px;align-items:center;}
.fv .dot{width:11px;height:11px;border-radius:50%;border:0;padding:0;cursor:pointer;background:rgba(255,255,255,0.55);transition:background .3s,transform .3s;}
.fv .dot.is-active{background:#fff;transform:scale(1.15);}

/* ===== お知らせ・診療時間 ===== */
.ns{background:var(--border);display:flex;justify-content:center;padding:80px 20px;}
.ns-inner{width:940px;max-width:100%;display:flex;align-items:center;justify-content:space-between;gap:30px;}
.news-block{width:440px;max-width:100%;display:flex;flex-direction:column;gap:35px;align-items:center;}
.news-list{width:100%;max-width:441px;display:flex;flex-direction:column;gap:24px;}
.news-items{width:100%;display:flex;flex-direction:column;gap:16px;font-size:16px;line-height:1.6;}
.news-item{display:flex;gap:23px;align-items:flex-start;}
.news-item .date{color:var(--light);width:81px;flex-shrink:0;}
.news-item .txt{color:var(--body);}
.news-more{display:flex;justify-content:flex-start;}
.sched-block{display:flex;flex-direction:column;align-items:center;gap:20px;}
.sched-title{display:none;}

/* ===== schedule table ===== */
.schedule{width:468px;max-width:100%;background:var(--beige);border:1px solid var(--light);border-collapse:collapse;table-layout:fixed;}
.schedule th,.schedule td{border:1px solid var(--light);text-align:center;color:var(--heading);}
.schedule col.label{width:30%;} .schedule col.day{width:10%;}
.schedule thead th{height:40px;background:var(--accent);font-weight:700;font-size:16px;}
.schedule thead th.lbl{font-weight:700;font-size:16px;text-align:left;padding-left:38px;}
.schedule tbody tr{height:79px;}
.schedule tbody th{font-weight:700;font-size:14px;text-align:left;padding-left:18px;white-space:nowrap;}
.schedule .mark{display:inline-block;width:20px;height:20px;border-radius:50%;background:var(--green);}
.schedule .rest{font-weight:400;font-size:16px;color:var(--heading);}

/* ===== 診療案内 ===== */
.medical{background:var(--beige);padding:80px 20px;display:flex;flex-direction:column;gap:45px;align-items:center;}
.med-cards{display:flex;gap:45px;flex-wrap:wrap;justify-content:center;}
.med-card{width:283px;background:var(--beige);filter:drop-shadow(0 0 2.5px rgba(0,0,0,0.15));display:flex;flex-direction:column;}
.med-card .photo{width:100%;height:239px;overflow:hidden;}
.med-card .photo img{width:100%;height:100%;object-fit:cover;}
.med-card .body{flex:1;display:flex;flex-direction:column;align-items:center;gap:15px;padding:15px 25px;}
.med-card .ttl{font-weight:700;color:var(--dark);font-size:24px;text-align:center;width:100%;}
.med-card .desc{font-weight:400;color:var(--heading);font-size:18px;text-align:justify;width:100%;}
.kids{position:relative;width:940px;max-width:100%;height:235px;overflow:hidden;filter:drop-shadow(0 0 2.5px rgba(0,0,0,0.15));}
.kids .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.kids .bg-sp{display:none;}
.kids .head{position:absolute;left:49px;top:51px;display:flex;gap:7px;align-items:center;}
.kids .head img{width:57px;height:57px;object-fit:contain;}
.kids .head p{font-weight:700;color:var(--dark);font-size:24px;white-space:nowrap;}
.kids .lead{position:absolute;left:49px;top:125px;right:492px;font-weight:400;color:var(--heading);font-size:18px;text-align:justify;line-height:1.6;}

/* ===== 当院の特徴 ===== */
.features{background:var(--palegreen);padding:80px 20px;display:flex;justify-content:center;}
.feat-inner{width:940px;max-width:100%;display:flex;flex-direction:column;gap:45px;align-items:center;}
.feat-grid{display:flex;flex-wrap:wrap;gap:20px;justify-content:center;width:100%;}
.feat-card{width:460px;max-width:100%;background:var(--accent);padding:30px;display:flex;justify-content:center;}
.feat-card .inner{width:353px;max-width:100%;display:flex;flex-direction:column;gap:25px;align-items:center;}
.feat-card .photo{width:100%;height:216px;overflow:hidden;background:#fff;}
.feat-card .photo img{width:100%;height:100%;object-fit:cover;}
.feat-card .ttl{font-weight:700;color:var(--dark);font-size:24px;text-align:center;line-height:1.6;}
.feat-card .desc{font-weight:400;color:var(--heading);font-size:18px;text-align:justify;line-height:1.6;width:100%;}
.feat-card .desc.b{font-weight:700;}

/* ===== band ===== */
.band{position:relative;width:100%;overflow:hidden;}
.band::after{content:"";position:absolute;inset:0;background:rgba(56,70,65,0.45);}
.band img{width:100%;height:100%;object-fit:cover;}
.band1{height:189px;} .band2{height:188px;}

/* ===== ごあいさつ ===== */
.greeting{background:var(--palegreen);padding:80px 20px;display:flex;flex-direction:column;align-items:center;gap:35px;}
.greeting .inner{width:938px;max-width:100%;display:flex;flex-direction:column;align-items:center;gap:35px;}
.greeting .body{font-weight:400;color:var(--heading);font-size:16px;text-align:justify;width:100%;line-height:1.6;white-space:pre-wrap;}

/* ===== FOOTER ===== */
.footer{width:100%;display:flex;flex-direction:column;}
.f-info{background:var(--border);padding:80px 250px;display:flex;order:2;}
.f-info-inner{width:940px;max-width:100%;margin:0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:30px;flex-wrap:wrap;}
.f-info-left{min-height:198px;display:flex;flex-direction:column;justify-content:space-between;gap:20px;}
.f-clinic{display:flex;flex-direction:column;gap:6px;color:var(--heading);}
.f-clinic .name .sm{font-size:18px;} .f-clinic .name .lg{font-size:24px;}
.f-clinic .addr{font-size:16px;line-height:1.6;}
.f-tel{background:#fff;padding:10px 30px;display:inline-flex;flex-direction:column;align-items:center;align-self:flex-start;}
.f-tel .lbl{font-size:16px;color:var(--heading);white-space:nowrap;}
.f-tel .num{display:flex;gap:5px;align-items:center;justify-content:flex-end;width:100%;}
.f-tel .num img{width:22px;height:26px;object-fit:cover;}
.f-tel .num span{font-weight:700;color:var(--dark);font-size:24px;}
.f-map{width:100%;height:371px;background:#f5f5f5;overflow:hidden;order:3;}
.f-map img{width:100%;height:100%;object-fit:cover;}
.f-nav{background:var(--body);min-height:71px;display:flex;align-items:center;justify-content:center;order:4;padding:12px;}
.f-nav ul{display:flex;gap:43px;list-style:none;flex-wrap:wrap;justify-content:center;}
.f-nav a{font-weight:700;color:#fff;font-size:16px;letter-spacing:0.64px;white-space:nowrap;}
.f-copy{background:var(--dark);height:39px;display:flex;align-items:center;justify-content:center;order:5;}
.f-copy p{color:var(--accent);font-size:12px;line-height:1.6;text-align:center;}
.band2{order:1;}

/* ===== CTA ===== */
.cta{background:var(--beige);min-height:110px;display:flex;align-items:center;justify-content:center;gap:20px;padding:21px 40px;}
.cta .btn{background:var(--cta);display:flex;align-items:center;justify-content:center;height:68px;}
.cta .btn span{font-weight:700;color:#fff;font-size:18px;line-height:1.6;}
.cta .btn-web{width:635px;max-width:100%;}
.cta .btn-tel{display:none;}

/* ===== 下部固定フロート（WEB予約） ===== */
/* 2026-07-27 えつれい様ご指示: Figmaの CTA-PC と同じ白地の帯（少し透過）＋ボタン幅635px */
.float-reserve{position:fixed;left:0;right:0;bottom:0;z-index:90;display:flex;align-items:center;justify-content:center;gap:20px;
  background:rgba(250,251,250,0.70);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  min-height:110px;padding:21px 40px;box-shadow:0 -4px 16px rgba(49,64,58,0.10);pointer-events:auto;}
.float-reserve a{pointer-events:auto;background:var(--cta);color:#fff;font-weight:700;font-size:18px;line-height:1.6;
  width:635px;max-width:100%;height:68px;display:flex;align-items:center;justify-content:center;
  white-space:nowrap;transition:background .2s ease;}
.float-reserve a:hover{background:var(--green);}
.float-reserve .fr-tel{display:none;} /* PCはWEB予約のみ（指示書メモ） */
/* 末尾CTAが見えている間は隠す（同じボタンの重なり回避・site.jsで付与） */
.float-reserve{transition:opacity .25s ease, transform .25s ease;}
.float-reserve.is-hidden{opacity:0;transform:translateY(120%);pointer-events:none;}
@media (max-width:767px){
  /* SPは電話とWEBの2つを並べる（指示書メモ）＝ボタンが全幅を埋めるので白地の帯は出さない */
  .float-reserve{padding:0;gap:0;min-height:0;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;}
  .float-reserve a{flex:1;width:auto;height:auto;text-align:center;padding:15px 8px;font-size:15px;box-shadow:0 -4px 16px rgba(49,64,58,0.22);}
  .float-reserve .fr-tel{display:block;background:var(--green);}
  .float-reserve .fr-tel:hover{background:var(--cta);}
}

/* =========================================================
   SP  (max-width 767px)  — Figma TOP-SP 準拠
   ========================================================= */
@media (max-width:767px){
  .pc-only{display:none;} .sp-only{display:block;}

  /* header（SPはFigma見本どおり緑ヘッダー＋白文字） */
  .header{background:var(--green);}
  .header-top{padding:17px 13px 16px 20px;}
  .logo{font-size:18px;color:#fff;}
  .hamburger .bars span{background:#fff;}
  .hamburger .lbl{color:#fff;}
  .gnav{display:none;}

  /* section titles (見本準拠・中央) */
  .sec-title{width:220px;height:74px;}
  .sec-title .ja{font-size:22px;}
  .sec-title .en{top:40px;font-size:12px;letter-spacing:1.68px;}
  .sec-title .bar{top:70px;left:50%;transform:translateX(-50%);}

  /* FV */
  .fv{height:237px;padding:20px;}
  .fv .bg img{top:-18.21%;height:123.42%;}
  .fv .box{width:296px;max-width:100%;gap:0;justify-content:space-between;height:auto;min-height:111px;padding:5px;}
  .fv .h1{font-size:22px;line-height:1.4;letter-spacing:0.88px;white-space:normal;width:264px;max-width:100%;}
  .fv .h2{font-size:18px;line-height:1.4;letter-spacing:0.72px;width:auto;text-align:left;}
  .fv .box>div:first-child{margin-bottom:8px;}
  .fv .lead{font-size:14px;line-height:1.2;font-weight:400;width:279px;max-width:100%;}
  .fv .dots{bottom:10px;gap:10px;}
  .fv .dot{width:7px;height:7px;}

  /* お知らせ / 診療時間 : スタック・順序入替 */
  .ns{padding:0;}
  .ns-inner{flex-direction:column;width:100%;gap:0;align-items:stretch;}
  .sched-block{order:0;background:var(--beige);padding:40px 40px;gap:20px;}
  .news-block{order:1;background:var(--border);padding:40px;gap:20px;width:100%;}
  .sched-title{display:block;}
  .news-list{max-width:100%;}
  .schedule{width:100%;max-width:320px;}
  .schedule col.label{width:35%;}
  .schedule thead th{height:32px;font-size:13px;}
  .schedule thead th.lbl{font-size:13px;padding-left:8px;}
  .schedule tbody tr{height:44px;}
  .schedule tbody th{font-size:11px;letter-spacing:-0.3px;padding-left:6px;white-space:nowrap;}
  .schedule .mark{width:16px;height:16px;}
  .schedule .rest{font-size:14px;}
  .news-items{font-size:15px;}
  .news-item .date{width:74px;}

  /* 診療案内 : 縦積み・小児カード化 */
  .medical{padding:40px 20px;gap:30px;}
  .med-cards{flex-direction:column;gap:25px;width:100%;align-items:stretch;}
  .med-card{width:100%;}
  .med-card .ttl{font-size:20px;}
  .med-card .desc{font-size:16px;}
  .kids{height:auto;display:flex;flex-direction:column;width:100%;}
  .kids .bg-pc{display:none;}
  .kids .bg-sp{display:block;position:static;width:100%;height:auto;}
  .kids .head{position:static;padding:18px 25px 0;justify-content:center;gap:8px;}
  .kids .head img{width:28px;height:28px;}
  .kids .head p{font-size:20px;}
  .kids .lead{position:static;right:auto;padding:8px 25px 20px;font-size:15px;}

  /* 当院の特徴 : 縦積み */
  .features{padding:40px 20px;}
  .feat-inner{gap:30px;}
  .feat-card{width:100%;padding:20px;}
  .feat-card .inner{width:100%;gap:18px;}
  .feat-card .ttl{font-size:20px;}
  .feat-card .desc{font-size:16px;}

  /* band */
  .band1{height:120px;} .band2{height:120px;}

  /* greeting */
  .greeting{padding:40px 20px;gap:25px;}
  .greeting .body{font-size:15px;}

  /* footer : 地図→医院情報 の順 */
  .f-map{order:1;height:300px;}
  .f-info{order:2;padding:40px 20px;}
  .f-info-inner{flex-direction:column;align-items:center;gap:25px;}
  .f-info-left{align-items:center;text-align:center;}
  .f-clinic{align-items:center;}
  .f-clinic .name .lg{font-size:20px;} .f-clinic .name .sm{font-size:15px;}
  .f-clinic .addr{font-size:13px;}
  .band2{order:0;}
  .f-nav{order:3;padding:20px;}
  .f-nav ul{flex-direction:column;gap:16px;}
  .f-copy{order:4;}

  /* CTA : 2ボタン */
  .cta{gap:20px;padding:19px 40px;justify-content:space-between;}
  .cta .btn{height:auto;padding:10px;flex:1;max-width:150px;}
  .cta .btn span{font-size:14px;}
  .cta .btn-web{width:auto;}
  .cta .btn-tel{display:flex;}
}


/* ============ 診療案内（medical.html） ============ */
/* ===== 診療案内 ページ固有 ===== */
.med-sec{display:flex;flex-direction:column;align-items:center;padding:80px 20px;}
.med-sec.b{background:var(--beige);}
.med-sec.g{background:var(--palegreen);}
.med-block{width:941px;max-width:100%;display:flex;flex-direction:column;gap:45px;align-items:flex-start;}
.med-row{width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:25px;}
.med-photo{width:360px;flex-shrink:0;height:286px;overflow:hidden;}
.med-photo.tall{height:312px;}
.med-photo img{width:100%;height:100%;object-fit:cover;}
.med-text{flex:1;font-weight:400;color:var(--heading);font-size:16px;line-height:1.6;text-align:justify;}
.med-text p{margin:0;}
@media (max-width:767px){
  .med-sec{padding:40px 20px;}
  .med-block{gap:25px;}
  .med-row{flex-direction:column;gap:20px;}
  .med-photo{width:100%;height:220px;}
  .med-photo.tall{height:220px;}
  .med-text{font-size:15px;}
}


/* ============ 医師紹介（doctor.html） ============ */
/* ===== 医師紹介 ページ固有 ===== */
.greet-sec{background:var(--beige);display:flex;flex-direction:column;gap:80px;align-items:center;padding:80px 20px;}
.greet-block{width:940px;max-width:100%;display:flex;flex-direction:column;gap:45px;align-items:flex-start;}
.greet-cols{width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:23px;}
.greet-text{width:556px;max-width:100%;display:flex;flex-direction:column;color:var(--heading);}
.greet-body{font-weight:400;font-size:16px;line-height:1.6;}
.greet-name{font-weight:700;font-size:18px;line-height:1.6;margin-top:1.6em;white-space:pre-wrap;}
.greet-photo{width:362px;flex-shrink:0;height:530px;overflow:hidden;}
.greet-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 20%;}

/* 小見出し（緑縦棒） */
.sub-block{width:940px;max-width:100%;display:flex;flex-direction:column;gap:20px;align-items:flex-start;}
.sub-label{display:flex;gap:15px;align-items:center;}
.sub-label .bar{width:3px;height:28px;background:var(--green);flex-shrink:0;}
.sub-label .t{font-weight:400;font-size:24px;line-height:1.6;color:var(--heading);white-space:nowrap;}

/* 経歴（ゼブラ） */
.career{width:100%;display:flex;flex-direction:column;color:var(--heading);font-size:16px;line-height:1.6;}
.career .row{width:100%;display:flex;gap:15px;align-items:flex-start;padding:5px 0;}
.career .row.zebra{background:var(--accent);}
.career .yr{width:52px;flex-shrink:0;}

/* 資格 */
.quals{width:100%;display:flex;flex-direction:column;color:var(--heading);font-size:16px;line-height:1.6;}
.quals .row{width:100%;padding:5px 0;}

@media (max-width:767px){
  .greet-sec{padding:40px 20px;gap:40px;}
  .greet-block{gap:25px;}
  .greet-cols{flex-direction:column-reverse;gap:25px;}
  .greet-text{width:100%;}
  .greet-body{font-size:15px;}
  .greet-photo{width:100%;height:340px;}
  .greet-photo img{object-position:50% 38%;}
  .sub-block{gap:15px;}
  .sub-label .t{font-size:20px;}
  .sub-label .bar{height:24px;}
  .career,.quals{font-size:15px;}
  .career .row{gap:12px;}
  .career .yr{width:62px;white-space:nowrap;}
}


/* ============ 医院案内（clinic.html） ============ */
/* ===== 医院案内 ページ固有 ===== */
.cl-sec{display:flex;flex-direction:column;align-items:center;padding:42px 20px;}
.cl-sec.b{background:var(--beige);}
.cl-sec.g{background:var(--palegreen);}
.cl-block{width:1100px;max-width:100%;display:flex;flex-direction:column;gap:45px;align-items:flex-start;}

/* 基本情報 */
.info-row{width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:27px;}
.info-photo{width:521px;flex-shrink:0;aspect-ratio:424/251;overflow:hidden;}
.info-photo img{width:100%;height:100%;object-fit:cover;}
.info-table{width:552px;flex-shrink:0;border-collapse:collapse;table-layout:fixed;}
.info-table th,.info-table td{border:1px solid var(--border);text-align:left;vertical-align:middle;padding:14px 15px;font-size:16px;line-height:1.6;color:var(--heading);}
.info-table th{width:140px;background:var(--palegreen);font-weight:700;white-space:nowrap;}
.info-table td{background:#fff;font-weight:400;}

/* 診療時間 */
.hours-wrap{width:100%;display:flex;justify-content:center;}

/* 写真グリッド 3x2 */
.photo-grid{width:100%;display:grid;grid-template-columns:repeat(3,1fr);column-gap:25px;row-gap:45px;}
.pcell{display:flex;flex-direction:column;align-items:center;gap:15px;}
.pcell .ph{width:100%;aspect-ratio:297/255;overflow:hidden;}
.pcell .ph img{width:100%;height:100%;object-fit:cover;}
.pcell .cap{font-weight:400;font-size:16px;line-height:1.6;color:var(--heading);text-align:center;}

/* 感染対策 2x2（左寄せ・キャプション無し） */
.std-list{width:100%;display:flex;flex-direction:column;gap:48px;}
.std-item{background:#fff;border-left:4px solid var(--green);padding:22px 26px;display:flex;flex-direction:column;gap:10px;}
.std-name{font-weight:700;font-size:22px;line-height:1.6;color:var(--heading);}
.std-desc{font-weight:400;font-size:16px;line-height:1.8;color:var(--body);}

@media (max-width:767px){
  .cl-sec{padding:40px 20px;}
  .cl-block{gap:30px;}
  .info-row{flex-direction:column;gap:20px;}
  .info-photo{width:100%;}
  .info-table{width:100%;}
  .info-table th{width:110px;font-size:15px;}
  .info-table td{font-size:15px;}
  .photo-grid{grid-template-columns:1fr;row-gap:25px;}
  .pcell .cap{font-size:15px;}
  .std-list{gap:36px;}
  .std-item{padding:18px 18px;}
  .std-name{font-size:19px;}
  .std-desc{font-size:15px;}
}


/* ============ アクセス（access.html） ============ */
/* ===== アクセス ページ固有 ===== */
.access-sec{display:flex;flex-direction:column;align-items:center;padding:80px 20px;}
.access-sec.map{background:var(--beige);}
.access-sec.addr{background:var(--palegreen);}
.access-sec.tel{background:var(--beige);}
.access-block{width:940px;max-width:100%;display:flex;flex-direction:column;gap:45px;align-items:flex-start;}
.map-wrap{width:100%;display:flex;flex-direction:column;gap:15px;align-items:center;}
.map-box{width:100%;height:660px;overflow:hidden;background:#e9edf0;border:0;}
.map-box iframe{width:100%;height:100%;border:0;display:block;}
.access-text{font-weight:400;color:var(--heading);font-size:16px;line-height:1.6;}
@media (max-width:767px){
  .access-sec{padding:40px 20px;}
  .access-block{gap:25px;}
  .map-box{height:320px;}
  .access-text{font-size:15px;}
}


/* ============ お知らせ（news.html） ============ */
/* ===== お知らせ一覧 ページ固有 ===== */
.news-page{background:var(--beige);display:flex;flex-direction:column;align-items:center;padding:80px 20px;}
.news-page .inner{width:940px;max-width:100%;display:flex;flex-direction:column;gap:45px;align-items:flex-start;}
.news-page .list{width:100%;background:var(--palegreen);display:flex;flex-direction:column;gap:16px;padding:0;font-size:16px;line-height:1.6;}
.news-page .item{display:flex;gap:23px;align-items:flex-start;width:100%;}
.news-page .item .date{color:var(--light);width:81px;flex-shrink:0;}
.news-page .item .txt{color:var(--body);flex:1;}
.news-page .pager-wrap{width:100%;display:flex;justify-content:center;}
@media (max-width:767px){
  .news-page{padding:40px 20px;}
  .news-page .inner{gap:30px;}
  .news-page .list{font-size:15px;gap:14px;}
  .news-page .item .date{width:70px;}
}


/* ============ お知らせ（投稿） ============ */
.news-page .list .item{text-decoration:none;color:inherit;transition:opacity .2s;}
.news-page .list .item:hover{opacity:.65;}

/* 個別お知らせ */
.post-single{background:var(--beige);display:flex;flex-direction:column;align-items:center;padding:80px 20px;}
.post-single .inner{width:940px;max-width:100%;display:flex;flex-direction:column;gap:20px;align-items:flex-start;}
.post-single .post-date{color:var(--light);font-size:15px;line-height:1.6;}
.post-single .post-title{color:var(--heading);font-size:28px;font-weight:700;line-height:1.5;padding-bottom:20px;border-bottom:1px solid var(--border);width:100%;}
.post-single .post-body{color:var(--heading);font-size:16px;line-height:1.9;width:100%;}
.post-single .post-body p{margin:0 0 1.2em;}
.post-single .post-body img{height:auto;margin:1em 0;}
.post-single .post-back{margin-top:20px;}
@media (max-width:767px){
  .post-single{padding:40px 20px;}
  .post-single .post-title{font-size:22px;}
  .post-single .post-body{font-size:15px;}
}

/* =========================================================
   下層ページ共通（テーマ化時に取り込み漏れていた分を復元）
   page-hero / breadcrumb / pager / sec-title-left
   ========================================================= */
/* ===== section title (左寄せ・下層ページ用) ===== */
.sec-title-left{display:flex;flex-direction:column;gap:10px;align-items:flex-start;}
.sec-title-left .row{display:flex;gap:12px;align-items:center;white-space:nowrap;line-height:1.6;}
.sec-title-left .ja{font-weight:700;color:var(--body);font-size:32px;}
.sec-title-left .en{font-weight:400;color:var(--green);font-size:14px;letter-spacing:1.96px;}
.sec-title-left .bar{width:106px;height:2px;background:var(--green);}

/* ===== page hero (下層ページFV・建物写真＋中央ダークボックス) ===== */
.page-hero{position:relative;height:219px;width:100%;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:10px;}
.page-hero .bg{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.page-hero .bg img{position:absolute;top:-30%;left:0;width:100%;height:160%;object-fit:cover;max-width:none;}
.page-hero .bg::after{content:"";position:absolute;inset:0;background:rgba(56,70,65,0.45);}
.page-hero .box{position:relative;z-index:1;background:rgba(49,64,58,0.86);display:flex;align-items:center;justify-content:center;padding:13px 42px;}
.page-hero .box h1{font-weight:700;color:#fff;font-size:32px;line-height:1.6;letter-spacing:2.56px;white-space:nowrap;text-align:center;}

/* ===== breadcrumb ===== */
.breadcrumb{background:var(--beige);display:flex;align-items:center;justify-content:center;padding:10px 20px;}
.breadcrumb .inner{width:940px;max-width:100%;display:flex;align-items:center;}
.breadcrumb p{font-weight:400;color:var(--heading);font-size:16px;line-height:1.6;}
.breadcrumb a{color:var(--heading);}

/* ===== pager (ページネーション・WP標準 .page-numbers を直接装飾) ===== */
.pager{display:flex;gap:10px;align-items:stretch;justify-content:flex-end;flex-wrap:wrap;}
.pager .page-numbers{display:flex;align-items:center;justify-content:center;height:32px;min-width:32px;padding:0;font-weight:400;font-size:16px;line-height:1.6;background:var(--beige);border:1px solid var(--green);color:var(--green);text-decoration:none;}
.pager .page-numbers.current{background:var(--green);color:#fff;}
.pager .page-numbers.next,.pager .page-numbers.prev{padding:0 14px;white-space:nowrap;}
.pager .page-numbers.dots{border:none;background:transparent;}

/* ===== 下層共通 SP (max-width 767px) ===== */
@media (max-width:767px){
  .page-hero{height:120px;padding:10px;}
  .page-hero .bg img{top:-20%;height:140%;}
  .page-hero .box{padding:9px 24px;}
  .page-hero .box h1{font-size:20px;letter-spacing:1.44px;}
  .breadcrumb{padding:8px 20px;}
  .breadcrumb .inner{width:100%;}
  .breadcrumb p{font-size:13px;}
  .sec-title-left .ja{font-size:20px;}
  .sec-title-left .en{font-size:12px;letter-spacing:1.68px;}
  .sec-title-left .bar{width:90px;}
  .pager .page-numbers{height:30px;min-width:30px;} .pager .page-numbers.next,.pager .page-numbers.prev{font-size:14px;}
}

/* ===== CTカードは機器全体を見せる（寄りすぎ防止・contain） ===== */
.feat-card.ct .photo{background:#fff;}
.feat-card.ct .photo img{object-fit:contain;}

/* ===== 診療案内カード 画像の見せ所（見本の構図に合わせ縦位置調整） ===== */
.med-card.nose .photo img{object-position:center 22%;}   /* 鼻が見えるよう上寄せ */
.med-card.throat .photo img{object-position:center 15%;} /* 口元が見えるよう上寄せ */

/* ===== OtoLAMカードは機器全体を見せる（引いた構図・contain） ===== */
.feat-card.otolam .photo{background:#fff;}
.feat-card.otolam .photo img{object-fit:contain;}

/* ===== 舌下免疫カード：手のひらの錠剤を中央に（見本の構図・上端の顔切れ防止） ===== */
.feat-card.sublingual .photo img{object-position:center 62%;}

/* ===== medical のどの症状：口元が見えるよう画像全体を表示（SPで切れ防止） ===== */
@media (max-width:767px){
  .med-photo.throat{height:auto;aspect-ratio:1080/858;}
  /* 長い見出し（ゾレア®）がSPで右端見切れ→折返し許可（短い見出しは1行維持） */
  .med-sec .sec-title-left .row{white-space:normal;flex-wrap:wrap;}
}
