@charset "UTF-8";
/*
 * ======================================
 * アップルハウス サイト固有CSS（site.css）
 * 共通 main.css で再現できないデザイン差分を追加
 * ======================================
 *
 * 【追加クラス一覧（共通SCSS取り込み検討用）】
 *
 *  .font-pop            - 見出し用 丸ゴシックポップ体（Mochiy Pop P One）
 *  .ah-c-green/-orange/-orange-l/-yellow/-brown/-text/-mute  - サイト配色テキスト色
 *  .ah-eyebrow / .ah-title / .ah-title--xl / .ah-lead / .ah-text - セクション見出し・本文
 *  .ah-btn / --solid / --yellow / --sm        - ピル型ボタン群
 *  .header--ah ほか header__bar/__ig/__tel-num - ヘッダーのテーマ（縞バー・ピルナビ・IG丸）
 *  .ah-cta(__inner/__label/__title/__btn)     - お問い合わせCTA帯
 *  .ah-footer / .ah-foot__*                    - フッター（濃グリーン）
 *  .ah-page-head / .ah-crumb / .ah-deco-*      - 下層ページヘッダー（あしらい付き）
 *  .ah-mv(__copy/__badge/__title/__sub/__dots) - メインビュー（クロスフェード）
 *  .ah-leaf-tl / .ah-leaf-br                   - 大きな葉の角あしらい
 *  .ah-look(__vp/__track/__card/...) / .ah-look-nav - コーデ横スライダー
 *  .ah-brands / .ah-brand-card                 - 取り扱いブランドカード
 *  .ah-2col / .ah-2col--reverse                - レスポンシブ2カラム（grid）
 *  .ah-round-img / .ah-round-img--lg           - 角丸写真
 *  .ah-soft-box / --cream / --green-grad / --yellow-grad - やわらかカード枠
 *  .ah-coord3 / .ah-gallery3                   - 3枚写真グリッド
 *  .ah-feat4 / .ah-feat-card                   - こだわり4カード
 *  .ah-sched / .ah-sched-item                  - スケジュールリスト
 *  .ah-info-table                              - 開催概要／店舗情報の定義リスト表
 *  .ah-newslist / .ah-news-item                - TOPお知らせリスト
 *  .ah-cat-tag                                 - カテゴリラベル
 *  .ah-reco2 / .ah-reco-item                   - こんな方におすすめ
 *  .ah-blog-layout / .ah-blog-card / .ah-side-box / .ah-pager / .ah-cat-filter - ブログ
 *  .ah-form(__row/__label/__req) / .ah-contact-aside - お問い合わせフォーム
 *
 * 【共通SCSSに不足していたもの（5分類）】
 *  - 構造不足：英(Oswald小)+和(Mochiy)のセクション見出し（.heading は和文サイズ・色が固定的で、
 *              本案件のeyebrow+ポップ体タイトルの組合せに合わず .ah-eyebrow/.ah-title を新設）
 *  - 装飾パターン不足：ヘッダー上部の緑/黄ストライプバー、花あしらい配置、コーデ横スライダー
 *  - 値の粒度不足：写真角丸 14〜28px、本文 15.5px 等、共通の刻みに無い値
 *  - 状態不足：ボタンの 6px ドロップ影＋押下、ナビのピル型アクティブ
 */

/* ============ フォント・配色ユーティリティ ============ */
.font-pop { font-family: "Mochiy Pop P One", sans-serif; font-weight: 400; }

.ah-c-green   { color: #1b9947; }
.ah-c-orange  { color: #cf7320; }
.ah-c-orange-l{ color: #ffb01f; }
.ah-c-yellow  { color: #ffc742; }
.ah-c-brown   { color: #544c3e; }
.ah-c-text    { color: #4a4338; }
.ah-c-mute    { color: #8a7d63; }
.ah-c-cream-y { color: #ffe39a; }

/* ============ セクション見出し・本文 ============ */
.ah-eyebrow {
  display: block;
  font-family: "Oswald", sans-serif;
  font-weight: 600;
  font-size: 1.4rem;
  letter-spacing: 0.22em;
  line-height: 1;
}
.ah-title {
  font-family: "Mochiy Pop P One", sans-serif;
  font-weight: 400;
  font-size: clamp(2.2rem, 3.4vw, 3rem);
  line-height: 1.5;
  margin-top: 8px;
}
.ah-title--xl { font-size: clamp(2.4rem, 4vw, 3.4rem); }
.ah-title--sm { font-size: clamp(1.9rem, 2.8vw, 2.5rem); }
/* SPで1行に収める見出し（幅に合わせて縮小＋折り返し禁止） */
@media (max-width: 639px) {
  .ah-title.ah-title--sp-fit { font-size: clamp(1.2rem, 4vw, 1.7rem); white-space: nowrap; }
}

.ah-lead { font-size: 1.6rem; line-height: 2.1; color: #544c3e; }
.ah-text { font-size: 1.55rem; line-height: 2.1; color: #544c3e; }
/* 暗背景上の本文は text-white を優先（.ah-text の色指定に勝たせる） */
.ah-text.text-white { color: #fff; }
.ah-text--sm { font-size: 1.4rem; line-height: 1.95; color: #6b6353; }
.ah-note { font-size: 1.25rem; color: #a99a7d; line-height: 1.7; }

/* ============ ボタン（ピル型） ============ */
.ah-btn {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-weight: 700;
  font-size: 1.5rem;
  color: #1b9947;
  border: 2px solid #1b9947;
  background: transparent;
  padding: 12px 28px;
  border-radius: 999px;
  text-decoration: none;
  transition: all .2s ease;
  cursor: pointer;
}
.ah-btn:hover { background: #1b9947; color: #fff; opacity: 1; }
.ah-btn--solid {
  background: #1b9947;
  color: #fff;
  border-color: #1b9947;
  box-shadow: 0 6px 0 rgba(20,90,48,0.32);
}
.ah-btn--solid:hover { background: #16823c; color: #fff; transform: translateY(2px); box-shadow: 0 4px 0 rgba(20,90,48,0.32); }
.ah-btn--yellow {
  background: #ffc742;
  color: #3a2a0c;
  border-color: #ffc742;
}
.ah-btn--yellow:hover { background: #f4b41f; color: #3a2a0c; transform: translateY(-2px); }
.ah-btn--lg { font-size: 1.7rem; padding: 15px 38px; }
.ah-btn--sm { font-size: 1.35rem; padding: 9px 22px; }

/* ============ ヘッダー（テーマ：縞バー・ピルナビ・IG丸） ============ */
.header--ah {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid #efe7d6;
}
.header__bar { display: flex; height: 6px; }
.header__bar span { flex: 1; }
.header__bar-g { background: #1b9947; }
.header__bar-y { background: #ffc742; }

.header--ah .header__inner {
  max-width: 1200px;
  height: auto;
  padding: 14px 24px;
  gap: 24px;
}
.header--ah .header__logo img { height: 30px; }

.header--ah .header__nav { gap: 4px; margin-right: 0; }
.header--ah .header__nav-item a {
  display: inline-flex;
  flex-direction: row;
  padding: 9px 13px;
  border-radius: 999px;
  font-weight: 700;
  font-size: 1.45rem;
  color: #4a4338;
  white-space: nowrap;
  transition: all .18s ease;
}
.header--ah .header__nav-item a::after { display: none; }
.header--ah .header__nav-item a:hover { color: #1b9947; background: #eaf6ee; opacity: 1; }
.header--ah .header__nav-item--current a { color: #fff; background: #1b9947; }

.header--ah .header__right { gap: 14px; }
.header--ah .header__tel {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #1b9947;
  font-family: "Oswald", sans-serif;
  font-weight: 600;
  font-size: 1.9rem;
  letter-spacing: .03em;
}
.header--ah .header__tel::before { display: none; }
.header__ig {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #ffc742;
  flex-shrink: 0;
}
.header__ig:hover { opacity: .9; }

/* SPナビ下部 */
.sp-nav__bottom { display: flex; flex-direction: column; align-items: center; gap: 16px; }
.sp-nav__tel {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #fff;
  font-family: "Oswald", sans-serif;
  font-size: 2.4rem;
  font-weight: 600;
}
/* Instagram：アイコンのみの丸ボタン */
.sp-nav__ig {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #ffc742;
  color: #1b3a25;
}
.sp-nav__ig:hover { opacity: .9; }
.sp-nav__link::after { margin-left: 10px; }
.sp-nav__en { font-size: 1.5rem; }

/* ============ お問い合わせCTA帯 ============ */
.ah-cta { background: #ffc742; padding: 56px 24px; text-align: center; }
.ah-cta__inner { max-width: 720px; margin: 0 auto; }
.ah-cta__label { font-weight: 700; font-size: 1.6rem; color: #5a4218; margin-bottom: 6px; }
.ah-cta__title {
  font-size: clamp(2.2rem, 4vw, 3rem);
  color: #3a2a0c;
  line-height: 1.4;
  margin-bottom: 24px;
}
.ah-cta__btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #1b9947;
  color: #fff;
  font-weight: 700;
  font-size: 1.7rem;
  padding: 15px 38px;
  border-radius: 999px;
  text-decoration: none;
  box-shadow: 0 6px 0 rgba(20,90,48,0.35);
  transition: all .2s ease;
}
.ah-cta__btn:hover { background: #16823c; color: #fff; opacity: 1; transform: translateY(2px); box-shadow: 0 4px 0 rgba(20,90,48,0.35); }

/* ============ フッター ============ */
.ah-footer { background: #1b3a25; color: #e9f3ec; }
.ah-foot__inner { max-width: 1200px; margin: 0 auto; padding: 52px 24px 36px; }
.ah-foot__grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 40px; align-items: start; }
.ah-foot__logo { height: 34px; width: auto; display: block; margin-bottom: 18px; filter: brightness(0) invert(1); opacity: .95; }
.ah-foot__lead { font-size: 1.4rem; line-height: 2; color: #cfe2d5; margin-bottom: 18px; }
.ah-foot__dl { display: grid; grid-template-columns: auto 1fr; gap: 8px 16px; font-size: 1.4rem; line-height: 1.6; }
.ah-foot__dl dt { color: #9fc4ab; font-weight: 700; }
.ah-foot__dl dd { color: #e9f3ec; }
.ah-foot__tel { display: inline-flex; align-items: center; gap: 7px; color: #ffc742; font-family: "Oswald", sans-serif; font-size: 1.8rem; font-weight: 600; letter-spacing: .03em; }
.ah-foot__sns {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: #1b3a25;
  background: #ffc742;
  font-weight: 700;
  font-size: 1.4rem;
  padding: 10px 18px;
  border-radius: 999px;
  margin-top: 22px;
}
.ah-foot__sns:hover { opacity: .9; }
.ah-foot__map { border-radius: 20px; overflow: hidden; box-shadow: 0 8px 24px rgba(0,0,0,0.25); }
.ah-foot__map iframe { display: block; border: 0; width: 100%; height: 300px; }
.ah-foot__links {
  display: flex; flex-wrap: wrap; gap: 14px 26px; justify-content: center;
  margin-top: 40px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,0.13);
}
.ah-foot__links a { color: #cfe2d5; text-decoration: none; font-size: 1.35rem; font-weight: 500; }
.ah-foot__links a:hover { color: #fff; opacity: 1; }
/* スマホ時はフッターナビを非表示 */
@media (max-width: 639px) { .ah-foot__links { display: none; } }
.ah-foot__copy { text-align: center; margin-top: 22px; font-size: 1.2rem; color: #7fa78c; font-family: "Oswald", sans-serif; letter-spacing: .08em; }

/* ============ 下層ページヘッダー ============ */
.ah-page-head { position: relative; overflow: hidden; background: #f4f9f0; padding: 54px 24px; text-align: center; }
.ah-page-head__inner { position: relative; z-index: 1; }
.ah-page-head .ah-eyebrow { font-size: 1.3rem; letter-spacing: 0.3em; color: #1b9947; }
.ah-page-head .ah-title { color: #2c6b3f; }
.ah-crumb { font-size: 1.3rem; color: #8a7d63; margin-top: 14px; }
.ah-crumb a { color: #8a7d63; text-decoration: none; }
.ah-crumb a:hover { color: #1b9947; }

/* 花あしらい（位置クラス） */
.ah-deco { position: absolute; height: auto; opacity: .9; pointer-events: none; z-index: 0; }
.ah-deco--tl { top: -8px;  left: 18px;  width: clamp(60px, 7vw, 100px); }
.ah-deco--tr { top: -8px;  right: 24px; width: clamp(58px, 6.5vw, 90px); transform: scaleX(-1); }
.ah-deco--bl { bottom: -14px; left: 20px; width: clamp(66px, 7.5vw, 104px); }
.ah-deco--br { bottom: -14px; right: 20px; width: clamp(64px, 7vw, 96px); }

/* ============ メインビュー ============ */
.ah-mv-sec { max-width: 1760px; margin: 0 auto; padding: 18px 20px 12px; }
.ah-mv {
  position: relative;
  height: min(60vw, 680px);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 18px 44px rgba(120,90,30,0.16);
}
/* スライダー枠（静止画／CMS Swiper共通の土台）。
   CMSスライダー差し替え時、Swiper の position:relative;z-index:1 が
   コピーを覆わないよう、枠を最下層(z-index:1)に固定し overlay類を上に重ねる */
.ah-mv__stage {
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
  overflow: hidden;
}
.ah-mv__slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 1.1s ease;
}
.ah-mv__slide.is-active { opacity: 1; }
/* CMSスライダー差し替え後の Swiper 要素を枠いっぱいに */
.ah-mv__stage .swiper,
.ah-mv__stage .swiper-slide { width: 100%; height: 100%; }
.ah-mv__stage .swiper-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ah-mv__shade {
  position: absolute; inset: 0;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(35,25,10,0.42) 0%, rgba(35,25,10,0.12) 42%, rgba(35,25,10,0) 70%);
}
.ah-mv__copy { position: absolute; z-index: 3; left: 48px; top: 50%; transform: translateY(-50%); max-width: 520px; color: #fff; }
.ah-mv__badge {
  display: inline-block;
  background: #1b9947;
  color: #fff;
  font-family: "Oswald", sans-serif;
  font-weight: 600;
  font-size: 1.3rem;
  letter-spacing: 0.16em;
  padding: 6px 15px;
  border-radius: 999px;
  margin-bottom: 18px;
}
.ah-mv__title {
  font-family: "Mochiy Pop P One", sans-serif;
  font-weight: 400;
  font-size: clamp(2.6rem, 4.4vw, 4.6rem);
  line-height: 1.5;
  margin-bottom: 18px;
  text-shadow: 0 2px 16px rgba(0,0,0,0.35);
}
.ah-mv__sub {
  font-size: clamp(1.4rem, 1.6vw, 1.65rem);
  line-height: 2;
  font-weight: 500;
  text-shadow: 0 1px 10px rgba(0,0,0,0.45);
}
.ah-mv__dots { position: absolute; z-index: 4; bottom: 22px; right: 28px; display: flex; gap: 10px; }
.ah-mv__dot { width: 10px; height: 10px; border-radius: 999px; border: none; cursor: pointer; padding: 0; background: rgba(255,255,255,0.6); transition: all .3s ease; }
.ah-mv__dot.is-active { width: 26px; background: #ffc742; }

/* 大きな葉の角あしらい */
.ah-leaf-tl { position: absolute; top: 0; left: 0; width: min(38%, 460px); height: auto; opacity: .5; pointer-events: none; z-index: 0; }
.ah-leaf-br { position: absolute; bottom: 0; right: 0; width: min(42%, 520px); height: auto; opacity: .5; pointer-events: none; z-index: 0; }

/* 中間ブロックの葉あしらい（コンセプト〜ワークショップを包む帯） */
/* ワークショップ：導入〜こんな方におすすめを葉のあしらいがまたぐ */
.ah-ws-lead { position: relative; }
.ah-ws-lead > section { position: relative; z-index: 1; }
.ah-ws-lead__leaf {
  position: absolute;
  top: 0;
  left: 0;
  width: clamp(320px, 46vw, 680px);  /* 従来比 約3倍 */
  height: auto;
  z-index: 0;          /* コンテンツの背面 */
  opacity: .55;        /* 少し透過 */
  pointer-events: none;
}
/* 右上：同じ画像を左右反転して配置 */
.ah-ws-lead__leaf--right { left: auto; right: 0; transform: scaleX(-1); }
@media (max-width: 639px) {
  .ah-ws-lead__leaf { width: 64vw; opacity: .22; }
}

.ah-leaf-band { position: relative; overflow: hidden; padding-bottom: 80px; }
.ah-leaf-band > section { position: relative; z-index: 1; }
.ah-leaf-band__r { position: absolute; top: 24px; right: 0; width: min(42%, 540px); height: auto; pointer-events: none; z-index: 0; }
.ah-leaf-band__l { position: absolute; top: 32%; left: 0; width: min(32%, 420px); height: auto; pointer-events: none; z-index: 0; }
@media (max-width: 860px) {
  .ah-leaf-band__r { width: 32%; top: 12px; }
  .ah-leaf-band__l { width: 26%; }
}
@media (max-width: 600px) {
  .ah-leaf-band__r { width: 40%; opacity: .55; }
  .ah-leaf-band__l { width: 34%; opacity: .55; }
}

/* ワークショップ（導入）セクション背景の花あしらい（左1・右2） */
.ah-ws-bg { position: relative; overflow: hidden; }
.ah-ws-bg > section { position: relative; z-index: 1; }
.ah-ws-bg img { position: absolute; height: auto; pointer-events: none; z-index: 0; opacity: .6; }
.ah-ws-bg__l1 { left: 2%;  top: 30%;    width: min(9%, 110px); }   /* 左 */
.ah-ws-bg__r1 { right: 2%; top: 6%;     width: min(9%, 112px); }   /* 右上 */
.ah-ws-bg__r2 { right: 1%; bottom: 0%;  width: min(10.5%, 130px); }/* 右下 */
@media (max-width: 1000px) {
  .ah-ws-bg img { opacity: .4; }
  .ah-ws-bg__l1 { width: 66px; }
  .ah-ws-bg__r1 { width: 70px; }
  .ah-ws-bg__r2 { width: 78px; }
}
@media (max-width: 680px) {
  .ah-ws-bg img { display: none; }
}

/* ============ コーデ横スライダー ============ */
.ah-look-sec { position: relative; overflow: hidden; padding: 74px 0 80px; }
.ah-deco--lg.ah-deco--tr { width: clamp(80px, 9vw, 128px); top: -10px; right: 18px; transform: none; }
.ah-deco--lg.ah-deco--bl { width: clamp(78px, 9vw, 122px); bottom: -14px; left: 14px; transform: scaleX(-1); }
.ah-deco--in-tr { top: -46px; right: 0; width: clamp(64px, 7vw, 96px); }
.ah-deco--box-tl { top: -6px; left: -4px; width: clamp(82px, 9vw, 130px); }
.ah-deco--box-br { bottom: -12px; right: -4px; width: clamp(78px, 9vw, 122px); transform: scaleX(-1); }
.ah-look-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 34px; }
.ah-look-nav { display: flex; gap: 12px; flex: none; }
.ah-look-btn {
  display: flex; align-items: center; justify-content: center;
  width: 46px; height: 46px; border-radius: 50%;
  background: #fff; border: 1.5px solid #1b9947; color: #1b9947;
  cursor: pointer; transition: all .18s ease;
}
.ah-look-btn:hover { background: #1b9947; color: #fff; }
.ah-look-btn:disabled { opacity: .55; pointer-events: none; border-color: #e0d6bf; color: #cdbfa3; }
.ah-look-vp { overflow: hidden; }
.ah-look-track { display: flex; gap: 20px; transition: transform .5s cubic-bezier(.4,0,.2,1); }
.ah-look-card {
  flex: 0 0 calc((100% - 40px) / 3);
  display: flex;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 10px 26px rgba(120,90,30,0.10);
  overflow: hidden;
  min-height: 380px;
}
.ah-look-card__cap { flex: none; width: 44%; padding: 26px 18px; display: flex; flex-direction: column; justify-content: center; gap: 15px; }
.ah-look-card__brand {
  align-self: flex-start;
  font-family: "Oswald", sans-serif; font-weight: 500; font-size: 1.5rem; letter-spacing: .1em;
  color: #3a2f1f; padding: 6px 14px; border: 1px solid #d9cfb8; border-radius: 7px;
}
.ah-look-card__price { font-family: "Oswald", sans-serif; font-weight: 600; font-size: 2.4rem; color: #3a2f1f; line-height: 1; }
.ah-look-card__tax { font-size: 1.2rem; color: #8a7d63; margin-left: 3px; }
.ah-look-card__off { font-family: "Oswald", sans-serif; font-weight: 700; font-size: 1.8rem; color: #d14b3d; letter-spacing: .03em; }
.ah-look-card__exc { font-size: 1.1rem; color: #bb6155; }
.ah-look-card__imgwrap { flex: 1; position: relative; background: #fff; }
.ah-look-card__imgwrap img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: center bottom; display: block; }
/* おすすめコーデ：1カードにトップス／ボトム等を複数行で表示 */
.ah-look-card__item { display: flex; flex-direction: column; align-items: flex-start; gap: 5px; }
.ah-look-card__item + .ah-look-card__item { margin-top: 14px; padding-top: 14px; border-top: 1px dashed #e0d6bf; }
.ah-look-card__cat { font-family: "Mochiy Pop P One", sans-serif; font-size: 1.2rem; color: #1b9947; }
.ah-look-card__item .ah-look-card__brand { font-size: 1.3rem; }
.ah-look-card__item .ah-look-card__price { font-size: 2rem; }
.ah-look-card__pricewrap { display: flex; align-items: baseline; }

/* ============ 取り扱いブランド ============ */
.ah-brand-sec { position: relative; overflow: hidden; background: #f4f9f0; padding: 70px 24px; }
.ah-brands { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 34px; }
.ah-brand-card {
  display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
  background: #fff; border: 1.5px solid #e6ddc9; border-radius: 18px; padding: 26px 18px;
  text-decoration: none; transition: all .2s ease; min-height: 104px;
}
.ah-brand-card:hover { transform: translateY(-4px); box-shadow: 0 14px 28px rgba(120,90,30,0.16); border-color: #1b9947; opacity: 1; }
.ah-brand-card__en { font-family: "Oswald", sans-serif; font-weight: 600; font-size: 2.2rem; letter-spacing: .04em; color: #3a2f1f; }
.ah-brand-card__ja { font-size: 1.3rem; color: #8a7d63; margin-top: 6px; }

/* ============ レイアウト・写真 ============ */
.ah-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
/* グリッド項目が中身（CMSフォーム等）の最小幅で膨らんで横はみ出しするのを防ぐ */
.ah-2col > * { min-width: 0; }
.ah-2col--narrow-img { grid-template-columns: 0.95fr 1.05fr; }
.ah-2col--text-wide { grid-template-columns: 1.3fr 1fr; align-items: start; }
.ah-round-img { width: 100%; object-fit: cover; border-radius: 18px; display: block; }
.ah-round-img--lg { border-radius: 26px; box-shadow: 0 16px 36px rgba(120,90,30,0.16); }
.ah-ar-43 { aspect-ratio: 4/3; }
.ah-ar-32 { aspect-ratio: 3/2; }
.ah-ar-169 { aspect-ratio: 16/9; }

.ah-coord3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.ah-coord4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.ah-gallery3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }

/* やわらかカード枠 */
.ah-soft-box { position: relative; overflow: hidden; border-radius: 28px; padding: 46px 40px; background: #fff7e6; }
.ah-soft-box--cream { background: #fff7e6; }
.ah-soft-box--green-grad { background: linear-gradient(135deg, #1b9947, #2c6b3f); color: #fff; }
.ah-soft-box--yellow-grad { background: linear-gradient(135deg, #fff3d6, #ffe7b0); }
.ah-soft-box__deco-leaf { position: absolute; right: -20px; bottom: -20px; pointer-events: none; }

/* ============ About こだわり4カード ============ */
.ah-feat4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.ah-feat-card { background: #fff; border: 1.5px solid #ece3d0; border-radius: 20px; padding: 28px 22px; text-align: center; }
.ah-feat-card__num {
  width: 56px; height: 56px; border-radius: 50%; background: #eaf6ee;
  display: flex; align-items: center; justify-content: center; margin: 0 auto 16px;
  font-family: "Mochiy Pop P One", sans-serif; font-size: 2.2rem; color: #1b9947;
}
.ah-feat-card__title { font-family: "Mochiy Pop P One", sans-serif; font-weight: 400; font-size: 1.6rem; color: #3a2f1f; margin-bottom: 10px; line-height: 1.5; }
.ah-feat-card__text { font-size: 1.35rem; line-height: 1.85; color: #6b6353; }

/* ============ こんな方におすすめ ============ */
.ah-reco2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ah-reco-item { display: flex; align-items: center; gap: 13px; background: #fff; border-radius: 14px; padding: 16px 20px; font-size: 1.5rem; font-weight: 500; }
.ah-reco-item svg { flex: none; color: #1b9947; }

/* ============ スケジュール ============ */
.ah-sched { display: flex; flex-direction: column; gap: 12px; }
.ah-sched-item { display: flex; align-items: center; gap: 18px; background: #fff; border: 1.5px solid #ece3d0; border-radius: 18px; padding: 18px 24px; }
.ah-sched-item--sm { border-radius: 16px; padding: 15px 20px; gap: 16px; }
.ah-sched-date {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  width: 62px; height: 62px; border-radius: 14px; background: #eaf6ee; flex: none;
}
.ah-sched-date__d { font-family: "Oswald", sans-serif; font-weight: 600; font-size: 2rem; color: #1b9947; line-height: 1; }
.ah-sched-date__m { font-size: 1.1rem; color: #7a9d85; }
.ah-sched-item__name { flex: 1; font-weight: 700; font-size: 1.55rem; color: #4a4338; }
.ah-sched-item__fee { font-family: "Oswald", sans-serif; font-weight: 600; font-size: 1.6rem; color: #cf7320; }
.ah-sched-date-inline { font-family: "Oswald", sans-serif; font-weight: 600; font-size: 1.8rem; color: #cf7320; min-width: 54px; }
.ah-sched-fee-green { color: #1b9947; }

/* スケジュールセクション背景の花あしらい */
.ah-sched-bg { position: relative; overflow: hidden; }
.ah-sched-bg > section { position: relative; z-index: 1; }
.ah-sched-bg img { position: absolute; height: auto; pointer-events: none; z-index: 0; opacity: .6; }
.ah-sched-bg__l  { left: 2%;  top: 40%; width: min(9%, 105px); }
.ah-sched-bg__r1 { right: 2%; top: 5%;  width: min(9%, 112px); }
.ah-sched-bg__r2 { right: 1%; bottom: 7%; width: min(10.5%, 130px); }
@media (max-width: 1000px) {
  .ah-sched-bg img { opacity: .4; }
  .ah-sched-bg__l  { width: 64px; }
  .ah-sched-bg__r1 { width: 70px; }
  .ah-sched-bg__r2 { width: 78px; }
}
@media (max-width: 680px) {
  .ah-sched-bg img { display: none; }
}

/* 開催概要セクション背景の花あしらい */
.ah-info-bg { position: relative; overflow: hidden; }
.ah-info-bg > section { position: relative; z-index: 1; }
.ah-info-bg img { position: absolute; height: auto; pointer-events: none; z-index: 0; opacity: .6; }
.ah-info-bg__l1 { left: 2%;  top: 4%;    width: min(9%, 110px); }
.ah-info-bg__l2 { left: 6%;  bottom: 12%; width: min(8.5%, 105px); }
.ah-info-bg__r1 { right: 1%; top: 28%;   width: min(10%, 125px); }
@media (max-width: 1000px) {
  .ah-info-bg img { opacity: .4; }
  .ah-info-bg__l1 { width: 66px; }
  .ah-info-bg__l2 { width: 62px; }
  .ah-info-bg__r1 { width: 74px; }
}
@media (max-width: 680px) {
  .ah-info-bg img { display: none; }
}

/* お知らせセクション背景の花あしらい */
.ah-news-bg { position: relative; overflow: hidden; }
.ah-news-bg > section { position: relative; z-index: 1; }
.ah-news-bg img { position: absolute; height: auto; pointer-events: none; z-index: 0; opacity: .6; }
.ah-news-bg__l1 { left: 2%;  top: 6%;     width: min(9%, 110px); }
.ah-news-bg__l2 { left: 4%;  bottom: 10%; width: min(8%, 95px); }
.ah-news-bg__r1 { right: 2%; top: 30%;    width: min(9%, 110px); }
@media (max-width: 1100px) {
  .ah-news-bg img { opacity: .4; }
  .ah-news-bg__l1 { width: 66px; }
  .ah-news-bg__l2 { width: 58px; }
  .ah-news-bg__r1 { width: 66px; }
}
@media (max-width: 760px) {
  .ah-news-bg img { display: none; }
}

/* ============ 定義リスト表（開催概要・店舗情報） ============ */
.ah-info-table { background: #fff; border: 1.5px solid #ece3d0; border-radius: 22px; overflow: hidden; }
.ah-info-table dl { margin: 0; }
.ah-info-row { display: grid; grid-template-columns: 140px 1fr; border-bottom: 1px solid #f0ead9; }
.ah-info-row:last-child { border-bottom: none; }
.ah-info-row dt { background: #faf6ec; padding: 18px 22px; font-weight: 700; color: #1b9947; font-size: 1.45rem; }
.ah-info-row dd { padding: 18px 22px; font-size: 1.45rem; line-height: 1.8; }

.ah-2col--stretch { align-items: stretch; }
.ah-shop-map { border-radius: 24px; overflow: hidden; box-shadow: 0 12px 30px rgba(120,90,30,0.14); min-height: 340px; }
.ah-shop-map iframe { display: block; border: 0; width: 100%; height: 100%; min-height: 340px; }
.ah-shop-info { background: #fff; border: 1.5px solid #ece3d0; border-radius: 24px; padding: 38px 36px; }
.ah-shop-dl { display: grid; grid-template-columns: auto 1fr; gap: 18px 22px; font-size: 1.5rem; line-height: 1.8; }
.ah-shop-dl dt { font-weight: 700; color: #cf7320; }
.ah-shop-dl a { color: #1b9947; }
/* スマホ：項目名（dt）を上、内容（dd）を下の縦積みにして見やすく */
@media (max-width: 639px) {
  .ah-shop-info { padding: 26px 22px; }
  .ah-shop-dl { grid-template-columns: 1fr; gap: 0; font-size: 1.45rem; }
  .ah-shop-dl dt {
    margin-top: 16px;
    padding-bottom: 4px;
    font-size: 1.3rem;
    border-bottom: 1px dashed #ece3d0;
  }
  .ah-shop-dl dt:first-of-type { margin-top: 0; }
  .ah-shop-dl dd { padding-top: 6px; }
}

/* ============ TOPお知らせリスト ============ */
.ah-newslist { border-top: 1px solid #ece3d0; }
.ah-news-item { border-bottom: 1px solid #ece3d0; }
.ah-news-item a { display: flex; align-items: center; gap: 18px; padding: 18px 8px; text-decoration: none; flex-wrap: wrap; }
.ah-news-item a:hover { opacity: 1; background: #fcfbf6; }
.ah-news-item__date { font-family: "Oswald", sans-serif; font-weight: 500; font-size: 1.5rem; color: #a99a7d; min-width: 96px; letter-spacing: .03em; }
.ah-news-item__title { flex: 1; min-width: 200px; font-size: 1.55rem; font-weight: 500; color: #4a4338; }

.ah-cat-tag { font-size: 1.2rem; font-weight: 700; padding: 4px 12px; border-radius: 999px; white-space: nowrap; }
.ah-cat-tag--ws { color: #1b9947; background: #eaf6ee; }
.ah-cat-tag--new { color: #cf7320; background: #fdeccf; }
.ah-cat-tag--info { color: #7a6f57; background: #f0ead9; }

/* ============ ブログ（一覧・詳細） ============ */
.ah-blog-layout { display: grid; grid-template-columns: 1fr 300px; gap: 44px; align-items: start; }
.ah-cat-filter { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 34px; justify-content: center; }
.ah-cat-chip {
  font-weight: 700; font-size: 1.35rem; padding: 9px 20px; border-radius: 999px;
  text-decoration: none; transition: all .18s ease; border: 1.5px solid #1b9947;
  background: transparent; color: #1b9947;
}
.ah-cat-chip:hover { background: #eaf6ee; opacity: 1; }
.ah-cat-chip.is-on { background: #1b9947; color: #fff; }

.ah-blog-list { display: flex; flex-direction: column; gap: 16px; }
.ah-blog-card { display: block; background: #fff; border: 1.5px solid #ece3d0; border-radius: 18px; padding: 24px 26px; text-decoration: none; transition: all .18s ease; }
.ah-blog-card + .ah-blog-card { margin-top: 18px; }
.ah-archive { list-style: none; display: flex; flex-direction: column; gap: 8px; }
.ah-archive a { font-size: 1.4rem; color: #6b6353; text-decoration: none; }
.ah-archive a:hover { color: #1b9947; opacity: 1; }
.ah-blog-card:hover { opacity: 1; border-color: #1b9947; box-shadow: 0 10px 24px rgba(120,90,30,0.10); }
.ah-blog-card__meta { display: flex; align-items: center; gap: 14px; margin-bottom: 12px; }
.ah-blog-card__date { font-family: "Oswald", sans-serif; font-weight: 500; font-size: 1.4rem; color: #a99a7d; letter-spacing: .03em; }
.ah-blog-card__title { font-size: 1.8rem; font-weight: 700; color: #3a2f1f; margin-bottom: 8px; line-height: 1.55; }
.ah-blog-card__excerpt { font-size: 1.4rem; line-height: 1.85; color: #6b6353; }

.ah-pager { display: flex; justify-content: center; gap: 8px; margin-top: 42px; }
.ah-pager a, .ah-pager span {
  display: flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: 12px;
  font-family: "Oswald", sans-serif; font-weight: 600; font-size: 1.5rem; text-decoration: none;
  background: #fff; border: 1.5px solid #ece3d0; color: #5b5345;
}
.ah-pager .is-current { background: #1b9947; color: #fff; border-color: #1b9947; }

.ah-aside { display: flex; flex-direction: column; gap: 24px; }
.ah-side-box { background: #fff; border: 1.5px solid #ece3d0; border-radius: 18px; padding: 24px; }
.ah-side-box--cream { background: #fff7e6; border: none; text-align: center; padding: 26px 24px; }
.ah-side-box__title { font-family: "Mochiy Pop P One", sans-serif; font-weight: 400; font-size: 1.5rem; color: #1b9947; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 2px solid #eaf6ee; }
.ah-side-list { display: flex; flex-direction: column; gap: 2px; }
.ah-side-list a { display: flex; justify-content: space-between; align-items: center; padding: 9px 4px; text-decoration: none; color: #5b5345; font-size: 1.4rem; border-bottom: 1px dashed #f0ead9; }
.ah-side-list a:hover { color: #1b9947; opacity: 1; }
.ah-side-list__count { font-family: "Oswald", sans-serif; font-size: 1.2rem; color: #a99a7d; }
.ah-side-recent { display: flex; flex-direction: column; gap: 14px; }
.ah-side-recent a { text-decoration: none; display: block; }
.ah-side-recent__date { display: block; font-family: "Oswald", sans-serif; font-size: 1.2rem; color: #a99a7d; margin-bottom: 3px; }
.ah-side-recent__title { font-size: 1.35rem; font-weight: 500; color: #4a4338; line-height: 1.5; }

/* ブログ記事本文 */
.ah-article { background: #fff; border: 1.5px solid #ece3d0; border-radius: 24px; padding: 44px 46px; }
.ah-article__title { font-family: "Mochiy Pop P One", sans-serif; font-weight: 400; font-size: clamp(2.2rem, 3.4vw, 3rem); color: #3a2f1f; line-height: 1.55; margin-bottom: 28px; }
.ah-body p { font-size: 1.55rem; line-height: 2.15; margin-bottom: 22px; color: #544c3e; }
.ah-body h2 { font-family: "Mochiy Pop P One", sans-serif; font-weight: 400; font-size: 2.1rem; color: #1b9947; margin: 42px 0 18px; }
.ah-article__foot { display: flex; justify-content: space-between; align-items: center; margin-top: 40px; padding-top: 24px; border-top: 1px solid #ece3d0; gap: 16px; flex-wrap: wrap; }
.ah-back-link { display: inline-flex; align-items: center; gap: 8px; color: #1b9947; text-decoration: none; font-weight: 700; font-size: 1.45rem; }
.ah-ig-link { display: inline-flex; align-items: center; gap: 8px; color: #fff; background: #ffc742; text-decoration: none; font-weight: 700; font-size: 1.35rem; padding: 9px 18px; border-radius: 999px; }

/* ============ お問い合わせフォーム ============ */
.ah-form-box { background: #fff; border: 1.5px solid #ece3d0; border-radius: 24px; padding: 40px 38px; }
.ah-form { display: flex; flex-direction: column; gap: 20px; }
.ah-form__label { display: block; font-weight: 700; font-size: 1.4rem; margin-bottom: 8px; }
.ah-form__req { color: #cf7320; }
.ah-input {
  width: 100%; font-family: "Zen Maru Gothic", sans-serif; font-size: 1.5rem; color: #4a4338;
  background: #fff; border: 1.5px solid #e0d6bf; border-radius: 14px; padding: 14px 16px;
  outline: none; transition: border-color .15s ease;
}
.ah-input:focus { border-color: #1b9947; }
textarea.ah-input { resize: vertical; }
.ah-form__submit {
  margin-top: 6px; background: #1b9947; color: #fff; border: none;
  font-family: "Zen Maru Gothic", sans-serif; font-weight: 700; font-size: 1.6rem;
  padding: 16px; border-radius: 999px; cursor: pointer; box-shadow: 0 6px 0 rgba(20,90,48,0.3);
  transition: all .2s ease;
}
.ah-form__submit:hover { background: #16823c; transform: translateY(2px); box-shadow: 0 4px 0 rgba(20,90,48,0.3); }
.ah-form-note { font-size: 1.45rem; line-height: 1.9; margin-bottom: 26px; color: #6b6353; }
.ah-form-error { background: #fdecec; border: 1px solid #f0c4c0; border-radius: 12px; padding: 14px 18px; margin-bottom: 22px; color: #c0392b; font-size: 1.4rem; line-height: 1.8; }
.ah-form-done { text-align: center; padding: 40px 10px; }
.ah-form-done__icon { width: 72px; height: 72px; border-radius: 50%; background: #eaf6ee; display: flex; align-items: center; justify-content: center; margin: 0 auto 22px; }

/* CMSフォーム（cms_ajax）出力の調整：ラベル(dt)を上・入力(dd)を下の縦並びに */
.form-contents form dl dd:not(.pattern-exclusion) { padding-left: 0 !important; }
.form-contents form dl dt:not(.pattern-exclusion) { padding-bottom: 10px !important; }
/* 必須バッジの色をサイトカラー（グリーン）に */
.form-pattern-2 dl dt:not(.pattern-exclusion) span.required::before { background: #1b9947 !important; }

/* CMSフォーム 送信ボタンをサイトのボタンデザイン（緑ピル＋ドロップ影）に統一 */
.form-contents .submit-btn,
.submit-btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: fit-content !important;
  min-width: 260px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  background: #1b9947 !important;
  color: #fff !important;
  border: none !important;
  font-family: "Zen Maru Gothic", sans-serif !important;
  font-weight: 700 !important;
  font-size: 1.6rem !important;
  letter-spacing: .02em !important;
  padding: 16px 38px !important;
  border-radius: 999px !important;
  box-shadow: 0 6px 0 rgba(20,90,48,0.3) !important;
  cursor: pointer !important;
  transition: all .2s ease !important;
}
.form-contents .submit-btn:hover,
.submit-btn:hover {
  background: #16823c !important;
  transform: translateY(2px) !important;
  box-shadow: 0 4px 0 rgba(20,90,48,0.3) !important;
}
/* ホバー時も ::before（矢印・メールアイコン等）の色を白のまま固定 */
.form-contents .submit-btn::before,
.submit-btn::before,
.form-pattern-2 .submit-btn::before,
.form-contents .submit-btn:hover::before,
.submit-btn:hover::before,
.form-pattern-2 .submit-btn:hover::before {
  color: #fff !important;
  border-color: #fff !important;
}
.form-pattern-2 .submit-btn:hover::before {
  background-color: #ffffff !important;
}

/* CMSフォームの中身が横幅をはみ出してページが右にずれるのを防ぐ（要素を流動化） */
.ah-form-box { overflow: hidden; }
.form-contents,
.form-contents form,
.form-contents dl,
.form-contents dt,
.form-contents dd { max-width: 100%; box-sizing: border-box; }
.form-contents input,
.form-contents textarea,
.form-contents select { max-width: 100%; box-sizing: border-box; }

/* セクション下部の葉のあしらい */
.ah-contact-leaf { position: absolute; left: 50%; transform: translateX(-50%); bottom: 0; width: 100vw; max-width: none; height: auto; opacity: .3; pointer-events: none; z-index: 0; }
@media (max-width: 639px) { .ah-contact-leaf { opacity: .22; } }

.ah-contact-aside { display: flex; flex-direction: column; gap: 20px; }
.ah-contact-tel-box { background: #fff7e6; border-radius: 20px; padding: 30px 28px; }
.ah-contact-tel-box__title { font-family: "Mochiy Pop P One", sans-serif; font-weight: 400; font-size: 1.7rem; color: #cf7320; margin-bottom: 16px; }
.ah-contact-tel { display: flex; align-items: center; gap: 12px; text-decoration: none; color: #1b9947; font-family: "Oswald", sans-serif; font-weight: 600; font-size: 2.8rem; letter-spacing: .03em; }
.ah-contact-map { border-radius: 20px; overflow: hidden; box-shadow: 0 10px 26px rgba(120,90,30,0.14); }
.ah-contact-map iframe { display: block; border: 0; width: 100%; height: 260px; }

/* ============ セクション余白ヘルパー ============ */
.ah-sec { max-width: 1200px; margin: 0 auto; padding: 84px 24px 0; }
/* 最終セクション用の下余白（.ah-sec のショートハンドより後に定義して後勝ちさせる） */
.ah-sec.ah-sec--pb { padding-bottom: 96px; }
@media (max-width: 639px) { .ah-sec.ah-sec--pb { padding-bottom: 56px; } }
.ah-sec--narrow { max-width: 1000px; }
.ah-sec--wide { max-width: 1280px; }
.ah-sec--w960 { max-width: 960px; }
.ah-sec--w880 { max-width: 880px; }
.ah-sec--w840 { max-width: 840px; }
.ah-sec--w1060 { max-width: 1060px; }
.ah-sec--w1120 { max-width: 1120px; }
.ah-sec-center { text-align: center; margin-bottom: 34px; }
.ah-sec-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 34px; }

/* ============ レスポンシブ ============ */
@media (max-width: 1100px) {
  /* PC ナビ・右側は共通CSSで非表示／nav-toggle 表示 */
}
@media (max-width: 920px) {
  .ah-2col, .ah-2col--narrow-img, .ah-2col--text-wide { grid-template-columns: 1fr; }
  .ah-blog-layout { grid-template-columns: 1fr; }
  .ah-foot__grid { grid-template-columns: 1fr; }
}
@media (max-width: 860px) {
  .ah-mv { height: auto; aspect-ratio: 4/3; }
  /* SPでもコピーはスライダーの上に重ねる（position:static にすると z-index が無効になり
     絶対配置のCMSスライダーに隠れてしまうため、absolute のまま維持する） */
  .ah-mv__copy { left: 20px; right: 20px; max-width: none; }
  .ah-mv__shade { background: linear-gradient(180deg, rgba(35,25,10,0.15) 0%, rgba(35,25,10,0.25) 45%, rgba(35,25,10,0.6) 100%); }
  .ah-mv__title { font-size: clamp(2rem, 6.4vw, 2.8rem); margin-bottom: 12px; }
  .ah-mv__sub { font-size: 1.3rem; line-height: 1.9; }
  .ah-mv__badge { margin-bottom: 12px; }
  .ah-look-card { flex-basis: calc((100% - 20px) / 2); }
  .ah-feat4 { grid-template-columns: 1fr 1fr; }
  .ah-coord4 { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .ah-coord3, .ah-coord4, .ah-gallery3, .ah-brands { grid-template-columns: 1fr 1fr; }
  .ah-reco2 { grid-template-columns: 1fr; }
  .ah-look-card { flex-basis: 100%; }
  .ah-header__tel-num, .header__tel-num { display: none; }
  .ah-info-row { grid-template-columns: 100px 1fr; }
}
@media (max-width: 520px) {
  .ah-feat4 { grid-template-columns: 1fr; }
  .ah-sec { padding-top: 56px; }
}
