/* 全国避難所ガイド - 共通スタイル */

:root{
  --c-text:#333;
  --c-green:#00aa64;
  --c-green-dark:#00963c;
  --c-orange:#f68e00;
  --c-yellow:#f6c148;
  --c-bg-light:#f6f9ff;
  --c-footer:#515254;
  --w-content:1060px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Noto Sans JP',sans-serif;font-size:16px;font-weight:400;color:var(--c-text);background:#fff;line-height:1.6;-webkit-text-size-adjust:100%;}
img{max-width:100%;height:auto;vertical-align:bottom;}
a{color:inherit;}
ul,ol{list-style:none;}
.sp-only{display:none;}
.nowrap{white-space:nowrap;}
.inner{width:100%;max-width:var(--w-content);margin:0 auto;}
/* 日本語の改行調整（孤立文字の抑制） */
/* text-wrap:pretty はSafariで行幅が不自然に短くなるため使わない（孤立文字はビルド時の処理で防止） */
h1,h2,h3,h4,.sec-title{text-wrap:balance;}

/* HEADER */
body>header{position:sticky;top:0;z-index:100;background:#fff;}
.header{display:flex;align-items:center;justify-content:space-between;max-width:var(--w-content);margin:0 auto;padding:12px 0;}
.header-brand{display:flex;align-items:flex-end;gap:12px;text-decoration:none;color:var(--c-text);}
.header-logo{width:57px;height:57px;border-radius:10px;box-shadow:0 0 4px rgba(0,0,0,0.04);flex-shrink:0;}
.header-name{display:flex;flex-direction:column;font-weight:500;line-height:normal;white-space:nowrap;}
.header-name-sub{font-size:16px;}
.header-name-main{font-size:32px;}
.header-nav{display:flex;align-items:center;gap:28px;font-size:16px;font-weight:500;white-space:nowrap;}
.header-nav a{text-decoration:none;color:var(--c-text);transition:color 0.2s;}
.header-nav a:not(.header-cta){position:relative;padding:4px 0;}
.header-nav a:not(.header-cta)::after{content:'';position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--c-green);transition:width 0.25s;}
.header-nav a:not(.header-cta):hover{color:var(--c-green-dark);}
.header-nav a:not(.header-cta):hover::after,.header-nav a.current::after{width:100%;}
.header-nav a.current{color:var(--c-green-dark);}
.header-cta{display:inline-flex;align-items:center;justify-content:center;background:var(--c-green);color:#fff !important;border-radius:30px;padding:12px 36px;transition:opacity 0.2s;}
.header-cta:hover{opacity:0.85;}

.hamburger{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;cursor:pointer;background:none;border:none;padding:4px;z-index:210;position:relative;}
.hamburger .bar{display:block;width:24px;height:2px;background:var(--c-text);border-radius:2px;transition:transform 0.3s,opacity 0.3s;}
.hamburger.open .bar:nth-child(1){transform:translateY(7px) rotate(45deg);}
.hamburger.open .bar:nth-child(2){opacity:0;transform:scaleX(0);}
.hamburger.open .bar:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.nav-drawer{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:150;opacity:0;transition:opacity 0.3s;}
.nav-drawer.open{opacity:1;}
.nav-drawer-inner{position:absolute;top:0;right:0;width:280px;max-width:85%;height:100%;background:#fff;padding:72px 0 32px;transform:translateX(100%);transition:transform 0.3s;overflow-y:auto;}
.nav-drawer.open .nav-drawer-inner{transform:translateX(0);}
.drawer-close{position:absolute;top:14px;right:14px;width:40px;height:40px;background:none;border:none;cursor:pointer;font-size:26px;color:#555;line-height:1;}
.nav-drawer-menu>li>a{display:block;padding:16px 28px;border-bottom:1px solid #eee;font-size:15px;font-weight:500;color:var(--c-text);text-decoration:none;}
.nav-drawer-menu>li>a.current{color:var(--c-green-dark);}
.nav-drawer-sub{background:#fafafa;}
.nav-drawer-sub a{display:block;padding:12px 28px 12px 40px;border-bottom:1px solid #f0f0f0;font-size:14px;font-weight:500;color:#555;text-decoration:none;}
.nav-drawer-cta{padding:24px 28px 0;}
.nav-drawer-cta a{display:flex;justify-content:center;background:var(--c-green);color:#fff;border-radius:30px;padding:12px;font-size:15px;font-weight:500;text-decoration:none;}

/* SECTION TITLE */
.sec-title{display:flex;align-items:center;gap:30px;font-size:28px;font-weight:700;letter-spacing:0.03em;line-height:1.4;margin-bottom:40px;}
.sec-title::before{content:'';flex-shrink:0;width:6px;height:46px;background:var(--c-green-dark);}

/* BUTTONS */
.btn-orange{display:inline-flex;align-items:center;gap:12px;background:var(--c-orange);border:1px solid var(--c-orange);border-radius:100px;padding:14px 40px;font-size:20px;font-weight:700;color:#fff;text-decoration:none;line-height:normal;white-space:nowrap;transition:opacity 0.2s,transform 0.2s;}
.btn-orange:hover{opacity:0.88;transform:translateY(-1px);}
.btn-orange .arrow{width:16px;height:12px;flex-shrink:0;}
.btn-orange .icon{width:24px;height:24px;flex-shrink:0;}

/* CARD BASE */
.card{background:#fff;border-radius:12px;box-shadow:0 0 6.5px rgba(0,0,0,0.08);}

/* PAGE TITLE BAND (下層: お知らせ・お問い合わせ・履歴) */
.page-band{position:relative;max-width:var(--w-content);margin:0 auto;height:200px;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.page-band-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;}
.page-band-title{position:relative;font-size:32px;font-weight:700;letter-spacing:0.05em;}

/* SERVICE NAV (下層共通の3カード) */
.svc-nav{max-width:var(--w-content);margin:0 auto;padding:40px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.svc-nav-item{display:flex;align-items:center;justify-content:center;gap:20px;background:var(--c-bg-light);border-radius:12px;box-shadow:0 0 5px rgba(0,0,0,0.1);padding:20px 24px;text-decoration:none;color:var(--c-text);transition:transform 0.2s,box-shadow 0.2s;}
.svc-nav-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,0.12);}
.svc-nav-item.current{box-shadow:0 0 0 1px rgba(0,150,60,0.18),0 0 14px rgba(0,150,60,0.35);}
.svc-nav-item.current:hover{box-shadow:0 0 0 1px rgba(0,150,60,0.25),0 4px 18px rgba(0,150,60,0.4);}
.svc-nav-icon{width:50px;height:50px;flex-shrink:0;}
.svc-nav-icon.is-app{border-radius:10px;box-shadow:0 0 4px rgba(0,0,0,0.15);}
.svc-nav-text{display:flex;flex-direction:column;align-items:flex-start;gap:8px;}
.svc-nav-label{background:var(--c-green-dark);color:#fcf4f4;font-size:16px;font-weight:700;letter-spacing:0.05em;line-height:normal;padding:2px 12px;}
.svc-nav-name{font-size:18px;font-weight:700;letter-spacing:0.04em;line-height:normal;white-space:nowrap;}
.svc-nav-go{width:24px;height:24px;flex-shrink:0;}

/* FOOTER */
footer{background:var(--c-footer);border-top:1px solid #333;padding:61px 24px 24px;color:#fff;}
.footer-inner{max-width:var(--w-content);margin:0 auto;}
.footer-top{display:flex;justify-content:space-between;align-items:flex-start;gap:40px;}
.footer-brand{display:flex;align-items:flex-end;gap:12px;color:#fcf4f4;text-decoration:none;flex-shrink:0;}
.footer-brand img{width:40px;height:40px;border-radius:10px;}
.footer-brand-name{display:flex;flex-direction:column;font-weight:500;line-height:normal;white-space:nowrap;}
.footer-brand-name .sub{font-size:10px;}
.footer-brand-name .main{font-size:22px;}
.footer-cols{display:flex;gap:60px;}
.footer-col h4{font-size:16px;font-weight:700;letter-spacing:0.07em;line-height:18.7px;margin-bottom:14px;}
.footer-col ul{display:flex;flex-direction:column;gap:12px;}
.footer-col a{font-size:14px;font-weight:500;line-height:20.4px;color:#fff;text-decoration:none;transition:opacity 0.2s;}
.footer-col a:hover{opacity:0.7;text-decoration:underline;}
.footer-line{border:none;border-top:0.3px solid rgba(255,255,255,0.4);margin:30px 0;}
.footer-corp{display:flex;gap:40px;max-width:1045px;}
.footer-company{width:322px;flex-shrink:0;}
.footer-company h4{font-size:16px;font-weight:700;line-height:23.8px;margin-bottom:11px;}
.footer-company h4 a{color:#fff;text-decoration:none;}
.footer-company h4 a:hover{text-decoration:underline;}
.footer-company p{font-size:11px;font-weight:400;line-height:19.8px;}
.footer-corp .footer-cols{gap:0;}
.footer-corp .footer-col{width:171px;}
.footer-copy{text-align:center;font-size:10px;font-weight:300;line-height:17px;padding-top:50px;}

/* RESPONSIVE */
@media(max-width:1059px){
  .header{padding:12px 24px;}
  .header-nav{gap:20px;}
  .header-cta{padding:12px 24px;}
  .inner,.svc-nav,.page-band{max-width:none;margin-left:24px;margin-right:24px;width:auto;}
  .svc-nav-item{padding:16px;gap:12px;}
  .svc-nav-name{font-size:15px;white-space:normal;}
  .svc-nav-text{min-width:0;flex:1;}
  .svc-nav-label{font-size:13px;}
  .svc-nav-icon{width:40px;height:40px;}
  .footer-top{flex-direction:column;}
  .footer-cols{flex-wrap:wrap;gap:32px 48px;}
  .footer-corp{flex-direction:column;gap:28px;}
  .footer-corp .footer-cols{gap:28px 0;}
}
@media(max-width:960px){
  .svc-nav{grid-template-columns:1fr;gap:12px;}
  .svc-nav-item{justify-content:space-between;}
  .svc-nav-text{flex:1;}
  .header-nav{display:none;}
  .hamburger{display:flex;}
  .nav-drawer{display:block;pointer-events:none;}
  .nav-drawer.open{pointer-events:auto;}
  .header-logo{width:46px;height:46px;}
  .header-name-sub{font-size:12px;}
  .header-name-main{font-size:24px;}
}
@media(max-width:767px){
  body{font-size:15px;}
  .sp-only{display:inline;}
  .pc-only{display:none;}
  .header{padding:10px 16px;}
  .header-logo{width:40px;height:40px;}
  .header-name-sub{font-size:11px;}
  .header-name-main{font-size:20px;}
  .inner,.svc-nav,.page-band{margin-left:16px;margin-right:16px;}
  .sec-title{font-size:20px;gap:14px;margin-bottom:28px;letter-spacing:0.02em;}
  .sec-title::before{width:5px;height:36px;}
  .btn-orange{font-size:17px;padding:13px 28px;white-space:normal;text-align:center;}
  .page-band{height:140px;}
  .page-band-title{font-size:26px;}
  .svc-nav{grid-template-columns:1fr;gap:12px;padding:28px 0;}
  .svc-nav-item{justify-content:space-between;}
  .svc-nav-text{flex:1;}
  footer{padding:44px 16px 20px;}
  .footer-cols{display:grid;grid-template-columns:1fr 1fr;gap:28px 20px;}
  .footer-corp .footer-cols{display:grid;grid-template-columns:1fr 1fr;gap:28px 20px;}
  .footer-corp .footer-col{width:auto;}
  .footer-company{width:auto;}
  .footer-copy{padding-top:36px;}
  .footer-col a{font-size:13px;white-space:nowrap;}
}

/* フッター：暗い背景で文字が太く見えるのを抑える／メニューはコーポレートサイトと同じ 400 */
footer{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
.footer-col a{font-weight:400;}

/* ヘッダー：自治体・事業者向けドロップダウン */
.nav-dd{position:relative;}
.nav-dd-toggle{display:flex;align-items:center;gap:8px;background:none;border:none;padding:4px 0;font:inherit;color:var(--c-text);cursor:pointer;position:relative;}
.nav-dd-toggle img{width:11px;height:7px;transition:transform 0.2s;}
.nav-dd-toggle::after{content:'';position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--c-green);transition:width 0.25s;}
.nav-dd:hover .nav-dd-toggle,.nav-dd.is-current .nav-dd-toggle,.nav-dd:focus-within .nav-dd-toggle{color:var(--c-green-dark);}
.nav-dd:hover .nav-dd-toggle::after,.nav-dd.is-current .nav-dd-toggle::after{width:calc(100% - 19px);}
.nav-dd:hover .nav-dd-toggle img,.nav-dd.open .nav-dd-toggle img{transform:rotate(180deg);}
.nav-dd-menu{position:absolute;top:100%;left:50%;transform:translate(-50%,6px);min-width:280px;background:#fff;border-radius:12px;box-shadow:0 6px 24px rgba(0,0,0,0.12);padding:8px 0;opacity:0;visibility:hidden;transition:opacity 0.2s,transform 0.2s,visibility 0.2s;z-index:200;}
.nav-dd-menu::before{content:'';position:absolute;left:0;right:0;top:-14px;height:14px;}
.nav-dd:hover .nav-dd-menu,.nav-dd:focus-within .nav-dd-menu,.nav-dd.open .nav-dd-menu{opacity:1;visibility:visible;transform:translate(-50%,10px);}
.header-nav .nav-dd-menu a{display:flex;flex-direction:column;gap:2px;padding:10px 22px;text-decoration:none;white-space:nowrap;transition:background 0.15s;}
.header-nav .nav-dd-menu a::after{display:none;}
.header-nav .nav-dd-menu a:hover,.header-nav .nav-dd-menu a.current{background:#f5fbf7;}
.nav-dd-label{font-size:12px;font-weight:500;color:var(--c-green-dark);}
.nav-dd-name{font-size:15px;font-weight:500;color:var(--c-text);}
.nav-drawer-head{display:block;padding:16px 28px 10px;font-size:13px;font-weight:500;color:var(--c-green-dark);border-bottom:1px solid #eee;}
@media(max-width:1100px){
  .header-nav{display:none;}
  .hamburger{display:flex;}
  .nav-drawer{display:block;pointer-events:none;}
  .nav-drawer.open{pointer-events:auto;}
}
/* ヘッダー下にうっすら影 */
body>header{box-shadow:0 2px 10px rgba(0,0,0,0.06);}
/* メニュー追加に伴い、ロゴとメニューの間隔を確保 */
.header-nav{gap:22px;}
.header-cta{padding:12px 28px;}
.nav-drawer-sub a.current{color:var(--c-green-dark);font-weight:500;}
/* 「トップ」追加に伴い、ロゴを一回り小さくしてFV幅（1060px）にメニューを収める */
.header-logo{width:46px;height:46px;}
.header-brand{gap:10px;}
.header-name-sub{font-size:13px;}
.header-name-main{font-size:25px;}
@media(max-width:1100px){
  .header-nav{display:none;}
  .hamburger{display:flex;}
  .nav-drawer{display:block;pointer-events:none;}
  .nav-drawer.open{pointer-events:auto;}
}
@media(max-width:767px){
  .header-logo{width:38px;height:38px;}
  .header-brand{gap:8px;}
  .header-name-sub{font-size:11px;}
  .header-name-main{font-size:20px;}
}
@media(max-width:360px){.footer-col a{white-space:normal;font-size:12px;}.footer-cols,.footer-corp .footer-cols{gap:24px 14px;}}
/* 見出しは文節単位で折り返す（<wbr>位置のみで改行） */
h1,h2,h3,h4{word-break:keep-all;overflow-wrap:anywhere;}
@media(max-width:360px){.footer-col a{white-space:nowrap;font-size:min(12px,3.4vw);}}
