/*
Theme Name: SWELL CHILD (ネズミ駆除業者ナビ)
Template: swell
Version: 1.0.0
Description: SWELL子テーマ。ネズミ駆除業者DB（nezumi-directory プラグイン）のテンプレートとスタイル調整。
*/

/* 業者ページのデザインはプラグインの assets/nezumi.css が担当。ここではSWELLとの馴染ませ・上書きのみ */
.nezumi-content .nezumi-section > h2 { font-size: 1.25em; }
.nezumi-single__name { font-size: 1.6em; margin: 0 0 6px; }
.l-mainContent .nezumi-card__name { margin-top: 0; }


/* ===== 共通フッター（functions.php nn_site_footer が出力） ===== */
#footer.l-footer { display: none; }
.hnf { background: #0f1c2e; color: #c9d3df; font-size: 13px; line-height: 1.7; }
.hnf a { color: #c9d3df; text-decoration: none; }
.hnf a:hover { color: #fff; text-decoration: underline; }
.hnf__in { max-width: 1100px; margin: 0 auto; padding: 44px 20px 0; }
.hnf__grid { display: grid; grid-template-columns: 1.7fr 1fr 1fr 1fr; gap: 32px 40px; }
.hnf__name { font-size: 16px; font-weight: 700; color: #fff; margin: 0 0 10px; }
.hnf__desc { margin: 0 0 14px; padding-bottom: 14px; border-bottom: 1px solid #2a3a50; }
.hnf__info { display: grid; grid-template-columns: auto 1fr; gap: 4px 20px; margin: 0; }
.hnf__info dt { font-weight: 700; color: #fff; white-space: nowrap; }
.hnf__info dd { margin: 0; }
.hnf__col h3 { font-size: 13px; font-weight: 700; color: #fff; margin: 0 0 12px; padding: 0; border: 0; background: none; }
.hnf__col ul { list-style: none; margin: 0; padding: 0; }
.hnf__col li { margin: 0 0 8px; padding: 0; }
.hnf__bottom { margin-top: 32px; border-top: 1px solid #2a3a50; padding: 16px 0; text-align: center; font-size: 11px; color: #8a98a8; }
@media (max-width: 767px) {
	.hnf__grid { grid-template-columns: 1fr 1fr; gap: 24px; }
	.hnf__brand { grid-column: 1 / -1; }
	.hnf__in { padding-top: 32px; }
}
@media (max-width: 1023px) {
	body:has(.nn-fixbar) .hnf { padding-bottom: 74px; } /* トップのSP固定CTA分 */
}

/* ===== 共通フッター v2（functions.php nn_site_footer → template-parts/site-footer.php） ===== */
.ft3{font-family:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Sans",sans-serif;color:#1f2b33}
.ft3 .wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.ft3 a{text-decoration:none}
.ft3 ul{list-style:none;margin:0;padding:0}
.ft3 h3,.ft3 h4{background:none;border:0;padding:0}
:root{--fs-xs:11px;--fs-s:12px;--fs-base:14px;--fs-m:15px;--fs-l:17px;--orange:#ed6103;--ink3:#8695a0;
  --r-hokkaido_tohoku:#3f6b52;--r-kanto:#57794a;--r-hokuriku:#6f8645;--r-tokai:#8d8a3d;
  --r-kinki:#a8823a;--r-chugoku:#b87336;--r-shikoku:#bd5f30;--r-kyushu_okinawa:#b4472b}
/* フッター：都道府県は地方ごとの列に（本番は12pxのインライン羅列で押しづらい） */
.ft3__pref{background:#f7f4ee;border-top:1px solid #e6dfd1;padding:38px 0 40px}
.ft3__h{margin:0 0 18px;font-size:var(--fs-l);font-weight:900;letter-spacing:.02em;
  border-left:5px solid var(--orange);padding-left:12px;line-height:1.3}
.ft3__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px 28px}
.ft3__rg h4{margin:0 0 8px;font-size:var(--fs-s);font-weight:900;letter-spacing:.06em;color:var(--rc,#555);
  padding-bottom:6px;border-bottom:2px solid var(--rc,#ccc)}
.ft3__rg[data-region="hokkaido_tohoku"]{--rc:var(--r-hokkaido_tohoku)}
.ft3__rg[data-region="kanto"]{--rc:var(--r-kanto)}
.ft3__rg[data-region="hokuriku"]{--rc:var(--r-hokuriku)}
.ft3__rg[data-region="tokai"]{--rc:var(--r-tokai)}
.ft3__rg[data-region="kinki"]{--rc:var(--r-kinki)}
.ft3__rg[data-region="chugoku"]{--rc:var(--r-chugoku)}
.ft3__rg[data-region="shikoku"]{--rc:var(--r-shikoku)}
.ft3__rg[data-region="kyushu_okinawa"]{--rc:var(--r-kyushu_okinawa)}
.ft3__rg ul{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:4px 0}
.ft3__rg li{flex:0 0 50%}
.ft3__rg a{display:inline-block;font-size:var(--fs-base);color:#3f4a52;padding:3px 0;line-height:1.5}
.ft3__rg a:hover{color:var(--rc);text-decoration:underline;text-underline-offset:3px}

.ft3__nav{background:#1e2a2f;color:#cfd6d9;padding:36px 0 0}
.ft3__cols{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:28px 40px;padding-bottom:26px}
.ft3__logo{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.ft3__logo img{width:30px;height:30px;border-radius:7px}
.ft3__logo b{color:#fff;font-size:var(--fs-m);font-weight:900}
.ft3__brand p{margin:0 0 12px;font-size:var(--fs-s);line-height:1.8;color:#aab6bb}
.ft3__brand dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:var(--fs-s);line-height:1.7;margin:0}
.ft3__brand dt{color:#8f9ca2;font-weight:700}
.ft3__brand dd{margin:0;color:#cfd6d9}
.ft3__col h4{margin:0 0 10px;font-size:var(--fs-s);font-weight:900;letter-spacing:.08em;color:#fff}
.ft3__col ul{margin:0;padding:0;list-style:none;display:grid;gap:2px}
.ft3__col a{display:block;font-size:var(--fs-base);color:#cfd6d9;padding:5px 0;line-height:1.5}
.ft3__col a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.ft3__copy{border-top:1px solid rgba(255,255,255,.12);padding:16px 24px 24px;font-size:var(--fs-xs);color:#8f9ca2;text-align:center}

@media (max-width:900px){
  .ft3__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ft3__cols{grid-template-columns:1fr 1fr}
  .ft3__brand{grid-column:1/-1}
}
@media (max-width:560px){
  .ft3__grid{grid-template-columns:1fr}
  .ft3__cols{grid-template-columns:1fr}
}


.ft3__pref{background:#f7f4ee}
@media (max-width:1023px){ body:has(.nn-fixbar) .ft3{padding-bottom:74px} }

/* ===== 共通ヘッダー（.nn-hd）を全ページで使う =====
   マークアップは functions.php の nn_site_header()。この CSS は assets/top.css からヘッダー関連のルールを抽出したもの（トップでは top.css と重複するが同内容）。
   デザインを変えるときは top.css を直してからここにも反映すること。 */
/* SWELL 標準ヘッダーは全ページで非表示（トップは top.css でも非表示） */
body:not(.home) .l-header,body:not(.home) .l-fixHeader,body:not(.home) .p-spHeadMenu,body:not(.home) .l-header__gnav{display:none!important}
.nn{--navy: #04384c; --navy2: #1c5a76; --text: #333; --muted: #6b7680; --border: #d9dfe5; --gray: #f4f6f8; --page: #eef1f4; --cream: #fdf7e8; --orange: #ed6103; --orange-soft: #f5a052; --bluebox: #eef5f8; --blueth: #d6e7ee; --open: #1f7a45; --open-bg: #dff3e6; --cta: #1a9fd6; --cta2: #1477a6; --w: 1100px; font-family: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif; color: var(--text); line-height: 1.65; font-size: 15px; width: 100vw; margin-left: calc(50% - 50vw); background: var(--page); padding-bottom: 74px;}
.nn *,.nn ::before,.nn ::after{box-sizing: border-box;}
.nn h1,.nn h2,.nn h3,.nn h4,.nn h5,.nn p,.nn ul,.nn dl,.nn dd{margin: 0px; padding: 0px;}
.nn ul{list-style: none;}
.nn a{color: inherit; text-decoration: none;}
.nn svg{display: block;}
.nn .pc{display: none;}
.nn .nn-wrap{max-width: var(--w); margin: 0px auto; padding: 0px 12px;}
.nn .nn-num{font-family: "Roboto Condensed", "Noto Sans JP", sans-serif; font-variant-numeric: tabular-nums;}
.nn .nn-btn-hero,.nn .nn-btn-search,.nn .nn-gnav__cta a,.nn .nn-drawer__close{color: rgb(255, 255, 255);}
.nn .nn-btn-hero2,.nn .nn-hd__ib.is-o,.nn .nn-drawer__panel a.is-o{color: var(--orange);}
.nn .nn-hd__ib,.nn .nn-logo__name{color: var(--navy);}
.nn .nn-drawer__panel a{color: rgb(34, 34, 34);}
.nn .nn-hd{background: rgb(255, 255, 255); border-bottom: 1px solid var(--border); position: sticky; top: 0px; z-index: 50;}
.nn .nn-hd__top{display: flex; align-items: center; height: 56px; padding: 0px 6px 0px 12px;}
.nn .nn-logo{display: flex; align-items: center; gap: 8px; flex: 1 1 0%; min-width: 0px;}
.nn .nn-logo__mark{width: 34px; height: 34px; border-radius: 9px; background: var(--navy); display: grid; place-items: center; color: rgb(245, 160, 82); flex: 0 0 auto;}
.nn .nn-logo__mark svg{width: 20px; height: 20px;}
.nn .nn-logo__name{font-size: 17px; font-weight: 900; color: var(--navy); line-height: 1.1; white-space: nowrap;}
.nn .nn-logo__name small{display: block; font-size: 9px; font-weight: 500; color: var(--muted); margin-top: 3px;}
.nn .nn-hd__pc,.nn .nn-gnav{display: none;}
.nn .nn-hd__sp{display: flex; align-items: center;}
.nn .nn-hd__ib{width: 52px; height: 52px; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 9px; font-weight: 700; color: var(--navy); cursor: pointer; gap: 2px;}
.nn .nn-hd__ib svg{width: 22px; height: 22px;}
.nn .nn-hd__ib.is-o{color: var(--orange);}
.nn .nn-burger{width: 22px; height: 16px; position: relative; display: block; margin-bottom: 2px;}
.nn .nn-burger i,.nn .nn-burger::before,.nn .nn-burger::after{content: ""; position: absolute; left: 0px; width: 100%; height: 2px; background: var(--navy); border-radius: 2px;}
.nn .nn-burger::before{top: 0px;}
.nn-burger i{top: 7px;}
.nn-burger::after{bottom: 0px;}
.nn .nn-drawer{position: fixed; inset: 0px; z-index: 100; visibility: hidden; pointer-events: none;}
.nn .nn-drawer__bg{position: absolute; inset: 0px; background: rgba(4, 56, 76, 0.5); opacity: 0; transition: opacity 0.2s;}
.nn .nn-drawer__panel{position: absolute; top: 0px; right: 0px; bottom: 0px; width: 82%; max-width: 340px; background: rgb(255, 255, 255); transform: translateX(100%); transition: transform 0.25s; display: flex; flex-direction: column; overflow-y: auto;}
.nn .nn-drawer__head{display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; background: var(--navy); color: rgb(255, 255, 255); font-weight: 900; font-size: 15px;}
.nn .nn-drawer__close{font-size: 26px; line-height: 1; cursor: pointer; color: rgb(255, 255, 255);}
.nn .nn-drawer__panel a{display: block; padding: 14px 16px; border-bottom: 1px solid var(--border); font-weight: 700; font-size: 15px; color: rgb(34, 34, 34);}
.nn .nn-drawer__panel a.is-o{color: var(--orange);}
.nn .nn-drawer__cb:checked ~ .nn-drawer{visibility: visible; pointer-events: auto;}
.nn .nn-drawer__cb:checked ~ .nn-drawer .nn-drawer__bg{opacity: 1;}
.nn .nn-drawer__cb:checked ~ .nn-drawer .nn-drawer__panel{transform: none;}
.nn .nn-btn-hero{position: relative; display: flex; align-items: center; justify-content: space-between; height: 60px; padding: 0px 18px; background: var(--navy2); color: rgb(255, 255, 255); font-size: 17px; font-weight: 900; border-radius: 8px; box-shadow: rgb(12, 58, 79) 0px 4px 0px;}
.nn .nn-btn-hero .tag{position: absolute; top: -13px; left: 12px; background: rgb(255, 255, 255); color: var(--navy2); font-size: 11px; font-weight: 700; padding: 2px 10px; border-radius: 999px; border: 1px solid var(--blueth);}
.nn .nn-btn-hero svg{width: 20px; height: 20px;}
.nn .nn-btn-hero2{display: flex; align-items: center; justify-content: center; height: 48px; background: rgb(255, 255, 255); color: var(--orange); border: 2px solid var(--orange); border-radius: 8px; font-weight: 900; font-size: 15px;}
.nn .nn-btn-acc{display: flex; width: 100%; align-items: center; justify-content: center; height: 46px; background: var(--navy2); color: rgb(255, 255, 255); font-weight: 900; border-radius: 999px; font-size: 15px; border: 0px; cursor: pointer; font-family: inherit;}
.nn .nn-ft__main .nn-logo__name{color: rgb(255, 255, 255);}
.nn-ft__main .nn-logo__name small{color: rgb(184, 202, 212);}
.nn .nn-ft__main .nn-logo__mark{background: rgb(255, 255, 255); color: var(--navy);}
.nn .nn-logo__mark--img{background: transparent; border-radius: 0px; padding: 0px; overflow: visible;}
.nn .nn-logo__mark--img img{width: 100%; height: 100%; display: block; object-fit: contain;}
.nn .nn-ft__main .nn-logo__mark--img{background: transparent; color: inherit;}
.nn{padding-bottom: 0px;}
@media (min-width: 1024px){.nn{padding-bottom: 0px; font-size: 15px;}.nn .pc{display: inline;}.nn .nn-wrap{padding: 0px 20px;}.nn .nn-hd{position: static;}.nn .nn-hd__top{height: 82px; padding: 0px 20px;}.nn .nn-logo{gap: 12px; flex: 0 0 auto;}.nn .nn-logo__mark{width: 46px; height: 46px; border-radius: 12px;}.nn .nn-logo__mark svg{width: 28px; height: 28px;}.nn .nn-logo__name{font-size: 24px; letter-spacing: 0.02em;}.nn .nn-logo__name small{font-size: 11px; letter-spacing: 0.05em; margin-top: 4px;}.nn .nn-hd__sp{display: none;}.nn .nn-hd__pc{display: flex; align-items: center; gap: 18px; margin-left: auto;}.nn .nn-hd__note{font-size: 12px; color: var(--muted); text-align: right; line-height: 1.5;}.nn .nn-hd__note b{display: block; color: var(--navy); font-size: 13px;}.nn .nn-btn-search{display: inline-flex; align-items: center; gap: 8px; background: var(--navy); color: rgb(255, 255, 255); font-weight: 700; padding: 12px 20px; border-radius: 8px; font-size: 15px;}.nn .nn-btn-search svg{width: 18px; height: 18px;}.nn .nn-gnav{display: block; border-top: 1px solid var(--border);}.nn .nn-gnav ul{display: flex; align-items: center; height: 56px;}.nn .nn-gnav li{padding: 0px 18px; font-weight: 700; font-size: 14px; border-left: 1px solid var(--border);}.nn .nn-gnav li:first-child{border-left: 0px; padding-left: 0px;}.nn .nn-gnav li.is-cur a{color: var(--orange);}.nn .nn-gnav li.nn-gnav__cta{margin-left: auto; border: 0px; padding: 0px;}.nn .nn-gnav li.nn-gnav__cta a{display: inline-flex; align-items: center; height: 42px; padding: 0px 20px; background: var(--orange); color: rgb(255, 255, 255); border-radius: 6px; box-shadow: rgb(184, 74, 0) 0px 2px 0px;}.nn .nn-btn-hero{height: 64px; padding: 0px 24px; font-size: 20px;}.nn .nn-btn-hero .tag{top: -16px; left: 14px; font-size: 12px; padding: 3px 12px;}.nn .nn-btn-hero svg{width: 22px; height: 22px;}.nn .nn-btn-hero2{height: 52px; font-size: 16px;}.nn .nn-btn-acc{width: auto; display: inline-flex; height: 44px; padding: 0px 26px; font-size: 15px;}.nn .nn-ft__pref .nn-wrap{display: block;}}
@media (prefers-reduced-motion: reduce){.nn *{transition: none !important;}}

/* サブページではヘッダーだけを .nn で包むので、ラッパー自体には背景・余白を持たせない */
.nn.nn-sub{background:transparent;padding:0;margin:0}

/* ===== v1.9.3（2026-09-26 取締役員指示）：ヘッダー＝注記「掲載情報は…」・「業者を探す」・「お急ぎの方へ」を撤去し、グローバルナビをロゴ・サイト名の横に横並び（PC）。SP は「探す／お急ぎ／メニュー」とドロワーのまま。
   マークアップは functions.php の nn_site_header()（.nn-hd__top 内に .nn-gnav）。top.css の旧 .nn-gnav ルール（下段バー）より詳細度を上げて上書き ===== */
@media (min-width: 1024px){
  .nn .nn-hd__top .nn-gnav{display:block;border-top:0;margin-left:36px;flex:1 1 auto;min-width:0}
  .nn .nn-hd__top .nn-gnav ul{display:flex;align-items:center;height:auto;padding:0;flex-wrap:wrap;gap:6px 0}
  .nn .nn-hd__top .nn-gnav li{padding:0 16px;font-weight:700;font-size:14px;line-height:1.2;border-left:1px solid var(--border);white-space:nowrap}
  .nn .nn-hd__top .nn-gnav li:first-child{border-left:0;padding-left:0}
  .nn .nn-hd__top .nn-gnav li a{color:var(--navy)}
  .nn .nn-hd__top .nn-gnav li a:hover{color:var(--orange)}
  .nn .nn-hd__top .nn-gnav li.is-cur a{color:var(--orange)}
}
@media (max-width: 1023px){ .nn .nn-hd__top .nn-gnav{display:none} }

