/* =====================================================================
   外壁塗装くらべる — 共通リーガルページ スタイル
   index.html のプレミアムデザインと統一 (nav / footer / typography / tokens)
   ===================================================================== */
:root{
  --navy-950:#08152b;
  --navy-900:#0b1e3b;
  --navy-800:#122a4f;
  --blue-600:#1d4ed8;
  --blue-500:#2563eb;
  --blue-400:#3b82f6;
  --accent:#f2b544;
  --accent-hi:#ffc95e;
  --ink:#182534;
  --muted:#5c6b7e;
  --line:#e6ebf2;
  --bg:#f6f8fc;
  --white:#ffffff;
  --radius:18px;
  --shadow-sm:0 2px 8px rgba(15,37,71,.06);
  --shadow-md:0 12px 30px rgba(15,37,71,.10);
  --shadow-lg:0 28px 60px rgba(11,30,59,.18);
  --maxw:1160px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:'Noto Sans JP','Hiragino Kaku Gothic Pro',Meiryo,sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.9;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;letter-spacing:.01em;line-height:1.4}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:13px;font-weight:700;letter-spacing:.18em;
  color:var(--accent-hi);text-transform:uppercase;
}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--accent);border-radius:2px}

/* ---------- NAV (index.html と同一) ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  background:rgba(9,22,44,.72);
  backdrop-filter:saturate(160%) blur(14px);
  -webkit-backdrop-filter:saturate(160%) blur(14px);
  border-bottom:1px solid rgba(255,255,255,.08);
  transition:background .3s,box-shadow .3s,padding .3s;
}
.nav.scrolled{background:rgba(9,22,44,.94);box-shadow:0 10px 30px rgba(0,0,0,.25)}
.nav-inner{max-width:var(--maxw);margin:0 auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.nav-logo{display:flex;align-items:center;height:34px}
.nav-logo img{height:30px;width:auto;display:block}
.nav-links{display:flex;align-items:center;gap:4px}
.nav-links a{
  color:rgba(255,255,255,.86);font-size:14.5px;font-weight:500;
  padding:9px 13px;border-radius:10px;transition:color .2s,background .2s;
}
.nav-links a:hover,.nav-links a.current{color:#fff;background:rgba(255,255,255,.10)}
.nav-cta{
  margin-left:8px;
  background:linear-gradient(135deg,var(--accent),var(--accent-hi));
  color:#3a2a05 !important;font-weight:700 !important;
  padding:10px 20px !important;border-radius:999px !important;
  box-shadow:0 8px 20px rgba(242,181,68,.35);
  transition:transform .2s,box-shadow .2s;
}
.nav-cta:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(242,181,68,.5);background:linear-gradient(135deg,var(--accent-hi),var(--accent))}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:8px;flex-direction:column;gap:5px}
.nav-toggle span{display:block;width:26px;height:2px;background:#fff;border-radius:2px;transition:transform .3s,opacity .3s}
.nav.open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav.open .nav-toggle span:nth-child(2){opacity:0}
.nav.open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------- LEGAL HERO ---------- */
.legal-hero{
  position:relative;overflow:hidden;
  background:
    radial-gradient(900px 500px at 78% -10%,rgba(59,130,246,.42),transparent 60%),
    radial-gradient(700px 500px at 8% 20%,rgba(242,181,68,.16),transparent 55%),
    linear-gradient(160deg,var(--navy-950) 0%,var(--navy-900) 45%,var(--navy-800) 100%);
  color:#fff;padding:140px 0 84px;
}
.legal-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.14),transparent)}
.legal-hero .wrap{position:relative;z-index:2}
.legal-hero-logo{margin-bottom:22px}
.legal-hero-logo img{width:min(100%,290px);height:auto;filter:drop-shadow(0 8px 26px rgba(0,0,0,.42))}
.legal-hero h1{font-size:clamp(28px,4.4vw,44px);font-weight:900;margin:16px 0 12px}
.legal-hero p.sub{color:rgba(255,255,255,.8);font-size:15.5px;max-width:640px}
.legal-hero .legal-date{margin-top:14px;font-size:13px;color:rgba(255,255,255,.62)}

/* ---------- LEGAL BODY ---------- */
.legal-main{max-width:920px;margin:-46px auto 80px;padding:0 24px;position:relative;z-index:5}
.legal-card{
  background:#fff;border:1px solid var(--line);border-radius:22px;
  box-shadow:var(--shadow-lg);padding:clamp(26px,4vw,56px);
}
.legal-card > h2:first-child,.legal-card > .section:first-child{margin-top:0}

/* typography inside card */
.legal-card p{margin-bottom:16px;color:var(--ink)}
.legal-card strong{color:var(--navy-900)}
.legal-card a.inline,.legal-card p a,.legal-card dd a,.legal-card td a{color:var(--blue-500);text-decoration:underline;text-underline-offset:2px}
.legal-card a.inline:hover,.legal-card p a:hover,.legal-card td a:hover{color:var(--blue-600)}

.legal-card h2{
  font-size:clamp(20px,3vw,26px);font-weight:900;color:var(--navy-900);
  margin:44px 0 22px;padding-bottom:14px;border-bottom:2px solid var(--line);
  position:relative;
}
.legal-card h2::after{content:"";position:absolute;left:0;bottom:-2px;width:56px;height:2px;background:var(--accent)}
.legal-card h3{
  font-size:18px;color:var(--navy-900);font-weight:700;
  margin:32px 0 14px;padding-left:14px;border-left:4px solid var(--blue-500);
}

/* sections */
.section{margin-bottom:26px}
.subsection{margin:0 0 18px}
.subsection p{color:var(--ink)}
.effective-date{text-align:right;color:var(--muted);font-size:13.5px;margin-bottom:24px}

/* key-value / info tables */
.info-table{width:100%;border-collapse:separate;border-spacing:0;margin:18px 0;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.info-table th,.info-table td{padding:16px 20px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);font-size:14.5px}
.info-table th{background:#f2f6fc;color:var(--navy-900);font-weight:700;width:34%}
.info-table td{color:var(--ink)}
.info-table tr:last-child th,.info-table tr:last-child td{border-bottom:none}

/* soft info boxes (事業内容 / 取引銀行 等) */
.business-description{background:#f5f8fd;border:1px solid var(--line);border-radius:14px;padding:22px 24px;margin:14px 0 8px}
.business-description p{margin-bottom:10px}
.business-description p:last-child{margin-bottom:0}
.business-list,.policy-list,.terms-list{list-style:none;margin:12px 0 0;padding:0}
.business-list li,.policy-list li,.terms-list li{position:relative;padding-left:24px;margin-bottom:10px;color:var(--ink)}
.business-list li::before,.policy-list li::before,.terms-list li::before{content:"";position:absolute;left:4px;top:12px;width:7px;height:7px;border-radius:50%;background:var(--accent)}

/* important note strip (利用規約 免責事項 等) */
.important-note{background:#fff4f2;border:1px solid #f3c9be;border-left:5px solid #ef6c4d;border-radius:12px;padding:16px 20px;margin:18px 0}
.important-note p{margin:0;color:#8a3b26}
.important-note strong{color:#b23a1c}
/* nested list inside a policy list item */
.policy-list ul{list-style:disc;margin:10px 0 4px;padding-left:22px}
.policy-list ul li{position:static;padding-left:2px;margin-bottom:6px;color:var(--muted)}
.policy-list ul li::before{display:none}

/* message / accent panel */
.message-section{background:linear-gradient(135deg,#f4f8ff,#eef4ff);border:1px solid var(--line);border-left:5px solid var(--blue-500);border-radius:14px;padding:28px 30px;margin:28px 0}
.message-section h3{border:none;padding-left:0;margin-top:0;margin-bottom:16px;color:var(--navy-900)}
.message-section p{line-height:2}

/* notice / warning box */
.notice-box{background:#fffaf0;border:1px solid #f6e2b3;border-left:5px solid var(--accent);border-radius:14px;padding:24px 26px;margin:30px 0}
.notice-box h2{border:none;padding:0;margin:0 0 12px;font-size:18px;color:#8a6212}
.notice-box h2::after{display:none}
.notice-box p{margin-bottom:8px}

/* contact info block */
.contact-info{background:#f5f8fd;border:1px solid var(--line);border-radius:14px;padding:24px 26px;margin-top:26px}
.contact-info p{margin-bottom:10px}

/* back to home */
.legal-back{display:inline-flex;align-items:center;gap:8px;margin-top:40px;font-weight:700;font-size:14.5px;color:var(--blue-600)}
.legal-back svg{width:18px;height:18px}
.legal-back:hover{color:var(--blue-500)}

/* ---------- FOOTER (index.html と同一) ---------- */
footer.site{background:var(--navy-950);color:rgba(255,255,255,.72);padding:60px 0 30px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,.1)}
.foot-brand img{height:34px;margin-bottom:16px}
.foot-brand p{font-size:13.5px;color:rgba(255,255,255,.6);max-width:340px}
.foot-col h4{color:#fff;font-size:14px;margin-bottom:16px;letter-spacing:.04em}
.foot-col a{display:block;font-size:13.5px;color:rgba(255,255,255,.66);padding:6px 0;transition:color .2s}
.foot-col a:hover{color:var(--accent-hi)}
.foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:24px;font-size:12.5px;color:rgba(255,255,255,.5)}
.foot-legal a{color:rgba(255,255,255,.6);margin-left:16px}
.foot-legal a:hover{color:#fff}

/* ---------- BOTTOM CONTACT STRIP (index.html と同一) ---------- */
.kr-cv-float{background:var(--navy-950);display:flex;justify-content:center;flex-wrap:wrap;gap:12px;padding:0 16px calc(30px + env(safe-area-inset-bottom))}
.kr-cv-float a{display:inline-flex;align-items:center;gap:8px;padding:11px 22px;border-radius:999px;color:#fff;font-size:13px;font-weight:700;line-height:1;box-shadow:0 6px 18px rgba(0,0,0,.28);transition:transform .2s,filter .2s}
.kr-cv-float a:hover{transform:translateY(-2px);filter:brightness(1.08)}
.kr-cv-float svg{width:18px;height:18px;flex:none}
.kr-cv-line{background:#06C755}
.kr-cv-tel{background:#FF6B35}

/* ---------- RESPONSIVE ---------- */
@media (max-width:768px){
  .nav-links{
    position:fixed;top:62px;left:0;right:0;
    flex-direction:column;align-items:stretch;gap:0;
    background:rgba(9,22,44,.98);backdrop-filter:blur(14px);
    padding:10px 18px 22px;
    transform:translateY(-140%);transition:transform .35s cubic-bezier(.4,0,.2,1);
    border-bottom:1px solid rgba(255,255,255,.1);box-shadow:0 20px 40px rgba(0,0,0,.4);
  }
  .nav.open .nav-links{transform:translateY(0)}
  .nav-links a{padding:14px 8px;border-radius:0;border-bottom:1px solid rgba(255,255,255,.07);font-size:16px}
  .nav-cta{margin:14px 0 0 !important;text-align:center;justify-content:center;display:flex}
  .nav-toggle{display:flex}
  .legal-hero{padding:110px 0 66px}
  .foot-grid{grid-template-columns:1fr}
}
@media (max-width:560px){
  .info-table th,.info-table td{display:block;width:100%}
  .info-table th{border-bottom:none;padding-bottom:4px}
  .info-table td{padding-top:6px}
  .legal-main{margin-top:-34px}
}
