/* ══════════════════════════════════════════
   MKstudio Design System — Natural Elegant
   横展開テンプレート資産
   ══════════════════════════════════════════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#faf8f4;--bg-warm:#f0ebe2;--bg-dark:#2d2017;
  --accent:#a8805c;--accent-l:#e8d5c4;--gold:#b8973e;
  --text:#2d2017;--text-m:#7a6455;--text-l:#a89080;--border:#e2d8ce;
  --serif:'Cormorant Garamond','Noto Serif JP',Georgia,serif;
  --sans:'Klee One','Noto Sans JP','Hiragino Kaku Gothic ProN',serif,sans-serif;
  --handwrite:'Klee One',serif;
  --max:1100px;--content:760px;--r:6px;
}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--text);background:var(--bg);line-height:1.85;font-size:16px}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--max);margin:0 auto;padding:0 28px}
.wrap--narrow{max-width:var(--content)}

/* ── セクション ──────────────── */
.sec{padding:120px 0}
.sec--warm{background:var(--bg-warm)}
.sec--dark{background:var(--bg-dark);color:#fff}
.label{display:inline-block;font-family:var(--serif);font-size:.85rem;letter-spacing:.28em;color:var(--accent);text-transform:uppercase;margin-bottom:12px}
.ttl{font-family:var(--sans);font-size:clamp(1.8rem,4vw,2.8rem);font-weight:600;line-height:1.25;letter-spacing:.04em}
.ttl--center{text-align:center}
.lead{color:var(--text-m);font-size:.95rem;line-height:1.95;margin-top:20px}
.lead--center{text-align:center}

/* ── ヘッダー ──────────────── */
.header{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(250,248,244,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}
.header__inner{display:flex;align-items:center;justify-content:space-between;height:68px;max-width:var(--max);margin:0 auto;padding:0 28px}
.header__logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.header__logo-img{height:40px;width:auto;border-radius:8px}
.header__logo-text{font-family:'Klee One',serif;font-size:1.2rem;color:var(--text);letter-spacing:.04em}
.header__nav{display:flex;align-items:center;gap:32px}
.header__nav a{font-size:.82rem;letter-spacing:.06em;color:var(--text-m);transition:color .2s}
.header__nav a:hover{color:var(--accent)}
.btn-line-sm{display:inline-flex;align-items:center;gap:8px;background:#06C755;color:#fff !important;padding:10px 22px;border-radius:30px;font-size:.82rem;font-weight:700;transition:opacity .2s}
.btn-line-sm:hover{opacity:.85}
.header__burger{display:none;background:none;border:none;cursor:pointer;width:28px;height:20px;position:relative}
.header__burger span{display:block;width:100%;height:2px;background:var(--text);position:absolute;left:0;transition:.3s}
.header__burger span:nth-child(1){top:0}
.header__burger span:nth-child(2){top:9px}
.header__burger span:nth-child(3){top:18px}
.header__burger.is-open span:nth-child(1){transform:rotate(45deg);top:9px}
.header__burger.is-open span:nth-child(2){opacity:0}
.header__burger.is-open span:nth-child(3){transform:rotate(-45deg);top:9px}

/* ── ヒーロー ──────────────── */
.hero{min-height:100svh;display:grid;grid-template-columns:1fr 1fr;margin-top:68px}
.hero__text{display:flex;flex-direction:column;justify-content:center;padding:80px 56px 80px 28px;max-width:580px;margin-left:auto}
.hero__label{font-family:var(--serif);font-size:.8rem;letter-spacing:.3em;color:var(--accent);text-transform:uppercase;margin-bottom:24px}
.hero__catch{font-family:var(--serif);font-size:clamp(2.2rem,4.5vw,3.6rem);font-weight:400;line-height:1.18;letter-spacing:.06em}
.hero__catch em{font-style:italic;color:var(--accent)}
.hero__sub{margin-top:28px;font-size:.95rem;color:var(--text-m);line-height:2.2}
.hero__cta{margin-top:44px;display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.hero__note{font-size:.78rem;color:var(--text-l)}
.hero__img{position:relative;overflow:hidden;background:var(--bg-warm)}
.hero__img img{width:100%;height:100%;object-fit:cover}

/* ── LINE ボタン ──────────────── */
.btn-line-lg{display:inline-flex;align-items:center;gap:10px;background:#06C755;color:#fff;padding:16px 36px;border-radius:40px;font-size:1rem;font-weight:700;box-shadow:0 8px 24px rgba(6,199,85,.25);transition:transform .2s,box-shadow .2s}
.btn-line-lg:hover{transform:translateY(-2px);box-shadow:0 12px 32px rgba(6,199,85,.35)}
.btn-line-xl{display:inline-flex;align-items:center;gap:12px;background:#06C755;color:#fff;padding:20px 52px;border-radius:50px;font-size:1.1rem;font-weight:700;box-shadow:0 10px 32px rgba(6,199,85,.3);transition:transform .2s,box-shadow .2s}
.btn-line-xl:hover{transform:translateY(-3px);box-shadow:0 16px 40px rgba(6,199,85,.4)}

/* ── サービスカード（トップ5事業ハブ） ── */
.services__head{text-align:center;margin-bottom:56px}
.services__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px;margin-top:48px}
.service-card{display:block;background:var(--bg);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;transition:transform .2s,box-shadow .2s}
.service-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(45,32,23,.08)}
.service-card__img{aspect-ratio:16/10;overflow:hidden;background:var(--bg-warm)}
.service-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.service-card:hover .service-card__img img{transform:scale(1.05)}
.service-card__img--split{display:flex;flex-direction:column}
.service-card__img--split img{height:33.3333%;flex:1 1 0}
.service-card__body{padding:24px}
.service-card__label{font-family:var(--serif);font-size:.75rem;letter-spacing:.2em;color:var(--accent);text-transform:uppercase}
.service-card__title{font-weight:700;font-size:1.1rem;margin:6px 0 4px}
.service-card__price{font-family:var(--serif);font-size:1rem;font-weight:600;color:var(--accent);margin-bottom:10px}
.service-card__desc{font-size:.82rem;color:var(--text-m);line-height:1.7;margin-bottom:14px}
.service-card__more{font-size:.82rem;color:var(--accent);font-weight:500}

/* ── 料金メニューカード ───────── */
.menu__head{text-align:center;margin-bottom:64px}
.menu__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.menu-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--r);padding:36px 28px;position:relative;overflow:hidden}
.menu-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),var(--gold))}
.menu-card__icon{font-size:1.4rem;margin-bottom:12px;color:var(--accent)}
.menu-card__title{font-family:var(--serif);font-size:1.3rem;font-weight:600;margin-bottom:6px}
.menu-card__desc{font-size:.84rem;color:var(--text-m);line-height:1.7;margin-bottom:20px}

/* ── 料金ハイライト ────────────── */
.price-highlight{margin:32px auto;text-align:center}
.price-highlight__amount{font-family:var(--serif);font-size:clamp(2.8rem,6vw,4rem);font-weight:600;color:var(--accent);display:block;line-height:1.1}
.price-highlight__unit{font-size:.95rem;color:var(--text-m);display:block;margin-top:8px}

/* ── 特徴グリッド ──────────────── */
.features__head{text-align:center;margin-bottom:56px}
.features__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:32px}
.feature-item{padding:24px;border-left:3px solid var(--accent-l)}
.feature-item__num{font-family:var(--serif);font-size:1.8rem;font-weight:600;color:var(--accent-l);line-height:1;margin-bottom:12px;display:block}
.feature-item__title{font-weight:700;font-size:.95rem;margin-bottom:8px}
.feature-item__desc{font-size:.84rem;color:var(--text-m);line-height:1.75}

/* ── 受講者の声グリッド ──────── */
.testimonials__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}
.testimonial-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--r);padding:28px;position:relative}
.testimonial-card::before{content:'\201C';position:absolute;top:8px;left:16px;font-family:var(--serif);font-size:3rem;color:var(--accent-l);line-height:1}
.testimonial-card__text{font-size:.88rem;line-height:1.85;color:var(--text-m);padding-top:20px}
.testimonial-card__name{font-size:.78rem;color:var(--text-l);margin-top:14px;text-align:right}

/* ── ポートフォリオ ──────────── */
.portfolio__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.portfolio__item{aspect-ratio:1;overflow:hidden;border-radius:var(--r);background:var(--bg-warm)}
.portfolio__item img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.portfolio__item:hover img{transform:scale(1.05)}

/* ── 料金テーブル ────────────── */
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.price-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--r);padding:36px 28px;position:relative;overflow:hidden}
.price-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),var(--gold))}
.price-card__title{font-family:var(--serif);font-size:1.3rem;font-weight:600;margin-bottom:6px}
.price-card__desc{font-size:.84rem;color:var(--text-m);line-height:1.7;margin-bottom:20px}
.rank-list{list-style:none}
.rank-item{display:flex;align-items:baseline;gap:10px;padding:12px 0;border-bottom:1px solid var(--border)}
.rank-item:last-child{border-bottom:none}
.rank-badge{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--accent-l);color:var(--accent);font-family:var(--serif);font-size:.85rem;font-weight:600;flex-shrink:0}
.rank-price{font-family:var(--serif);font-size:1.2rem;font-weight:600;min-width:70px}
.rank-target{font-size:.78rem;color:var(--text-m)}
.rank-note{text-align:center;font-size:.78rem;color:var(--text-l);margin-top:20px}
.options{margin-top:48px;max-width:640px;margin-left:auto;margin-right:auto}
.options__title{font-size:.9rem;font-weight:700;text-align:center;margin-bottom:16px;color:var(--accent)}
.option-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--border);font-size:.85rem}
.option-row:last-child{border-bottom:none}
.option-price{font-weight:700;color:var(--accent);min-width:80px;text-align:right}
.option-note{font-size:.72rem;color:var(--text-l);margin-left:8px}

/* ── ステップ / フロー ───────── */
.flow__steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0;position:relative}
.flow__steps::before{content:'';position:absolute;top:32px;left:12%;right:12%;height:1px;background:var(--border)}
.flow-step{text-align:center;padding:0 16px;position:relative}
.flow-step__num{width:64px;height:64px;background:var(--bg);border:2px solid var(--accent-l);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:1.2rem;color:var(--accent);margin:0 auto 20px;position:relative;z-index:1}
.flow-step__title{font-weight:700;font-size:.95rem;margin-bottom:10px}
.flow-step__desc{font-size:.82rem;color:var(--text-m);line-height:1.75}

/* ── ページヒーロー ──────────── */
.page-hero{background:var(--bg-dark);color:#fff;padding:100px 28px 64px;margin-top:68px;text-align:center}
.page-hero__label{font-family:var(--serif);font-size:.8rem;letter-spacing:.3em;color:var(--accent);text-transform:uppercase;margin-bottom:16px}
.page-hero__ttl{font-family:var(--serif);font-size:clamp(1.6rem,4vw,2.6rem);font-weight:600;line-height:1.3;margin-bottom:16px}
.page-hero__sub,.page-hero__lead{color:rgba(255,255,255,.6);font-size:.92rem;line-height:1.8}

/* ── 特徴リスト ──────────────── */
.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px}
.feature{display:flex;gap:14px;align-items:flex-start}
.feature__icon{flex-shrink:0;width:24px;color:var(--accent);font-size:1.1rem;padding-top:2px}
.feature__text{font-size:.9rem;line-height:1.7}
.feature__text strong{display:block;font-size:.95rem;margin-bottom:2px}

/* ── 受講者の声 ──────────────── */
.testimonials{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}
.testimonial{background:var(--bg);border:1px solid var(--border);border-radius:var(--r);padding:28px;font-size:.88rem;line-height:1.8;color:var(--text-m);position:relative}
.testimonial::before{content:'\201C';position:absolute;top:12px;left:16px;font-family:var(--serif);font-size:3rem;color:var(--accent-l);line-height:1}

/* ── CTA ──────────────────────── */
.cta{padding:100px 28px;text-align:center;background:var(--bg-dark);color:#fff}
.cta__label{font-family:var(--serif);font-size:.8rem;letter-spacing:.3em;color:var(--accent);text-transform:uppercase;margin-bottom:20px}
.cta__ttl{font-family:var(--serif);font-size:clamp(1.8rem,4vw,2.8rem);font-weight:600;line-height:1.3;margin-bottom:20px}
.cta__text{color:rgba(255,255,255,.65);font-size:.92rem;line-height:2;margin-bottom:44px}
.cta__notes{margin-top:24px;font-size:.78rem;color:rgba(255,255,255,.4)}

/* ── フッター ──────────────── */
.footer{background:#ede8e0;color:#8a7e72;padding:48px 0 32px;text-align:center;font-size:.8rem}
.footer__brand{margin-bottom:8px;text-align:center}
.footer__logo-img{height:56px;width:auto;opacity:.7;border-radius:10px}
.footer__desc{font-size:.82rem;margin-bottom:24px;color:#8a7e72}
.footer__nav{display:flex;gap:24px;justify-content:center;flex-wrap:wrap;margin-bottom:20px}
.footer__nav a{color:#8a7e72;transition:color .2s}
.footer__nav a:hover{color:#4a3f35}
.footer__copy{font-size:.75rem;color:#a89e93}

/* ── WPコンテンツ（ブログ用）── */
.post-body h2{font-size:1.3rem;font-weight:800;margin:48px 0 16px;padding:12px 20px;background:var(--bg-warm);border-left:4px solid var(--accent);border-radius:0 var(--r) var(--r) 0}
.post-body h3{font-size:1.1rem;font-weight:700;margin:32px 0 12px;border-bottom:2px solid var(--border);padding-bottom:8px}
.post-body p{margin-bottom:20px}
.post-body img{max-width:100%;height:auto;width:auto;border-radius:var(--r);margin:24px 0}
.post-body a{color:var(--accent)}
.post-body ul,.post-body ol{padding-left:24px;margin-bottom:20px}
.post-body li{margin-bottom:8px}
.c-balloon{display:flex;gap:16px;margin:24px 0;align-items:flex-start}
.c-balloon.-bln-right{flex-direction:row-reverse}
.c-balloon__iconImg{width:60px;height:60px;border-radius:50%;object-fit:cover}
.c-balloon__iconName{display:block;font-size:.75rem;text-align:center;margin-top:4px;color:var(--text-l)}
.c-balloon__body{background:#f0f4f8;border-radius:var(--r);padding:14px 18px;max-width:80%}
.-bln-right .c-balloon__body{background:#fff3e8}
.c-balloon__text p{margin:0}

/* ── カテゴリジャンプナビ ───────── */
.blog-cat-nav{padding:20px 0;background:var(--bg);border-bottom:1px solid var(--border);position:sticky;top:68px;z-index:10}
.blog-cat-nav__inner{display:flex;gap:10px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.blog-cat-nav__inner::-webkit-scrollbar{display:none}
.blog-cat-nav__link{white-space:nowrap;padding:8px 20px;border-radius:50px;font-size:.85rem;font-weight:600;color:var(--accent);background:var(--accent-l);transition:all .2s;text-decoration:none;border:1px solid transparent}
.blog-cat-nav__link:hover{background:var(--accent);color:#fff}

/* ── 関連記事 ──────────────── */
.related-section{margin-top:64px;padding-top:48px;border-top:1px solid var(--border)}
.related-section__ttl{font-family:var(--serif);font-size:1.1rem;font-weight:600;color:var(--accent);margin-bottom:20px;letter-spacing:.06em}
.related-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.related-card{display:block;padding:16px;background:var(--bg-warm);border-radius:var(--r);border:1px solid var(--border);transition:transform .2s,box-shadow .2s;text-decoration:none;color:var(--text)}
.related-card:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(0,0,0,.06)}
.related-card__cat{display:inline-block;font-size:.7rem;font-weight:700;background:var(--accent);color:#fff;padding:2px 8px;border-radius:3px;margin-bottom:8px}
.related-card__title{display:block;font-size:.85rem;font-weight:600;line-height:1.5}

/* ── サービス誘導CTA ───────────── */
.service-cta-box{margin-top:40px;padding:32px;background:var(--bg-warm);border-radius:var(--r);border:2px solid var(--accent-l);text-align:center}
.service-cta-box__heading{font-family:var(--serif);font-size:1.2rem;font-weight:700;color:var(--text);margin-bottom:12px}
.service-cta-box__text{font-size:.9rem;color:var(--text-m);line-height:1.8;margin-bottom:20px}
.service-cta-box__links{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.service-cta-box__btn{display:inline-block;padding:12px 28px;background:var(--accent);color:#fff;border-radius:50px;font-size:.9rem;font-weight:700;transition:all .2s;text-decoration:none}
.service-cta-box__btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(193,127,90,.3)}

/* ── ブログカード ────────────── */
.blog-category-section{margin-bottom:56px}
.blog-category-section:last-child{margin-bottom:0}
.blog-category-ttl{font-family:var(--serif);font-size:1.3rem;font-weight:600;color:var(--accent);border-bottom:2px solid var(--border);padding-bottom:10px;margin-bottom:24px;letter-spacing:.06em}
.post-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:28px}
.post-card{background:var(--bg);border-radius:var(--r);overflow:hidden;border:1px solid var(--border);transition:transform .2s,box-shadow .2s}
.post-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,.08)}
.post-card-thumb{aspect-ratio:16/9;overflow:hidden;background:var(--bg-warm)}
.post-card-thumb img{width:100%;height:100%;object-fit:cover}
.post-card-body{padding:20px}
.post-meta{font-size:.8rem;color:var(--text-l);margin-bottom:8px;display:flex;gap:12px;align-items:center}
.post-cat{background:var(--accent);color:#fff;padding:2px 10px;border-radius:3px;font-size:.75rem;font-weight:700;text-decoration:none}
.post-card h2{font-size:1rem;font-weight:700;line-height:1.5}
.post-card h2 a{text-decoration:none;color:var(--text)}
.post-card h2 a:hover{color:var(--accent)}

/* ── Instagram セクション ──────── */
.instagram-section{margin-top:80px;text-align:center}
.instagram-section__title{font-family:var(--serif);font-size:1.3rem;font-weight:400;letter-spacing:.15em;color:var(--text);margin-bottom:8px}
.instagram-section__lead{font-size:.88rem;color:var(--text-m);margin-bottom:32px}
.instagram-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:900px;margin:0 auto}
.instagram-grid__item{display:block;position:relative;overflow:hidden;border-radius:4px;aspect-ratio:1/1;background:var(--bg-warm,#f5f0e8)}
.instagram-grid__item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(0.22,0.61,0.36,1)}
.instagram-grid__item:hover img{transform:scale(1.05)}
.instagram-section__follow{margin-top:28px;font-family:var(--serif);font-size:.9rem;letter-spacing:.08em}
.instagram-section__follow a{color:var(--accent);transition:opacity .2s}
.instagram-section__follow a:hover{opacity:.7}

/* ── レスポンシブ ────────────── */
@media(max-width:900px){
  .hero{grid-template-columns:1fr;min-height:auto}
  .hero__text{max-width:100%;padding:60px 28px 48px;margin:0}
  .hero__img{height:55vw}
  .header__nav{display:none;position:fixed;top:68px;left:0;right:0;bottom:0;background:var(--bg);flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;padding:24px 0;z-index:99;box-shadow:inset 0 8px 16px -8px rgba(0,0,0,.08)}
  .header__nav.is-open{display:flex}
  .header__nav a{font-size:1.05rem;font-weight:500;padding:18px 28px;border-bottom:1px solid var(--border);color:var(--text);text-align:left;width:100%;display:block}
  .header__nav a:last-child{border-bottom:none;margin-top:16px;background:#06c755;color:#fff;text-align:center;padding:16px 28px;border-radius:40px;margin-left:24px;margin-right:24px;width:auto;font-weight:700;box-shadow:0 4px 12px rgba(6,199,85,.25)}
  .header__nav a:last-child:hover{color:#fff}
  .header__burger{display:block}
  .portfolio__grid{grid-template-columns:repeat(2,1fr)}
  .instagram-grid{grid-template-columns:repeat(3,1fr);gap:6px;max-width:100%}
  .price-grid,.menu__grid{grid-template-columns:1fr}
  .flow__steps::before{display:none}
  .services__grid{grid-template-columns:1fr 1fr}
}
/* ── 悩みリスト ──────────────── */
.concern-list{list-style:none;padding:0;margin-top:24px}
.concern-list__item{position:relative;padding:14px 0 14px 24px;border-bottom:1px solid var(--border);font-size:.95rem;line-height:1.8;color:var(--text-m)}
.concern-list__item::before{content:"";position:absolute;left:0;top:22px;width:8px;height:8px;border-radius:50%;background:var(--accent);opacity:.5}

/* ── Next Step 導線 ─────────── */
.next-step-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;text-align:left}
.next-step-card{display:block;padding:28px;background:var(--bg-warm);border:1px solid var(--border);border-radius:var(--r);transition:transform .2s,box-shadow .2s;text-decoration:none;color:var(--text)}
.next-step-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,.06)}
.next-step-card__label{display:inline-block;font-size:.75rem;font-weight:700;color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px}
.next-step-card__title{display:block;font-size:1.05rem;font-weight:700;margin-bottom:8px}
.next-step-card__desc{display:block;font-size:.85rem;color:var(--text-m);line-height:1.7}

/* ── レッスンページ：ヒーロー ── */
.lesson-hero{display:grid;grid-template-columns:1fr 1fr;margin-top:68px;min-height:480px;background:var(--bg-dark)}
.lesson-hero__img{overflow:hidden}
.lesson-hero__img img{width:100%;height:100%;object-fit:cover;display:block}
.lesson-hero__content{display:flex;flex-direction:column;justify-content:center;padding:48px 40px;color:#fff}
.lesson-hero__content .label{color:var(--accent)}
.lesson-hero__content .page-hero__ttl{text-align:left}
.lesson-hero__content .page-hero__lead{color:rgba(255,255,255,.7);text-align:left}

/* ── レッスンページ：作例ギャラリー ── */
.lesson-gallery{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:280px;gap:12px;border-radius:12px;overflow:hidden}
.lesson-gallery__item{overflow:hidden;border-radius:8px}
.lesson-gallery__item--wide{grid-column:span 2}
.lesson-gallery__item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.lesson-gallery__item:hover img{transform:scale(1.03)}

/* ── レッスンページ：特長（画像＋テキスト交互） ── */
.lesson-features{display:flex;flex-direction:column;gap:64px}
.lesson-feature{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.lesson-feature--reverse{direction:rtl}
.lesson-feature--reverse>*{direction:ltr}
.lesson-feature__img{border-radius:12px;overflow:hidden}
.lesson-feature__img img{width:100%;height:auto;display:block;border-radius:12px}
.lesson-feature__body--full{grid-column:1/-1;text-align:center;max-width:640px;margin:0 auto}

@media(max-width:600px){
  .sec{padding:64px 0}
  .portfolio__grid{grid-template-columns:repeat(2,1fr);gap:8px}
  .services__grid{grid-template-columns:1fr}
  .related-grid{grid-template-columns:1fr}
  .service-cta-box__links{flex-direction:column;align-items:center}
  .next-step-grid{grid-template-columns:1fr}
  .lesson-hero{grid-template-columns:1fr;min-height:auto}
  .lesson-hero__img{max-height:320px}
  .lesson-hero__content{padding:32px 20px 40px}
  .lesson-gallery{grid-template-columns:1fr 1fr;gap:8px}
  .lesson-gallery__item--wide{grid-column:span 2}
  .lesson-feature,.lesson-feature--reverse{grid-template-columns:1fr;gap:24px;direction:ltr}
}

/* ヒーロー内の料金シミュレーターへの控えめリンク */
.hero__link-estimate{
  display:inline-block;
  margin-top:12px;
  font-family:var(--serif);
  font-size:.95rem;
  letter-spacing:.04em;
  color:var(--text-muted,#666);
  text-decoration:none;
  border-bottom:1px solid rgba(0,0,0,.15);
  padding-bottom:2px;
  transition:all .2s;
}
.hero__link-estimate:hover{
  color:var(--accent,#c8a96e);
  border-bottom-color:currentColor;
}

/* ==========================================
   スクロール連動フェードイン（浮き上がり演出）
   JSで data-reveal 属性を付けた要素が対象
   ========================================== */
[data-reveal]{
  opacity:0;
  transform:translateY(24px);
  transition:opacity 0.9s cubic-bezier(0.22,0.61,0.36,1),transform 0.9s cubic-bezier(0.22,0.61,0.36,1);
  transition-delay:var(--reveal-delay,0ms);
  will-change:opacity,transform;
}
[data-reveal].is-in{
  opacity:1;
  transform:translateY(0);
}
/* 動きを嫌うユーザー設定への配慮（OS設定優先） */
@media (prefers-reduced-motion: reduce){
  [data-reveal]{
    opacity:1;
    transform:none;
    transition:none;
  }
}
