:root{
  --ink:#2b2522;          /* 墨 */
  --ink-soft:#5a504a;
  --paper:#fbf6ea;        /* 生成り */
  --paper-2:#f3ead4;
  --card:#ffffff;
  --gold:#e3a72f;         /* 山吹 */
  --gold-deep:#8a5f0c;    /* 文字用（生成り地でコントラスト4.5以上） */
  --cream:#fff1c9;        /* 組みひものクリーム白 */
  --vermilion:#c8553d;    /* 朱 */
  --vermilion-deep:#a8432e;
  --pink:#e98aa6;         /* にんこ */
  --green:#5f8a5a;        /* 島ヶ原の山 */
  --line:#e4d8bd;
  --radius:18px;
  --max:1080px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:72px}
html,body{overflow-x:clip}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Hiragino Sans","Noto Sans JP",sans-serif;font-weight:500;line-height:1.9;letter-spacing:.02em;-webkit-text-size-adjust:100%}
img{max-width:100%;height:auto}
a{color:inherit}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--vermilion);outline-offset:3px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
h1,h2,h3{line-height:1.45;font-weight:900;margin:0}
p{margin:0 0 1em}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:8px 14px;z-index:100}
.skip:focus{left:8px;top:8px}

/* ===== header ===== */
.site-header{position:sticky;top:0;z-index:10;background:rgba(251,246,234,.94);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:64px;gap:12px}
.logo{display:flex;align-items:center;gap:8px;text-decoration:none;font-weight:900;font-size:1.5rem;line-height:1.1}
.logo img{width:30px;height:auto}
.logo small{font-size:.68rem;font-weight:700;color:var(--ink-soft);display:block;line-height:1.3}
.nav{display:flex;gap:16px;font-size:.88rem;font-weight:700;white-space:nowrap}
.nav a{text-decoration:none;padding:4px 0;border-bottom:2px solid transparent}
.nav a:hover{color:var(--vermilion-deep)}
.nav a[aria-current="page"]{border-bottom-color:var(--gold)}
.tel-btn{display:inline-flex;align-items:center;gap:6px;background:var(--vermilion-deep);color:#fff;text-decoration:none;border-radius:999px;padding:8px 16px;font-weight:700;font-size:.92rem;white-space:nowrap}
.tel-btn:hover{background:#8f3725}
/* メニューボタン（1100px未満） */
.menu-btn{display:none;align-items:center;gap:6px;background:none;border:2px solid var(--ink);border-radius:999px;padding:6px 12px;font:inherit;font-weight:700;font-size:.85rem;cursor:pointer;color:var(--ink)}
.menu-btn .bars,.menu-btn .bars::before,.menu-btn .bars::after{display:block;width:16px;height:2px;background:currentColor;border-radius:2px;position:relative;transition:transform .2s}
.menu-btn .bars::before,.menu-btn .bars::after{content:"";position:absolute;left:0}
.menu-btn .bars::before{top:-5px}.menu-btn .bars::after{top:5px}
.menu-btn[aria-expanded="true"] .bars{background:transparent}
.menu-btn[aria-expanded="true"] .bars::before{transform:translateY(5px) rotate(45deg)}
.menu-btn[aria-expanded="true"] .bars::after{transform:translateY(-5px) rotate(-45deg)}
@media (max-width:1100px){
  .site-header .wrap{position:relative}
  .menu-btn{display:inline-flex;margin-left:auto}
  .nav{display:none;position:absolute;left:0;right:0;top:64px;flex-direction:column;gap:0;background:var(--paper);border-bottom:2px solid var(--ink);box-shadow:0 10px 20px rgba(0,0,0,.08);padding:8px 20px 16px;font-size:1rem}
  .nav.open{display:flex}
  .nav a{padding:12px 4px;border-bottom:1px dashed var(--line)}
  .nav a[aria-current="page"]{border-bottom-color:var(--gold);color:var(--vermilion-deep)}
}
@media (max-width:640px){.menu-btn .menu-label{display:none}.menu-btn{padding:9px 10px}}
@media (max-width:1280px){.logo small{display:none}}

/* ===== buttons ===== */
.btn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:700;border-radius:999px;padding:12px 26px;border:2px solid var(--ink);font:inherit;font-weight:700;cursor:pointer}
.btn.primary{background:var(--ink);color:#fff}
.btn.primary:hover{background:#000}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--card)}
.btn.gold{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.shuriken{width:1.1em;height:1.1em;flex:none;transition:transform .6s cubic-bezier(.2,.8,.2,1)}

/* ===== hero ===== */
.hero{position:relative;overflow:hidden;background:
  radial-gradient(circle at 85% 20%,rgba(227,167,47,.28),transparent 45%),
  radial-gradient(circle at 10% 90%,rgba(233,138,166,.18),transparent 40%),
  var(--paper)}
.hero .wrap{display:grid;grid-template-columns:1.25fr .75fr;align-items:center;gap:24px;padding-top:64px;padding-bottom:88px}
.badge{display:inline-block;background:var(--ink);color:var(--gold);font-weight:700;font-size:.85rem;border-radius:999px;padding:4px 14px;margin-bottom:18px}
.hero h1{font-size:clamp(1.9rem,4.6vw,3.1rem)}
.hero h1 em{font-style:normal;color:var(--vermilion-deep)}
.hero h1 .sub{display:block;font-size:.42em;color:var(--ink-soft);margin-top:10px;font-weight:700;letter-spacing:.06em}
.hero .lead{margin-top:18px;font-size:1.05rem;color:var(--ink-soft)}
.hero .cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.duo{position:relative;display:flex;justify-content:center;align-items:flex-end;gap:6px;min-height:240px}
.duo::before{content:"";position:absolute;bottom:0;width:88%;aspect-ratio:1;border-radius:50%;background:var(--gold);opacity:.9;z-index:0}
.duo img{position:relative;z-index:1;width:42%;max-width:150px;filter:drop-shadow(0 6px 0 rgba(43,37,34,.15))}
.duo .main-nm{transform:translateY(-6px) rotate(-3deg)}
.duo .main-nk{transform:rotate(3deg)}
.duo .clone{position:absolute;z-index:0;bottom:6px;left:50%;width:30%;max-width:110px;opacity:0;pointer-events:none}
.hero-wave{position:absolute;left:0;right:0;bottom:-1px;height:48px;background:var(--card);clip-path:polygon(0 60%,10% 40%,22% 62%,35% 30%,48% 58%,62% 34%,76% 60%,88% 38%,100% 56%,100% 100%,0 100%)}
@media (max-width:760px){
  .hero .wrap{grid-template-columns:1fr;padding-top:36px;padding-bottom:72px}
  .duo{min-height:190px;order:-1}
  .duo::before{width:60%}
  .duo img{width:30%}
  .hero .lead br{display:none}
}

/* ===== page header (subpages) ===== */
.page-head{background:var(--paper-2);padding:36px 0 40px;position:relative;overflow:hidden}
.page-head h1{font-size:clamp(1.6rem,3.6vw,2.3rem)}
.page-head p{margin:10px 0 0;color:var(--ink-soft)}
.page-head .peek-img{position:absolute;right:max(20px,calc(50% - 520px));bottom:-8px;width:84px}
.crumbs{font-size:.8rem;color:var(--ink-soft);margin-bottom:8px}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px}
.crumbs li+li::before{content:"›";margin-right:4px}
.crumbs a{text-decoration:none}
.crumbs a:hover{text-decoration:underline}
@media (max-width:560px){.page-head .peek-img{width:60px}}

/* ===== sections ===== */
section{padding:80px 0}
.bg-white{background:var(--card)}
.bg-paper2{background:var(--paper-2)}
.sec-head{text-align:center;margin-bottom:44px;position:relative}
.sec-head .en{display:block;font-size:.8rem;letter-spacing:.25em;color:var(--gold-deep);font-weight:700;margin-bottom:6px}
.sec-head h2{font-size:clamp(1.5rem,3.2vw,2.1rem)}
.sec-head h2::after{content:"";display:block;width:64px;height:8px;margin:14px auto 0;border-radius:4px;border:1px solid var(--gold-deep);
  background:repeating-linear-gradient(135deg,var(--gold) 0 6px,var(--cream) 6px 9px)}
.sec-head p{margin-top:14px;color:var(--ink-soft)}
.more{text-align:center;margin-top:32px}

/* peek: にんまるが見出しの横からひょっこり */
.peek{position:absolute;right:0;bottom:-6px;width:70px;height:92px;overflow:hidden;pointer-events:none}
.peek img{position:absolute;left:0;bottom:0;width:70px}
@media (max-width:560px){.peek{width:52px;height:70px}.peek img{width:52px}}

/* ===== news ===== */
.news{max-width:760px;margin:0 auto;list-style:none;padding:0}
.news li{display:grid;grid-template-columns:110px 1fr;gap:16px;padding:16px 4px;border-bottom:1px dashed var(--line)}
.news time{font-weight:700;color:var(--gold-deep)}
@media (max-width:560px){.news li{grid-template-columns:1fr;gap:2px}}

/* ===== about ===== */
.about{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.quote{background:var(--card);border-radius:var(--radius);padding:32px;border:2px solid var(--ink);box-shadow:8px 8px 0 var(--gold)}
.quote p:last-child{margin:0}
.quote strong{color:var(--vermilion-deep)}
.pillars{display:grid;gap:14px}
.pillar{display:flex;gap:14px;align-items:flex-start}
.pillar .num{flex:none;width:44px;height:44px;border-radius:50%;background:var(--ink);color:var(--gold);display:grid;place-items:center;font-weight:900}
.pillar h3{font-size:1.08rem}
.pillar p{margin:2px 0 0;color:var(--ink-soft);font-size:.95rem}
@media (max-width:760px){.about{grid-template-columns:1fr}}

/* ===== cards ===== */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.card{background:var(--card);border-radius:var(--radius);padding:28px 24px;border:1px solid var(--line);position:relative}
.card .tag{display:inline-block;font-size:.78rem;font-weight:700;border-radius:6px;padding:2px 10px;margin-bottom:10px}
.tag.gold{background:#fbecc7;color:#6b4806}
.tag.pink{background:#fbe0e8;color:#8f2f4d}
.tag.green{background:#e2eedd;color:#2f5228}
.card h3{font-size:1.25rem;margin-bottom:6px}
.card .target{font-weight:700;color:var(--ink-soft);font-size:.92rem;margin-bottom:10px}
.card p{font-size:.95rem;margin:0}
.card .note{display:block;margin-top:12px;font-size:.82rem;color:var(--ink-soft)}
.card .card-link{display:inline-block;margin-top:14px;font-weight:700;font-size:.92rem;color:var(--vermilion-deep)}
@media (max-width:860px){.cards{grid-template-columns:1fr}}
.cards.two{grid-template-columns:repeat(2,1fr);max-width:900px;margin:0 auto}
@media (max-width:760px){.cards.two{grid-template-columns:1fr}}

/* ===== features ===== */
.features{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.feature{background:var(--card);border-radius:var(--radius);padding:24px;border-top:6px solid var(--gold)}
.feature:nth-child(3n+2){border-top-color:var(--vermilion)}
.feature:nth-child(3n){border-top-color:var(--green)}
.feature .icon{font-size:1.8rem;line-height:1}
.feature h3{font-size:1.08rem;margin:10px 0 6px}
.feature p{font-size:.93rem;color:var(--ink-soft);margin:0}
@media (max-width:860px){.features{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.features{grid-template-columns:1fr}}

/* ===== day ===== */
.day{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.timeline{background:var(--card);border-radius:var(--radius);padding:28px;border:1px solid var(--line)}
.timeline h3{font-size:1.15rem;margin-bottom:14px}
.timeline ol{list-style:none;margin:0 0 0 8px;padding:0;border-left:3px dotted var(--gold)}
.timeline li{position:relative;padding:0 0 14px 22px}
.timeline li::before{content:"";position:absolute;left:-9px;top:8px;width:14px;height:14px;border-radius:50%;background:var(--paper);border:3px solid var(--ink)}
.timeline b{display:inline-block;min-width:72px;color:var(--gold-deep)}
.small-note{font-size:.85rem;color:var(--ink-soft);text-align:center;margin-top:20px}
@media (max-width:760px){.day{grid-template-columns:1fr}}

/* ===== flow ===== */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:14px;counter-reset:s}
.steps li{background:var(--card);border-radius:var(--radius);padding:22px 16px;text-align:center;counter-increment:s;border:1px solid var(--line)}
.steps li::before{content:"STEP " counter(s);display:block;font-size:.75rem;letter-spacing:.15em;font-weight:900;color:var(--vermilion-deep);margin-bottom:6px}
.steps h3{font-size:1rem;margin-bottom:6px}
.steps p{font-size:.86rem;color:var(--ink-soft);margin:0;line-height:1.7}
@media (max-width:900px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}
.fee{max-width:760px;margin:40px auto 0;background:var(--card);border-radius:var(--radius);padding:28px;border:2px dashed var(--gold)}
.fee h2,.fee h3{font-size:1.1rem;margin-bottom:10px}
.fee table{width:100%;border-collapse:collapse;font-size:.93rem;margin:10px 0 12px}
.fee th,.fee td{border-bottom:1px solid var(--line);padding:8px 6px;text-align:left}
.fee td:last-child{text-align:right;white-space:nowrap;font-weight:700}
.fee .fine{font-size:.82rem;color:var(--ink-soft);margin:0}

/* ===== faq ===== */
.faq{max-width:820px;margin:0 auto;display:grid;gap:12px}
.faq details{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:0 20px}
.faq summary{cursor:pointer;list-style:none;font-weight:900;padding:16px 28px 16px 0;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q.";color:var(--vermilion-deep);margin-right:8px}
.faq summary::after{content:"＋";position:absolute;right:0;top:16px;color:var(--gold-deep);transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .answer{padding:0 0 18px;color:var(--ink-soft)}
.faq .answer p{margin:0}

/* ===== recruit ===== */
.recruit{display:grid;grid-template-columns:.9fr 1.1fr;gap:32px;align-items:start}
.pitch{background:var(--ink);color:#fff;border-radius:var(--radius);padding:32px}
.pitch h2,.pitch h3{font-size:1.4rem;color:var(--gold);margin-bottom:12px}
.pitch ul{margin:0;padding-left:1.2em}
.pitch li{margin-bottom:4px}
.pitch .btn{margin-top:20px}
dl.spec{margin:0;background:var(--card);border-radius:var(--radius);padding:8px 24px;border:1px solid var(--line)}
dl.spec div{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
dl.spec div:last-child{border-bottom:0}
dl.spec dt{font-weight:900;color:var(--gold-deep)}
dl.spec dd{margin:0;font-size:.95rem}
@media (max-width:760px){.recruit{grid-template-columns:1fr}dl.spec div{grid-template-columns:1fr;gap:0}}

/* ===== access ===== */
.access{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:stretch}
.map{border-radius:var(--radius);overflow:hidden;border:2px solid var(--ink);min-height:320px;background:var(--paper-2)}
.map iframe{width:100%;height:100%;min-height:320px;border:0;display:block}
@media (max-width:760px){.access{grid-template-columns:1fr}}

/* ===== form ===== */
.form{max-width:720px;margin:0 auto;background:var(--card);border-radius:var(--radius);padding:32px;border:1px solid var(--line)}
.field{margin-bottom:20px}
.field label,.field .label{display:block;font-weight:900;margin-bottom:6px}
.req,.opt{display:inline-block;font-size:.72rem;border-radius:4px;padding:0 6px;margin-left:8px;vertical-align:2px}
.req{background:var(--vermilion-deep);color:#fff}
.opt{background:var(--paper-2);color:var(--ink-soft)}
.field input,.field select,.field textarea{width:100%;font:inherit;font-size:1rem;padding:12px 14px;border:2px solid var(--line);border-radius:10px;background:#fffdf8;color:var(--ink)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold-deep);outline:none}
.field textarea{min-height:150px;resize:vertical}
.field .hint{font-size:.82rem;color:var(--ink-soft);margin-top:4px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:.92rem}
.consent input{width:20px;height:20px;margin-top:5px;flex:none}
.alert{max-width:720px;margin:0 auto 20px;border-radius:12px;padding:14px 18px;background:#fbe3dd;color:#7a2a1a;font-weight:700}
.alert[hidden]{display:none}
.form .actions{text-align:center;margin-top:8px}

/* ===== prose (privacy etc.) ===== */
.prose{max-width:780px;margin:0 auto;background:var(--card);border-radius:var(--radius);padding:36px;border:1px solid var(--line)}
.prose h2{font-size:1.15rem;margin:28px 0 8px;padding-left:12px;border-left:6px solid var(--gold)}
.prose h2:first-child{margin-top:0}
.prose ul{padding-left:1.3em}
@media (max-width:560px){.prose,.form{padding:22px}}

/* ===== contact band ===== */
.contact{background:var(--gold);text-align:center}
.contact h2{font-size:clamp(1.4rem,3vw,1.9rem)}
.contact .tel{display:inline-block;margin-top:18px;font-size:clamp(1.7rem,5vw,2.4rem);font-weight:900;text-decoration:none;background:var(--card);border:3px solid var(--ink);border-radius:999px;padding:8px 32px;box-shadow:6px 6px 0 var(--ink)}
.contact .tel:hover{transform:translate(2px,2px);box-shadow:4px 4px 0 var(--ink)}
.contact p{margin-top:14px}
.contact .chars{display:flex;justify-content:center;gap:12px;margin-bottom:8px}
.contact .chars img{width:64px;height:auto}
.contact .btn{margin-top:4px}

/* ===== footer ===== */
footer{background:var(--ink);color:#e6dccb;padding:40px 0 28px;font-size:.88rem}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px}
footer strong{color:#fff;font-size:1.1rem}
footer nav{display:flex;flex-wrap:wrap;gap:6px 18px;align-content:flex-start;max-width:420px}
footer nav a{text-decoration:none}
footer nav a:hover{text-decoration:underline}
footer .copy{width:100%;text-align:center;margin-top:16px;font-size:.78rem;color:#b4a896}

/* ===== mobile call bar ===== */
.callbar{display:none}
@media (max-width:640px){
  .site-header .tel-btn span{display:none}
  .callbar{display:flex;position:fixed;left:12px;right:12px;bottom:12px;z-index:20;gap:8px}
  .callbar a{flex:1;text-align:center;text-decoration:none;font-weight:700;border-radius:999px;padding:12px 8px;box-shadow:0 4px 14px rgba(0,0,0,.18)}
  .callbar .c1{background:var(--vermilion-deep);color:#fff}
  .callbar .c2{background:var(--ink);color:var(--gold)}
  body{padding-bottom:72px}
}

/* =========================================================
   アニメーション（動きを減らす設定の人には出さない）
   JSが動いたときだけ html.js が付く。JSなしでも内容はすべて見える。
   ========================================================= */
@media (prefers-reduced-motion:no-preference){
  /* ふわふわ */
  .duo .main-nm,.duo .main-nk{animation:bob 3.2s ease-in-out infinite}
  .duo .main-nk{animation-delay:-1.6s}
  @keyframes bob{50%{translate:0 -8px}}

  /* 分身の術：読みこみ直後に左右へ分かれて消える */
  .js .duo.is-in .clone{animation:bunshin 1.4s ease-out .3s 1 both}
  .js .duo.is-in .clone.r{--dx:70%}
  .js .duo.is-in .clone.l{--dx:-170%}
  @keyframes bunshin{
    0%{opacity:0;transform:translateX(-50%) scale(.9)}
    25%{opacity:.55}
    70%{opacity:.4;transform:translateX(var(--dx)) scale(1)}
    100%{opacity:0;transform:translateX(var(--dx)) scale(1)}
  }

  /* ドロン：煙とともに現れる */
  .js .reveal{position:relative;opacity:0;transform:translateY(18px) scale(.98);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.8,.2,1)}
  .js .reveal.is-in{opacity:1;transform:none}
  .js .reveal::after{content:"";position:absolute;inset:-14px;border-radius:30px;pointer-events:none;opacity:0;
    background:
      radial-gradient(circle at 20% 60%,rgba(255,255,255,.95) 0 18%,transparent 19%),
      radial-gradient(circle at 50% 40%,rgba(255,255,255,.95) 0 22%,transparent 23%),
      radial-gradient(circle at 80% 62%,rgba(255,255,255,.95) 0 17%,transparent 18%);
    filter:blur(2px)}
  .js .reveal.is-in::after{animation:doron .8s ease-out backwards}
  @keyframes doron{0%{opacity:.95;transform:scale(.7)}100%{opacity:0;transform:scale(1.35)}}
  .js .reveal:nth-child(2){transition-delay:.08s}.js .reveal:nth-child(2)::after{animation-delay:.08s}
  .js .reveal:nth-child(3){transition-delay:.16s}.js .reveal:nth-child(3)::after{animation-delay:.16s}
  .js .reveal:nth-child(4){transition-delay:.24s}.js .reveal:nth-child(4)::after{animation-delay:.24s}
  .js .reveal:nth-child(5){transition-delay:.32s}.js .reveal:nth-child(5)::after{animation-delay:.32s}
  .js .reveal:nth-child(6){transition-delay:.4s}.js .reveal:nth-child(6)::after{animation-delay:.4s}

  /* 組みひもの線がするすると伸びる */
  .js .sec-head h2::after{width:0;transition:width .9s cubic-bezier(.2,.8,.2,1) .15s}
  .js .sec-head.is-in h2::after{width:64px}

  /* 隠れ身の術：見出しの横からひょっこり */
  .js .peek img{transform:translateY(105%)}
  .js .sec-head.is-in .peek img{animation:peek 2.4s cubic-bezier(.3,1.5,.5,1) .5s both}
  @keyframes peek{0%{transform:translateY(105%)}30%,75%{transform:translateY(8%)}100%{transform:translateY(28%)}}
  .js .page-head .peek-img{animation:peekup .9s cubic-bezier(.3,1.5,.5,1) .3s both}
  @keyframes peekup{from{transform:translateY(100%)}to{transform:none}}

  /* 手裏剣がくるっと回る */
  .btn:hover .shuriken,.btn:focus-visible .shuriken{transform:rotate(360deg)}
}

/* ===== LINE ===== */
.head-actions{display:flex;gap:8px;align-items:center}
.line-ico{width:1.2em;height:1.2em;flex:none}
.line-btn{display:inline-flex;align-items:center;gap:6px;background:#06c755;color:#fff;text-decoration:none;border-radius:999px;padding:8px 14px;font-weight:700;font-size:.92rem}
.line-btn:hover{background:#05a647}
.btn.line{background:#06c755;border-color:#06c755;color:#fff}
.btn.line:hover{background:#05a647;border-color:#05a647}
.contact-btns{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:8px}
.line-card{max-width:720px;margin:0 auto 20px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;background:#e9f9ef;border:2px solid #06c755;border-radius:var(--radius);padding:18px 22px}
.line-card p{margin:2px 0 0;font-size:.9rem;color:var(--ink-soft)}
@media (max-width:640px){
  .line-btn span{display:none}
  .callbar .c3{background:#06c755;color:#fff;display:flex;align-items:center;justify-content:center;gap:4px}
}

/* ===== features: 10 items ===== */
.features{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}

/* ===== blog ===== */
.blog-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}
.blog-card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;text-decoration:none}
.blog-card img,.blog-noimg{width:100%;aspect-ratio:3/2;object-fit:cover;background:var(--paper-2)}
.blog-noimg{display:grid;place-items:center}
.blog-noimg img{width:70px;aspect-ratio:auto}
.blog-card-body{padding:16px 18px 20px}
.blog-card time{font-size:.82rem;font-weight:700;color:var(--gold-deep)}
.blog-card h3{font-size:1.05rem;margin:4px 0 6px}
.blog-card p{font-size:.9rem;color:var(--ink-soft);margin:0}
.blog-card:hover h3{color:var(--vermilion-deep)}
.post h2{margin-top:24px}
.post-photos{display:grid;gap:14px;margin:24px 0}
.post-photos figure{margin:0}
.post-photos img{width:100%;border-radius:14px}
.post-video{position:relative;aspect-ratio:16/9;margin:0 0 20px;border-radius:14px;overflow:hidden;background:#000}
.post-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ===== AIチャット ===== */
.chat-fab{position:fixed;right:16px;bottom:16px;z-index:30;display:flex;align-items:center;gap:8px;background:var(--ink);color:#fff;border:3px solid var(--gold);border-radius:999px;padding:6px 16px 6px 6px;font:inherit;font-weight:700;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.2)}
.chat-fab img{width:40px;height:40px;object-fit:contain;background:var(--paper);border-radius:50%}
.chat-panel{position:fixed;right:16px;bottom:16px;z-index:31;width:min(380px,calc(100vw - 32px));height:min(560px,calc(100vh - 100px));display:flex;flex-direction:column;background:var(--paper);border:2px solid var(--ink);border-radius:20px;box-shadow:0 12px 32px rgba(0,0,0,.25);overflow:hidden}
.chat-panel[hidden]{display:none}
.chat-head{display:flex;align-items:center;gap:10px;background:var(--ink);color:#fff;padding:10px 14px}
.chat-head img{width:34px;height:34px;object-fit:contain;background:var(--paper);border-radius:50%}
.chat-head strong{flex:1;font-size:.98rem}
.chat-close{background:none;border:0;color:#fff;font-size:1.4rem;cursor:pointer;line-height:1;padding:4px}
.chat-log{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}
.msg{max-width:85%;padding:10px 14px;border-radius:16px;font-size:.93rem;line-height:1.7;white-space:pre-wrap;word-break:break-word}
.msg.bot{align-self:flex-start;background:var(--card);border:1px solid var(--line);border-top-left-radius:4px}
.msg.user{align-self:flex-end;background:var(--gold);border-top-right-radius:4px}
.msg.wait{color:var(--ink-soft)}
.chat-chips{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 8px}
.chat-chips button{font:inherit;font-size:.8rem;background:var(--card);border:1px solid var(--gold-deep);color:var(--gold-deep);border-radius:999px;padding:4px 10px;cursor:pointer}
.chat-form{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line);background:var(--card)}
.chat-form textarea{flex:1;font:inherit;font-size:16px;resize:none;height:44px;padding:9px 12px;border:2px solid var(--line);border-radius:12px}
.chat-form button{font:inherit;font-weight:700;background:var(--vermilion-deep);color:#fff;border:0;border-radius:12px;padding:0 16px;cursor:pointer}
.chat-form button:disabled{opacity:.5}
.chat-note{font-size:.72rem;color:var(--ink-soft);padding:6px 14px 10px;background:var(--card);margin:0}
.chat-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.chat-links a{font-size:.8rem;font-weight:700;text-decoration:none;border-radius:999px;padding:3px 10px;background:var(--paper-2)}
.chat-links a.line{background:#06c755;color:#fff}
@media (max-width:640px){
  .chat-fab{bottom:80px;padding:4px}
  .chat-fab span{display:none}
  .chat-panel{bottom:80px;height:min(560px,calc(100vh - 120px))}
}

/* ===== サイト内検索 ===== */
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.search-btn{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;border:2px solid var(--ink);color:var(--ink);background:var(--card)}
.search-btn svg{width:20px;height:20px}
.search-btn:hover{background:var(--gold)}
.search-form{max-width:720px;margin:0 auto;display:flex;gap:10px}
.search-form input{flex:1;min-width:0;font:inherit;font-size:1.05rem;padding:12px 16px;border:2px solid var(--ink);border-radius:999px;background:var(--card);color:var(--ink)}
.search-form input:focus{outline:3px solid var(--gold);outline-offset:2px}
.search-words{max-width:720px;margin:14px auto 0;display:flex;flex-wrap:wrap;gap:8px}
.search-words a{font-size:.85rem;font-weight:700;text-decoration:none;color:var(--gold-deep);border:1px solid var(--gold-deep);border-radius:999px;padding:3px 12px;background:var(--card)}
.search-words a:hover{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.search-status{max-width:720px;margin:24px auto 8px;font-weight:700;color:var(--ink-soft)}
.search-results{max-width:720px;margin:0 auto;padding:0;list-style:none;display:grid;gap:12px}
.search-results a{display:block;text-decoration:none;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 20px}
.search-results a:hover{border-color:var(--gold-deep)}
.search-results a:hover strong{color:var(--vermilion-deep)}
.search-kind{display:block;font-size:.75rem;font-weight:700;color:var(--gold-deep)}
.search-results strong{display:block;font-size:1.05rem;margin:2px 0 4px}
.search-snip{display:block;font-size:.88rem;color:var(--ink-soft);line-height:1.7}
.search-results mark{background:#fbe39a;color:inherit;border-radius:3px;padding:0 2px}
@media (max-width:640px){.search-btn{width:36px;height:36px}.search-form .btn{padding:12px 16px}}

/* ===== 支援プログラム・情報公表 ===== */
.notice{max-width:820px;margin:0 auto;background:#fff6dd;border:2px dashed var(--gold);border-radius:14px;padding:14px 18px;font-weight:700;font-size:.92rem}
.prog{display:grid;grid-template-columns:.8fr 1.2fr;gap:24px;align-items:start}
.prog-box{background:var(--card);border-radius:var(--radius);padding:24px;border:1px solid var(--line)}
.prog-box h3,.prog-h{font-size:1.1rem;margin-bottom:10px}
.prog-box ul{margin:0;padding-left:1.2em}
.prog-h{margin:36px 0 14px;text-align:center}
.areas{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.area{background:var(--card);border-radius:14px;padding:16px;border-left:6px solid var(--gold)}
.area b{display:block;color:var(--gold-deep)}
.area p{margin:4px 0 0;font-size:.9rem;color:var(--ink-soft)}
.sst{width:100%;max-width:820px;margin:0 auto;border-collapse:collapse;background:var(--card);border-radius:14px;overflow:hidden;font-size:.92rem}
.sst th,.sst td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.sst th{background:var(--paper-2)}
.timeline .tl-note{font-size:.85rem;color:var(--ink-soft);margin:-6px 0 12px}
.timeline .tl-sub{display:block;font-size:.85rem;color:var(--ink-soft)}
.timeline b{min-width:96px}
.fee-examples{margin:0 0 12px;padding-left:1.2em;font-size:.93rem}
.visit{max-width:820px;margin:0 auto;background:var(--card);border-radius:var(--radius);padding:24px 28px;border:1px solid var(--line)}
.visit ul{margin:0;padding-left:1.2em}
.visit li{margin-bottom:8px}
@media (max-width:760px){.prog{grid-template-columns:1fr}.visit{padding:20px}}

/* ===== 行事・コラム・キャラ・案内リンク ===== */
.events{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;max-width:900px;margin:0 auto}
.event{background:var(--card);border-radius:14px;padding:14px;text-align:center;border:1px solid var(--line)}
.event b{display:block;color:var(--vermilion-deep);font-size:.9rem}
.event span{font-weight:700}
@media (max-width:760px){.events{grid-template-columns:repeat(2,1fr)}}
.col-list{display:grid;gap:16px;max-width:820px;margin:0 auto}
.col-card{display:block;text-decoration:none;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px}
.col-card h2{font-size:1.15rem;margin-bottom:6px}
.col-card p{margin:0;color:var(--ink-soft);font-size:.93rem}
.col-card:hover{border-color:var(--gold-deep)}
.col-card:hover h2{color:var(--vermilion-deep)}
.chars-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.char-card{display:flex;gap:18px;align-items:center;background:var(--card);border-radius:var(--radius);padding:22px;border:1px solid var(--line)}
.char-card img{width:150px;height:auto;flex:none}
.char-card h2{font-size:1.4rem;margin-bottom:6px}
.char-card p{margin:0;font-size:.95rem;color:var(--ink-soft)}
@media (max-width:860px){.chars-grid{grid-template-columns:1fr}}
@media (max-width:480px){.char-card{flex-direction:column;text-align:center}}
.guide-links{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;max-width:900px;margin:32px auto 0}
.guide{display:block;text-decoration:none;background:var(--ink);color:#fff;border-radius:14px;padding:16px 18px}
.guide b{display:block;color:var(--gold)}
.guide span{font-size:.85rem;color:#e6dccb}
.guide:hover{background:#000}
@media (max-width:860px){.guide-links{grid-template-columns:1fr 1fr}}

/* ===== 特色：2列・アイコン左（10項目をすっきり） ===== */
.features{grid-template-columns:repeat(2,1fr);gap:14px;max-width:980px;margin:0 auto}
.feature{display:flex;gap:16px;align-items:flex-start;border-top:0;border-left:6px solid var(--gold);padding:20px 22px}
.feature:nth-child(4n+2),.feature:nth-child(4n+3){border-left-color:var(--vermilion)}
.feature .icon{flex:none;width:52px;height:52px;border-radius:50%;background:#fbecc7;color:var(--ink);display:grid;place-items:center}
.feature .icon svg{width:30px;height:30px}
.feature h3{margin:2px 0 4px}
@media (max-width:760px){.features{grid-template-columns:1fr}}


/* ===== 和柄（青海波）の背景：セクションごとの表情づけ ===== */
.pattern{background-color:var(--paper-2);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='20' viewBox='0 0 40 20'%3E%3Cpath fill='%23f3ead4' d='M-20 10a20 20 0 0 1 40 0z'/%3E%3Cpath fill='none' stroke='%23e6d6b2' stroke-width='1.2' d='M-20 10a20 20 0 0 1 40 0M-15 10a15 15 0 0 1 30 0M-10 10a10 10 0 0 1 20 0M-5 10a5 5 0 0 1 10 0'/%3E%3Cpath fill='%23f3ead4' d='M20 10a20 20 0 0 1 40 0z'/%3E%3Cpath fill='none' stroke='%23e6d6b2' stroke-width='1.2' d='M20 10a20 20 0 0 1 40 0M25 10a15 15 0 0 1 30 0M30 10a10 10 0 0 1 20 0M35 10a5 5 0 0 1 10 0'/%3E%3Cpath fill='%23f3ead4' d='M0 20a20 20 0 0 1 40 0z'/%3E%3Cpath fill='none' stroke='%23e6d6b2' stroke-width='1.2' d='M0 20a20 20 0 0 1 40 0M5 20a15 15 0 0 1 30 0M10 20a10 10 0 0 1 20 0M15 20a5 5 0 0 1 10 0'/%3E%3Cpath fill='%23f3ead4' d='M-20 30a20 20 0 0 1 40 0z'/%3E%3Cpath fill='none' stroke='%23e6d6b2' stroke-width='1.2' d='M-20 30a20 20 0 0 1 40 0M-15 30a15 15 0 0 1 30 0M-10 30a10 10 0 0 1 20 0M-5 30a5 5 0 0 1 10 0'/%3E%3Cpath fill='%23f3ead4' d='M20 30a20 20 0 0 1 40 0z'/%3E%3Cpath fill='none' stroke='%23e6d6b2' stroke-width='1.2' d='M20 30a20 20 0 0 1 40 0M25 30a15 15 0 0 1 30 0M30 30a10 10 0 0 1 20 0M35 30a5 5 0 0 1 10 0'/%3E%3C/svg%3E");background-size:56px 28px}
.pattern .sec-head{max-width:560px;margin-left:auto;margin-right:auto;padding:18px 0 6px;
  background:radial-gradient(closest-side,var(--paper-2) 62%,rgba(243,234,212,0))}
.peek-nk{width:76px;height:96px;right:auto;left:0}
.peek-nk img{width:76px}
@media (max-width:560px){.peek-nk{width:56px;height:72px}.peek-nk img{width:56px}}

/* ===== TOP：にんまるの1日（タブ＋アイコンの横並び） ===== */
.daytabs{max-width:1040px;margin:0 auto;background:var(--card);border:2px solid var(--ink);border-radius:var(--radius);box-shadow:8px 8px 0 var(--gold);padding:10px 28px 30px}
.tabs{display:flex;justify-content:center;gap:8px;margin:0 0 18px;border-bottom:2px dashed var(--line);padding:8px 0 14px}
.tabs button{font:inherit;font-weight:700;cursor:pointer;border:2px solid var(--ink);background:var(--paper);color:var(--ink);border-radius:999px;padding:8px 22px;line-height:1.4;text-align:center}
.tabs button small{display:block;font-size:.72rem;font-weight:500;color:var(--ink-soft)}
.tabs button[aria-selected="true"]{background:var(--ink);color:#fff}
.tabs button[aria-selected="true"] small{color:var(--cream)}
.daytabs .tl-note{text-align:center;font-size:.9rem;color:var(--ink-soft);margin:0 0 18px}
.js .tabpanel[hidden]{display:none}
.tabpanel+.tabpanel{margin-top:24px}
.js .tabpanel+.tabpanel{margin-top:0}
.dsteps{list-style:none;margin:0;padding:0;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:8px;position:relative;counter-reset:st}
.dsteps::before{content:"";position:absolute;left:calc(50% / var(--n,5));right:calc(50% / var(--n,5));top:34px;border-top:3px dotted var(--gold)}
.dsteps li{position:relative;text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px;font-weight:700;line-height:1.5}
.st-icon{width:68px;height:68px;border-radius:50%;background:#fbecc7;border:2px solid var(--ink);display:grid;place-items:center;margin-bottom:8px;position:relative}
.dsteps li:nth-child(even) .st-icon{background:#f6d9cf}
.st-icon svg{width:34px;height:34px}
.dsteps b{color:var(--gold-deep);font-size:.95rem}
.dsteps li>span:last-child{font-size:.92rem}
@media (max-width:760px){
  .daytabs{padding:6px 16px 22px;box-shadow:5px 5px 0 var(--gold)}
  .tabs button{padding:6px 12px;font-size:.88rem}
  .dsteps{grid-auto-flow:row;grid-auto-columns:auto;gap:14px}
  .dsteps::before{left:33px;right:auto;top:20px;bottom:20px;border-top:0;border-left:3px dotted var(--gold)}
  .dsteps li{flex-direction:row;text-align:left;gap:14px}
  .st-icon{width:56px;height:56px;margin:0;flex:none}
  .st-icon svg{width:28px;height:28px}
  .dsteps b{min-width:52px}
}

/* ===== TOP：開所までのカウントダウン ===== */
.opening{padding:56px 0;background:var(--ink);color:#fbf1dc;position:relative;overflow:hidden}
.opening::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.025) 0 2px,transparent 2px 6px);pointer-events:none}
.opening .wrap{display:grid;grid-template-columns:auto 1fr;gap:48px;align-items:center;position:relative}
.count{text-align:center;border:2px solid var(--gold);border-radius:var(--radius);padding:20px 34px;outline:1px solid rgba(227,167,47,.4);outline-offset:5px}
.count-label{display:block;font-weight:700;letter-spacing:.1em;color:var(--gold)}
.count-num{display:block;font-weight:900;font-size:1.3rem;line-height:1.2;margin:4px 0}
.count-num b{font-size:3.6rem;color:#fff;margin:0 6px;letter-spacing:.02em;font-variant-numeric:tabular-nums}
.count-sub{display:block;font-size:.75rem;color:#d8cbb3}
.roadmap{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative}
.roadmap::before{content:"";position:absolute;left:12.5%;right:12.5%;top:11px;height:3px;background:linear-gradient(90deg,var(--gold) 0 40%,rgba(227,167,47,.35) 40%)}
.roadmap li{position:relative;text-align:center;padding-top:34px;display:flex;flex-direction:column;gap:2px}
.roadmap li::before{content:"";position:absolute;top:2px;left:50%;width:20px;height:20px;margin-left:-10px;border-radius:50%;border:3px solid var(--gold);background:var(--ink);box-sizing:border-box}
.roadmap .rm-done::before{background:var(--gold)}
.roadmap .rm-now::before{background:var(--vermilion);border-color:#f3b7a8}
.roadmap .rm-next::before{border-style:dashed}
.rm-when{font-size:.8rem;color:var(--gold);font-weight:700}
.rm-what{font-weight:700;font-size:.95rem;line-height:1.5}
@media (max-width:860px){
  .opening .wrap{grid-template-columns:1fr;gap:28px}
  .roadmap{grid-template-columns:1fr 1fr;row-gap:20px}
  .roadmap::before{display:none}
}
@media (prefers-reduced-motion:no-preference){
  .roadmap .rm-now::before{animation:rm-pulse 2s ease-in-out infinite}
  @keyframes rm-pulse{50%{box-shadow:0 0 0 7px rgba(200,85,61,.25)}}
}

/* ===== 印刷用ご案内（/guide/） ===== */
.print-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;justify-content:center;margin:0 0 28px}
.print-actions span{font-size:.85rem;color:var(--ink-soft)}
.print-actions .btn{font:inherit;font-weight:700;cursor:pointer}
.sheet{max-width:800px;margin:0 auto;background:#fff;border:1px solid var(--line);box-shadow:0 10px 30px rgba(80,50,20,.12);padding:34px 38px 24px;line-height:1.7;font-size:.92rem}
.sheet-head{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;border-bottom:4px double var(--gold);padding-bottom:14px}
.sheet-nm{width:64px;height:auto}
.sheet-cat{margin:0;font-size:.8rem;font-weight:700;color:var(--gold-deep);letter-spacing:.06em}
.sheet-name{margin:0;font-size:2.1rem;line-height:1.2;letter-spacing:.12em}
.sheet-catch{margin:4px 0 0;font-weight:700;color:var(--vermilion-deep)}
.sheet-open{border:3px solid #b23a2a;color:#b23a2a;border-radius:10px;padding:6px 10px;font-weight:900;text-align:center;line-height:1.35;transform:rotate(-6deg)}
.sheet-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;margin:16px 0}
.sheet-box h3{font-size:1rem;margin:0 0 6px;padding:2px 10px;background:var(--paper-2);border-left:5px solid var(--gold)}
.sheet-box dl{margin:0}
.sheet-box dt{font-weight:700}
.sheet-box dd{margin:0 0 6px}
.sheet-kv{display:grid;grid-template-columns:auto 1fr;gap:2px 10px}
.sheet-kv dd{margin:0}
.sheet-box ul,.sheet-flow{margin:0;padding-left:1.3em}
.sheet-fine{font-size:.78rem;color:var(--ink-soft);margin:4px 0 0}
.sheet-foot{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;border-top:2px solid var(--ink);padding-top:12px}
.sheet-foot p{margin:0}
.sheet-tel{font-weight:700}
.sheet-tel b{font-size:1.6rem;margin:0 8px;letter-spacing:.04em}
.sheet-tel span{font-size:.8rem;color:var(--ink-soft)}
.sheet-qr{text-align:center;font-size:.72rem;font-weight:700}
.sheet-qr svg{display:block;width:84px;height:84px;margin:0 auto 2px}
@media (max-width:640px){
  .sheet{padding:22px 18px}
  .sheet-head{grid-template-columns:auto 1fr}
  .sheet-open{grid-column:1/-1;justify-self:start;transform:none}
  .sheet-grid,.sheet-foot{grid-template-columns:1fr}
}
@media print{
  @page{size:A4;margin:10mm}
  html,body{background:#fff!important}
  .site-header,body>footer,.callbar,.page-head,.print-actions,.chat-fab,.chat-panel,.skip,.contact{display:none!important}
  .guide-sec{padding:0!important}
  .guide-sec .wrap{max-width:none;padding:0}
  .sheet{box-shadow:none;border:0;padding:0;max-width:none;font-size:11.5pt;line-height:1.75}
  .sheet-grid{gap:18px 24px;margin:22px 0}
  .sheet-grid{grid-template-columns:1fr 1fr}
  .sheet-foot{grid-template-columns:1fr auto}
  .sheet *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .reveal{opacity:1!important;transform:none!important}
}
