
:root{
  --navy:#0b2433; --navy2:#102f40; --teal:#08716b; --teal2:#0f8d84;
  --orange:#e86f20; --red:#b92626; --yellow:#f0b629; --blue:#2467a5;
  --ink:#172630; --muted:#63727d; --line:#dce5e9; --soft:#f4f8f9;
  --white:#fff; --shadow:0 18px 50px rgba(6,35,48,.12); --radius:22px;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;line-height:1.8;-webkit-font-smoothing:antialiased}
a{color:inherit}
img{max-width:100%;height:auto}
button,input{font:inherit}
.container{width:min(var(--max),calc(100% - 40px));margin:auto}
.skip-link{position:absolute;left:12px;top:-60px;z-index:9999;background:#fff;color:#111;padding:10px 14px;border-radius:8px}
.skip-link:focus{top:12px}
.topbar{background:#071a25;color:#d9e7ec;font-size:.78rem}
.topbar .container{min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.topbar a{text-decoration:none;color:#fff;font-weight:700}
.site-header{position:sticky;top:0;z-index:1000;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid rgba(220,229,233,.9)}
.header-inner{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:22px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;min-width:0}
.brand-mark{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(145deg,var(--red),var(--orange));color:#fff;font-weight:900;box-shadow:0 10px 25px rgba(185,38,38,.22)}
.brand-copy{line-height:1.25}
.brand-copy strong{display:block;color:var(--navy);font-size:1.04rem}
.brand-copy small{display:block;color:var(--muted);font-size:.66rem;margin-top:3px}
.nav-list{display:flex;align-items:center;gap:22px;list-style:none;margin:0;padding:0}
.nav-list a{text-decoration:none;color:#334b58;font-size:.88rem;font-weight:800}
.nav-list a:hover{color:var(--red)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border:0;border-radius:12px;text-decoration:none;font-weight:900;cursor:pointer;transition:.2s ease}
.btn-primary{background:#08716b;color:#fff;box-shadow:0 12px 28px rgba(8,113,107,.24)}
.btn-primary:hover{background:#065b57;transform:translateY(-2px)}
.btn-secondary{background:#fff;color:var(--navy);border:1px solid var(--line)}
.btn-secondary:hover{transform:translateY(-2px);border-color:#aac0ca}
.btn-danger{background:var(--red);color:#fff}
.btn-sm{min-height:42px;padding:0 16px;font-size:.82rem}
.menu-btn{display:none;width:46px;height:46px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--navy);font-size:1.3rem}
.hero{position:relative;overflow:hidden;color:#fff;background:radial-gradient(circle at 82% 14%,rgba(40,150,151,.78),transparent 34%),radial-gradient(circle at 12% 88%,rgba(232,111,32,.24),transparent 32%),linear-gradient(135deg,#071b29,#10384a 68%,#135d60)}
.hero:before{content:"";position:absolute;inset:0;opacity:.12;background-image:linear-gradient(rgba(255,255,255,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.16) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(#000,transparent 95%)}
.hero-inner{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:54px;align-items:center;padding:88px 0 82px}
.kicker{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(255,255,255,.08);font-size:.8rem;font-weight:900;margin-bottom:18px}
.hero h1{font-size:clamp(2.6rem,5vw,4.65rem);line-height:1.18;letter-spacing:-.045em;margin:0 0 22px}
.hero h1 span{color:#74ded5}
.hero p{max-width:690px;margin:0 0 28px;color:#d8e8ec;font-size:1.05rem}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.hero-note{display:flex;gap:18px;flex-wrap:wrap;margin-top:24px;color:#cfe4e7;font-size:.82rem}
.hero-note span:before{content:"✓";color:#75dfbc;margin-right:6px;font-weight:900}
.hero-card{padding:24px;border:1px solid rgba(255,255,255,.22);border-radius:26px;background:rgba(255,255,255,.1);box-shadow:0 28px 65px rgba(0,0,0,.25)}
.hero-card h2{margin:0 0 14px;font-size:1.15rem}
.hero-list{display:grid;gap:10px}
.hero-list a{display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center;padding:13px;border-radius:14px;background:#fff;color:var(--ink);text-decoration:none}
.hero-list a:hover{transform:translateY(-2px)}
.hero-list .icon{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;background:#e8f6f5;color:var(--teal);font-weight:900}
.hero-list strong{display:block;font-size:.9rem}
.hero-list small{display:block;color:var(--muted);font-size:.72rem}
.section{padding:86px 0}
.section.soft{background:var(--soft)}
.section-head{margin-bottom:34px}
.eyebrow{margin:0 0 10px;color:var(--red);font-size:.78rem;font-weight:900;letter-spacing:.13em}
.section h2{font-size:clamp(1.85rem,3.3vw,2.8rem);line-height:1.35;margin:0 0 14px;letter-spacing:-.03em}
.lead{max-width:800px;margin:0;color:var(--muted)}
.filter-wrap{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0}
.filter-btn{min-height:42px;padding:0 17px;border:1px solid var(--line);border-radius:999px;background:#fff;color:#40545f;font-weight:800;cursor:pointer}
.filter-btn[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
.search-box{position:relative;max-width:520px;margin-bottom:26px}
.search-box input{width:100%;height:52px;border:1px solid var(--line);border-radius:14px;padding:0 48px 0 16px;background:#fff}
.search-box input:focus{outline:3px solid rgba(8,113,107,.18);border-color:var(--teal)}
.search-box span{position:absolute;right:16px;top:50%;transform:translateY(-50%);color:var(--muted)}
.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.photo-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:22px;background:#fff;overflow:hidden;box-shadow:0 10px 30px rgba(7,35,47,.055);transition:.22s ease}
.photo-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:#c7d8df}
.photo-card[hidden]{display:none}
.thumb{aspect-ratio:16/9;background:#0b2433;overflow:hidden}
.thumb img{display:block;width:100%;height:100%;object-fit:cover}
.card-body{display:flex;flex-direction:column;flex:1;padding:22px}
.badge-row{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:12px}
.category-badge,.urgency{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;font-size:.7rem;font-weight:900}
.category-badge{background:#e8f5f5;color:#08716b}
.urgency.danger{background:#ffe9e9;color:#a51e1e}
.urgency.warning{background:#fff3dc;color:#8b5410}
.urgency.info{background:#eaf2fc;color:#245d95}
.photo-card h3{font-size:1.14rem;line-height:1.45;margin:0 0 8px;color:var(--navy)}
.photo-card p{margin:0 0 18px;color:var(--muted);font-size:.88rem}
.card-link{margin-top:auto;color:var(--red);font-weight:900;text-decoration:none;font-size:.84rem}
.card-link:after{content:" →"}
.rule-grid,.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.rule-card,.info-card{padding:26px;border:1px solid var(--line);border-radius:20px;background:#fff}
.rule-no{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font-weight:900;margin-bottom:15px}
.rule-card h3,.info-card h3{margin:0 0 8px;color:var(--navy)}
.rule-card p,.info-card p{margin:0;color:var(--muted);font-size:.9rem}
.caution{margin-top:22px;padding:18px 20px;border:1px solid #efd3a4;border-radius:15px;background:#fff8e9;color:#674a17;font-size:.86rem}
.company{background:linear-gradient(135deg,#0a2432,#125258);color:#fff}
.company-layout{display:grid;grid-template-columns:1fr auto;gap:34px;align-items:center}
.company h2{margin-bottom:10px}
.company p{margin:0;color:#d4e7e9;max-width:760px}
.company-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.sources{display:grid;gap:12px}
.source{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;padding:18px 20px;border:1px solid var(--line);border-radius:15px;background:#fff}
.source strong{display:block;color:var(--navy)}
.source span{display:block;color:var(--muted);font-size:.8rem}
.source a{color:var(--blue);font-weight:900;text-decoration:none;font-size:.82rem}
.breadcrumb{padding:14px 0;background:#f5f8f9;border-bottom:1px solid var(--line);font-size:.78rem}
.breadcrumb ol{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0;color:var(--muted)}
.breadcrumb li:not(:last-child):after{content:"›";margin-left:8px}
.breadcrumb a{text-decoration:none;color:var(--teal);font-weight:800}
.article-hero{padding:62px 0 54px;background:linear-gradient(135deg,#0b2433,#145b61);color:#fff}
.article-hero .container{display:grid;grid-template-columns:1fr .82fr;gap:48px;align-items:center}
.article-hero h1{font-size:clamp(2.3rem,4.5vw,4rem);line-height:1.25;margin:0 0 16px}
.article-hero p{margin:0 0 20px;color:#d8e8eb}
.article-image{border-radius:22px;overflow:hidden;border:1px solid rgba(255,255,255,.22);box-shadow:0 24px 60px rgba(0,0,0,.26)}
.article-image img{display:block;width:100%}
.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:38px;align-items:start}
.article-main{min-width:0}
.content-block{padding:28px 0;border-bottom:1px solid var(--line)}
.content-block:first-child{padding-top:0}
.content-block h2{font-size:1.65rem;margin-bottom:15px}
.check-list{display:grid;gap:10px;list-style:none;padding:0;margin:0}
.check-list li{position:relative;padding:13px 15px 13px 44px;border-radius:13px;background:#f6f9fa;color:#40525d}
.check-list li:before{content:"✓";position:absolute;left:16px;top:12px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#e6f4f2;color:var(--teal);font-size:.72rem;font-weight:900}
.dont-list li:before{content:"×";background:#ffe8e8;color:var(--red)}
.sidebar{position:sticky;top:100px;display:grid;gap:16px}
.side-card{padding:22px;border:1px solid var(--line);border-radius:18px;background:#fff}
.side-card h3{margin:0 0 12px;color:var(--navy)}
.side-card p{margin:0 0 14px;color:var(--muted);font-size:.83rem}
.side-links{display:grid;gap:8px}
.side-links a{text-decoration:none;color:var(--teal);font-size:.83rem;font-weight:800}
.image-note{margin-top:12px;color:#d2e4e6;font-size:.76rem}
.footer{padding:52px 0 24px;background:#071a25;color:#b9cbd4}
.footer-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:38px}
.footer h3{color:#fff;font-size:1rem}
.footer p,.footer a{color:#aebfc8;font-size:.83rem}
.footer a{text-decoration:none}
.footer-links{display:grid;gap:8px}
.disclaimer{margin-top:24px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);font-size:.73rem;color:#829aa5}
.copy{text-align:center;margin-top:20px;color:#718b98;font-size:.72rem}
.back-top{position:fixed;right:18px;bottom:18px;width:48px;height:48px;border:0;border-radius:50%;background:var(--navy);color:#fff;box-shadow:0 12px 28px rgba(0,0,0,.22);cursor:pointer;display:none}
.back-top.show{display:block}
:focus-visible{outline:3px solid #f5bf42;outline-offset:3px}
@media(max-width:980px){
  .hero-inner,.article-hero .container,.article-layout{grid-template-columns:1fr}
  .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero-card{max-width:720px}
  .sidebar{position:static;grid-template-columns:repeat(2,1fr)}
  .company-layout{grid-template-columns:1fr}
  .company-actions{justify-content:flex-start}
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-grid>div:first-child{grid-column:1/-1}
  .nav{display:none;position:absolute;left:20px;right:20px;top:69px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:var(--shadow)}
  .nav.open{display:block}
  .nav-list{display:grid;gap:6px}
  .nav-list a{display:block;padding:9px}
  .menu-btn{display:block}
}
@media(max-width:680px){
  .container{width:min(var(--max),calc(100% - 28px))}
  .topbar{display:none}
  .header-inner{min-height:68px}
  .brand-mark{width:41px;height:41px;flex:0 0 41px}
  .brand-copy strong{font-size:.84rem;white-space:nowrap;letter-spacing:-.03em}
  .brand-copy small{font-size:.56rem}
  .hero-inner{padding:62px 0 58px;gap:34px}
  .hero h1{font-size:2.35rem}
  .hero-actions .btn{width:100%}
  .hero-card{padding:18px}
  .hero-list a{grid-template-columns:42px 1fr}
  .hero-list a>span:last-child{display:none}
  .photo-grid,.rule-grid,.info-grid,.sidebar,.footer-grid{grid-template-columns:1fr}
  .section{padding:66px 0}
  .company-actions .btn{width:100%}
  .source{grid-template-columns:1fr}
  .article-hero{padding:48px 0 42px}
  .article-layout{gap:22px}
}
