/* ============================================
   NPO法人せかい卵 共通スタイル – 案4ベース
   金・琥珀ライン × 和紙ベージュ × 深緑 × レンガ × ホワイト
   ============================================ */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
:root{
  --washi:       #F5F0E8;
  --washi-dark:  #EAE3D3;
  --washi-deep:  #D9CFBA;
  --white:       #FDFCF8;
  --green:       #3B5E3A;
  --green-mid:   #567354;
  --green-pale:  #E8F0E7;
  --gold:        #C9A84C;
  --gold-light:  #E2C87A;
  --gold-pale:   #FBF6E8;
  --terra:       #C0614A;
  --terra-pale:  #FBF0EC;
  --amber:       #D4860A;
  --ink:         #1A1714;
  --ink-mid:     #4A4640;
  --ink-light:   #8A8478;
  --border:      #DDD5C0;
}
body{background:var(--washi);
  color:var(--ink);
  font-family:'Noto Sans JP',sans-serif;
  font-weight:300;
  line-height:1.85;
}
a{text-decoration:none;color:inherit;}

/* ============ NAV ============ */
.site-nav{background:var(--green);
  position:sticky;
  top:0;
  z-index:100;
  border-bottom:2px solid var(--gold);
}
.nav-inner{max-width:800px;
  margin:0 auto;
  padding:0 28px;
  height:58px;
  display:flex;align-items:center;
  justify-content:space-between;
  gap:20px;
}
.nav-logo{display:flex;
  align-items:center;
  gap:11px;
}
.logo-egg{width:28px;
  height:34px;
  border-radius:50% 50% 50% 50%/60% 60% 40% 40%;
  border:1.5px solid var(--gold);
  background:rgba(201,168,76,.15);
}
.logo-name{font-size:14px;
  color:#fff;
  letter-spacing:.08em;
  line-height:1.3;
}
.logo-name small{display:block;
  font-size:9px;
  color:rgba(255,255,255,.5);
  letter-spacing:.25em;
  font-weight:300;
}
.nav-links{display:flex;
  list-style:none;
}
.nav-links a{font-size:12px;
  color:rgba(255,255,255,.75);
  padding:6px 13px;
  letter-spacing:.1em;
}
.nav-links a:hover{color:var(--gold-light);}
.nav-cta{font-size:12px;
  color:var(--green);
  background:var(--gold);
  padding:7px 18px;
  border-radius:2px;
  letter-spacing:.1em;
  font-weight:400;
}
.nav-cta:hover{background:var(--gold-light);}
.ham{display:none;
  flex-direction:column;
  gap:5px;
  cursor:pointer;
  padding:6px;
}
.ham span{display:block;
  width:20px;
  height:1.5px;
  background:rgba(255,255,255,.8);
}
.m-nav{display:none;
  flex-direction:column;
  background:var(--green);
  border-bottom:2px solid var(--gold);
  padding:8px 28px 16px;
}
.m-nav a{color:rgba(255,255,255,.8);
  font-size:14px;
  padding:10px 0;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.m-nav.open{display:flex;}

/* ============ BREADCRUMB ============ */
.breadcrumb{
  background:var(--washi);border-bottom:1px solid var(--border);
}
.breadcrumb-inner{
  max-width:800px;margin:0 auto;padding:10px 28px;
  display:flex;align-items:center;gap:8px;
  font-size:11px;color:var(--ink-light);flex-wrap:wrap;
}
.breadcrumb-inner a{color:var(--ink-light);}
.breadcrumb-inner a:hover{color:var(--amber);}
.breadcrumb-sep{color:var(--washi-deep);}

/* ============ PAGE HEADER ============ */
.page-header{
  background:var(--washi-dark);
  border-bottom:3px solid var(--amber);
  padding:36px 28px 32px;
}
.page-header-inner{max-width:800px;margin:0 auto;}
.page-header-tag{
  font-size:10px;letter-spacing:.3em;color:var(--amber);
  text-transform:uppercase;margin-bottom:10px;
  display:flex;align-items:center;gap:10px;
}
.page-header-tag::before{content:'';width:16px;height:2px;background:var(--amber);}
.page-header h1{
  font-family:'Noto Serif JP',serif;
  font-weight:300;font-size:26px;color:var(--ink);letter-spacing:.04em;
}

/* ============ LAYOUT ============ */
.page-wrap{
  max-width:800px;margin:0 auto;
  padding:36px 28px 64px;
  display:grid;grid-template-columns:1fr;gap:36px;
  align-items:start;
}
.main-col{}

/* ============ SECTION ============ */
.sec{margin-bottom:36px;}
.sec-head{
  font-size:10px;font-weight:500;letter-spacing:.35em;
  color:var(--ink-light);text-transform:uppercase;
  margin-bottom:14px;padding-bottom:8px;
  border-bottom:1px solid var(--border);
  display:flex;align-items:center;gap:10px;
}
.sec-head.c-green::before{content:'';width:14px;height:2px;background:var(--green);}
.sec-head.c-gold::before{content:'';width:14px;height:2px;background:var(--gold);}
.sec-head.c-terra::before{content:'';width:14px;height:2px;background:var(--terra);}
.sec-head.c-amber::before{content:'';width:14px;height:2px;background:var(--amber);}

/* ============ CARDS ============ */
/* concerns */
.prob-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;}
.prob-item{
  background:var(--white);border:1px solid var(--border);
  padding:15px 12px;display:flex;align-items:center;
  gap:9px;font-size:13px;color:var(--ink-mid);border-radius:var(--r);
}
.prob-item:hover{background:var(--green-pale);border-color:var(--green-mid);color:var(--green);}

/* activity */
.act-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;}
.act-card{
  background:var(--white);border:1px solid var(--border);
  padding:20px 16px;display:block;border-radius:var(--r);
}
.act-card:hover{border-color:var(--gold);background:var(--gold-pale);}
.act-en{font-size:9px;letter-spacing:.3em;color:var(--gold);text-transform:uppercase;margin-bottom:7px;}
.act-ja{font-size:14px;font-weight:400;color:var(--ink);line-height:1.5;margin-bottom:9px;}
.act-more{font-size:11px;color:var(--ink-light);}
.act-more::after{content:' →';}

/* supporter / other */
.duo-row{display:grid;grid-template-columns:1fr 1fr;gap:7px;}
.line-item{
  background:var(--white);border:1px solid var(--border);
  padding:14px 16px;font-size:13px;color:var(--ink-mid);
  display:flex;justify-content:space-between;align-items:center;
  border-radius:var(--r);margin-bottom:7px;
}
.line-item:hover{border-color:var(--gold);background:var(--gold-pale);color:var(--ink);}
.line-item.h-terra:hover{border-color:var(--terra-bdr);background:var(--terra-pale);color:var(--terra-mid);}
.line-item.h-amber:hover{border-color:var(--amber);background:var(--amber-pale);color:var(--ink);}
.arr{color:var(--ink-light);font-size:12px;}

/* ============ CONTENT BODY ============ */
.content-body{
  background:var(--white);border:1px solid var(--border);
  border-radius:var(--r);padding:32px 28px;
  font-size:14px;line-height:2;color:var(--ink-mid);
}
.content-body h2{
  font-family:'Noto Serif JP',serif;font-weight:300;
  font-size:20px;color:var(--ink);margin-bottom:16px;
  padding-bottom:10px;border-bottom:2px solid var(--amber);
}
.content-body h3{
  font-size:15px;font-weight:500;color:var(--ink);
  margin:24px 0 10px;
}
.content-body p{margin-bottom:14px;}
.content-body p:last-child{margin-bottom:0;}
.content-body strong{font-weight:500;color:var(--ink);}
.content-body a{color:var(--amber);border-bottom:1px solid var(--amber-pale);}
.content-body a:hover{color:var(--terra);}

/* info table */
.info-table{width:100%;border-collapse:collapse;font-size:14px;margin-bottom:8px;}
.info-table th{
  width:130px;padding:12px 16px;text-align:left;
  background:var(--washi);border:1px solid var(--border);
  font-weight:500;color:var(--ink);vertical-align:top;white-space:nowrap;
}
.info-table td{
  padding:12px 16px;border:1px solid var(--border);
  color:var(--ink-mid);vertical-align:top;line-height:1.8;
}

/* price box */
.price-box{
  background:var(--gold-pale);border:1px solid var(--gold-light);
  border-left:3px solid var(--gold);border-radius:var(--r);
  padding:18px 20px;margin:20px 0;font-size:13px;
}
.price-box .p-row{display:flex;gap:12px;margin-bottom:8px;align-items:baseline;}
.price-box .p-row:last-child{margin-bottom:0;}
.price-label{font-weight:500;color:var(--ink);white-space:nowrap;min-width:140px;}
.price-val{color:var(--ink-mid);}

/* note box */
.note-box{
  background:var(--washi);border:1px solid var(--border);
  border-left:3px solid var(--amber);border-radius:var(--r);
  padding:14px 18px;font-size:13px;color:var(--ink-mid);margin:16px 0;
}

/* contact box */
.contact-box{
  background:var(--washi-dark);border:1px solid var(--border);
  border-radius:var(--r);padding:22px 24px;
}
.contact-box .c-row{display:flex;gap:16px;align-items:center;margin-bottom:10px;}
.contact-box .c-row:last-child{margin-bottom:0;}
.c-label{font-size:11px;letter-spacing:.18em;color:var(--ink-light);text-transform:uppercase;min-width:60px;}
.c-val{font-size:16px;font-weight:500;color:var(--ink);}
.c-val a{color:var(--amber);border-bottom:1px solid var(--gold-pale);}

/* bank box */
.bank-box{
  background:var(--white);border:1px solid var(--border);
  border-radius:var(--r);padding:18px 20px;font-size:13px;
  color:var(--ink-mid);line-height:2;
}
.bank-box strong{color:var(--ink);font-weight:500;}

/* fee grid */
.fee-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0;}
.fee-card{
  background:var(--white);border:1px solid var(--border);
  border-top:3px solid var(--gold);border-radius:var(--r);
  padding:18px 16px;text-align:center;
}
.fee-type{font-size:11px;letter-spacing:.18em;color:var(--ink-light);text-transform:uppercase;margin-bottom:8px;}
.fee-price{font-size:22px;font-weight:500;color:var(--amber);line-height:1.2;}
.fee-unit{font-size:11px;color:var(--ink-light);margin-top:4px;}

/* ============ SIDEBAR ============ */
.sidebar{position:sticky;top:76px;}
.sb-card{
  background:var(--white);border:1px solid var(--border);
  border-radius:var(--r);overflow:hidden;margin-bottom:14px;
}
.sb-head{
  padding:11px 16px;background:var(--washi);
  border-bottom:1px solid var(--border);
  font-size:10px;letter-spacing:.28em;text-transform:uppercase;
  color:var(--amber);font-weight:500;
}
.sb-news-item{padding:12px 16px;border-bottom:1px solid var(--washi-dark);}
.sb-news-item:last-child{border-bottom:none;}
.sb-date{font-size:10px;color:var(--ink-light);letter-spacing:.08em;margin-bottom:3px;}
.sb-news-title{font-size:12px;color:var(--ink-mid);line-height:1.6;}
.sb-news-title:hover{color:var(--green);}
.sb-links{list-style:none;}
.sb-links li a{
  display:flex;justify-content:space-between;align-items:center;
  padding:11px 16px;font-size:13px;color:var(--ink-mid);
  border-bottom:1px solid var(--washi-dark);
}
.sb-links li:last-child a{border-bottom:none;}
.sb-links li a:hover{background:var(--washi);color:var(--ink);}
.sb-links li a::after{content:'→';font-size:11px;color:var(--amber);}
.sb-links li a.current-link{color:var(--amber);font-weight:400;}
.sb-links li a.current-link::after{color:var(--amber);}

/* ============ HERO (TOP only) ============ */
.hero{background:var(--white);
  border-bottom:1px solid var(--border);
}
.hero-inner{max-width:800px;
  margin:0 auto;
  padding:56px 28px 48px;
  display:grid;
  grid-template-columns:1fr;
  gap:52px;
  align-items:center;
}
.hero-kicker{font-size:11px;
  letter-spacing:.3em;
  color:var(--gold);
  text-transform:uppercase;
  margin-bottom:18px;
  display:flex;
  align-items:center;
  gap:10px;
}
.hero-kicker::before{content:'';
  width:24px;
  height:1px;
  background:var(--gold);
}
.hero-heading{font-family:'Noto Serif JP',serif;
  font-weight:200;
  font-size:27px;
  line-height:1.9;
  color:var(--ink);
}
.hot-card{background:var(--gold-pale);
  border:1px solid var(--gold-light);
  border-radius:4px;
  padding:26px;
}
.hot-top{display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:12px;
}
.hot-pip{width:8px;
  height:8px;
  background:var(--amber);
  border-radius:50%;
}
.hot-label{font-size:10px;
  letter-spacing:.25em;
  color:var(--amber);
  text-transform:uppercase;
}
.hot-title{font-size:15px;
  font-weight:500;
  color:var(--ink);
  margin-bottom:9px;
  line-height:1.5;
}
.hot-body{font-size:13px;
  color:var(--ink-mid);
  line-height:1.85;
}
.hot-link{display:inline-flex;
  align-items:center;
  gap:7px;
  margin-top:14px;
  font-size:12px;
  color:var(--amber);
  font-weight:400;
  letter-spacing:.1em;
}
.hot-link::after{content:'→';}

/* ============ FOOTER ============ */
.site-footer{
  background:var(--washi-dark);border-top:1px solid var(--border);
  padding:20px 28px;text-align:center;
}
.site-footer p{font-size:11px;color:var(--ink-light);letter-spacing:.1em;}

/* ============ RESPONSIVE ============ */
@media(max-width:760px){
  .nav-links,.nav-cta{display:none;}
  .ham{display:flex;}
  .hero-inner{grid-template-columns:1fr;gap:24px;padding:36px 20px 28px;}
  .page-wrap{grid-template-columns:1fr;padding:24px 16px 48px;gap:28px;}
  .sidebar{position:static;}
  .prob-grid{grid-template-columns:1fr 1fr;}
  .act-grid{grid-template-columns:1fr;}
  .duo-row{grid-template-columns:1fr;}
  .fee-grid{grid-template-columns:1fr;}
  .nav-inner{padding:0 16px;}
  .page-header{padding:28px 20px 24px;}
  .info-table th{width:90px;}
  .price-box .p-row{flex-direction:column;gap:4px;}
  .price-label{min-width:auto;}
  .m-nav{padding:8px 16px 16px;}
}
@media(max-width:440px){
  .prob-grid{grid-template-columns:1fr;}
  .content-body{padding:24px 18px;}
}
