/* 共通サブページスタイル */
:root{
  --bg: #FAFAF7;
  --bg-soft: #F2F1EC;
  --bg-card: #FFFFFF;
  --ink: #1A2E2A;
  --ink-soft: #4A5853;
  --ink-mute: #8B958F;
  --green: #2D6A4F;
  --green-light: #D8EBE0;
  --green-soft: #95D5B2;
  --yellow: #FFD166;
  --yellow-soft: #FFF3D6;
  --coral: #FF8B7A;
  --coral-soft: #FFE5DD;
  --blue: #88B7D5;
  --blue-soft: #E1EEF5;
  --line: #E8E5DC;
}

*{margin:0; padding:0; box-sizing:border-box;}
html{scroll-behavior:smooth;}

body{
  font-family:'Zen Kaku Gothic New', 'Plus Jakarta Sans', sans-serif;
  background:var(--bg);
  color:var(--ink);
  font-weight:500;
  line-height:1.8;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  font-feature-settings:"palt";
}

.round{font-family:'Zen Maru Gothic', sans-serif;}

/* ===== NAV ===== */
nav{
  position:fixed;
  top:0; left:0; right:0;
  z-index:100;
  padding:1.2rem 2.5rem;
  background:rgba(250,250,247,0.85);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  transition:all 0.3s ease;
}
.nav-inner{
  max-width:1280px;
  margin:0 auto;
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.logo{
  text-decoration:none;
  color:var(--ink);
  display:flex;
  align-items:center;
  gap:0.6rem;
  font-weight:700;
  font-size:1.15rem;
  letter-spacing:0.02em;
}
.logo-icon{
  width:36px; height:36px;
  background:var(--green);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:#fff;
  font-family:'Zen Maru Gothic', sans-serif;
  font-weight:900;
  font-size:1rem;
  position:relative;
}
.nav-links{
  display:flex;
  list-style:none;
  gap:2.2rem;
  align-items:center;
}
.nav-links a{
  text-decoration:none;
  color:var(--ink-soft);
  font-weight:500;
  font-size:0.92rem;
  transition:color 0.2s;
}
.nav-links a:hover{color:var(--green);}
.nav-cta{
  background:var(--ink) !important;
  color:#fff !important;
  padding:0.65rem 1.4rem !important;
  border-radius:999px;
  font-weight:600 !important;
}

/* ===== CONTENT PAGE ===== */
.page-header{
  padding:10rem 2.5rem 4rem;
  text-align:center;
  background:linear-gradient(to bottom, var(--green-light) 0%, var(--bg) 100%);
}
.page-title{
  font-size:clamp(2rem, 4vw, 3rem);
  font-weight:900;
  margin-bottom:1rem;
}

.content-container{
  max-width:900px;
  margin:0 auto 8rem;
  padding:0 2.5rem;
}
.content-card{
  background:#fff;
  padding:4rem;
  border-radius:32px;
  box-shadow:0 20px 50px -15px rgba(0,0,0,0.08);
  border:1px solid var(--line);
}

.content-card h2{
  font-size:1.5rem;
  margin:2.5rem 0 1rem;
  padding-bottom:0.5rem;
  border-bottom:2px solid var(--green-light);
  color:var(--green);
}
.content-card h2:first-child{ margin-top:0; }
.content-card h3{
  font-size:1.2rem;
  margin:1.5rem 0 0.8rem;
  color:var(--ink);
}
.content-card p{
  margin-bottom:1.2rem;
  color:var(--ink-soft);
}
.content-card ul, .content-card ol{
  margin-bottom:1.5rem;
  padding-left:1.5rem;
}
.content-card li{
  margin-bottom:0.5rem;
  color:var(--ink-soft);
}

.law-table{
  width:100%;
  border-collapse: collapse;
  margin-bottom:2rem;
}
.law-table th, .law-table td{
  padding:1.2rem;
  border-bottom:1px solid var(--line);
  text-align:left;
}
.law-table th{
  width:30%;
  background:var(--bg-soft);
  font-weight:700;
  color:var(--ink);
}

.btn-cancellation{
  display:inline-block;
  background:var(--ink);
  color:#fff;
  padding:1rem 2rem;
  border-radius:999px;
  text-decoration:none;
  font-weight:700;
  margin-top:2rem;
  transition:all 0.3s;
}
.btn-cancellation:hover{
  background:var(--coral);
  transform:translateY(-2px);
}

/* ===== FOOTER ===== */
footer{
  background:var(--ink);
  color:rgba(255,255,255,0.8);
  padding:5rem 2.5rem 2rem;
}
.footer-grid{
  max-width:1280px;
  margin:0 auto;
  display:grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap:4rem;
}
.footer-logo{ color:#fff; margin-bottom:1.5rem; }
.footer-col h5{ color:#fff; margin-bottom:1.5rem; font-size:1rem; }
.footer-col ul{ list-style:none; }
.footer-col ul li{ margin-bottom:0.8rem; }
.footer-col ul li a{ color:inherit; text-decoration:none; transition:0.2s; font-size:0.9rem; }
.footer-col ul li a:hover{ color:var(--green-soft); }
.footer-bottom{
  max-width:1280px;
  margin:4rem auto 0;
  padding-top:2rem;
  border-top:1px solid rgba(255,255,255,0.1);
  display:flex;
  justify-content:space-between;
  font-size:0.8rem;
}

@media (max-width:992px){
  .footer-grid{ grid-template-columns: 1fr 1fr; }
}
@media (max-width:600px){
  .footer-grid{ grid-template-columns: 1fr; gap:2.5rem; }
  .content-card{ padding:2.5rem 1.5rem; }
}
