/*
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * .sg-inner            - 最大幅1400px＋左右 clamp(16px,4vw,28px) のコンテナ
 * .sg-label(--sm/--xs) - 英字ラベル（Quicksand・黄緑・字間0.1em）
 * .sg-ttl(--*)         - セクション見出し h2（濃緑）。サイズ・余白は modifier
 * .sg-h3(--sm)         - 丸2つ（黄緑＋緑）付きの茶色小見出し
 * .sg-dots             - 小見出し用の丸2つ
 * .sg-caps / __item    - 濃ベージュのカプセル（14×6px）付き箇条書き
 * .sg-btn(--outline/--solid/--solid-flat/--square) - ピル型ボタン（黄緑丸アイコン）／角丸14pxボタン
 * .sg-deco             - あしらい画像（水彩の葉）の絶対配置
 * .sg-header / .sg-mega / .sg-nav-toggle / .sg-spnav - ヘッダー・メガナビ・SPナビ
 * .sg-cta              - フッター上のお問い合わせ帯
 * .sg-footer           - フッター本体
 * .sg-hero             - 下層ヒーロー（左テキスト＋右写真）
 * .sg-mv               - TOP メインビュー（谷型アーチ）
 * .sg-greeting         - TOP ごあいさつ（ブロブ写真＋クローバー）
 * .sg-reason           - TOP 選ばれる理由カード
 * .sg-service          - TOP 事業内容カード
 * .sg-works            - TOP 施工事例 3件カード
 * .sg-area             - TOP 対応エリア
 * .sg-news             - TOP お知らせ
 * .sg-svc-*            - 事業内容ページ
 * .sg-case             - 施工事例ページ 着工前→作業中→完成 の写真カード
 * .sg-message / .sg-profile / .sg-panel - 会社概要ページ
 * .sg-contact-* / .sg-cmsform / .sg-privacy - お問い合わせページ（.sg-cmsform＝CMSフォームの見た目上書き）
 * .sg-blog-* / .sg-side / .sg-pager / .sg-crumb - お知らせ一覧・詳細
 *
 * ======================================
 * 共通SCSSに不足していたもの
 * ======================================
 *
 * 【値の粒度不足】
 *  - container の最大幅 1400px（共通は 1200 / 1500）、左右 padding の clamp() 指定
 *  - section の上下余白 clamp(56px,8vw,104px) 等の流体値（共通は 120px 固定＋tablet 60px）
 *  - fz-* に 15px / 17px / 19px / 13.5px / 12.5px 等の刻みがない。clamp() 指定もない
 *  - 角丸 14 / 18 / 22 / 26 / 28 / 32px（共通は 5 / 10 / 20 / 9999）
 *  - line-height 1.5 / 1.65 / 1.7 / 1.75 / 1.9 / 1.95 / 2.1 / 2.15（共通は 1〜2 の7段階）
 *  - base の body font-size が tablet 14px / SP 12px に縮小される（デザインは全幅 16px 固定）
 * 【指定方向不足】
 *  - あしらい画像を max(-90px,-6vw) 等でセクション外へはみ出させる配置
 * 【状態不足】
 *  - ヘッダーのナビ／ハンバーガー切替が 1100px 固定（デザインは 960px）
 *  - 自動スクロールのホバー一時停止
 * 【構造不足】
 *  - ロゴ＋2行テキスト＋ナビ＋電話（2行）＋ピルCTA のヘッダー、全幅メガナビ
 *  - auto-fit + minmax(min(100%,Npx),1fr) による無ブレイクポイントの流体グリッド
 *  - BEFORE/AFTER 2枚組写真カード、左見出し固定幅＋右リストのお知らせ
 *  - 下辺を ellipse で切り取る MV（谷型アーチ）
 * 【装飾パターン不足】
 *  - 丸2つ付き小見出し、カプセル箇条書き、黄緑丸＋白矢印のピルボタン
 *  - 有機的ブロブマスク写真
 *
 * ======================================
 * デザイン元データ（claude-design-output/）の実数値
 * ======================================
 *  コンテナ最大幅 : 1400px（本文 880 / 900 / 920 / 960 / 1000 / 1200 / 820px）
 *  左右padding    : clamp(16px,4vw,28px) → 700px以上で 28px
 *  セクション上下 : TOP clamp(56px,8vw,104px)＝1300px以上で104px
 *                   事業内容 clamp(52px,7vw,96px) / 会社概要・フォーム clamp(48px,7vw,88px)
 *                   下層ヒーロー clamp(40px,6vw,72px)
 *  基準gap        : clamp(16px,2vw,24px)（カード）/ clamp(18px,2.4vw,32px)（理由）
 *  カラム         : flex-basis 480/400（ごあいさつ）・440/460（ヒーロー）・240固定/880（お知らせ）
 */

/* ==========================================================================
   Base（main.css の base をデザイン値に合わせる）
   ========================================================================== */
body {
  background: #FAF6ED;
  color: #3D3630;
  font-family: 'Quicksand', 'Zen Kaku Gothic New', sans-serif;
  font-weight: 500;
  font-size: 16px;
  line-height: normal;
  letter-spacing: normal;
}
@media (max-width: 896px) { body { font-size: 16px; } }
@media (max-width: 639px) { body { font-size: 16px; } }

a {
  color: #4F8D55;
  text-decoration: none;
  transition: color .2s, background-color .2s, border-color .2s;
}
a:hover { opacity: 1; }
a:where(:hover) { color: #8BB83B; }

input, select, textarea, button { font-family: inherit; }
::placeholder { color: #B3A797; }

body.is-nav-open { overflow: hidden; }

/* ==========================================================================
   共通パーツ
   ========================================================================== */
.sg-inner {
  max-width: 1400px;
  margin: 0 auto;
}
.sg-sec-x { padding-left: clamp(16px, 4vw, 28px); padding-right: clamp(16px, 4vw, 28px); }

/* 英字ラベル */
.sg-label {
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-size: clamp(18px, 2vw, 24px);
  letter-spacing: 0.1em;
  color: #8BB83B;
  font-weight: 700;
  margin: 0 0 6px;
  line-height: 1.1;
}
.sg-label--sm { font-size: clamp(17px, 1.9vw, 22px); }
.sg-label--xs { font-size: clamp(15px, 1.7vw, 19px); line-height: 1.2; }

/* セクション見出し h2 */
.sg-ttl {
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: clamp(20px, 2.5vw, 28px);
  color: #2F5A36;
  margin: 0;
  letter-spacing: 0.03em;
  text-wrap: pretty;
}
.sg-ttl--25 { font-size: clamp(19px, 2.2vw, 25px); }
.sg-ttl--24 { font-size: clamp(19px, 2.2vw, 24px); }
.sg-ttl--22 { font-size: clamp(18px, 2vw, 22px); }

/* 小見出し h3（丸2つ＋茶色） */
.sg-h3 {
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: 18px;
  color: #6E5B49;
  margin: 0 0 14px;
  line-height: 1.6;
  display: flex;
  align-items: baseline;
  gap: 10px;
}
.sg-h3 > .sg-dots { transform: translateY(-2px); }
.sg-h3--sm {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: 16px;
  margin: 0 0 8px;
}
.sg-h3--label {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: 16px;
  margin: 0 0 12px;
  line-height: normal;
  align-items: center;
}
.sg-h3--label > .sg-dots { transform: none; }
.sg-dots {
  flex: 0 0 auto;
  display: flex;
  gap: 5px;
}
.sg-dots::before,
.sg-dots::after {
  content: "";
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #8BB83B;
}
.sg-dots::after { background: #4F8D55; }

/* カプセル箇条書き */
.sg-caps {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.sg-caps--grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
}
.sg-caps__item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 2px 0;
}
.sg-caps__item::before {
  content: "";
  flex: 0 0 auto;
  width: 14px;
  height: 6px;
  border-radius: 3px;
  background: #C9B79C;
  margin-top: 10px;
}
.sg-caps__item--simple {
  align-items: center;
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: 15px;
  color: #2F5A36;
}
.sg-caps__item--simple::before { margin-top: 0; }
.sg-caps__body { min-width: 0; }
.sg-caps__name {
  display: block;
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: 15px;
  color: #2F5A36;
}
.sg-caps__num {
  display: block;
  font-size: 13.5px;
  color: #4A423A;
  margin-top: 4px;
  line-height: 1.8;
}

/* ボタン（ピル型＋黄緑丸アイコン） */
.sg-btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  border-radius: 999px;
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: 14px;
}
.sg-btn__icon {
  width: 28px;
  height: 28px;
  border-radius: 999px;
  background: #8BB83B;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}
.sg-btn--outline {
  background: transparent;
  color: #2F5A36;
  border: 2px solid #2F5A36;
  padding: 8px 28px 8px 8px;
}
.sg-btn--outline:hover { background: #EDF2E3; color: #2F5A36; }
.sg-btn--solid {
  background: #2F5A36;
  color: #fff;
  border: 2px solid #2F5A36;
  padding: 9px 30px 9px 9px;
}
.sg-btn--solid:hover { background: #4F8D55; border-color: #4F8D55; color: #fff; }
.sg-btn--solid-flat {
  background: #2F5A36;
  color: #fff;
  padding: 10px 30px 10px 10px;
}
.sg-btn--solid-flat:hover { background: #4F8D55; color: #fff; }
/* お問い合わせページ専用：アイコンなし・角丸14px */
.sg-btn--square {
  background: #2F5A36;
  color: #fff;
  border: none;
  border-radius: 14px;
  padding: 14px 36px;
  font-size: 16px;
  cursor: pointer;
}
.sg-btn--square:hover { background: #4F8D55; color: #fff; }

/* あしらい画像 */
.sg-deco {
  position: absolute;
  height: auto;
  max-width: none;
  pointer-events: none;
  z-index: 0;
}
.sg-front { position: relative; z-index: 1; }

/* ==========================================================================
   ヘッダー
   ========================================================================== */
.sg-header {
  position: relative;
  z-index: 60;
  background: #fff;
  box-shadow: 0 2px 16px rgba(111, 91, 73, 0.10);
}
.sg-header__inner {
  width: 96%;
  max-width: none;
  height: auto;
  min-height: 92px;
  margin: 0 auto;
  padding: 0 clamp(16px, 3vw, 28px);
  display: flex;
  align-items: center;
  gap: 28px;
}
.sg-header__logo {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
  color: inherit;
}
.sg-header__logo:hover { color: inherit; }
.sg-header__logo .sg-header__logo-img {
  width: 50px;
  height: 50px;
  object-fit: contain;
}
.sg-header__logo-text {
  display: flex;
  flex-direction: column;
  line-height: 1.25;
}
.sg-header__logo-name {
  font-family: 'Zen Kaku Gothic New', sans-serif;
  font-weight: 900;
  font-size: clamp(20px, 2.2vw, 24px);
  color: #4F8D55;
  letter-spacing: -0.04em;
}
.sg-header__logo-sub {
  font-size: 11px;
  color: #8A7B6C;
  letter-spacing: 0.06em;
}
.sg-header__nav {
  display: flex;
  margin-left: auto;
  margin-right: 0;
  align-items: center;
  gap: clamp(14px, 1.8vw, 26px);
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 500;
  font-size: 15px;
}
.sg-header__nav-item { padding: 6px 0; }
.sg-header__nav-item > a {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 6px;
  padding: 0;
  color: #3D3630;
}
.sg-header__nav-item > a::after { content: none; }
.sg-header__nav-item > a:hover { color: #4F8D55; }
.sg-header__right {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: 0 0 auto;
  height: auto;
}
.sg-header__tel-box {
  text-align: right;
  line-height: 1.3;
}
.sg-header__tel {
  display: inline;
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: clamp(18px, 2vw, 22px);
  color: #4F8D55;
  letter-spacing: 0.02em;
}
.sg-header__tel::before { content: none; }
.sg-header__tel:hover { opacity: 1; color: #8BB83B; }
.sg-header__hours {
  font-size: 10.5px;
  color: #8A7B6C;
}
.sg-header__cta {
  display: inline-block;
  height: auto;
  background: #4F8D55;
  color: #fff;
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: 14px;
  padding: 14px 22px;
  border-radius: 999px;
  white-space: nowrap;
}
.sg-header__cta:hover { background: #8BB83B; color: #fff; }
.sg-header__bar {
  height: 4px;
  background: linear-gradient(90deg, #4F8D55, #8BB83B);
}

/* メガナビ */
.sg-mega {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  background: #fff;
  box-shadow: 0 18px 30px rgba(111, 91, 73, 0.14);
  display: none;
}
.sg-mega.is-open { display: block; }
.sg-mega__inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 28px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
  gap: 14px;
}
.sg-mega__item {
  padding: 12px 16px 12px 12px;
  border-radius: 18px;
  background: #F7F4EC;
  color: #2F5A36;
  display: flex;
  align-items: center;
  gap: 14px;
}
.sg-mega__item:hover { background: #EDF2E3; color: #2F5A36; }
.sg-mega__img {
  flex: 0 0 auto;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  object-fit: cover;
  background: #DDE7D2;
}
.sg-mega__body { display: block; min-width: 0; }
.sg-mega__en {
  display: block;
  font-size: 11px;
  letter-spacing: 0.14em;
  color: #8BB83B;
  font-weight: 700;
}
.sg-mega__name {
  display: block;
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: 17px;
  margin-top: 4px;
}

/* ハンバーガー（959px以下） */
.sg-nav-toggle {
  display: none;
  position: absolute;
  top: 20px;
  right: calc(2% + clamp(16px, 3vw, 28px));
  width: 52px;
  height: 52px;
  border-radius: 16px;
  background: #FAF6ED;
  backdrop-filter: none;
}
.sg-nav-toggle .nav-toggle__line { background: #4F8D55; border-radius: 2px; }
.sg-nav-toggle .nav-toggle__line:nth-child(1) { top: 18px; }
.sg-nav-toggle .nav-toggle__line:nth-child(2) { top: 25px; }
.sg-nav-toggle .nav-toggle__line:nth-child(3) { top: 32px; }
.sg-nav-toggle.is-active {
  position: fixed;
  top: 24px;
  right: 24px;
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: #fff;
}
.sg-nav-toggle.is-active .nav-toggle__line:nth-child(1),
.sg-nav-toggle.is-active .nav-toggle__line:nth-child(3) { top: 23px; }

/* SPナビ（ドロワー） */
.sg-spnav {
  display: block;
  z-index: 200;
  background: #FAF6ED;
  padding: 24px;
  overflow: auto;
  transition: none;
}
.sg-spnav__head {
  display: flex;
  align-items: center;
  height: 48px;
}
.sg-spnav__logo {
  width: 44px;
  height: 44px;
  object-fit: contain;
}
.sg-spnav__list {
  max-width: none;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-top: 24px;
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 500;
}
.sg-spnav .sg-spnav__item {
  border: none;
  transform: none;
  opacity: 1;
  transition: none;
}
.sg-spnav__link {
  display: block;
  padding: 18px 6px;
  border-bottom: 1px solid #E3D9C7;
  color: #3D3630;
  font-size: 17px;
  font-weight: 500;
}
.sg-spnav__link::after { content: none; }
.sg-spnav__link:hover { background: none; color: #8BB83B; }
.sg-spnav__link--child {
  padding: 12px 6px 12px 22px;
  color: #6E5B49;
  font-size: 14px;
}
.sg-spnav .sg-spnav__bottom {
  max-width: none;
  margin-top: 0;
  opacity: 1;
  transform: none;
  transition: none;
}
.sg-spnav__tel {
  display: block;
  margin-top: 26px;
  text-align: center;
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: 26px;
  color: #4F8D55;
}
.sg-spnav__hours {
  text-align: center;
  font-size: 12px;
  color: #8A7B6C;
  margin-top: 4px;
}
.sg-spnav__cta {
  display: block;
  margin-top: 18px;
  text-align: center;
  background: #4F8D55;
  color: #fff;
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  padding: 18px;
  border-radius: 999px;
}
.sg-spnav__cta:hover { color: #fff; }

@media (max-width: 959px) {
  .sg-header__nav,
  .sg-header__right { display: none; }
  .sg-nav-toggle { display: block; }
}
@media (min-width: 960px) {
  .sg-spnav { display: none; }
}

/* ==========================================================================
   お問い合わせ帯（contact-cta.php）
   ========================================================================== */
.sg-cta {
  background-color: #EDF2E3;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  padding: clamp(48px, 7vw, 80px) clamp(16px, 4vw, 28px) 0;
}
.sg-cta__inner {
  max-width: 1000px;
  margin: 0 auto;
  text-align: center;
}
.sg-cta__title {
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: clamp(20px, 2.5vw, 28px);
  color: #2F5A36;
  margin: 0 0 20px;
  line-height: 1.5;
  text-wrap: pretty;
}
.sg-cta__lead {
  font-size: 16px;
  line-height: 2;
  color: #4A423A;
  margin: 0 auto 32px;
  max-width: 640px;
  text-wrap: pretty;
}
.sg-cta__btns {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: center;
  align-items: center;
}
.sg-cta__tel {
  background: #fff;
  border: 2px solid #4F8D55;
  border-radius: 999px;
  padding: 16px 34px;
  display: flex;
  align-items: center;
  gap: 12px;
  color: #4F8D55;
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: clamp(20px, 2.4vw, 26px);
  letter-spacing: 0.02em;
}
.sg-cta__tel:hover { background: #4F8D55; color: #fff; }
.sg-cta__note {
  font-size: 12.5px;
  color: #7A6A5A;
  margin: 16px 0 0;
}
.sg-cta__note--sub { margin-top: 6px; }
.sg-cta__line {
  height: clamp(44px, 5.5vw, 76px);
  margin: clamp(32px, 5vw, 56px) calc(-1 * clamp(16px, 4vw, 28px)) 0;
  background-repeat: round no-repeat;
  background-position: center bottom;
  background-size: auto 100%;
}

/* ==========================================================================
   フッター
   ========================================================================== */
.sg-footer {
  background-color: #F3F8EA;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  color: #4A423A;
}
.sg-footer__inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: clamp(36px, 5vw, 56px) clamp(16px, 4vw, 28px);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: 36px;
}
.sg-footer__logo {
  display: flex;
  align-items: center;
  gap: 12px;
}
.sg-footer__logo-img {
  width: 48px;
  height: 48px;
  object-fit: contain;
  background: #fff;
  border-radius: 12px;
  padding: 4px;
}
.sg-footer__logo-name {
  font-family: 'Zen Kaku Gothic New', sans-serif;
  font-weight: 900;
  font-size: 22px;
  color: #2F5A36;
  letter-spacing: -0.04em;
}
.sg-footer__info {
  margin: 18px 0 0;
  font-size: 15px;
  line-height: 1.9;
}
.sg-footer__license {
  margin: 12px 0 0;
  font-size: 13px;
  line-height: 1.9;
  color: #6E5B49;
}
.sg-footer__col--area { padding-top: 66px; }
.sg-footer__heading {
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: 15px;
  color: #2F5A36;
  margin: 0 0 14px;
}
.sg-footer__text {
  font-size: 15px;
  line-height: 2;
  margin: 0;
}
.sg-footer__nav {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 8px 20px;
  align-content: start;
  font-size: 14px;
  padding-top: 62px;
}
.sg-footer__nav a {
  color: #2F5A36;
  padding: 6px 0;
  font-weight: 500;
}
.sg-footer__nav a:hover { color: #8BB83B; }
/* 1列に縦積みになる幅（280px×2＋gap36＋左右padding56＝652px未満）では、
   PCで「松月株式会社」の行に揃えるための上余白を外す */
@media (max-width: 651px) {
  .sg-footer__inner { row-gap: 28px; }
  .sg-footer__col--area,
  .sg-footer__nav { padding-top: 0; }
}
/* SPではフッターナビを非表示（ハンバーガーメニューで代替） */
@media (max-width: 639px) {
  .sg-footer__nav { display: none; }
}
.sg-footer__bottom { border-top: 1px solid rgba(47, 90, 54, 0.16); }
.sg-footer__copy {
  max-width: 1400px;
  margin: 0 auto;
  padding: 18px clamp(16px, 4vw, 28px);
  font-size: 12px;
  color: #6E5B49;
}

/* ==========================================================================
   下層ヒーロー（共通）
   ========================================================================== */
.sg-hero {
  background: #EDF2E3;
  padding: clamp(40px, 6vw, 72px) clamp(16px, 4vw, 28px);
  position: relative;
  overflow: hidden;
}
.sg-hero__deco {
  left: max(-60px, -4vw);
  bottom: -40px;
  width: clamp(180px, 18vw, 290px);
  opacity: 0.7;
}
.sg-hero__inner {
  position: relative;
  z-index: 1;
  max-width: 1400px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: clamp(24px, 4vw, 56px);
}
.sg-hero__text { flex: 1 1 440px; min-width: 0; }
.sg-hero__title {
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: clamp(23px, 3vw, 34px);
  color: #2F5A36;
  margin: 0;
  letter-spacing: 0.04em;
}
.sg-hero__lead {
  font-size: 15px;
  line-height: 1.9;
  color: #4A423A;
  margin: 18px 0 0;
  max-width: 720px;
  text-wrap: pretty;
}
.sg-hero__lead--wide { line-height: 1.95; max-width: 760px; }
.sg-hero__lead--wide + .sg-hero__lead--wide { margin-top: 10px; }
.sg-hero__lead--760 { max-width: 760px; }
.sg-hero__photo {
  flex: 0 1 460px;
  min-width: min(100%, 280px);
  aspect-ratio: 3 / 2;
  border-radius: 28px;
  object-fit: cover;
  background: #DDE7D2;
}
.sg-hero__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 28px;
}
.sg-hero__nav a {
  background: #fff;
  border-radius: 999px;
  padding: 12px 22px;
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: 14px;
}
.sg-hero__nav a:hover { background: #4F8D55; color: #fff; }

/* ==========================================================================
   TOP：メインビュー
   ========================================================================== */
.sg-mv {
  position: relative;
  overflow: hidden;
  background: #fff;
}
.sg-mv__frame {
  position: relative;
  height: clamp(380px, 56vw, 600px);
  clip-path: ellipse(160% 100% at 50% 0%);
}
#slideshow {
  position: absolute;
  inset: 0;
  height: clamp(380px, 56vw, 600px);
  background: #DDE7D2;
}
#slideshow .swiper-slide,
#slideshow .main_slider__inner {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
#slideshow img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.sg-mv__clover {
  position: absolute;
  right: 4%;
  top: 8%;
  width: clamp(70px, 9vw, 120px);
  opacity: 0.5;
}
.sg-mv__scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(28, 48, 30, 0.30), rgba(28, 48, 30, 0.42));
  pointer-events: none;
}
.sg-mv__text {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: clamp(24px, 5vw, 64px);
  pointer-events: none;
}
.sg-mv__catch {
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: clamp(26px, 4.6vw, 52px);
  line-height: 1.45;
  color: #fff;
  margin: 0;
  letter-spacing: 0.02em;
  text-wrap: pretty;
  text-shadow: 0 2px 16px rgba(20, 36, 22, 0.45);
}
.sg-mv__sub {
  margin: 20px 0 0;
  font-size: clamp(13px, 1.4vw, 16px);
  line-height: 2;
  color: #fff;
  text-wrap: pretty;
  text-shadow: 0 2px 12px rgba(20, 36, 22, 0.5);
}
/* フェードスライダー（5.2秒ごと・1.2秒フェード） */
#slideshow .sg-mv__slide {
  opacity: 0;
  transition: opacity 1.2s ease;
}
#slideshow .sg-mv__slide.is-active { opacity: 1; }
.sg-mv__dots {
  position: absolute;
  right: clamp(16px, 4vw, 56px);
  bottom: clamp(20px, 4vw, 56px);
  display: flex;
  gap: 10px;
}
.sg-mv__dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.75);
  transition: background-color .4s;
}
.sg-mv__dot.is-active { background: #4F8D55; }

/* ==========================================================================
   TOP：ごあいさつ
   ========================================================================== */
.sg-greeting {
  background: #fff;
  padding: clamp(56px, 8vw, 104px) clamp(16px, 4vw, 28px);
}
.sg-greeting__inner {
  max-width: 1400px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: clamp(28px, 4vw, 64px);
  align-items: center;
}
.sg-greeting__text {
  flex: 1 1 480px;
  min-width: 0;
  max-width: 880px;
}
.sg-greeting__ttl {
  font-size: clamp(19px, 2.3vw, 26px);
  line-height: 1.6;
  margin: 0 0 26px;
}
.sg-greeting__lead {
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-size: clamp(16px, 1.9vw, 20px);
  line-height: 1.95;
  color: #6E5B49;
  font-weight: 500;
  margin: 0 0 26px;
  text-wrap: pretty;
}
.sg-greeting__body {
  font-size: 16px;
  line-height: 2.15;
  color: #4A423A;
}
.sg-greeting__body p { margin: 0 0 20px; text-wrap: pretty; }
.sg-greeting__body p:last-child { margin: 0; }
.sg-greeting__btn { margin-top: 28px; }
.sg-greeting__photo {
  flex: 1 1 400px;
  min-width: 0;
  max-width: 540px;
  margin: 0 auto;
  position: relative;
}
.sg-greeting__clover {
  position: absolute;
  right: -6%;
  bottom: -8%;
  width: 38%;
  height: auto;
  z-index: 2;
  pointer-events: none;
}
.sg-greeting__img {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  background: #DDE7D2;
  border-radius: 52% 48% 46% 54% / 56% 50% 50% 44%;
}

/* ==========================================================================
   TOP：選ばれる理由
   ========================================================================== */
.sg-reason {
  background: #FAF6ED;
  padding: clamp(56px, 8vw, 104px) clamp(16px, 4vw, 28px);
  position: relative;
  overflow: hidden;
}
.sg-reason__deco {
  left: max(-90px, -6vw);
  top: -40px;
  width: clamp(230px, 26vw, 400px);
  opacity: 0.85;
}
.sg-reason__ttl { margin: 0 0 14px; }
.sg-reason__lead {
  font-size: 16px;
  line-height: 2;
  color: #4A423A;
  margin: 0 auto clamp(32px, 4vw, 52px);
  max-width: 920px;
  text-wrap: pretty;
}
.sg-reason__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, max(340px, calc(50% - 32px))), 1fr));
  gap: clamp(18px, 2.4vw, 32px);
  max-width: 1200px;
  margin: 0 auto;
}
.sg-reason__card {
  background: #fff;
  border-radius: 28px;
  padding: clamp(26px, 3.2vw, 40px);
  display: flex;
  flex-direction: column;
  gap: clamp(22px, 2.6vw, 30px);
}
.sg-reason__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 20px;
}
.sg-reason__head-text {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}
.sg-reason__en {
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.14em;
  color: #8BB83B;
  margin: 0;
  line-height: 1.2;
}
.sg-reason__title {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: clamp(20px, 2vw, 24px);
  color: #2F5A36;
  margin: 0;
  line-height: 1.5;
  letter-spacing: 0.03em;
  text-wrap: pretty;
}
.sg-reason__num {
  flex: 0 0 auto;
  width: clamp(60px, 6vw, 72px);
  height: clamp(60px, 6vw, 72px);
  border-radius: 50%;
  background: #EDF2E3;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Quicksand', sans-serif;
  font-weight: 700;
  font-size: clamp(22px, 2.2vw, 26px);
  color: #8BB83B;
  letter-spacing: 0.02em;
}
.sg-reason__text {
  font-size: 15px;
  line-height: 2;
  color: #4A423A;
  margin: 0;
  text-wrap: pretty;
}
.sg-reason__img {
  display: block;
  width: 100%;
  margin-top: auto;
  aspect-ratio: 16 / 9;
  border-radius: 22px;
  object-fit: cover;
  background: #DDE7D2;
}

/* ==========================================================================
   TOP：事業内容
   ========================================================================== */
.sg-service {
  background: #FAF6ED;
  padding: 0 clamp(16px, 4vw, 28px) clamp(56px, 8vw, 104px);
  position: relative;
  overflow: hidden;
}
.sg-service__deco {
  right: max(-80px, -5vw);
  bottom: clamp(8px, 1.5vw, 24px);
  width: clamp(230px, 26vw, 400px);
  opacity: 0.85;
}
.sg-sec-ttl { margin: 0 0 clamp(28px, 4vw, 48px); }
.sg-service__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
  gap: clamp(16px, 2vw, 24px);
}
.sg-service__card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 14px;
  padding: 14px;
  color: inherit;
  box-shadow: 0 2px 10px rgba(90, 70, 40, 0.05);
}
.sg-service__img {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 8px;
  object-fit: cover;
  background: #DDE7D2;
}
.sg-service__body {
  padding: 22px 10px 10px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.sg-service__title {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: 19px;
  color: #2F5A36;
  margin: 0;
  text-align: center;
  letter-spacing: 0.04em;
  line-height: 1.5;
  text-wrap: balance;
}
.sg-service__line {
  height: 1px;
  background: #E4DDD0;
  margin: 18px 0;
}
.sg-service__text {
  font-size: 15px;
  line-height: 1.95;
  color: #4A423A;
  margin: 0 0 16px;
  flex: 1;
}
.sg-service__foot {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 8px;
  margin: 0;
}
.sg-service__no {
  font-family: 'Quicksand', sans-serif;
  font-weight: 700;
  font-size: 14px;
  color: #B89A5E;
}
.sg-service__en {
  font-family: 'Quicksand', sans-serif;
  font-size: 11px;
  letter-spacing: 0.16em;
  color: #8BB83B;
  font-weight: 700;
}

/* ==========================================================================
   TOP：施工事例（3件カード）
   ========================================================================== */
.sg-works {
  background: #FAF6ED;
  padding: 0 0 clamp(56px, 8vw, 104px);
  overflow: hidden;
}
.sg-works__head {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 clamp(16px, 4vw, 28px);
}
.sg-works__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  align-items: start;
  gap: clamp(12px, 1.6vw, 24px);
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 clamp(16px, 4vw, 28px);
}
.sg-works__card {
  display: block;
  position: relative;
  border-radius: 22px;
  overflow: hidden;
  color: inherit;
}
.sg-works__card:nth-child(even) { margin-top: 40px; }
.sg-works__img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  background: #DDE7D2;
  transition: transform .4s ease;
}
.sg-works__card:hover .sg-works__img { transform: scale(1.04); }
.sg-works__cap {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 14px 16px;
  background: linear-gradient(180deg, rgba(28, 48, 30, 0) 0%, rgba(28, 48, 30, 0.42) 35%, rgba(28, 48, 30, 0.68) 100%);
  color: #fff;
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 500;
  font-size: 13.5px;
  line-height: 1.5;
}
@media (max-width: 767px) {
  .sg-works__list { grid-template-columns: 1fr; gap: 16px; max-width: 480px; }
  .sg-works__card:nth-child(even) { margin-top: 0; }
}
.sg-works__btn {
  display: flex;
  justify-content: center;
  margin-top: clamp(28px, 4vw, 44px);
}

/* ==========================================================================
   TOP：対応エリア
   ========================================================================== */
.sg-area {
  background: #FAF6ED;
  padding: clamp(24px, 3vw, 40px) clamp(16px, 4vw, 28px) clamp(80px, 11vw, 150px);
  overflow: hidden;
  position: relative;
}
.sg-area__deco {
  right: max(-70px, -5vw);
  top: -20px;
  width: clamp(200px, 20vw, 310px);
  opacity: 0.85;
}
.sg-area__box {
  position: relative;
  z-index: 1;
  max-width: 1400px;
  margin: 0 auto;
  background: #fff;
  border-radius: 32px;
  padding: clamp(28px, 4vw, 56px);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(24px, 3vw, 48px);
  align-items: stretch;
}
.sg-area__text {
  flex: 0 1 560px;
  min-width: min(100%, 320px);
}
.sg-area__ttl { margin: 0 0 18px; }
.sg-area__lead {
  font-size: 16px;
  line-height: 2;
  color: #4A423A;
  margin: 0;
  text-wrap: pretty;
}
.sg-area__base { margin-top: clamp(24px, 3vw, 32px); }
.sg-area__base-ttl {
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: 16px;
  color: #2F5A36;
  margin: 0 0 16px;
}
.sg-area__base-text {
  font-size: 15px;
  line-height: 1.95;
  color: #4A423A;
  margin: 0;
}
.sg-area__map {
  position: relative;
  min-height: 220px;
  flex: 0 1 510px;
  min-width: min(100%, 320px);
}
.sg-area__map img {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  max-width: none;
  height: auto;
  display: block;
  pointer-events: none;
}

/* ==========================================================================
   TOP：お知らせ
   ========================================================================== */
.sg-news {
  background: #fff;
  padding: clamp(56px, 8vw, 96px) clamp(16px, 4vw, 28px);
  position: relative;
  overflow: hidden;
}
.sg-news__deco {
  left: max(-90px, -6vw);
  bottom: -50px;
  width: clamp(260px, 28vw, 420px);
  opacity: 0.85;
}
.sg-news__inner {
  position: relative;
  z-index: 1;
  max-width: 1400px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(28px, 4vw, 56px);
}
.sg-news__head {
  flex: 0 0 auto;
  width: 240px;
}
.sg-news__ttl { margin: 0 0 20px; }
.sg-news__list {
  display: flex;
  flex-direction: column;
  flex: 1 1 480px;
  min-width: 0;
  max-width: 880px;
}
.sg-news__item {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  align-items: baseline;
  padding: 20px 4px;
  border-top: 1px solid #E3D9C7;
  color: inherit;
}
.sg-news__item:last-child { border-bottom: 1px solid #E3D9C7; }
/* CMS出力を包む span（記事は span の直下に入る）を縦並びのブロックにする */
.sg-news__cms {
  display: flex;
  flex-direction: column;
}
.sg-news__item:hover { background: #F7F4EC; }
.sg-news__date {
  font-size: 13px;
  color: #8A7B6C;
  letter-spacing: 0.04em;
}
.sg-news__title {
  font-size: 15px;
  line-height: 1.7;
  flex: 1 1 200px;
}

/* ==========================================================================
   事業内容（service.php）
   ========================================================================== */
.sg-svc {
  background: #FAF6ED;
  padding: clamp(52px, 7vw, 96px) clamp(16px, 4vw, 28px);
  scroll-margin-top: 24px;
}
.sg-svc--white { background: #fff; }
.sg-svc__head {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
  gap: clamp(24px, 3vw, 48px);
  align-items: center;
  margin-bottom: clamp(28px, 4vw, 48px);
}
.sg-svc__en {
  font-size: clamp(15px, 1.7vw, 19px);
  letter-spacing: 0.1em;
  color: #8BB83B;
  font-weight: 700;
  line-height: 1.2;
}
.sg-svc__ttl {
  font-size: clamp(20px, 2.4vw, 27px);
  margin: 10px 0 18px;
  text-wrap: wrap;
}
.sg-svc__lead {
  font-size: 16px;
  line-height: 2;
  color: #4A423A;
  margin: 0;
  text-wrap: pretty;
}
.sg-svc__photo {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 28px;
  background: #DDE7D2;
}
.sg-svc__list {
  display: flex;
  flex-direction: column;
  gap: clamp(14px, 1.8vw, 20px);
  max-width: 960px;
  margin: 0 auto;
}
.sg-svc__row {
  background: #fff;
  border-radius: 26px;
  padding: clamp(24px, 3vw, 34px);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(20px, 3vw, 36px);
}
.sg-svc__circle {
  flex: 0 0 auto;
  width: clamp(120px, 14vw, 160px);
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  object-fit: cover;
  background: #DDE7D2;
}
.sg-svc__row-body { flex: 1 1 300px; min-width: 0; }
.sg-svc__text {
  font-size: 15px;
  line-height: 2;
  color: #4A423A;
  margin: 0;
  text-wrap: pretty;
}
.sg-svc__eco {
  margin: clamp(24px, 3vw, 40px) auto 0;
  max-width: 960px;
}
.sg-svc__eco p {
  font-size: 15px;
  line-height: 2;
  color: #2F5A36;
  margin: 0;
  text-align: center;
  text-wrap: pretty;
}
.sg-svc__cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: clamp(16px, 2vw, 24px);
}
.sg-svc__card {
  background: #fff;
  border-radius: 26px;
  padding: clamp(24px, 3vw, 34px);
}
.sg-svc__card--beige { background: #F7F4EC; }
.sg-svc__buy {
  background: #F7F4EC;
  border-radius: 26px;
  padding: clamp(24px, 3vw, 36px);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(20px, 3vw, 40px);
}
.sg-svc__buy-photo {
  flex: 0 1 30%;
  min-width: min(100%, 220px);
  aspect-ratio: 4 / 3;
  border-radius: 22px;
  object-fit: cover;
  background: #DDE7D2;
}
.sg-svc__buy-body { flex: 1 1 400px; min-width: 0; }
.sg-svc__buy-text {
  font-size: 15px;
  line-height: 2;
  color: #4A423A;
  margin: 0 0 20px;
  max-width: 820px;
  text-wrap: pretty;
}
.sg-svc__calc {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
  background: #fff;
  border-radius: 20px;
  padding: 20px 24px;
}
.sg-svc__calc-item {
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: 15px;
  color: #6E5B49;
}
.sg-svc__calc-op { color: #8BB83B; font-weight: 700; }
.sg-svc__calc-total {
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: clamp(18px, 2.4vw, 24px);
  color: #4F8D55;
}
.sg-svc__example {
  font-size: 15px;
  line-height: 1.95;
  color: #4A423A;
  margin: 16px 0 0;
  text-wrap: pretty;
}
.sg-svc__note {
  font-size: 12.5px;
  line-height: 1.9;
  color: #8A7B6C;
  margin: 6px 0 0;
  text-wrap: pretty;
}

/* ==========================================================================
   施工事例（works.php）
   ========================================================================== */
.sg-cases {
  background: #FAF6ED;
  padding: clamp(40px, 6vw, 80px) clamp(16px, 4vw, 28px);
}
.sg-cases__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(48px, 7vw, 88px);
  max-width: 1200px;
  margin: 0 auto;
}
/* 写真は枚数ぶん等分に横並び（2枚でも3枚でも崩れない） */
.sg-case__photos {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
  gap: 2px;
  border-radius: 28px;
  overflow: hidden;
}
.sg-case { min-width: 0; }
.sg-case__fig {
  position: relative;
  margin: 0;
}
.sg-case__img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  background: #E3DCCD;
}
.sg-case__badge {
  position: absolute;
  top: 14px;
  left: 14px;
  font-size: 11px;
  font-weight: 700;
  padding: 5px 10px;
  border-radius: 999px;
}
.sg-case__badge--before { background: rgba(255, 255, 255, 0.92); color: #6E5B49; }
.sg-case__badge--after { background: #4F8D55; color: #fff; }
/* スマホ：横スワイプのスライダー（次の写真が少し見える） */
@media (max-width: 767px) {
  .sg-case__photos {
    grid-auto-columns: 84%;
    gap: 8px;
    border-radius: 0;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .sg-case__photos::-webkit-scrollbar { display: none; }
  .sg-case__fig { scroll-snap-align: start; border-radius: 20px; overflow: hidden; }
}
.sg-case__body { padding: clamp(16px, 2vw, 22px) 4px 0; }
.sg-case__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.sg-case__cat {
  background: #EDF2E3;
  color: #4F8D55;
  font-size: 11.5px;
  font-weight: 700;
  padding: 5px 12px;
  border-radius: 999px;
}
.sg-case__type { font-size: 12px; color: #8A7B6C; }
.sg-case__title {
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: 18px;
  color: #2F5A36;
  margin: 12px 0 10px;
  line-height: 1.6;
}
.sg-case__text {
  font-size: 15px;
  line-height: 1.95;
  color: #4A423A;
  margin: 0;
}

/* ==========================================================================
   会社概要（company.php）
   ========================================================================== */
.sg-sec-88 {
  background: #FAF6ED;
  padding: clamp(48px, 7vw, 88px) clamp(16px, 4vw, 28px);
}
.sg-sec-88--white { background: #fff; }
.sg-w-880 { max-width: 880px; margin: 0 auto; }
.sg-w-900 { max-width: 900px; margin: 0 auto; }
.sg-w-820 { max-width: 820px; margin: 0 auto; }
.sg-message__ttl { margin: 0 0 28px; }
.sg-message__body {
  font-size: 16px;
  line-height: 2.15;
  color: #4A423A;
}
.sg-message__body > p { margin: 0 0 22px; text-wrap: pretty; }
.sg-message__sign {
  margin-top: 36px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
  text-align: right;
}
.sg-message__sign-role { margin: 0; font-size: 14px; line-height: 1.6; color: #6E5B49; }
.sg-message__sign-name {
  margin: 0;
  font-family: 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: 18px;
  line-height: 1.4;
  color: #2F5A36;
  letter-spacing: 0.12em;
}
.sg-message__sign-kana { margin: 0; font-size: 12px; line-height: 1.4; color: #8A7B6C; letter-spacing: 0.2em; }
.sg-profile__ttl { margin: 0 0 clamp(24px, 3vw, 40px); }
.sg-profile {
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 520px), 1fr));
}
.sg-profile__row {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 24px;
  padding: 20px 4px;
  border-top: 1px solid #E3D9C7;
}
.sg-profile__row:last-child { border-bottom: 1px solid #E3D9C7; }
.sg-profile__row dt {
  flex: 0 0 140px;
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: 14.5px;
  color: #2F5A36;
}
.sg-profile__row dd {
  margin: 0;
  flex: 1 1 240px;
  font-size: 15px;
  line-height: 1.9;
  color: #4A423A;
}
.sg-panels {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
  gap: clamp(20px, 2.6vw, 32px);
}
.sg-panel {
  background: #fff;
  border-radius: 28px;
  padding: clamp(26px, 3vw, 40px);
}
.sg-panel__ttl { margin: 0 0 18px; }
.sg-panel__name {
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: 16px;
  color: #4F8D55;
  margin: 0 0 12px;
}
.sg-panel__text {
  font-size: 15px;
  line-height: 2;
  color: #4A423A;
  margin: 0;
  text-wrap: pretty;
}
.sg-panel__caps { margin-top: 16px; }
.sg-panel__sub-ttl { margin-top: 28px; }

/* ==========================================================================
   お問い合わせ（contact.php）
   ========================================================================== */
.sg-contact-ways {
  background: #FAF6ED;
  padding: clamp(44px, 6vw, 80px) clamp(16px, 4vw, 28px);
}
.sg-contact-ways__grid {
  max-width: 1000px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  gap: clamp(18px, 2.4vw, 28px);
}
.sg-contact-way {
  background: #fff;
  border-radius: 28px;
  padding: clamp(26px, 3vw, 36px);
  text-align: center;
}
.sg-contact-way__label { margin: 0 0 12px; }
.sg-contact-way__lead { font-size: 15px; line-height: 1.8; color: #4A423A; margin: 0 0 14px; }
.sg-contact-way__tel {
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: clamp(24px, 3.2vw, 32px);
  color: #4F8D55;
  letter-spacing: 0.02em;
}
.sg-contact-way__note { font-size: 12.5px; color: #7A6A5A; margin: 12px 0 0; line-height: 1.8; }
.sg-form-sec {
  background: #fff;
  padding: clamp(48px, 7vw, 88px) clamp(16px, 4vw, 28px);
  scroll-margin-top: 24px;
}
.sg-form__ttl { margin: 0 0 10px; }
.sg-form__req-note {
  font-size: 13.5px;
  line-height: 1.9;
  color: #7A6A5A;
  margin: 0 0 clamp(28px, 4vw, 44px);
}
.sg-form__req-note .sg-form__req { font-weight: 700; }
.sg-form__req { color: #C4623C; }
/* --------------------------------------------------------------------------
   CMSフォーム（cms_id=7 / cms=28726-1 / design_pattern=1）の見た目調整
   CMSが読み込む mail-form.css は site.css より後に読まれるため、
   先頭に .sg-cmsform を付けて詳細度で上書きする（!important は使わない）
   -------------------------------------------------------------------------- */
.sg-cmsform .form-contents.form-pattern-1 {
  padding: 0;
  margin: 0;
  background: transparent;
}
/* 項目：ラベル（dt）＋入力欄（dd）を縦積み。電話番号・メールは2列 */
.sg-cmsform .form-contents form dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-flow: row dense;
  column-gap: 24px;
  margin: 0 0 8px; /* 最終項目の下 24px ＋ 8px＝ボタンまで32px（デザイン値） */
}
.sg-cmsform .form-contents form dl dt:not(.pattern-exclusion),
.sg-cmsform .form-contents form dl dd:not(.pattern-exclusion) {
  grid-column: 1 / -1;
}
/* 3番目（メールアドレス）・4番目（電話番号）を横並び */
.sg-cmsform .form-contents form dl dt:not(.pattern-exclusion):nth-of-type(3),
.sg-cmsform .form-contents form dl dd:not(.pattern-exclusion):nth-of-type(3) { grid-column: 1; }
.sg-cmsform .form-contents form dl dt:not(.pattern-exclusion):nth-of-type(4),
.sg-cmsform .form-contents form dl dd:not(.pattern-exclusion):nth-of-type(4) { grid-column: 2; }
@media (max-width: 540px) {
  .sg-cmsform .form-contents form dl dt:not(.pattern-exclusion):nth-of-type(n),
  .sg-cmsform .form-contents form dl dd:not(.pattern-exclusion):nth-of-type(n) { grid-column: 1 / -1; }
}
.sg-cmsform .form-contents form dl dt:not(.pattern-exclusion) {
  float: none;
  width: auto;
  padding: 0;
  margin: 0 0 8px;
  text-align: left;
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: 14.5px;
  line-height: normal;
  color: #2F5A36;
}
.sg-cmsform .form-contents form dl dd:not(.pattern-exclusion) {
  width: auto;
  padding: 0;
  margin: 0 0 24px;
  border: none;
  line-height: normal;
}
/* 必須：CMSの赤い「必須」バッジ → デザインの「※」 */
.sg-cmsform .form-pattern-1 dl dt:not(.pattern-exclusion) span.required::before { content: none; }
.sg-cmsform .form-pattern-1 dl dt:not(.pattern-exclusion) span.required::after {
  content: " ※";
  color: #C4623C;
}
/* 入力欄 */
.sg-cmsform .form-pattern-1 dd:not(.pattern-exclusion) .textarea,
.sg-cmsform .form-pattern-1 dd:not(.pattern-exclusion) .textarea-serect {
  width: 100%;
  height: auto;
  border: 1.5px solid #E3D9C7;
  border-radius: 16px;
  padding: 16px 18px;
  font-size: 15px;
  line-height: normal;
  background-color: #FCFAF5;
  color: #3D3630;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color .2s, background-color .2s;
}
.sg-cmsform .form-pattern-1 dd:not(.pattern-exclusion) textarea.textarea {
  line-height: 1.9;
  resize: vertical;
  display: block;
  height: calc(7 * 1.9em + 35px); /* デザインの rows="7" 相当（CMSは rows="10"） */
}
.sg-cmsform .form-pattern-1 dd:not(.pattern-exclusion) .textarea:focus,
.sg-cmsform .form-pattern-1 dd:not(.pattern-exclusion) .textarea-serect:focus {
  border-color: #8BB83B;
  background-color: #fff;
}
/* CMSのスパム対策用の隠し入力欄が行ボックスを作って余白が増えるのを防ぐ */
.sg-cmsform .form-contents form input[name="winnie_the_pooh"] { display: block; }
/* 送信ボタン：アイコンなし・角丸14px の塗り */
.sg-cmsform .form-pattern-1 .submit-btn {
  display: block;
  width: auto;
  margin: 0 auto;
  padding: 16px 64px;
  background: #2F5A36;
  color: #fff;
  border: none;
  border-radius: 14px;
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.04em;
  transition: background-color .2s;
}
.sg-cmsform .form-pattern-1 .submit-btn::before { content: none; }
.sg-cmsform .form-pattern-1 .submit-btn:hover { background: #4F8D55; color: #fff; }
/* エラー表示 */
.sg-cmsform .form-contents .form-err-msg {
  background: #FDF1EC;
  border: 1px solid #C4623C;
  border-radius: 16px;
  color: #C4623C;
  padding: 16px 20px;
  margin: 0 0 24px;
  font-size: 14px;
  line-height: 1.9;
}
/* 送信完了メッセージ */
.sg-cmsform .form-pattern-1 .form-thanks-msg {
  background: #F7F4EC;
  border: none;
  border-radius: 20px;
  padding: 40px 24px;
  color: #4A423A;
  font-size: 15px;
  line-height: 2;
}
.sg-cmsform .form-pattern-1 .form-thanks-msg .back-home-btn { width: auto; text-align: center; }
.sg-cmsform .form-pattern-1 .form-thanks-msg .back-home-btn a {
  display: inline-block;
  padding: 14px 36px;
  background: #2F5A36;
  color: #fff;
  border: none;
  border-radius: 999px;
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: normal;
}
.sg-cmsform .form-pattern-1 .form-thanks-msg .back-home-btn a:hover { background: #4F8D55; }
.sg-form__notice {
  background: #F7F4EC;
  border-radius: 20px;
  padding: 20px 24px;
  font-size: 13px;
  line-height: 1.9;
  color: #6E5B49;
}
.sg-cmsform__notice { margin-top: 24px; }
.sg-privacy { margin-top: clamp(56px, 7vw, 88px); }
.sg-privacy__ttl { margin: 0 0 16px; }
.sg-privacy__lead {
  font-size: 15px;
  line-height: 2;
  color: #4A423A;
  margin: 0 0 24px;
  text-align: center;
  text-wrap: pretty;
}
.sg-privacy__box {
  background: #fff;
  border: 1px solid #E3D9C7;
  border-radius: 20px;
  padding: clamp(22px, 3vw, 34px);
  max-height: 360px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 22px;
}
.sg-privacy__text {
  font-size: 14.5px;
  line-height: 2;
  color: #4A423A;
  margin: 0;
  text-wrap: pretty;
}

/* ==========================================================================
   お知らせ一覧・詳細（entry_list.php / entry.php）
   ========================================================================== */
.sg-blog {
  background: #FAF6ED;
  padding: clamp(40px, 6vw, 80px) clamp(16px, 4vw, 28px);
}
.sg-blog--detail { padding: clamp(24px, 4vw, 44px) clamp(16px, 4vw, 28px) clamp(40px, 6vw, 80px); }
.sg-blog__inner {
  max-width: 1400px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: clamp(24px, 3vw, 44px);
  align-items: flex-start;
}
.sg-blog__main { flex: 3 1 440px; min-width: 0; }
.sg-blog-list {
  background: #fff;
  border-radius: 28px;
  padding: clamp(12px, 2vw, 24px) clamp(18px, 2.4vw, 32px);
}
.sg-blog-list__item {
  display: block;
  padding: 24px 0;
  border-bottom: 1px solid #EFE7D9;
  color: inherit;
}
.sg-blog-list__item:last-child { border-bottom: none; }
.sg-blog__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  align-items: center;
}
.sg-blog__date { font-size: 13px; color: #8A7B6C; letter-spacing: 0.04em; }
.sg-blog-list__title {
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 500;
  font-size: 16.5px;
  line-height: 1.75;
  margin: 10px 0 0;
  color: #3D3630;
}
/* CMS出力を包む span */
.sg-blog__cms { display: block; }
/* ページャー（CMS <%page_link%> の出力：.pages > .page_prev / .page_next > a） */
.sg-pager {
  margin-top: clamp(28px, 4vw, 44px);
}
.sg-pager:empty { display: none; }
.sg-pager .pages {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
}
.sg-pager .page_prev a,
.sg-pager .page_next a {
  height: 44px;
  padding: 0 18px;
  border-radius: 14px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13.5px;
}
.sg-pager .page_prev a:hover,
.sg-pager .page_next a:hover { background: #EDF2E3; }
.sg-side {
  flex: 1 1 260px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.sg-side__box {
  background: #fff;
  border-radius: 24px;
  padding: 24px;
}
.sg-side__ttl {
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: 15px;
  color: #2F5A36;
  margin: 0 0 14px;
  padding-bottom: 12px;
  border-bottom: 2px solid #EDF2E3;
}
.sg-side__list { display: flex; flex-direction: column; }
.sg-side__list a { font-size: 14px; padding: 10px 2px; color: #4A423A; }
.sg-side__list a:hover { color: #4F8D55; }
/* 月別アーカイブCMS（出力：ul > li > a）を静的版と同じ縦並びにする */
.sg-side__archive ul {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  list-style: none;
}
.sg-side__archive a { display: block; }
.sg-crumb-sec {
  background: #FAF6ED;
  padding: clamp(20px, 3vw, 32px) clamp(16px, 4vw, 28px) 0;
}
.sg-crumb {
  max-width: 1400px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  font-size: 12.5px;
  color: #8A7B6C;
}
.sg-crumb a { color: #8A7B6C; }
.sg-crumb a:hover { color: #4F8D55; }
.sg-crumb__current { color: #6E5B49; }
.sg-article {
  flex: 3 1 440px;
  min-width: 0;
  background: #fff;
  border-radius: 28px;
  padding: clamp(24px, 3.4vw, 48px);
}
.sg-article__title {
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: clamp(19px, 2.2vw, 25px);
  line-height: 1.65;
  color: #2F5A36;
  margin: 16px 0 24px;
  text-wrap: pretty;
}
.sg-article__body {
  font-size: 16px;
  line-height: 2.1;
  color: #4A423A;
}
/* 記事本文CMS（出力：div > p 等。CMSエディタで入力された要素） */
.sg-article__cms { display: block; }
.sg-article__cms p { margin: 0 0 22px; text-wrap: pretty; }
.sg-article__cms > div > :last-child,
.sg-article__cms > :last-child { margin-bottom: 0; }
.sg-article__cms img {
  max-width: 100%;
  height: auto;
  border-radius: 22px;
}
.sg-article__cms a { text-decoration: underline; }
.sg-article__cms ul,
.sg-article__cms ol { margin: 0 0 22px; padding-left: 1.5em; }
.sg-article__cms ul { list-style: disc; }
.sg-article__cms ol { list-style: decimal; }
.sg-article__cms h2,
.sg-article__cms h3,
.sg-article__cms h4 {
  font-family: 'Quicksand', 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: 18px;
  line-height: 1.6;
  color: #2F5A36;
  margin: 32px 0 12px;
}
.sg-article__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: space-between;
  align-items: center;
  margin-top: clamp(32px, 4vw, 48px);
  padding-top: 24px;
  border-top: 1px solid #EFE7D9;
}
.sg-article__nav--center { justify-content: center; }
