/* ハコぶファミリー 公式メディアサイト 共通スタイル */
*{margin:0;padding:0;box-sizing:border-box;}
:root{
  --navy:#1D3D5C;--navy-d:#14293D;--navy-l:#EEF3F8;
  --teal:#3EC9C0;--teal-d:#1D8F8A;--teal-l:#E8FAF9;
  --salmon:#E8694A;--salmon-l:#FFF0EC;
  --gold:#C9A227;--gold-l:#FBF5E3;
  --violet:#7C3AED;--violet-l:#F3EEFF;
  --t1:#1D3D5C;--t2:#5A7A99;--t3:#99B5CC;
  --bg:#F5F0EB;--sur:#FFFFFF;--bdr:#E2EDF5;
  --r:14px;--r2:20px;
  --sh:0 2px 10px rgba(29,61,92,.08);
  --sh2:0 10px 30px rgba(29,61,92,.14);
  --wrap:1000px;
}
html{scroll-behavior:smooth;}
body{
  font-family:'Noto Sans JP',-apple-system,BlinkMacSystemFont,'Hiragino Sans',sans-serif;
  background:var(--bg);color:var(--t1);line-height:1.9;
  font-size:16px;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;}
a{color:var(--teal-d);}

/* ── ヘッダー ── */
.site-header{
  position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--bdr);
}
.header-inner{
  max-width:var(--wrap);margin:0 auto;padding:12px 20px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;}
.brand-mark{
  width:36px;height:36px;background:var(--navy);border-radius:10px;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.brand-text{display:flex;flex-direction:column;line-height:1.25;}
.brand-ja{font-size:15px;font-weight:900;color:var(--navy);letter-spacing:.02em;}
.brand-en{font-size:10px;font-weight:700;color:var(--t3);letter-spacing:.12em;}
.site-nav{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end;}
.site-nav a{
  font-size:13px;font-weight:700;color:var(--t2);text-decoration:none;
  padding:6px 10px;border-radius:8px;white-space:nowrap;
}
.site-nav a:hover{background:var(--navy-l);color:var(--navy);}
.site-nav a[aria-current="page"]{background:var(--navy);color:#fff;}

/* ── ヒーロー ── */
.hero{
  background:linear-gradient(160deg,#1D3D5C 0%,#26506F 55%,#1D8F8A 100%);
  color:#fff;padding:64px 20px 72px;text-align:center;
}
.hero h1{font-size:30px;font-weight:900;letter-spacing:.02em;margin-bottom:14px;}
.hero .lead{font-size:19px;font-weight:700;color:#B7F0EC;margin-bottom:16px;}
.hero p{font-size:15px;color:rgba(255,255,255,.85);max-width:640px;margin:0 auto;}
.hero-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:26px;}
.btn{
  display:inline-flex;align-items:center;gap:6px;text-decoration:none;
  padding:12px 22px;border-radius:999px;font-size:14px;font-weight:800;
}
.btn-primary{background:var(--teal);color:#0C2E2C;box-shadow:var(--sh2);}
.btn-ghost{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.35);}
.btn:hover{opacity:.9;}

/* ── ページヘッダー（下層） ── */
.page-head{background:var(--navy);color:#fff;padding:40px 20px 44px;text-align:center;}
.page-head h1{font-size:23px;font-weight:900;margin-bottom:6px;}
.page-head p{font-size:13px;color:rgba(255,255,255,.65);}

/* ── レイアウト ── */
.wrap{max-width:var(--wrap);margin:0 auto;padding:52px 20px;}
.wrap-narrow{max-width:760px;}
.section-title{font-size:21px;font-weight:900;text-align:center;margin-bottom:8px;}
.section-sub{font-size:14px;color:var(--t2);text-align:center;margin-bottom:32px;}
.breadcrumb{font-size:12px;color:var(--t3);margin-bottom:20px;}
.breadcrumb a{color:var(--t2);text-decoration:none;}
.breadcrumb a:hover{text-decoration:underline;}

/* ── メディアカード ── */
.media-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:18px;}
.media-card{
  background:var(--sur);border:1px solid var(--bdr);border-radius:var(--r2);
  padding:24px;text-decoration:none;color:inherit;display:flex;flex-direction:column;
  box-shadow:var(--sh);transition:transform .18s ease,box-shadow .18s ease;
}
.media-card:hover{transform:translateY(-3px);box-shadow:var(--sh2);}
.media-icon{
  width:48px;height:48px;border-radius:14px;display:flex;align-items:center;
  justify-content:center;font-size:24px;margin-bottom:14px;
}
.media-card h3{font-size:17px;font-weight:900;margin-bottom:10px;line-height:1.5;}
.media-card h3 .badge{display:block;width:fit-content;margin:6px 0 0;}
.media-card .desc{font-size:14px;color:var(--t2);flex:1;margin-bottom:14px;}
.media-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;}
.tag{font-size:11px;font-weight:700;color:var(--t2);background:var(--navy-l);padding:3px 9px;border-radius:999px;}
.media-url{font-size:12px;color:var(--t3);word-break:break-all;margin-bottom:10px;}
.media-more{font-size:13px;font-weight:800;color:var(--teal-d);}
.badge{
  display:inline-block;font-size:11px;font-weight:800;padding:2px 8px;
  border-radius:999px;margin-left:8px;vertical-align:middle;
}
.badge-live{background:var(--teal-l);color:var(--teal-d);}
.badge-prep{background:var(--navy-l);color:var(--t2);}

/* ── 掲載ページのプルダウン ── */
.pages{border:1px solid var(--bdr);border-radius:var(--r);background:var(--navy-l);margin-top:16px;}
.pages>summary{
  cursor:pointer;list-style:none;padding:12px 16px;
  font-size:14px;font-weight:800;color:var(--navy);
  display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.pages>summary::-webkit-details-marker{display:none;}
.pages>summary::after{content:"▾";font-size:12px;color:var(--t2);transition:transform .15s ease;}
.pages[open]>summary::after{transform:rotate(180deg);}
.pages>summary:hover{color:var(--teal-d);}
.pages .pages-body{padding:0 16px 14px;background:var(--sur);border-top:1px solid var(--bdr);border-radius:0 0 var(--r) var(--r);}
.pages h5{font-size:12px;font-weight:900;color:var(--t2);letter-spacing:.04em;margin:14px 0 2px;}
.pages h5:first-child{margin-top:12px;}
.pages ul{list-style:none;padding:0;margin:0;font-size:14px;}
.pages li{border-bottom:1px solid var(--bdr);}
.pages li:last-child{border-bottom:none;}
.pages li a{display:block;padding:11px 2px;text-decoration:none;color:var(--teal-d);font-weight:700;}
.pages li a:hover{text-decoration:underline;}
.pages li .path{display:block;font-size:11px;color:var(--t3);font-weight:400;word-break:break-all;}

/* ── 汎用カード／本文 ── */
.card{
  background:var(--sur);border:1px solid var(--bdr);border-radius:var(--r2);
  padding:26px;margin-bottom:18px;box-shadow:var(--sh);
}
.card h2{
  font-size:17px;font-weight:900;color:var(--navy);margin:0 0 12px;
  padding-left:12px;border-left:4px solid var(--teal);
}
.card h3{font-size:15px;font-weight:800;margin:20px 0 8px;}
.card p{font-size:15px;color:var(--t2);margin-bottom:12px;}
.card p:last-child{margin-bottom:0;}
.card ul,.card ol{font-size:15px;color:var(--t2);padding-left:22px;margin-bottom:12px;}
.card li{margin-bottom:7px;}
.updated{font-size:12px;color:var(--t3);text-align:right;margin-bottom:18px;}

/* ── 定義テーブル ── */
.dl{border-top:1px solid var(--bdr);}
.dl .row{display:flex;border-bottom:1px solid var(--bdr);}
.dl dt{
  width:170px;flex-shrink:0;padding:14px 12px;font-size:14px;font-weight:800;
  color:var(--navy);background:var(--navy-l);
}
.dl dd{padding:14px 14px;font-size:14px;color:var(--t2);flex:1;}
@media(max-width:600px){
  .dl .row{flex-direction:column;}
  .dl dt{width:100%;padding:10px 12px;}
  .dl dd{padding:12px;}
}

/* ── 注意書き ── */
.note{
  background:var(--salmon-l);border:1px solid #F6C9BC;border-radius:var(--r);
  padding:16px 18px;font-size:14px;color:#A33E24;margin-bottom:18px;
}
.note strong{display:block;font-weight:900;margin-bottom:4px;color:#8C2F18;}

/* ── フッター ── */
.site-footer{background:var(--navy);color:rgba(255,255,255,.72);padding:44px 20px 28px;}
.footer-inner{max-width:var(--wrap);margin:0 auto;}
.footer-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:26px;margin-bottom:28px;}
.footer-cols h4{font-size:12px;font-weight:900;color:#fff;letter-spacing:.08em;margin-bottom:12px;}
.footer-cols ul{list-style:none;}
.footer-cols li{margin-bottom:8px;}
.footer-cols a{color:rgba(255,255,255,.72);text-decoration:none;font-size:13px;}
.footer-cols a:hover{color:var(--teal);}
.footer-brand{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.footer-brand .brand-ja{color:#fff;}
.footer-brand .brand-en{color:rgba(255,255,255,.45);}
.footer-about{font-size:13px;color:rgba(255,255,255,.6);}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.14);padding-top:18px;
  font-size:12px;color:rgba(255,255,255,.5);text-align:center;
}
@media(max-width:640px){
  .hero{padding:48px 20px 54px;}
  .hero h1{font-size:25px;}
  .hero .lead{font-size:17px;}
  .wrap{padding:40px 20px;}
  .header-inner{flex-direction:column;align-items:stretch;gap:6px;}
  .site-nav{justify-content:flex-start;width:100%;}
  .site-nav a{padding:5px 8px;font-size:12px;}
}
