@charset "utf-8";
/* =====================================================================
   さきほこる
   style-common.css  ―  全ページ共通スタイル（トークン・ヘッダー・フッター等）
   ※ ページ固有のスタイルは style-index.css / style-team.css /
      style-contact.css / style-privacy.css に分けています。
   ===================================================================== */

/* ---------- 1. デザイントークン ------------------------------------ */
:root{
  /* 色：紙・インク・新芽・コーラル・記録の黄 */
  --paper:        #FAF6EC;
  --paper-2:      #FFFDF7;
  --grid:         rgba(62,124,78,.13);
  --ink:          #22302A;
  --ink-2:        #56655C;
  --ink-3:        #8A968E;
  --green:        #3E7C4E;
  --green-deep:   #1F4D31;
  --leaf:         #6FB07F;
  --leaf-pale:    #E4F0E4;
  --coral:        #FF6B4A;
  --coral-pale:   #FFE7DF;
  --amber:        #FFC24A;
  --amber-pale:   #FFF2D2;
  --tape:         rgba(255,194,74,.55);
  --rule:         #DDD6C4;

  /* 書体 */
  --round:"Zen Maru Gothic","Hiragino Maru Gothic ProN",sans-serif;
  --sans:"Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  --hand:"Yomogi",var(--round);
  --mincho:"Shippori Mincho","Hiragino Mincho ProN",serif;

  /* レイアウト */
  --pad:20px;
  --max:1080px;
  --radius:6px;
}

/* ---------- 2. ベース ---------------------------------------------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  background-color:var(--paper);
  background-image:
    linear-gradient(var(--grid) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:28px 28px;
  font-family:var(--sans);
  font-size:16px;
  line-height:1.9;
  -webkit-font-smoothing:antialiased;
  padding-bottom:78px; /* 追従CTA分 */
}
img{max-width:100%;display:block}
a{color:var(--green);text-underline-offset:3px}
:focus-visible{outline:3px solid var(--coral);outline-offset:3px}
@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important}
  html{scroll-behavior:auto}
}
.inner{width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.narrow{max-width:720px}

/* ふりがな：既定は非表示。body.ruby-on で表示 */
rt{display:none;font-size:.5em;font-weight:400;color:var(--ink-3)}
body.ruby-on rt{display:revert}

/* ---------- 3. ヘッダー -------------------------------------------- */
.site-header{
  position:sticky;top:0;z-index:40;
  background-color:rgba(250,246,236,.94);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--rule);
}
.header-row{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:10px var(--pad);max-width:var(--max);margin:0 auto;
}
.logo{
  font-family:var(--round);font-weight:700;font-size:20px;
  color:var(--green-deep);text-decoration:none;letter-spacing:.06em;
}
.header-tools{display:flex;align-items:center;gap:8px}
.ruby-btn{
  font-family:var(--round);font-size:12px;font-weight:700;
  color:var(--green-deep);background-color:var(--amber-pale);
  border:1.5px solid var(--amber);border-radius:999px;
  padding:5px 12px;cursor:pointer;line-height:1.4;
}
.ruby-btn[aria-pressed="true"]{background-color:var(--amber);color:var(--ink)}
.header-nav{display:none}
@media (min-width:900px){
  .header-nav{display:flex;gap:22px}
  .header-nav a{
    font-size:14px;font-weight:500;color:var(--ink-2);text-decoration:none;
    padding-bottom:2px;border-bottom:2px solid transparent;
  }
  .header-nav a:hover{color:var(--green);border-bottom-color:var(--coral)}
}

/* ---------- 4. 共通パーツ：写真スロット ----------------------------- */
.photo-slot{
  aspect-ratio:4/3;
  background-color:var(--leaf-pale);
  border:2px dashed var(--leaf);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:4px;text-align:center;padding:14px;
}
.photo-slot .slot-title{font-family:var(--round);font-weight:700;font-size:14px;color:var(--green-deep)}
.photo-slot .slot-note{font-size:11.5px;color:var(--ink-3);line-height:1.7}

/* 写真が入った状態（プレースホルダーの点線枠を解除し、写真を敷き詰める） */
img.photo-slot.has-photo{
  display:block;
  width:100%;
  height:auto;
  border:none;
  background-color:var(--rule);
  object-fit:cover;
  padding:0;
}

/* ---------- 5. セクション共通 -------------------------------------- */
section{padding:52px 0}
.sec-label{
  font-family:var(--hand);font-size:14px;color:var(--coral);
  margin:0 0 6px;display:flex;align-items:center;gap:8px;
}
.sec-label::before{content:"";width:22px;height:2px;background-color:var(--coral)}
h2{
  font-family:var(--round);font-weight:700;
  font-size:clamp(23px,5.6vw,34px);line-height:1.45;
  margin:0 0 18px;text-wrap:balance;
}
h3{font-family:var(--round);font-weight:700;font-size:18px;margin:0 0 8px}
p{margin:0 0 16px}

/* ---------- 6. ボタン・CTA共通 -------------------------------------- */
.cta{text-align:center;padding:56px 0 60px}
.cta .seed{margin:0 auto 14px;width:40px;height:40px;display:block}
.cta h2{margin-bottom:10px}
.cta p{font-size:15px;color:var(--ink-2);max-width:30em;margin:0 auto 26px}
.btn{
  display:inline-block;font-family:var(--round);font-weight:700;font-size:16px;
  text-decoration:none;padding:15px 34px;
  border:2px solid var(--green-deep);
}
.btn-main{background-color:var(--green-deep);color:var(--paper);box-shadow:3px 4px 0 var(--leaf)}
.btn-main:hover{transform:translate(-1px,-2px)}
.btn-sub{background-color:var(--paper-2);color:var(--green-deep);margin-top:12px}

/* ---------- 7. サブページ共通ヘッダー ------------------------------ */
.page-hero{padding:40px 0 6px}
.page-hero .crumb{font-family:var(--hand);font-size:13px;color:var(--ink-3);margin:0 0 12px}
.page-hero .crumb a{color:var(--ink-3);text-decoration:underline;text-underline-offset:3px}
.page-hero h1{font-family:var(--round);font-weight:700;font-size:clamp(26px,6.4vw,40px);line-height:1.42;margin:0 0 14px;text-wrap:balance}
.page-hero .lead{font-size:14.5px;color:var(--ink-2);max-width:34em;margin:0 0 6px}

/* ---------- 8. フッター ------------------------------------------- */
.site-footer{
  background-color:var(--green-deep);color:rgba(250,246,236,.82);
  padding:36px 0 34px;font-size:13.5px;
}
.site-footer .logo{color:var(--paper);font-size:19px;display:inline-block;margin-bottom:8px}
.site-footer nav{display:flex;flex-wrap:wrap;gap:10px 20px;margin:18px 0 20px}
.site-footer nav a{color:rgba(250,246,236,.82);text-decoration:none;font-size:13.5px}
.site-footer nav a:hover{color:var(--amber)}
.site-footer .copy{font-size:12px;color:rgba(250,246,236,.55);margin:0}

/* ---------- 9. 追従CTA（スマホ最優先） ---------------------------- */
.sticky-cta{
  position:fixed;left:0;right:0;bottom:0;z-index:50;
  display:grid;grid-template-columns:repeat(3,1fr);
  background-color:var(--paper-2);
  border-top:2px solid var(--green-deep);
  box-shadow:0 -4px 14px rgba(34,48,42,.10);
}
.sticky-cta a{
  padding:12px 4px 13px;text-align:center;text-decoration:none;
  font-family:var(--round);font-weight:700;font-size:12.5px;line-height:1.4;
  color:var(--green-deep);border-right:1px solid var(--rule);
}
.sticky-cta a:last-child{border-right:none}
.sticky-cta a small{display:block;font-size:10.5px;font-weight:500;color:var(--ink-3);margin-top:2px}
.sticky-cta a.primary{background-color:var(--coral);color:#FFFFFF}
.sticky-cta a.primary small{color:rgba(255,255,255,.85)}
