@charset "UTF-8";
/* =================================================================
   深井がじゅまる保育園 LP — style.css
   コンセプト：がじゅまるの木陰で育つ／緑基調・やわらか・丸み
   ================================================================= */

:root{
  /* color */
  --canopy:#3E6B4E;        /* 木陰の深緑 */
  --canopy-d:#2C5039;      /* さらに深い緑 */
  --leaf:#5B8A5A;          /* 葉の緑 */
  --leaf-l:#8FBF73;        /* 若葉 */
  --leaf-ll:#C7E2AC;       /* やわらか若葉 */
  --cream:#FBF7EE;         /* 生成り背景 */
  --cream-d:#F2EADB;       /* やや濃い生成り */
  --bark:#4A3F35;          /* 木肌の茶（文字） */
  --bark-l:#7A6A5A;        /* 補助文字 */
  --sun:#F4A24C;           /* 木洩れ日（CTA） */
  --sun-d:#E08A33;
  --coral:#EF9A8D;         /* 保育士募集 */
  --coral-d:#E27C6D;
  --sky:#BFE3E8;           /* 空 */
  --white:#FFFFFF;

  --maru:'Zen Maru Gothic', sans-serif;
  --kaku:'Zen Kaku Gothic New', sans-serif;
  --quick:'Quicksand', sans-serif;

  --shadow:0 14px 34px -18px rgba(46,70,52,.45);
  --shadow-sm:0 8px 20px -12px rgba(46,70,52,.4);
  --radius:24px;
  --header-h:68px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
.icon-sprite{position:absolute;width:0;height:0;overflow:hidden}
svg{display:block}
html{scroll-behavior:smooth;scroll-padding-top:var(--header-h);-webkit-text-size-adjust:100%}
body{
  font-family:var(--kaku);
  color:var(--bark);
  background:var(--cream);
  line-height:1.85;
  letter-spacing:.02em;
  font-weight:400;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-wrap:pretty;
}
.nowrap{white-space:nowrap}
/* 短文カード等で1文字だけ取り残される改行を防ぐ（行をなるべく均等に） */
.tl__card p,.ev p,.footer__addr,.footer__nav a,.stance__ttl,.feature__ttl{text-wrap:balance}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none;transition:.25s ease}
ul,ol{list-style:none}
em{font-style:normal}

.container{width:min(100% - 40px,1040px);margin-inline:auto}

/* ===== focus（アクセシビリティ） ===== */
:focus-visible{outline:3px solid var(--sun);outline-offset:3px;border-radius:6px}

/* =================================================================
   ヘッダー
   ================================================================= */
.header{
  position:fixed;inset:0 0 auto 0;z-index:100;height:var(--header-h);
  background:rgba(251,247,238,.92);backdrop-filter:blur(10px);
  box-shadow:0 2px 0 rgba(143,191,115,.25);
}
.header__inner{
  height:100%;width:min(100% - 28px,1280px);margin-inline:auto;
  display:flex;align-items:center;gap:16px;
}
.logo{display:flex;align-items:center;gap:9px;flex-shrink:0}
.logo__mark{width:38px;height:38px}
.logo__name{font-family:var(--maru);font-weight:900;font-size:1.02rem;color:var(--canopy);display:block;line-height:1.2}
.logo__sub{font-family:var(--quick);font-weight:600;font-size:.56rem;letter-spacing:.18em;color:var(--leaf-l);display:block}

.gnav{margin-left:auto}
.gnav__list{display:flex;gap:4px}
.gnav__list a{
  display:block;padding:8px 11px;font-family:var(--maru);font-weight:700;
  font-size:.84rem;color:var(--bark);border-radius:999px;position:relative;white-space:nowrap;
}
.gnav__list a:hover{color:var(--canopy);background:var(--leaf-ll)}

.header__cta{display:flex;align-items:center;gap:10px;margin-left:8px}
.tel-btn{
  display:flex;align-items:center;gap:9px;padding:7px 16px 7px 12px;
  background:var(--sun);color:var(--white);border-radius:999px;
  font-family:var(--maru);font-weight:700;box-shadow:var(--shadow-sm);
}
.tel-btn:hover{background:var(--sun-d);transform:translateY(-1px)}
.tel-btn svg{width:22px;height:22px;flex-shrink:0}
.tel-btn__label{display:none}
.tel-btn__num{display:block;font-family:var(--quick);font-weight:700;font-size:1.04rem;line-height:1.2;white-space:nowrap}

.hamburger{display:none;width:42px;height:42px;border:none;background:var(--canopy);border-radius:14px;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:5px}
.hamburger span{width:20px;height:2.5px;background:var(--cream);border-radius:2px;transition:.3s}
.hamburger[aria-expanded="true"] span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.hamburger[aria-expanded="true"] span:nth-child(2){opacity:0}
.hamburger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

/* =================================================================
   ファーストビュー
   ================================================================= */
.hero{
  position:relative;padding-top:var(--header-h);
  background:#DFF0DA url('../assets/photos/hero_bg.webp') center center/cover no-repeat;
  overflow:hidden;
}
/* テキスト可読性のためのスクリム（上は写真をクリアに、下へ向けて生成りへ） */
.hero::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,
    rgba(251,247,238,.10) 0%,
    rgba(251,247,238,.40) 34%,
    rgba(251,247,238,.66) 68%,
    rgba(251,247,238,.88) 100%);
}
.hero__canopy{position:absolute;inset:0;pointer-events:none;z-index:2}
/* 舞う葉（写真の上にやさしく舞う演出） */
.floating-leaf{position:absolute;width:16px;height:16px;background:var(--leaf-l);border-radius:0 70% 0 70%;opacity:.7;animation:fall 9s linear infinite}
.floating-leaf.fl1{left:12%;animation-delay:0s}
.floating-leaf.fl2{left:38%;animation-delay:2.5s;background:var(--sun)}
.floating-leaf.fl3{left:64%;animation-delay:4.5s}
.floating-leaf.fl4{left:86%;animation-delay:6.5s;background:var(--coral)}
@keyframes fall{0%{transform:translateY(60px) rotate(0);opacity:0}10%{opacity:.7}90%{opacity:.7}100%{transform:translateY(420px) rotate(320deg);opacity:0}}

.hero__body{position:relative;z-index:3;width:min(100% - 40px,920px);margin-inline:auto;padding:clamp(110px,14vw,168px) 0 36px;text-align:center}
.hero__eyebrow{
  display:inline-block;font-family:var(--maru);font-weight:700;font-size:.82rem;
  color:var(--canopy);background:rgba(255,255,255,.82);
  padding:7px 20px;border-radius:999px;margin-bottom:26px;letter-spacing:.06em;
  box-shadow:0 6px 16px -10px rgba(46,70,52,.5);
}
.hero__copy{font-family:var(--maru);font-weight:900;color:var(--canopy-d);line-height:1.5;font-size:clamp(1.7rem,6.2vw,3rem);text-shadow:0 2px 16px rgba(251,247,238,.95),0 1px 4px rgba(251,247,238,.85)}
.hero__copy .line{display:block}
.hero__copy .accent{color:var(--sun-d);position:relative;display:inline-block}
.hero__copy .accent::after{content:"";position:absolute;left:0;right:0;bottom:.08em;height:.3em;background:rgba(244,162,76,.28);border-radius:999px;z-index:-1}
.hero__lead{margin-top:22px;font-size:.96rem;color:var(--bark);font-weight:600;line-height:2;text-shadow:0 1px 10px rgba(251,247,238,.95)}

.hero__banners{margin-top:34px;display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.banner{
  display:flex;align-items:center;gap:14px;text-align:left;
  width:min(100%,340px);padding:18px 20px;border-radius:var(--radius);
  background:var(--white);box-shadow:var(--shadow);border:2px solid transparent;
}
.banner:hover{transform:translateY(-4px)}
.banner__icon{flex-shrink:0;width:56px;height:56px;display:grid;place-items:center;border-radius:50%}
.banner__icon svg{width:32px;height:32px}
.banner--enroll{border-color:var(--leaf-l)}
.banner--enroll .banner__icon{background:var(--leaf-ll);color:var(--leaf)}
.banner--enroll .banner__arrow{color:var(--leaf)}
.banner--staff{border-color:var(--coral)}
.banner--staff .banner__icon{background:#FBE0DB;color:var(--coral-d)}
.banner--staff .banner__arrow{color:var(--coral-d)}
.banner__ttl{display:block;font-family:var(--maru);font-weight:900;font-size:1.18rem;color:var(--canopy-d)}
.banner__desc{display:block;font-size:.76rem;color:var(--bark-l);font-weight:500}
.banner__arrow{margin-left:auto;font-size:1.3rem;font-weight:700;transition:.25s}
.banner:hover .banner__arrow{transform:translateX(4px)}

.hero__wave{position:relative;z-index:3;margin-top:18px;line-height:0}
.hero__wave svg{width:100%;height:auto;display:block}

/* =================================================================
   セクション共通
   ================================================================= */
.section{padding:64px 0;position:relative}
.sec-head{text-align:center;margin-bottom:44px}
.sec-head__badge{display:inline-grid;place-items:center;width:62px;height:62px;border-radius:50%;background:var(--leaf-ll);position:relative;margin-bottom:14px;color:var(--canopy)}
.sec-head__bicon{width:30px;height:30px}
.sec-head__en{font-family:var(--quick);font-weight:600;letter-spacing:.22em;text-transform:uppercase;font-size:.74rem;color:var(--leaf-l)}
.sec-head__ja{font-family:var(--maru);font-weight:900;font-size:clamp(1.6rem,5vw,2.2rem);color:var(--canopy-d);line-height:1.3}
.sec-head__note{margin-top:8px;font-size:.8rem;color:var(--bark-l)}
.sec-head--light .sec-head__badge{background:rgba(255,255,255,.9)}
.sec-head--light .sec-head__ja{color:var(--cream)}
.sec-head--light .sec-head__en{color:var(--leaf-ll)}
.sec-head--light .sec-head__note{color:rgba(255,255,255,.85)}

/* =================================================================
   01 保育理念
   ================================================================= */
.philosophy__main{text-align:center;max-width:680px;margin:0 auto 48px}
.philosophy__catch{font-family:var(--maru);font-weight:900;font-size:clamp(1.9rem,7vw,3rem);color:var(--canopy);line-height:1.4}
.philosophy__catch em{color:var(--sun-d);position:relative;padding:0 .1em}
.philosophy__catch em::before{content:"";position:absolute;inset:auto 0 .05em 0;height:.32em;background:rgba(244,162,76,.25);border-radius:999px;z-index:-1}
.philosophy__msg{margin-top:20px;font-size:.96rem;font-weight:500;color:var(--bark)}

.stance{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.stance__item{
  background:var(--white);border-radius:var(--radius);padding:30px 26px 28px;
  box-shadow:var(--shadow);position:relative;overflow:hidden;
}
.stance__item::before{content:"";position:absolute;top:0;left:0;width:100%;height:6px;background:linear-gradient(90deg,var(--leaf-l),var(--leaf-ll))}
.stance__num{font-family:var(--quick);font-weight:700;font-size:2.4rem;color:var(--leaf-ll);line-height:1;display:block;margin-bottom:6px}
.stance__ttl{font-family:var(--maru);font-weight:700;font-size:1.12rem;color:var(--canopy-d);line-height:1.5;margin-bottom:12px}
.stance__txt{font-size:.88rem;color:var(--bark-l);font-weight:500;line-height:1.95}

/* =================================================================
   02 園の特徴
   ================================================================= */
.section--features{background:linear-gradient(180deg,var(--cream) 0%,#F4EFE2 100%)}
.features{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.feature{background:var(--white);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}
.feature__photo{aspect-ratio:16/10;display:grid;place-items:center;position:relative;overflow:hidden;background:var(--cream-d)}
.feature__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.feature:hover .feature__photo img{transform:scale(1.05)}
.feature__photo .ph-note{position:relative;z-index:1;font-size:.72rem;font-weight:700;color:rgba(255,255,255,.95);background:rgba(74,63,53,.28);padding:5px 12px;border-radius:999px;backdrop-filter:blur(2px)}
.ph-green{background:linear-gradient(135deg,#7FB86E,#A7D389)}
.ph-sky{background:linear-gradient(135deg,#8CC7D6,#BFE3E8)}
.ph-water{background:linear-gradient(135deg,#6FB6C9,#9FD6CE)}
.ph-meal{background:linear-gradient(135deg,#F0B05E,#F7CE8C)}
.ph-craft{background:linear-gradient(135deg,#E58E84,#F3B6A6)}
.feature__body{padding:22px 22px 26px}
.feature__tag{display:inline-block;font-family:var(--maru);font-weight:700;font-size:.72rem;color:var(--canopy);background:var(--leaf-ll);padding:4px 13px;border-radius:999px;margin-bottom:10px}
.feature__ttl{font-family:var(--maru);font-weight:900;font-size:1.14rem;color:var(--canopy-d);line-height:1.5;margin-bottom:10px}
.feature__txt{font-size:.86rem;color:var(--bark-l);font-weight:500;line-height:1.9}
.feature--message{background:linear-gradient(135deg,var(--canopy),var(--leaf));color:var(--cream);justify-content:center;align-items:center;text-align:center}
.feature--message .feature__body{padding:34px}
.feature__icon{width:68px;height:68px;border-radius:50%;background:rgba(255,255,255,.16);display:grid;place-items:center;margin:0 auto 16px}
.feature__icon svg{width:38px;height:38px;color:var(--cream)}
.feature--message .feature__ttl{color:var(--cream)}
.feature--message .feature__txt{color:rgba(255,255,255,.92)}

/* =================================================================
   園内のご紹介（ギャラリー）
   ================================================================= */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.gallery__item{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:1/1}
.gallery__item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.gallery__item:hover img{transform:scale(1.06)}
.gallery__cap{position:absolute;left:0;right:0;bottom:0;padding:26px 16px 14px;font-family:var(--maru);font-weight:700;font-size:.84rem;color:var(--white);background:linear-gradient(transparent,rgba(44,80,57,.82));line-height:1.4}

/* =================================================================
   03 1日の流れ
   ================================================================= */
.section--flow{background:var(--canopy);color:var(--cream)}
.timeline{max-width:680px;margin:0 auto;position:relative}
.timeline::before{content:"";position:absolute;left:73px;top:10px;bottom:10px;width:3px;background:rgba(255,255,255,.25);border-radius:3px}
.tl{display:flex;gap:20px;align-items:flex-start;padding:11px 0;position:relative}
.tl__time{flex-shrink:0;width:62px;text-align:right;font-family:var(--quick);font-weight:700;font-size:1.18rem;color:var(--leaf-ll);padding-top:14px;line-height:1.1}
.tl__time small{display:block;font-size:.66rem;opacity:.8;font-family:var(--kaku)}
.tl::after{content:"";position:absolute;left:69px;top:20px;width:11px;height:11px;border-radius:50%;background:var(--sun);box-shadow:0 0 0 4px var(--canopy)}
.tl__card{flex:1;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:18px;padding:14px 20px;margin-left:14px}
.tl__card h3{font-family:var(--maru);font-weight:700;font-size:1.04rem;color:var(--white);margin-bottom:3px}
.tl__card p{font-size:.84rem;color:rgba(255,255,255,.88);font-weight:400;line-height:1.8}

/* =================================================================
   04 年間行事
   ================================================================= */
.events{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ev{background:var(--white);border-radius:18px;padding:18px 16px 16px;box-shadow:var(--shadow-sm);text-align:center;border-bottom:5px solid var(--leaf-ll);transition:.25s}
.ev:hover{transform:translateY(-3px);border-bottom-color:var(--sun)}
.ev__m{font-family:var(--quick);font-weight:700;font-size:2rem;color:var(--canopy);line-height:1;display:block;margin-bottom:8px}
.ev__m small{font-size:.8rem;font-family:var(--maru);margin-left:2px}
.ev p{font-size:.82rem;color:var(--bark-l);font-weight:500;line-height:1.65}
.events__notes{margin-top:26px;display:flex;flex-direction:column;gap:8px;align-items:center}
.events__notes li{font-size:.84rem;color:var(--canopy);font-weight:700;font-family:var(--maru);position:relative;padding-left:22px}
.events__notes li::before{content:"";position:absolute;left:0;top:.18em;width:15px;height:15px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.2 3.6c.1 9.4-5.2 16-13.8 16.6-.7.1-1.2-.5-1-1.2C7.2 9.9 12.7 4.2 19.4 3c.5-.1.8.1.8.6Z' fill='%235B8A5A'/%3E%3C/svg%3E") no-repeat center/contain}

/* =================================================================
   05 保育時間・対象
   ================================================================= */
.section--hours{background:linear-gradient(135deg,var(--leaf),var(--canopy));color:var(--cream)}
.hours{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;max-width:840px;margin:0 auto}
.hours__item{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);border-radius:20px;padding:24px 14px;text-align:center;backdrop-filter:blur(4px)}
.hours__label{display:block;font-family:var(--maru);font-weight:700;font-size:.84rem;color:var(--leaf-ll);margin-bottom:10px}
.hours__value{display:block;font-family:var(--maru);font-weight:900;font-size:clamp(1.05rem,2.4vw,1.3rem);color:var(--white);line-height:1.3}
.hours__value--keep{word-break:keep-all}
.hours__value small{font-size:.7em;font-weight:700}

/* =================================================================
   06 入園案内
   ================================================================= */
.steps{max-width:760px;margin:0 auto 40px;display:flex;flex-direction:column;gap:16px}
.step{display:flex;gap:20px;align-items:center;background:var(--white);border-radius:var(--radius);padding:22px 26px;box-shadow:var(--shadow-sm);position:relative}
.step:not(:last-child)::after{content:"";position:absolute;left:54px;bottom:-16px;width:2px;height:16px;background:var(--leaf-ll);z-index:1}
.step__no{flex-shrink:0;width:74px;height:74px;border-radius:50%;background:var(--leaf-ll);display:grid;place-content:center;text-align:center;font-family:var(--quick);font-weight:600;font-size:.72rem;color:var(--canopy);line-height:1.1}
.step__no strong{display:block;font-size:1.8rem;font-weight:700}
.step__body h3{font-family:var(--maru);font-weight:900;font-size:1.16rem;color:var(--canopy-d);margin-bottom:4px}
.step__body p{font-size:.86rem;color:var(--bark-l);font-weight:500;line-height:1.8}

.cta-card{max-width:560px;margin:0 auto;background:linear-gradient(135deg,#FFF6E9,#FDEBD2);border:2px solid var(--sun);border-radius:var(--radius);padding:30px;text-align:center;box-shadow:var(--shadow)}
.cta-card__lead{font-family:var(--maru);font-weight:700;color:var(--bark);font-size:.96rem}
.cta-card__tel{display:inline-flex;align-items:center;gap:10px;margin:10px 0 6px;font-family:var(--quick);font-weight:700;font-size:clamp(2rem,8vw,2.8rem);color:var(--sun-d);line-height:1.1}
.cta-card__tel svg{width:.8em;height:.8em}
.cta-card__tel:hover{color:var(--sun)}
.cta-card__hours{font-size:.84rem;color:var(--bark-l);font-weight:500}

/* =================================================================
   保育士募集
   ================================================================= */
.section--recruit{padding:0}
.recruit{background:linear-gradient(135deg,var(--coral),#F2B3A6);color:var(--white);border-radius:32px;padding:56px 32px;text-align:center;position:relative;overflow:hidden;box-shadow:var(--shadow);margin:18px 0}
.recruit__seed{width:68px;height:68px;border-radius:50%;background:rgba(255,255,255,.2);display:grid;place-items:center;margin:0 auto 16px}
.recruit__seed svg{width:38px;height:38px;color:var(--white)}
.recruit__en{font-family:var(--quick);font-weight:600;letter-spacing:.24em;text-transform:uppercase;font-size:.74rem;opacity:.9}
.recruit__ttl{font-family:var(--maru);font-weight:900;font-size:clamp(1.5rem,5vw,2.2rem);line-height:1.45;margin:8px 0 16px}
.recruit__txt{max-width:520px;margin:0 auto 26px;font-weight:500;font-size:.92rem;line-height:1.95}
.recruit__btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;max-width:100%;background:var(--white);color:var(--coral-d);font-family:var(--maru);font-weight:900;font-size:1rem;padding:16px 28px;border-radius:999px;box-shadow:var(--shadow-sm)}
.recruit__btn-text{min-width:0;text-align:center;line-height:1.45}
.recruit__btn svg{width:22px;height:22px}
.recruit__btn:hover{transform:translateY(-3px)}

/* =================================================================
   07 園の概要
   ================================================================= */
.about{max-width:720px;margin:0 auto;background:var(--white);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.about__row{display:flex;border-bottom:1px solid var(--cream-d)}
.about__row:last-child{border-bottom:none}
.about__row dt{flex-shrink:0;width:130px;background:var(--leaf-ll);color:var(--canopy-d);font-family:var(--maru);font-weight:700;font-size:.86rem;padding:18px 20px;display:flex;align-items:center}
.about__row dd{flex:1;padding:18px 22px;font-size:.92rem;font-weight:500;color:var(--bark);display:flex;align-items:center}
.about__row dd a{color:var(--sun-d);font-weight:700}

/* =================================================================
   08 アクセス
   ================================================================= */
.section--access{background:var(--canopy);color:var(--cream)}
.access__photo{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);margin-bottom:26px;max-height:380px}
.access__photo img{width:100%;height:100%;max-height:380px;object-fit:cover;display:block}
.access__photo-cap{position:absolute;left:18px;bottom:16px;font-family:var(--maru);font-weight:700;font-size:.86rem;color:var(--white);background:rgba(44,80,57,.7);padding:7px 16px;border-radius:999px;backdrop-filter:blur(3px)}
.access{display:grid;grid-template-columns:.85fr 1.15fr;gap:26px;align-items:stretch}
.access__info{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius);padding:30px}
.access__info dl>div{margin-bottom:20px}
.access__info dt{font-family:var(--maru);font-weight:700;font-size:.8rem;color:var(--leaf-ll);margin-bottom:5px}
.access__info dd{font-size:1.02rem;font-weight:500;color:var(--white);line-height:1.7}
.access__info dd a{color:var(--sun);font-family:var(--quick);font-weight:700;font-size:1.3rem}
.access__route{display:inline-block;margin-top:6px;font-family:var(--maru);font-weight:700;font-size:.9rem;color:var(--cream);border-bottom:2px solid var(--sun)}
.access__route:hover{color:var(--sun)}
.access__map{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);min-height:320px;background:#dfe7df}
.access__map iframe{width:100%;height:100%;min-height:320px;border:0;display:block}

/* =================================================================
   フッター
   ================================================================= */
.footer{background:var(--canopy-d);color:var(--cream);position:relative}
.footer__inner{width:min(100% - 40px,1040px);margin-inline:auto;padding:48px 0 10px;display:grid;grid-template-columns:1.2fr 1fr;gap:36px}
.footer__mark{width:44px;height:44px;margin-bottom:10px}
.footer__name{font-family:var(--maru);font-weight:900;font-size:1.3rem;color:var(--white);margin-bottom:10px}
.footer__addr{font-size:.82rem;line-height:1.9;color:rgba(255,255,255,.8)}
.footer__tel{display:inline-block;margin-top:12px;font-family:var(--quick);font-weight:700;font-size:1.4rem;color:var(--leaf-ll)}
.footer__tel:hover{color:var(--sun)}
.footer__nav ul{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px}
.footer__nav a{font-size:.86rem;color:rgba(255,255,255,.82);font-weight:500;position:relative;padding-left:18px}
.footer__nav a::before{content:"";position:absolute;left:0;top:.5em;width:13px;height:13px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.2 3.6c.1 9.4-5.2 16-13.8 16.6-.7.1-1.2-.5-1-1.2C7.2 9.9 12.7 4.2 19.4 3c.5-.1.8.1.8.6Z' fill='%238FBF73'/%3E%3C/svg%3E") no-repeat center/contain;opacity:.9}
.footer__nav a:hover{color:var(--leaf-ll)}
.footer__copy{text-align:center;font-family:var(--quick);font-size:.74rem;letter-spacing:.08em;color:rgba(255,255,255,.6);padding:20px 0 26px;border-top:1px solid rgba(255,255,255,.12);margin-top:30px}

/* =================================================================
   追従CTA（スマホのみ）
   ================================================================= */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:90;display:none;gap:10px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(251,247,238,.95);backdrop-filter:blur(8px);box-shadow:0 -6px 20px -10px rgba(46,70,52,.4)}
.sticky-cta a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;border-radius:999px;font-family:var(--maru);font-weight:900;font-size:.96rem}
.sticky-cta__tel{background:var(--sun);color:var(--white)}
.sticky-cta__tel svg{width:20px;height:20px}
.sticky-cta__enroll{background:var(--canopy);color:var(--cream)}

/* =================================================================
   スクロール演出
   ================================================================= */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}
.reveal.is-visible{opacity:1;transform:none}

/* =================================================================
   レスポンシブ
   ================================================================= */
/* 横並びナビが収まらない幅ではハンバーガーメニューへ切り替え */
@media (max-width:1240px){
  /* ナビが固定ドロワー化するため、ハンバーガーを右端へ寄せる */
  .header__cta{margin-left:auto}
  .gnav{
    position:fixed;inset:var(--header-h) 0 auto 0;margin:0;
    background:var(--cream);box-shadow:var(--shadow);
    max-height:0;overflow:hidden;transition:max-height .4s ease;
  }
  .gnav.is-open{max-height:85vh;overflow-y:auto}
  .gnav__list{flex-direction:column;gap:0;padding:8px 14px 18px}
  .gnav__list a{padding:14px 12px;font-size:1rem;border-bottom:1px solid var(--cream-d);border-radius:0}
  .gnav__list a:hover{background:transparent}
  .hamburger{display:flex}
  .access{grid-template-columns:1fr}
}
@media (max-width:680px){
  :root{--header-h:60px}
  .section{padding:52px 0}
  .header__inner{gap:10px}
  .logo__name{font-size:.92rem}
  .logo__sub{font-size:.5rem}
  /* スマホではヘッダーの電話ボタンを隠し、下部追従CTA／メニューに集約 */
  .header .tel-btn{display:none}
  /* プライバシーページの「トップへ戻る」だけはスマホでも表示 */
  .header .tel-btn--back{display:flex}
  .hero__body{padding:50px 0 24px}
  .stance{grid-template-columns:1fr}
  .features{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr 1fr;gap:12px}
  .events{grid-template-columns:1fr 1fr}
  .hours{grid-template-columns:1fr 1fr}
  .footer__inner{grid-template-columns:1fr;gap:28px}
  .sticky-cta{display:flex}
  body{padding-bottom:72px}
  .timeline::before{left:60px}
  .tl__time{width:50px;font-size:1rem}
  .tl::after{left:56px}
  .step{flex-direction:column;text-align:center;gap:12px}
  .step:not(:last-child)::after{display:none}
  .about__row{flex-direction:column}
  .about__row dt{width:100%;padding:12px 18px}
  .about__row dd{padding:14px 18px}
}
@media (max-width:380px){
  .events{grid-template-columns:1fr}
  .hours{grid-template-columns:1fr}
  .gnav__list a{font-size:.95rem}
}

/* =================================================================
   モーション軽減
   ================================================================= */
@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important;scroll-behavior:auto !important}
  .reveal{opacity:1;transform:none}
}
