@charset "UTF-8";
/*
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * [レイアウト]
 * .az-page / .az-main        - 100vh flexカラムのページラッパー（フッター固定）
 * .az-container              - コンテナ幅1400px + padding clamp(20px,5vw,40px)
 * .az-section (--about/--business/--reason/--mission/--news/--half/--list/--relative)
 *                            - clamp ベースのセクション上下padding
 * .az-grid (--center/--280/--gap64) - auto-fit minmax(300px,1fr) の2カラムグリッド
 * .az-fig / .az-fig--alt / .az-fig__img - 薄グレー地+罫線の写真枠
 * .az-inner-relative         - 装飾レイヤー上にコンテンツを載せる position:relative
 *
 * [共通パーツ]
 * .az-eyebrow (--on-dark/--gold-light) - 英字ラベル見出し
 * .az-head-ttl (--mb0/--mb18/--mb26/--mb52/--white) - 日本語セクション見出し
 * .az-text (--light/--white/--mt26/--mb26) / .az-note / .az-lead-block - 本文
 * .az-arrow-link / __label / __circle (--white/--mt24/--mt30) - 丸矢印付きテキストリンク
 *
 * [ヘッダー / フッター / CTA]
 * .az-header / __inner / __logo / __logo-name / __nav / __nav-ja / __right / __tel / __cta
 * .az-sp-nav__tel
 * .az-cta / __inner / __ttl / __desc / __btns / __tel / __tel-num / __mail
 * .az-footer / __inner / __top / __logo / __address / __nav / __nav-item / __catch / __copy
 *
 * [TOP]
 * .az-mv / __slides / __slide(.is-active) / __grad / __skew(--gold) / __watermark / __inner / __ttl / __dots / __dot(.is-active)
 *                            ※ MVスライダーは js/top.js（Swiper不使用のフェード切替）
 * .az-about__inner / __figs / __fig-lg / __fig-sm / __body / __thumbs / __thumb(--offset) / __catch
 * .az-business__skew(--gold) / __head / __list
 * .az-biz-card / __head / __numwrap / __label / __num / __rule / __ttl / __text / __more
 * .az-reason / __bg / __bg-cell / __grad / __veil / __inner / __fig / __catch / __text
 * .az-mission__bg / __veil / __inner / __en / __lines / __line / __band / __txt
 * .az-news__inner / __list / __item / __date / __ttl / __lead
 *
 * [下層]
 * .az-hero / __bg / __grad / __veil / __ttl(--mb0) / __lead
 * .az-srv__headrow / __ttl / __body / __fig / __features
 * .az-srv-feature / __num / __ttl / __text
 * .az-srv__panels / .az-srv-panel / __head / __ttl / __badge / __fig / __sub / __text
 * .az-flow / __fig / __steps / __step / __label / __marker / __num / __line / __names / __ttl / __en / __desc
 * .az-evo__catch / __text / __mark / __compare / __nodes / __arrow / __box / __box-main / __box-sub
 * .az-evo-panel(--new) / __head / __year / __cap / __list / __foot / __foot-main / __foot-sub
 * .az-evo-item / __tag / __label / .az-evo-node / __tag / __label
 * .az-strength__list / .az-strength-card / __photo / __body / __ttl / __text
 * .az-msg__fig / __sign / __sign-name
 * .az-way__list / .az-way-item / __en / __ttl / __text
 * .az-value / __en / __ttl / __list / .az-value-item__no / __rule / __en / __jp
 * .az-achieve / __label / .az-overview__row / __k / __v
 * .az-form / __label / __name / __badge(--any) / __input(--textarea) / __note / __submit
 * .az-cmsform / __note      - CMSフォーム（cms_ajax design_pattern=1）を .az-form と同じ見た目に上書き
 * .az-acc(--col1) / __hd / __head / __label / __en / __ttl / __icon / __body / __inner / __lead / __block(--contact) / __h / __text / __tel
 *                           - アコーディオン（開閉は js/common.js の [data-az-acc]）
 * .az-side-box / __en / __tel / __hours / __detail / __k / __v
 * .az-blog / __main / __list / .az-blog-item / __meta / __thumb / __img / __body / __date / __ttl / __excerpt
 * .az-pager                 - 中身はCMSの <%page_link%> 出力（.pages / .page_prev / .page_next）を上書き
 * .az-side / __ttl / __list   - サイドバー（月別アーカイブ）。中身はCMS出力の ul>li>a を上書き
 * .az-crumb / __list / __current
 * .az-article / __meta / __date / __ttl / __body / __foot / __btn  - 本文はCMS出力HTMLを要素セレクタで整形
 *
 * ======================================
 * 共通SCSSに不足していたもの（5分類）
 * ======================================
 *
 * ■ 値の粒度不足
 *   - コンテナ幅1400px（共通は 1200px / 1500px / 900px のみ）
 *   - セクション上下padding が clamp() ベースの可変値（共通は 120px / 60px 固定）
 *   - font-size 17px / 15.5px / 14.5px / 13.5px / 12.5px / 11.5px 等の刻み
 *     （共通 fz-* は 1rem 刻みのため 0.5px 単位を表現できない）
 *   - gap / padding の clamp() 可変値（共通 gap-* は固定px）
 *
 * ■ 指定方向不足
 *   - skewX(-18deg) の斜め背景帯（MV / 事業紹介）を配置する utility がない
 *   - mix-blend-mode:multiply でブランドグラデーションを写真に重ねる指定がない
 *   - clip-path による矢羽根型ラベル（2010 / 2026 タグ）
 *
 * ■ 状態不足
 *   - スクロールで初めて再生するアニメーション（animation-play-state を
 *     is-visible で running に切り替える）状態クラスがない
 *
 * ■ 構造不足
 *   - ヘッダーが position:sticky ＋ 負マージンで次セクションにせり上がる構造
 *     （共通は header-bar=fixed / header-sticky=absolute→fixed のみ）
 *   - MV の多層レイヤー（写真 → グラデ → 斜め帯 → 透かし文字 → テキスト）
 *   - 2010 / 2026 の左右比較パネル
 *   - sticky 写真 ＋ 縦つなぎ線付きステップの2カラム（FLOW）
 *   - 写真をずらして重ねるコラージュ（ABOUT）
 *
 * ■ 装飾パターン不足
 *   - background-clip:text によるグラデーション文字
 *   - -webkit-text-stroke による輪郭のみの透かし文字
 *   - 帯が左から伸びて右へ抜けるスイープ演出（MISSION）
 *
 * ======================================
 * claude-design-output 実数値ベースライン
 * ======================================
 * コンテナ最大幅        : 1400px（左右padding clamp(20px,5vw,40px) → 最大40px／内寸最大1320px）
 * ヘッダー内側          : width 95% / max-width なし / min-height 96px
 *                        padding 12px clamp(18px,2vw,32px) / gap 12px clamp(16px,3vw,48px)
 * ヘッダーせり上がり量   : margin-bottom -120px（96px + 24px）
 * セクション上下padding  : 下層/汎用  clamp(60px,8vw,104px)
 *                        ABOUT       clamp(64px,9vw,128px)
 *                        BUSINESS    clamp(64px,8vw,112px)
 *                        REASON      clamp(72px,9vw,128px)
 *                        MISSION     clamp(80px,10vw,140px)
 *                        NEWS        clamp(64px,8vw,104px)
 *                        CTA         clamp(56px,7vw,96px)
 *                        ページヒーロー clamp(160px,15vw,200px) / clamp(52px,7vw,88px)
 *                        フッター      clamp(48px,6vw,72px) 0 32px
 * 基準gap               : グリッド clamp(20px,2.4vw,32px)〜clamp(32px,5vw,72px)
 * カラム比率            : auto-fit minmax(300px,1fr) が基本
 *                        FLOW  minmax(260px,0.7fr) / minmax(380px,1.3fr)
 *                        EVOLUTION minmax(280px,0.78fr) / minmax(320px,1.22fr)
 *                        会社概要dt minmax(96px,140px) / 1fr
 * 本文                  : 17px / weight 500 / line-height 2em / #3B4A63
 * 見出し(h2)            : clamp(20px,2.2vw,26px) / 700 / letter-spacing .08em / #0C2340
 * 英語ラベル            : clamp(17px,1.5vw,21px) / 700 / letter-spacing .01em / #B08D4F
 * 罫線                  : #E4E0D8（暗背景 rgba(255,255,255,0.16)）
 */

/* ==========================================================================
   1. ベース（claude-design-output の素の状態に合わせる）
   ========================================================================== */

body {
  background: #FAF8F5;
  color: #1B2430;
  font-family: 'Cabin', 'Zen Kaku Gothic New', sans-serif;
  letter-spacing: normal;
  /* main.css の overflow-x:hidden は position:sticky を無効化するため clip に差し替え */
  overflow-x: clip;
}

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

/* claude-design-output は line-height を要素側で指定していない箇所が多いため
   ブラウザ標準（normal）を土台に戻し、必要な箇所だけ各クラスで指定する */
.az-page :where(h1, h2, h3, h4, h5, h6, p, span, a, li, dt, dd, label, button, input, textarea, figcaption) {
  line-height: normal;
}

a {
  color: #0C2340;
}

a:hover {
  color: #B08D4F;
  opacity: 1;
}

.az-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: #FAF8F5;
}

.az-main {
  flex: 1;
}

/* ==========================================================================
   2. レイアウト（コンテナ / セクション）
   ========================================================================== */

.az-container {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 clamp(20px, 5vw, 40px);
}

.az-section {
  padding: clamp(60px, 8vw, 104px) 0;
}

.az-section--white  { background: #fff; }
.az-section--base   { background: #FAF8F5; }
.az-section--sub    { background: #004E94; }
.az-section--about    { padding: clamp(64px, 9vw, 128px) 0; }
.az-section--business { padding: clamp(64px, 8vw, 112px) 0; }
.az-section--reason   { padding: clamp(72px, 9vw, 128px) 0; }
.az-section--mission  { padding: clamp(80px, 10vw, 140px) 0; }
.az-section--news     { padding: clamp(64px, 8vw, 104px) 0; }
.az-section--half     { padding: clamp(56px, 7vw, 96px) 0; }
.az-section--list     { padding: clamp(52px, 7vw, 96px) 0; }

.az-section--relative {
  position: relative;
  overflow: hidden;
}

.az-inner-relative {
  position: relative;
}

/* 汎用の2カラムグリッド（auto-fit） */
.az-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: clamp(32px, 5vw, 72px);
  align-items: start;
}

.az-grid--center { align-items: center; }
.az-grid--280    { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.az-grid--gap64  { gap: clamp(32px, 4vw, 64px); }

/* 左7：右3（お問い合わせ）。
   これより狭い幅では右カラムが 260px 前後まで細くなり電話番号が折り返すため、
   auto-fit の「均等2カラム → 1カラム」にそのまま任せる。 */
@media (min-width: 1201px) {
  .az-grid--73 { grid-template-columns: 7fr 3fr; }
}

/* 写真枠（背景色は画像読み込み前のプレースホルダ。罫線なし） */
.az-fig {
  background: #EEF1F5;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.az-fig--alt { background: #E7ECF2; }

.az-fig__img,
.az-fig img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ==========================================================================
   3. 共通パーツ（見出し / 本文 / 矢印リンク）
   ========================================================================== */

.az-eyebrow {
  margin: 0 0 6px;
  font-family: 'Cabin', 'Zen Kaku Gothic New', sans-serif;
  font-size: clamp(17px, 1.5vw, 21px);
  font-weight: 700;
  letter-spacing: 0.01em;
  line-height: normal;
  color: #B08D4F;
}

.az-eyebrow--on-dark    { color: #C9A96A; }
.az-eyebrow--gold-light { color: #F0DFBE; }

.az-head-ttl {
  margin: 0 0 22px;
  font-size: clamp(20px, 2.2vw, 26px);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: normal;
  color: #0C2340;
}

.az-head-ttl--mb0    { margin-bottom: 0; }
.az-head-ttl--mb18   { margin-bottom: 18px; }
.az-head-ttl--mb26   { margin-bottom: 26px; }
.az-head-ttl--mb52   { margin-bottom: clamp(32px, 4vw, 52px); }
.az-head-ttl--white  { color: #fff; }

.az-text {
  margin: 0;
  font-size: 17px;
  font-weight: 500;
  line-height: 2em;
  color: #3B4A63;
  text-wrap: pretty;
}

.az-text--light { color: #5C6A85; }
.az-text--white { color: rgba(255, 255, 255, 0.86); }
.az-text--mt26  { margin-top: 26px; }
.az-text--mb26  { margin-bottom: 26px; }

.az-note {
  margin: 0;
  font-size: 13px;
  font-weight: 400;
  line-height: 2;
  color: #8A929E;
}

.az-note--mt26 { margin-top: 26px; }

.az-lead-block {
  margin-bottom: clamp(36px, 4.5vw, 64px);
}

/* 矢印付きテキストリンク */
.az-arrow-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 14.5px;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: normal;
  color: #0C2340;
}

.az-arrow-link__label {
  border-bottom: 1px solid #0C2340;
  padding-bottom: 3px;
}

.az-arrow-link__circle {
  width: 30px;
  height: 30px;
  border: 1px solid #0C2340;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Outfit', 'Cabin', sans-serif;
  font-size: 13px;
  flex-shrink: 0;
}

.az-arrow-link--white { color: #fff; }
.az-arrow-link--white .az-arrow-link__label  { border-bottom-color: #fff; }
.az-arrow-link--white .az-arrow-link__circle { border-color: #fff; }

.az-arrow-link--mt24 { margin-top: 24px; }
.az-arrow-link--mt30 { margin-top: 30px; }

/* ==========================================================================
   4. ヘッダー
   ========================================================================== */

.az-header {
  position: sticky;
  top: 0;
  z-index: 50;
  width: 100%;
  margin-bottom: calc(-1 * (96px + 24px));
}

.az-header__inner {
  width: 95%;
  max-width: none;
  height: auto;
  min-height: 96px;
  margin: 0 auto;
  padding: 12px clamp(18px, 2vw, 32px);
  background: rgba(255, 255, 255, 0.97);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  box-shadow: 0 2px 18px rgba(6, 18, 34, 0.10);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px clamp(16px, 3vw, 48px);
}

.az-header__logo {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-shrink: 0;
}

.az-header__logo img {
  height: 52px;
  width: auto;
  display: block;
}

.az-header__logo-name {
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: normal;
  color: #0C2340;
  white-space: nowrap;
}

.az-header__nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px clamp(12px, 2vw, 28px);
  margin-left: auto;
  margin-right: 0;
}

.az-header__nav-item a {
  display: block;
  padding: 6px 0;
}

.az-header__nav-item a::after {
  display: none;
}

.az-header__nav-ja {
  display: block;
  margin-top: 0;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: normal;
  color: #1B2430;
  transition: color 0.3s ease;
}

.az-header__nav-item a:hover .az-header__nav-ja,
.header__nav-item--current .az-header__nav-ja {
  color: #B08D4F;
}

.az-header__right {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  margin-left: 0;
  height: auto;
}

.az-header__tel {
  font-family: 'Outfit', 'Cabin', sans-serif;
  font-weight: 700;
  font-size: 19px;
  letter-spacing: 0.02em;
  line-height: normal;
  color: #004E94;
}

.az-header__tel::before {
  display: none;
}

.az-header__tel:hover {
  color: #B08D4F;
  opacity: 1;
}

.az-header__cta {
  flex-direction: row;
  height: auto;
  padding: 15px 26px;
  background: #004E94;
  color: #fff;
  font-size: 14.5px;
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: normal;
}

.az-header__cta:hover {
  background: #B08D4F;
  color: #fff;
}

/* SPナビ（1100px以下） */
.az-sp-nav__tel {
  color: #fff;
  font-family: 'Outfit', 'Cabin', sans-serif;
}

.az-sp-nav__tel::before {
  color: #fff;
}

.az-sp-nav__tel:hover {
  color: #C9A96A;
}

/* ==========================================================================
   5. メインビュー（TOP）
   ========================================================================== */

.az-mv {
  position: relative;
  background: #0C2340;
  overflow: hidden;
  min-height: min(920px, 100vh);
  display: flex;
  align-items: flex-end;
}

.az-mv__slides {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.az-mv__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1.4s ease;
  background: #123055;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* HTML側で1枚目に is-active を付けているため、JSが動かなくても1枚目は表示される */
.az-mv__slide.is-active {
  opacity: 1;
}

/* CMSスライダー差し替え後（出力が .swiper-slide のみになる）でも効くよう
   .az-mv__slide / .swiper-slide の両方に画像サイズを当てておく */
.az-mv__slide img,
.az-mv__slides .swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.az-mv__grad {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(6, 18, 34, 0.9) 0%, rgba(6, 18, 34, 0.6) 55%, rgba(6, 18, 34, 0.3) 100%);
}

.az-mv__skew {
  position: absolute;
  top: -10%;
  bottom: -10%;
  left: 26%;
  width: 44%;
  background: rgba(12, 35, 64, 0.82);
  transform: skewX(-18deg);
}

.az-mv__skew--gold {
  left: 74%;
  width: 6%;
  background: rgba(176, 141, 79, 0.16);
}

.az-mv__watermark {
  position: absolute;
  right: clamp(16px, 3vw, 48px);
  bottom: clamp(10px, 3vw, 40px);
  text-align: right;
  pointer-events: none;
  font-family: 'Cabin', 'Zen Kaku Gothic New', sans-serif;
  font-weight: 700;
  font-size: clamp(38px, 8vw, 118px);
  line-height: 1;
  letter-spacing: 0.01em;
  color: transparent;
  /* 元データは 1px / alpha 0.16。実写真が明るく完全に埋もれるため視認できる濃度に調整 */
  -webkit-text-stroke: 1.5px rgba(255, 255, 255, 0.45);
}

/* キャッチの左辺をヘッダーバー（.az-header__inner／width:95% でセンター）の
   左辺に合わせる。左右 2.5% がヘッダーバーの外側の余白と同値。
   max() はSPで端に寄りすぎないための下限（≒800px以下で 20px 固定）。 */
.az-mv__inner {
  position: relative;
  width: 100%;
  max-width: none;
  margin: 0 auto;
  padding: clamp(160px, 18vw, 240px) max(20px, 2.5%) clamp(48px, 7vw, 84px);
}

.az-mv__ttl {
  margin: 0;
  color: #fff;
  font-size: clamp(36px, 7.4vw, 92px);
  font-weight: 700;
  line-height: 1.34;
  letter-spacing: 0.02em;
  text-wrap: pretty;
}

.az-mv__dots {
  margin-top: 52px;
  display: flex;
  gap: 8px;
}

.az-mv__dot {
  width: 20px;
  height: 2px;
  background: rgba(255, 255, 255, 0.35);
  transition: all 0.5s ease;
}

.az-mv__dot.is-active {
  width: 56px;
  background: #B08D4F;
}

/* ==========================================================================
   6. ABOUT（TOP：私たちについて）
   ========================================================================== */

.az-about__inner {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: clamp(40px, 7vw, 120px);
  align-items: start;
}

.az-about__figs {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(20px, 2.4vw, 36px);
  margin-left: calc(-1 * (max((100vw - 1400px) / 2, 0px) + clamp(20px, 5vw, 40px) - 2.5vw));
}

.az-about__fig-lg {
  width: 100%;
  height: clamp(300px, 36vw, 520px);
  margin-top: clamp(60px, 8vw, 120px);
}

.az-about__fig-sm {
  width: min(62%, 340px);
  align-self: center;
  aspect-ratio: 4 / 3;
}

.az-about__body {
  display: flex;
  flex-direction: column;
  gap: clamp(28px, 3.5vw, 52px);
}

.az-about__thumbs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: clamp(16px, 2vw, 28px);
  align-items: start;
}

.az-about__thumb {
  aspect-ratio: 4 / 5;
}

.az-about__thumb--offset {
  margin-top: clamp(28px, 5vw, 80px);
}

.az-about__catch {
  margin: clamp(28px, 3vw, 44px) 0;
  font-size: clamp(24px, 3vw, 38px);
  font-weight: 600;
  line-height: 1.7em;
  letter-spacing: 0.03em;
  background: linear-gradient(100deg, #004E94 0%, #1E6FBE 55%, #4E9BE0 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  width: -moz-fit-content;
  width: fit-content;
  text-wrap: pretty;
}

/* ==========================================================================
   7. BUSINESS（TOP：事業紹介）
   ========================================================================== */

.az-business__skew {
  position: absolute;
  top: -15%;
  bottom: -15%;
  left: 2%;
  width: 46%;
  background: #F2EFE8;
  transform: skewX(-18deg);
  pointer-events: none;
}

.az-business__skew--gold {
  left: 92%;
  width: 5%;
  background: rgba(176, 141, 79, 0.14);
}

.az-business__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px;
  margin-bottom: clamp(36px, 5vw, 56px);
}

.az-business__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: clamp(20px, 2.4vw, 32px);
}

.az-biz-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid #E4E0D8;
  padding: clamp(32px, 3.4vw, 46px) clamp(22px, 2.2vw, 32px);
  transition: border-color 0.3s ease;
}

.az-biz-card:hover {
  border-color: #004E94;
  opacity: 1;
}

.az-biz-card__head {
  display: flex;
  align-items: center;
  gap: clamp(12px, 1.2vw, 18px);
}

.az-biz-card__numwrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  flex-shrink: 0;
}

.az-biz-card__label {
  font-family: 'Cabin', 'Zen Kaku Gothic New', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: normal;
  color: #004E94;
}

.az-biz-card__num {
  font-family: 'Outfit', 'Cabin', sans-serif;
  font-size: 34px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
  color: #004E94;
}

.az-biz-card__rule {
  width: 1px;
  align-self: stretch;
  background: #B7CCE2;
}

.az-biz-card__ttl {
  margin: 0;
  font-size: clamp(19px, 1.8vw, 23px);
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1.5;
  color: #004E94;
  white-space: nowrap;
}

.az-biz-card__text {
  margin: clamp(22px, 2.4vw, 32px) 0 0;
  font-size: 17px;
  font-weight: 500;
  line-height: 1.8em;
  color: #3B4A63;
  text-wrap: pretty;
}

.az-biz-card__more {
  margin-top: clamp(24px, 2.6vw, 34px);
}

/* ==========================================================================
   8. REASON（TOP：選ばれる理由への導線）
   ========================================================================== */

.az-reason {
  background: #0B4C86;
}

.az-reason__bg {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
}

.az-reason__bg-cell {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.az-reason__bg-cell:nth-child(1) { background: #4A5A6B; }
.az-reason__bg-cell:nth-child(2) { background: #3F4E5E; }
.az-reason__bg-cell:nth-child(3) { background: #54646F; }

.az-reason__bg-cell img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.az-reason__grad {
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, #004E94 0%, #1E6FBE 55%, #4E9BE0 100%);
  mix-blend-mode: multiply;
  pointer-events: none;
}

.az-reason__veil {
  position: absolute;
  inset: 0;
  background: rgba(4, 32, 60, 0.32);
  pointer-events: none;
}

.az-reason__inner {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
}

.az-reason__fig {
  min-height: clamp(260px, 28vw, 400px);
  background: #3F4E5E;
}

.az-reason__catch {
  margin: 0 0 24px;
  color: #fff;
  font-size: clamp(22px, 2.7vw, 32px);
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.03em;
  text-wrap: pretty;
}

.az-reason__text {
  margin: 0;
  color: rgba(255, 255, 255, 0.78);
  font-size: 17px;
  font-weight: 500;
  line-height: 2em;
  text-wrap: pretty;
}

/* ==========================================================================
   9. MISSION（TOP）
   ========================================================================== */

.az-mission__bg {
  position: absolute;
  inset: 0;
  background: #E9EDF2;
  display: flex;
  align-items: center;
  justify-content: center;
}

.az-mission__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.az-mission__veil {
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.72);
  pointer-events: none;
}

.az-mission__inner {
  text-align: center;
}

.az-mission__en {
  margin: 0 0 clamp(28px, 3.4vw, 48px);
  font-family: 'Cabin', 'Zen Kaku Gothic New', sans-serif;
  font-size: clamp(38px, 5vw, 68px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.01em;
  color: #B08D4F;
}

.az-mission__lines {
  margin: 0 auto;
  max-width: 1120px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}

.az-mission__line {
  display: inline-block;
  position: relative;
  overflow: hidden;
  padding: 6px 22px;
  font-size: clamp(19px, 2.4vw, 28px);
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.04em;
}

.az-mission__band {
  position: absolute;
  inset: 0;
  transform-origin: left center;
  transform: scaleX(0);
  animation: azBandSweep 1.9s cubic-bezier(0.7, 0, 0.2, 1) forwards;
  animation-play-state: paused;
}

.az-mission__txt {
  position: relative;
  color: #0C2340;
  opacity: 0;
  animation: azTextSweep 1.9s ease forwards;
  animation-play-state: paused;
}

.az-mission__line:nth-child(1) .az-mission__band { background: linear-gradient(100deg, #004E94 0%, #1E6FBE 100%); }
.az-mission__line:nth-child(2) .az-mission__band { background: linear-gradient(100deg, #0B5AA4 0%, #2E7BC9 100%); animation-delay: 0.28s; }
.az-mission__line:nth-child(3) .az-mission__band { background: linear-gradient(100deg, #1E6FBE 0%, #4E9BE0 100%); animation-delay: 0.56s; }
.az-mission__line:nth-child(2) .az-mission__txt  { animation-delay: 0.28s; }
.az-mission__line:nth-child(3) .az-mission__txt  { animation-delay: 0.56s; }

.az-mission__lines.is-visible .az-mission__band,
.az-mission__lines.is-visible .az-mission__txt {
  animation-play-state: running;
}

@keyframes azBandSweep {
  0%    { transform-origin: left center;  transform: scaleX(0); }
  28%   { transform-origin: left center;  transform: scaleX(1); }
  55%   { transform-origin: left center;  transform: scaleX(1); }
  55.1% { transform-origin: right center; transform: scaleX(1); }
  85%   { transform-origin: right center; transform: scaleX(0); }
  100%  { transform-origin: right center; transform: scaleX(0); }
}

@keyframes azTextSweep {
  0%   { opacity: 0; color: #fff; }
  26%  { opacity: 0; color: #fff; }
  40%  { opacity: 1; color: #fff; }
  62%  { opacity: 1; color: #fff; }
  88%  { opacity: 1; color: #0C2340; }
  100% { opacity: 1; color: #0C2340; }
}

@media (prefers-reduced-motion: reduce) {
  .az-mission__band { display: none; }
  .az-mission__txt  { opacity: 1; animation: none; }
}

/* ==========================================================================
   10. NEWS（TOP：お知らせ）
   ========================================================================== */

.az-news__inner {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: clamp(28px, 4vw, 64px);
}

.az-news__list {
  grid-column: span 2;
  min-width: 0;
}

.az-news__item {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 20px;
  padding: 22px 4px;
  border-bottom: 1px solid #E4E0D8;
  transition: background 0.3s ease;
}

.az-news__item:hover {
  background: #fff;
  opacity: 1;
}

.az-news__date {
  font-family: 'Outfit', 'Cabin', sans-serif;
  font-size: 13px;
  letter-spacing: 0.06em;
  line-height: normal;
  color: #8A929E;
}

.az-news__ttl {
  font-size: 17px;
  font-weight: 500;
  line-height: 2em;
  color: #1B2430;
  flex: 1;
  min-width: 200px;
}

.az-news__lead {
  margin: 0;
  font-size: 17px;
  font-weight: 500;
  line-height: 2em;
  color: #5C6A85;
}

/* ==========================================================================
   11. お問い合わせCTA（共通）
   ========================================================================== */

.az-cta {
  background: linear-gradient(100deg, #004E94 0%, #1E6FBE 55%, #4E9BE0 100%);
  padding: clamp(56px, 7vw, 96px) 0;
}

.az-cta__inner {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: clamp(28px, 4vw, 56px);
  align-items: center;
}

.az-cta__ttl {
  margin: 0 0 18px;
  font-size: clamp(20px, 2.2vw, 26px);
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.08em;
  color: #fff;
  text-wrap: pretty;
}

.az-cta__desc {
  margin: 0;
  font-size: 17px;
  font-weight: 500;
  line-height: 2em;
  color: rgba(255, 255, 255, 0.86);
}

.az-cta__btns {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: flex-end;
}

.az-cta__tel {
  border: 1px solid rgba(255, 255, 255, 0.7);
  color: #fff;
  padding: 20px 34px;
  font-size: 14px;
  letter-spacing: 0.06em;
  display: flex;
  align-items: center;
  gap: 12px;
  transition: background 0.3s ease, color 0.3s ease;
}

.az-cta__tel-num {
  font-family: 'Outfit', 'Cabin', sans-serif;
  font-weight: 700;
  font-size: 18px;
}

.az-cta__tel:hover {
  background: #fff;
  color: #004E94;
}

.az-cta__mail {
  background: #fff;
  color: #004E94;
  padding: 20px 40px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.08em;
  transition: background 0.3s ease, color 0.3s ease;
}

.az-cta__mail:hover {
  background: #0C2340;
  color: #fff;
}

/* ==========================================================================
   12. フッター
   ========================================================================== */

/* 背景写真（foot_Bg.jpg）に既存のネイビーを乗算で重ねる。
   画像URLは $img（CDN）から出力するため footer.php 側の
   style="background-image:url(...)" で指定している。 */
.az-footer {
  background-color: #0C2340;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  background-blend-mode: multiply;
  color: #fff;
  padding: clamp(48px, 6vw, 72px) 0 32px;
}

.az-footer__inner {
  width: 95%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0;
}

.az-footer__top {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: clamp(28px, 4vw, 56px);
  padding-bottom: clamp(32px, 4vw, 52px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}

.az-footer__logo {
  height: 62px;
  width: auto;
  display: block;
  filter: brightness(0) invert(1);
}

.az-footer__address {
  margin: 20px 0 0;
  font-size: 13.5px;
  line-height: 2;
  color: rgba(255, 255, 255, 0.72);
}

.az-footer__nav {
  display: grid;
  grid-template-rows: repeat(2, auto);
  grid-auto-flow: column;
  justify-content: end;
  justify-items: end;
  align-content: end;
  align-self: end;
  gap: 8px clamp(28px, 4vw, 64px);
}

.az-footer__nav-item {
  font-size: 13.5px;
  letter-spacing: 0.05em;
  color: rgba(255, 255, 255, 0.82);
}

.az-footer__nav-item:hover {
  color: #C9A96A;
}

.az-footer__catch {
  margin: clamp(40px, 4vw, 48px) 0;
  font-size: clamp(30px, 6.4vw, 88px);
  font-weight: 700;
  line-height: 1.28;
  letter-spacing: 0.04em;
  color: #fff;
  text-wrap: pretty;
}

.az-footer__copy {
  margin: 0;
  padding-top: 22px;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
  font-family: 'Outfit', 'Cabin', sans-serif;
  font-size: 11.5px;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.5);
}

/* ==========================================================================
   13. ページトップボタン
   ========================================================================== */

.page-top__link {
  background: #0C2340;
  color: #fff;
}

.page-top__link:hover {
  background: #B08D4F;
  color: #fff;
  opacity: 1;
}

/* ==========================================================================
   14. ページヒーロー（下層共通）
   ========================================================================== */

.az-hero {
  position: relative;
  overflow: hidden;
  background: #004E94;
  padding: clamp(160px, 15vw, 200px) 0 clamp(52px, 7vw, 88px);
}

.az-hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.az-hero__grad {
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, #004E94 0%, #1E6FBE 55%, #4E9BE0 100%);
  mix-blend-mode: multiply;
  pointer-events: none;
}

.az-hero__veil {
  position: absolute;
  inset: 0;
  background: rgba(4, 32, 60, 0.28);
  pointer-events: none;
}

.az-hero__ttl {
  margin: 0 0 26px;
  color: #fff;
  font-size: clamp(28px, 4vw, 46px);
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: normal;
}

.az-hero__ttl--mb0 { margin-bottom: 0; }

.az-hero__lead {
  margin: 0;
  max-width: 1000px;
  color: rgba(255, 255, 255, 0.86);
  font-size: 17px;
  font-weight: 500;
  line-height: 2em;
  text-wrap: pretty;
}

/* ==========================================================================
   15. 事業案内（service.php）
   ========================================================================== */

.az-srv__headrow {
  display: flex;
  align-items: baseline;
  gap: 18px;
  flex-wrap: wrap;
}

.az-srv__ttl {
  margin: 0;
  font-size: clamp(21px, 2.7vw, 31px);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.6;
  color: #0C2340;
}

.az-srv__body {
  margin-top: clamp(32px, 4vw, 52px);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: clamp(30px, 4vw, 64px);
  align-items: start;
}

.az-srv__fig {
  min-height: clamp(240px, 24vw, 330px);
}

.az-srv__features {
  margin-top: clamp(34px, 4vw, 56px);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 0;
}

.az-srv-feature {
  background: #FAF8F5;
  border: 1px solid #E4E0D8;
  margin: -1px 0 0 -1px;
  padding: 30px 28px;
}

.az-srv-feature__num {
  font-family: 'Outfit', 'Cabin', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  line-height: normal;
  color: #B08D4F;
}

.az-srv-feature__ttl {
  margin: 14px 0 12px;
  font-size: 15.5px;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.7;
  color: #0C2340;
}

.az-srv-feature__text {
  margin: 0;
  font-size: 17px;
  font-weight: 500;
  line-height: 2em;
  color: #5C6A85;
  text-wrap: pretty;
}

.az-srv__panels {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: clamp(30px, 4vw, 72px);
}

.az-srv-panel {
  background: #E9EEF3;
  padding: clamp(26px, 3vw, 40px);
}

.az-srv-panel__head {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  flex-wrap: wrap;
}

.az-srv-panel__ttl {
  margin: 0;
  font-size: clamp(19px, 2.2vw, 25px);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.6;
  color: #0C2340;
}

.az-srv-panel__badge {
  background: #0C2340;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: normal;
  padding: 7px 18px;
  border-radius: 999px;
}

.az-srv-panel__fig {
  margin-top: clamp(20px, 2.4vw, 30px);
  aspect-ratio: 16 / 10;
  background: #F4F7FA;
  display: flex;
  align-items: center;
  justify-content: center;
}

.az-srv-panel__sub {
  margin: clamp(22px, 2.4vw, 32px) 0 clamp(20px, 2.2vw, 28px);
  text-align: center;
  font-size: clamp(18px, 2vw, 23px);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.6;
  color: #0C2340;
}

.az-srv-panel__text {
  margin: 0;
  background: #fff;
  padding: clamp(20px, 2.2vw, 28px);
  font-size: 17px;
  font-weight: 500;
  line-height: 1.9em;
  color: #3B4A63;
  text-wrap: pretty;
}

/* ==========================================================================
   16. 選ばれる理由（reason.php）
   ========================================================================== */

/* --- FLOW --- */
.az-flow {
  display: grid;
  grid-template-columns: minmax(260px, 0.7fr) minmax(380px, 1.3fr);
  gap: clamp(32px, 5vw, 88px);
  align-items: start;
}

.az-flow__fig {
  position: sticky;
  top: 130px;
  aspect-ratio: 3 / 4;
}

.az-flow__steps {
  display: flex;
  flex-direction: column;
}

.az-flow__step {
  display: grid;
  grid-template-columns: minmax(230px, 280px) 1fr;
  gap: clamp(18px, 2.4vw, 40px);
  align-items: stretch;
}

.az-flow__label {
  display: flex;
  align-items: stretch;
  gap: 18px;
}

.az-flow__marker {
  display: flex;
  flex-direction: column;
  align-items: center;
  align-self: stretch;
  flex-shrink: 0;
}

.az-flow__num {
  width: 42px;
  height: 42px;
  border: 1px solid #004E94;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Outfit', 'Cabin', sans-serif;
  font-size: 17px;
  font-weight: 700;
  line-height: normal;
  color: #004E94;
  flex-shrink: 0;
}

.az-flow__line {
  flex: 1;
  width: 1px;
  min-height: clamp(24px, 3vw, 44px);
  background: #9FB4C9;
  margin: 0;
}

.az-flow__names {
  padding-top: 6px;
}

.az-flow__ttl {
  margin: 0;
  font-size: clamp(18px, 1.8vw, 21px);
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.5;
  color: #004E94;
  white-space: nowrap;
}

.az-flow__en {
  display: block;
  margin-top: 6px;
  font-family: 'Cabin', 'Zen Kaku Gothic New', sans-serif;
  font-size: 12.5px;
  letter-spacing: 0.08em;
  line-height: normal;
  color: #B08D4F;
}

.az-flow__desc {
  padding: 8px 0 clamp(34px, 4vw, 56px);
}

/* --- EVOLUTION --- */
.az-evo__catch {
  margin: 0 0 26px;
  color: #fff;
  font-size: clamp(22px, 2.7vw, 34px);
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.03em;
  text-wrap: pretty;
}

.az-evo__text {
  margin: 0 0 clamp(38px, 5vw, 64px);
  max-width: none;
  color: rgba(255, 255, 255, 0.82);
  font-size: 17px;
  font-weight: 500;
  line-height: 2em;
  text-wrap: pretty;
}

.az-evo__mark {
  display: inline-block;
  margin-bottom: 26px;
  padding: 6px 18px;
  background: rgba(255, 255, 255, 0.16);
  color: #fff;
  font-weight: 700;
}

.az-evo__compare {
  display: grid;
  grid-template-columns: minmax(280px, 0.78fr) minmax(320px, 1.22fr);
  gap: clamp(24px, 3vw, 40px);
  align-items: stretch;
}

.az-evo-panel {
  border: 1px solid rgba(255, 255, 255, 0.18);
  padding: clamp(26px, 3vw, 38px);
}

.az-evo-panel--new {
  background: #fff;
  border: 1px solid #fff;
}

.az-evo-panel__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
}

.az-evo-panel--new .az-evo-panel__head {
  border-bottom-color: #0C2340;
}

.az-evo-panel__year {
  margin-left: calc(-1 * clamp(26px, 3vw, 38px));
  padding: 8px clamp(26px, 3vw, 38px);
  background: rgba(255, 255, 255, 0.18);
  color: rgba(255, 255, 255, 0.72);
  clip-path: polygon(0 0, calc(100% - 16px) 0, 100% 50%, calc(100% - 16px) 100%, 0 100%);
  font-family: 'Outfit', 'Cabin', sans-serif;
  font-size: 22px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: normal;
}

.az-evo-panel--new .az-evo-panel__year {
  background: #004E94;
  color: #fff;
}

.az-evo-panel__cap {
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: normal;
  color: rgba(255, 255, 255, 0.6);
}

.az-evo-panel--new .az-evo-panel__cap {
  color: #B08D4F;
}

.az-evo-panel__list {
  margin-top: 26px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.az-evo-item {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  padding: 16px 18px;
  display: flex;
  align-items: center;
  gap: 14px;
}

.az-evo-item__tag {
  font-family: 'Cabin', 'Zen Kaku Gothic New', sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.14em;
  line-height: normal;
  color: rgba(255, 255, 255, 0.45);
}

.az-evo-item__label {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.86);
}

.az-evo-panel__foot {
  margin: 18px 0 0;
  padding-top: 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.az-evo-panel__foot-main {
  margin: 0;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.92);
  text-wrap: pretty;
}

.az-evo-panel__foot-sub {
  margin: 8px 0 0;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.9;
  color: rgba(255, 255, 255, 0.6);
  text-wrap: pretty;
}

.az-evo-panel--new .az-evo-panel__foot {
  margin: 22px 0 0;
  padding-top: 20px;
  border-top: 1px solid #DDE3EA;
}

.az-evo-panel--new .az-evo-panel__foot-main {
  font-size: clamp(20px, 2vw, 24px);
  color: #004E94;
}

.az-evo-panel--new .az-evo-panel__foot-sub {
  margin: 10px 0 0;
  color: #7C8695;
}

.az-evo__nodes {
  margin-top: 26px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
  gap: 12px;
}

.az-evo-node {
  aspect-ratio: 1 / 0.82;
  background: #F1F4F7;
  border-radius: 999px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 12px 10px;
  text-align: center;
}

.az-evo-node__tag {
  font-family: 'Cabin', 'Zen Kaku Gothic New', sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.14em;
  line-height: normal;
  color: #4E9BE0;
}

.az-evo-node__label {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
  color: #1B2430;
}

.az-evo__arrow {
  margin-top: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #B08D4F;
  font-family: 'Cabin', 'Zen Kaku Gothic New', sans-serif;
  font-size: 12px;
  letter-spacing: 0.2em;
}

.az-evo__box {
  margin-top: 16px;
  background: #0C2340;
  color: #fff;
  padding: 22px 20px;
  text-align: center;
}

.az-evo__box-main {
  display: block;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: normal;
}

.az-evo__box-sub {
  display: block;
  margin-top: 10px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.9;
  color: rgba(255, 255, 255, 0.8);
}

/* --- STRENGTH --- */
.az-strength__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: clamp(20px, 3vw, 32px);
}

.az-strength-card {
  background: #fff;
  border-top: 2px solid #004E94;
}

.az-strength-card__photo {
  aspect-ratio: 4 / 3;
  background-color: #EEF1F5;
  background-size: cover;
  background-position: center;
}

.az-strength-card__body {
  padding: clamp(26px, 2.8vw, 36px);
}

.az-strength-card__ttl {
  margin: 0 0 18px;
  font-size: clamp(19px, 1.8vw, 23px);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.6;
  color: #0C2340;
}

.az-strength-card__text {
  margin: 0;
  font-size: 17px;
  font-weight: 500;
  line-height: 2em;
  color: #5C6A85;
  text-wrap: pretty;
}

/* ==========================================================================
   17. 会社概要（company.php）
   ========================================================================== */

.az-msg__fig {
  min-height: clamp(280px, 30vw, 420px);
}

.az-msg__sign {
  margin: 30px 0 0;
  font-size: 14px;
  letter-spacing: 0.06em;
  line-height: normal;
  color: #0C2340;
}

.az-msg__sign-name {
  font-size: 18px;
  font-weight: 700;
}

.az-way__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(280px, 1fr));
  gap: clamp(28px, 3.5vw, 56px) clamp(32px, 5vw, 80px);
}

.az-way-item {
  border-top: 2px solid #004E94;
  padding-top: clamp(24px, 2.6vw, 34px);
}

.az-way-item__en {
  display: block;
  font-family: 'Cabin', 'Zen Kaku Gothic New', sans-serif;
  font-size: clamp(15px, 1.3vw, 18px);
  font-weight: 700;
  letter-spacing: 0.01em;
  line-height: normal;
  color: #004E94;
}

.az-way-item__ttl {
  margin: 10px 0 18px;
  font-size: clamp(19px, 1.8vw, 23px);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.6;
  color: #0C2340;
}

.az-way-item__text {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 2em;
  color: #3B4A63;
  text-wrap: pretty;
}

.az-value {
  margin-top: clamp(24px, 3vw, 40px);
  background: #fff;
  padding: clamp(30px, 3.4vw, 46px);
}

.az-value__en {
  display: block;
  font-family: 'Cabin', 'Zen Kaku Gothic New', sans-serif;
  font-size: clamp(15px, 1.3vw, 18px);
  font-weight: 700;
  letter-spacing: 0.01em;
  line-height: normal;
  color: #004E94;
}

.az-value__ttl {
  margin: 6px 0 clamp(24px, 2.6vw, 34px);
  font-size: clamp(19px, 1.8vw, 23px);
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: normal;
  color: #0C2340;
}

.az-value__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: clamp(16px, 2vw, 26px);
}

.az-value-item__no {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: 'Outfit', 'Cabin', sans-serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: normal;
  color: #B08D4F;
}

.az-value-item__rule {
  width: 14px;
  height: 1px;
  background: #C9B08A;
}

.az-value-item__en {
  display: block;
  margin-top: 10px;
  font-family: 'Cabin', 'Zen Kaku Gothic New', sans-serif;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: normal;
  color: #004E94;
}

.az-value-item__jp {
  display: block;
  margin-top: 10px;
  font-size: 17px;
  font-weight: 500;
  line-height: 1.9;
  color: #3B4A63;
}

.az-achieve {
  margin-top: 34px;
  background: #FAF8F5;
  border: 1px solid #E4E0D8;
  padding: clamp(24px, 3vw, 34px);
}

.az-achieve__label {
  margin: 0 0 14px;
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: normal;
  color: #0C2340;
}

.az-overview__row {
  display: grid;
  grid-template-columns: minmax(96px, 140px) 1fr;
  gap: 20px;
  padding: 20px 0;
  border-bottom: 1px solid #E4E0D8;
}

.az-overview__k {
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: normal;
  color: #0C2340;
}

.az-overview__v {
  font-size: 17px;
  font-weight: 500;
  line-height: 2em;
  color: #3B4A63;
}

/* ==========================================================================
   18. お問い合わせ（contact.php）
   ========================================================================== */

.az-form {
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.az-form__label {
  display: block;
}

.az-form__name {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: normal;
  color: #0C2340;
}

.az-form__badge {
  font-size: 10.5px;
  letter-spacing: 0.1em;
  line-height: normal;
  padding: 3px 8px;
  font-weight: 400;
  color: #B0483F;
  border: 1px solid #B0483F;
}

.az-form__badge--any {
  color: #8A929E;
  border-color: #8A929E;
}

.az-form__input {
  margin-top: 12px;
  width: 100%;
  padding: 15px 16px;
  font-size: 15px;
  line-height: normal;
  color: #1B2430;
  background: #FAF8F5;
  border: 1px solid #D8DCE3;
  border-radius: 0;
  outline: none;
}

.az-form__input:focus {
  border-color: #0C2340;
  background: #fff;
}

.az-form__input--textarea {
  resize: vertical;
  line-height: 1.9;
}

.az-form__note {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.95;
  color: #8A929E;
}

.az-form__submit {
  align-self: flex-start;
  background: #0C2340;
  color: #fff;
  border: 1px solid #0C2340;
  border-radius: 0;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: normal;
  padding: 19px 52px;
  cursor: pointer;
  transition: background 0.3s ease, border-color 0.3s ease;
}

.az-form__submit:hover {
  background: #B08D4F;
  border-color: #B08D4F;
}

/* --------------------------------------------------------------------------
   CMSお問い合わせフォーム（cms_ajax / design_pattern=1）の見た目調整
   ・CMSは innerHTML で自前の mail-form.css を body 内に読み込むため、
     site.css より後ろに来る。よって全セレクタを .az-cmsform で包み、
     CMS側より詰み合わせ（詳細度）を1段上げて上書きしている。
   ・目標は上の .az-form（ダミー時のデザイン）と同じ見た目。
   -------------------------------------------------------------------------- */

.az-cmsform {
  position: relative;
}

/* 外枠：CMSのpadding・背景を消す */
.az-cmsform .form-contents {
  padding: 0;
  margin: 0;
}

.az-cmsform .form-pattern-1 {
  background: transparent;
}

/* 項目リスト：CMSの「ラベル左280px・入力右」2カラムを解除して縦積みにする */
.az-cmsform .form-contents form dl {
  margin: 0;
}

.az-cmsform .form-contents form dl dt:not(.pattern-exclusion) {
  float: none;
  width: auto;
  padding: 0;
  margin: 0 0 12px;
  text-align: left;
}

.az-cmsform .form-contents form dl dd:not(.pattern-exclusion) {
  padding: 0 0 22px;
  margin: 0;
  line-height: normal;
  border-bottom: none;
}

.az-cmsform .form-contents form dl dd:not(.pattern-exclusion):last-child {
  padding-bottom: 0;
}

/* 項目名（.az-form__name 相当）
   バッジは span::before なので、inline-flex + order で「項目名→バッジ」の順に並べる */
.az-cmsform .form-contents form dl dt:not(.pattern-exclusion) span {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: normal;
  color: #0C2340;
}

/* 必須／任意バッジ（.az-form__badge 相当の角丸なし枠線バッジ） */
.az-cmsform .form-pattern-1 dl dt:not(.pattern-exclusion) span.required::before,
.az-cmsform .form-pattern-1 dl dt:not(.pattern-exclusion) span.optional::before {
  order: 2;
  top: 0;
  padding: 3px 8px;
  margin: 0;
  font-size: 10.5px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: normal;
  background: transparent;
  border-radius: 0;
}

.az-cmsform .form-pattern-1 dl dt:not(.pattern-exclusion) span.required::before {
  content: '必須';
  color: #B0483F;
  border: 1px solid #B0483F;
}

.az-cmsform .form-pattern-1 dl dt:not(.pattern-exclusion) span.optional::before {
  content: '任意';
  color: #8A929E;
  border: 1px solid #8A929E;
}

/* 入力欄（.az-form__input 相当） */
.az-cmsform .form-contents dd:not(.pattern-exclusion) .textarea,
.az-cmsform .form-contents dd:not(.pattern-exclusion) .textarea-serect {
  width: 100%;
  padding: 15px 16px;
  font-family: inherit;
  font-size: 15px;
  line-height: normal;
  color: #1B2430;
  background: #FAF8F5;
  border: 1px solid #D8DCE3;
  border-radius: 0;
  outline: none;
}

.az-cmsform .form-contents dd:not(.pattern-exclusion) input.textarea {
  height: auto;
}

.az-cmsform .form-contents dd:not(.pattern-exclusion) textarea.textarea {
  height: 232px;
  line-height: 1.9;
  resize: vertical;
}

.az-cmsform .form-contents dd:not(.pattern-exclusion) .textarea:focus,
.az-cmsform .form-contents dd:not(.pattern-exclusion) .textarea-serect:focus {
  border-color: #0C2340;
  background: #fff;
}

.az-cmsform .form-contents dd:not(.pattern-exclusion) .textarea::placeholder {
  color: #A9B0BB;
}

/* スパム対策用の隠しフィールド（CMSがインラインstyleでサイズ0にしている）
   ブロック内に行ボックスを作って余白が出るため、フローから外すだけにする（削除はしない） */
.az-cmsform .form-contents form input[name="winnie_the_pooh"] {
  position: absolute;
  left: -9999px;
}

/* 送信ボタン（.az-form__submit 相当：左寄せ・角丸なし・ネイビー→ゴールド） */
.az-cmsform .form-contents .submit-btn {
  display: inline-block;
  width: auto;
  margin: 30px 0 0;
  padding: 19px 52px;
  font-family: inherit;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: normal;
  text-align: center;
  color: #fff;
  background: #0C2340;
  border: 1px solid #0C2340;
  border-radius: 0;
  cursor: pointer;
  transition: background 0.3s ease, border-color 0.3s ease;
}

.az-cmsform .form-contents .submit-btn:hover {
  background: #B08D4F;
  border-color: #B08D4F;
}

/* CMS標準のメールアイコンは他ボタンと合わないため非表示 */
.az-cmsform .form-contents .submit-btn::before {
  display: none;
}

/* エラーメッセージ */
.az-cmsform .form-contents .form-err-msg {
  margin: 0 0 26px;
  padding: 18px 20px;
  font-size: 13.5px;
  line-height: 1.9;
  color: #B0483F;
  background: #FBF3F2;
  border: 1px solid #B0483F;
  border-radius: 0;
}

.az-cmsform .form-contents .form-err-msg ul {
  margin: 0;
  padding-left: 1.2em;
  list-style: disc outside;
}

/* 送信完了メッセージ */
.az-cmsform .form-pattern-1 .form-thanks-msg {
  padding: clamp(26px, 3vw, 38px);
  background: #FAF8F5;
  border: 1px solid #E4E0D8;
}

.az-cmsform .form-contents .form-thanks-msg p {
  margin: 0;
  font-size: 15px;
  line-height: 1.95;
  color: #3B4A63;
}

.az-cmsform .form-contents .form-thanks-msg .back-home-btn {
  width: auto;
  margin: 30px 0 0;
  text-align: center;
}

.az-cmsform .form-pattern-1 .form-thanks-msg .back-home-btn a {
  display: inline-block;
  padding: 19px 52px;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: normal;
  color: #fff;
  background: #0C2340;
  border: 1px solid #0C2340;
  border-radius: 0;
}

.az-cmsform .form-pattern-1 .form-thanks-msg .back-home-btn a:hover {
  background: #B08D4F;
  border-color: #B08D4F;
}

.az-cmsform__note {
  margin-bottom: 26px;
}

@media (max-width: 600px) {
  .az-cmsform .form-contents .submit-btn,
  .az-cmsform .form-pattern-1 .form-thanks-msg .back-home-btn a {
    display: block;
    width: 100%;
    padding-left: 0;
    padding-right: 0;
  }
}

.az-side-box {
  background: #FAF8F5;
  border: 1px solid #E4E0D8;
  padding: clamp(26px, 3vw, 38px);
}

.az-side-box__en {
  margin: 0 0 6px;
  font-family: 'Cabin', 'Zen Kaku Gothic New', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  line-height: normal;
  color: #B08D4F;
}

.az-side-box__tel {
  white-space: nowrap; /* 電話番号はハイフンで改行させない */
  font-family: 'Outfit', 'Cabin', sans-serif;
  font-size: clamp(24px, 3vw, 32px);
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: normal;
  color: #0C2340;
}

.az-side-box__hours {
  margin: 14px 0 0;
  font-size: 13px;
  line-height: 1.9;
  color: #5C6A85;
}

.az-side-box__detail {
  margin-top: 30px;
  padding-top: 26px;
  border-top: 1px solid #E4E0D8;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.az-side-box__k {
  display: block;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: normal;
  color: #0C2340;
}

.az-side-box__v {
  display: block;
  margin-top: 8px;
  font-size: 13.5px;
  line-height: 1.95;
  color: #3B4A63;
  text-wrap: balance; /* 7:3 で細くなった右カラムで最終行が1文字だけ残るのを防ぐ */
}

/* --------------------------------------------------------------------------
   アコーディオン（プライバシーポリシー等）
   開閉は js/common.js が [data-az-acc] に .is-open を付け外しして行う。
   .is-js が付くまでは開いた状態（JS無効でも本文が読める）。
   -------------------------------------------------------------------------- */

.az-acc {
  background: #FAF8F5;
  border: 1px solid #E4E0D8;
}

/* .az-grid の2行目・左カラムに置く（箱の幅＝フォームの幅＝本文の幅。
   上下の余白はグリッドの gap がそのまま効くので margin は持たせない） */
.az-acc--col1 {
  grid-column: 1;
}

.az-acc__hd {
  margin: 0;
}

.az-acc__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  width: 100%;
  margin: 0;
  padding: clamp(20px, 2.4vw, 28px) clamp(20px, 3vw, 34px);
  background: transparent;
  border: none;
  font-family: inherit;
  text-align: left;
  cursor: pointer;
  transition: background 0.3s ease;
}

.az-acc__head:hover {
  background: #F3EEE5;
}

.az-acc__en {
  display: block;
  font-family: 'Cabin', 'Zen Kaku Gothic New', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  line-height: normal;
  color: #B08D4F;
}

.az-acc__ttl {
  display: block;
  margin-top: 8px;
  font-size: clamp(16px, 1.7vw, 19px);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: normal;
  color: #0C2340;
}

/* ＋／− アイコン（角丸なしの四角＋2本線） */
.az-acc__icon {
  position: relative;
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border: 1px solid #0C2340;
  transition: border-color 0.3s ease;
}

.az-acc__icon::before,
.az-acc__icon::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  background: #0C2340;
  transition: transform 0.3s ease, opacity 0.3s ease, background 0.3s ease;
}

.az-acc__icon::before {
  width: 14px;
  height: 1px;
  transform: translate(-50%, -50%);
}

.az-acc__icon::after {
  width: 1px;
  height: 14px;
  transform: translate(-50%, -50%);
}

.az-acc.is-open .az-acc__icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
  opacity: 0;
}

.az-acc__head:hover .az-acc__icon {
  border-color: #B08D4F;
}

.az-acc__head:hover .az-acc__icon::before,
.az-acc__head:hover .az-acc__icon::after {
  background: #B08D4F;
}

.az-acc__body {
  overflow: hidden;
}

/* JS有効時のみ開閉アニメーション（max-height は common.js が px 指定） */
.az-acc.is-js .az-acc__body {
  transition: max-height 0.4s ease;
}

.az-acc__inner {
  padding: clamp(24px, 2.6vw, 30px) clamp(20px, 3vw, 34px) clamp(26px, 3vw, 34px);
  border-top: 1px solid #E4E0D8;
}

.az-acc__lead {
  margin: 0;
  font-size: 14.5px;
  line-height: 2;
  color: #3B4A63;
}


.az-acc__block {
  margin-top: 26px;
}

.az-acc__h {
  margin: 0 0 8px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: normal;
  color: #0C2340;
}

.az-acc__text {
  margin: 0;
  font-size: 13.5px;
  line-height: 2;
  color: #3B4A63;
}

.az-acc__block--contact {
  margin-top: 30px;
  padding-top: 26px;
  border-top: 1px solid #E4E0D8;
}

.az-acc__tel {
  color: #0C2340;
  font-weight: 700;
  text-decoration: none;
}

.az-acc__tel:hover {
  color: #B08D4F;
}

@media (max-width: 600px) {
  .az-acc__icon {
    width: 34px;
    height: 34px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .az-acc.is-js .az-acc__body {
    transition: none;
  }
}

/* ==========================================================================
   19. お知らせ一覧・詳細（entry_list.php / entry.php）
   ========================================================================== */

.az-blog {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: clamp(32px, 4vw, 64px);
  align-items: start;
}

.az-blog__main {
  grid-column: span 2;
  min-width: 0;
}

.az-blog__list {
  display: flex;
  flex-direction: column;
}

.az-blog-item {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 28px;
  padding: 26px 0;
  border-bottom: 1px solid #E4E0D8;
  transition: background 0.3s ease;
}

.az-blog-item:hover {
  background: #FAF8F5;
  opacity: 1;
}

/* サムネイル枠。画像が無い記事はロゴをプレースホルダとして中央に置く
   （画像ありの記事は .az-blog-item__img が枠全体を覆うのでロゴは見えない） */
.az-blog-item__thumb {
  width: 220px;
  aspect-ratio: 16 / 10;
  background-color: #EEF1F5;
  background-image: url('https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28511/logo.png');
  background-repeat: no-repeat;
  background-position: center;
  background-size: auto 76px; /* %だとSPで枠が大きくなった分ロゴも巨大化するため固定 */
  overflow: hidden;
}

/* CMSのサムネイル。<if_image> の中に閉じタグを書けない（CMSがifの終了と誤認する）ため、
   background-image ではなく img で出力している。画像なしの記事は枠の背景色だけが残る */
.az-blog-item__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.az-blog-item__body {
  min-width: 0;
}

.az-blog-item__meta {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}

.az-blog-item__date {
  font-family: 'Outfit', 'Cabin', sans-serif;
  font-size: 12.5px;
  letter-spacing: 0.06em;
  line-height: normal;
  color: #8A929E;
}

.az-blog-item__ttl {
  margin: 14px 0 10px;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.7;
  color: #0C2340;
}

.az-blog-item__excerpt {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.9em;
  color: #5C6A85;
  text-wrap: pretty;
}

.az-pager {
  margin-top: 44px;
  display: flex;
  gap: 8px;
  align-items: center;
}

/* 中身はCMSの <%page_link%> が出力する（.pages > .page_prev / .page_next）。
   数字ページャは出力できない仕様のため、前後リンク型に変更している。 */
.az-pager .pages {
  display: flex;
  align-items: center;
  gap: 8px;
}

.az-pager .page_prev a,
.az-pager .page_next a {
  height: 42px;
  display: flex;
  align-items: center;
  padding: 0 20px;
  border: 1px solid #D8DCE3;
  font-size: 12.5px;
  letter-spacing: 0.06em;
  color: #3B4A63;
  transition: border-color 0.3s ease, color 0.3s ease;
}

.az-pager .page_prev a:hover,
.az-pager .page_next a:hover {
  border-color: #0C2340;
  color: #0C2340;
}

/* 1ページだけのときは <%page_link%> が空になるため、上余白を出さない */
.az-pager:not(:has(a)) {
  display: none;
}

.az-side {
  display: flex;
  flex-direction: column;
  gap: 34px;
}

.az-side__ttl {
  margin: 0 0 18px;
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: normal;
  color: #0C2340;
  padding-bottom: 14px;
  border-bottom: 1px solid #4E669E;
}

.az-side__list {
  display: flex;
  flex-direction: column;
}

/* 月別アーカイブはCMSの固定出力（<ul><li><a href="entry_list.php?d=YYYY-MM">2026年08月（3）</a></li></ul>）。
   テンプレート登録がない＝マークアップを変えられないため、CSS側で旧 .az-side__archive と同じ見た目に合わせる */
.az-side__list ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.az-side__list li a {
  display: block;
  font-size: 13.5px;
  line-height: normal;
  color: #3B4A63;
  padding: 13px 0;
  border-bottom: 1px solid #E4E0D8;
}

/* --- 記事詳細 --- */
.az-crumb {
  background: #fff;
  /* ヘッダーが -120px でせり上がっている分を確保してから元データの padding を足す */
  padding: calc(120px + clamp(28px, 4vw, 44px)) 0 0;
}

.az-crumb__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  color: #8A929E;
  letter-spacing: 0.04em;
}

.az-crumb__list a {
  color: #8A929E;
}

.az-crumb__current {
  color: #3B4A63;
}

.az-article {
  background: #fff;
  padding: clamp(36px, 5vw, 60px) 0 clamp(60px, 8vw, 104px);
}

.az-article__meta {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}

.az-article__date {
  font-family: 'Outfit', 'Cabin', sans-serif;
  font-size: 13px;
  letter-spacing: 0.06em;
  line-height: normal;
  color: #8A929E;
}

.az-article__ttl {
  margin: 22px 0 30px;
  font-size: clamp(23px, 3.2vw, 36px);
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.03em;
  color: #0C2340;
  text-wrap: pretty;
}

.az-article__body {
  margin-top: clamp(30px, 4vw, 46px);
}

/* 本文はCMS出力のHTML（クラスは付かない）。要素セレクタで .az-text / .az-article__h2 と
   同じ体裁を与える。CMSの外側ラッパー（div）自体には見た目を持たせない。 */
.az-article__body p {
  margin: 0 0 24px;
  font-size: 17px;
  font-weight: 500;
  line-height: 2em;
  color: #3B4A63;
  text-wrap: pretty;
}

.az-article__body h2,
.az-article__body h3 {
  margin: 38px 0 24px;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.7;
  color: #0C2340;
  padding-left: 16px;
  border-left: 3px solid #B08D4F;
}

.az-article__body h2 { font-size: 19px; }
.az-article__body h3 { font-size: 17px; border-left-color: #4E669E; }

.az-article__body ul,
.az-article__body ol {
  margin: 0 0 24px;
  padding-left: 1.4em;
}

.az-article__body li {
  font-size: 17px;
  line-height: 2em;
  color: #3B4A63;
}

.az-article__body img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 0 0 24px;
}

.az-article__body a {
  color: #004E94;
  text-decoration: underline;
}

.az-article__body strong {
  font-weight: 700;
  color: #1B2430;
}

/* 最後の要素の下余白は .az-article__foot 側の余白に任せる */
.az-article__body > *:last-child > *:last-child,
.az-article__body > *:last-child {
  margin-bottom: 0;
}

.az-article__foot {
  margin-top: clamp(38px, 5vw, 60px);
  padding-top: 34px;
  border-top: 1px solid #E4E0D8;
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: space-between;
}

.az-article__btn {
  background: #0C2340;
  color: #fff;
  font-size: 13px;
  letter-spacing: 0.06em;
  padding: 15px 30px;
  transition: background 0.3s ease;
}

.az-article__btn:hover {
  background: #B08D4F;
  color: #fff;
}

/* ==========================================================================
   20. レスポンシブ
   ========================================================================== */

/* 1100px以下：PCナビ／右側CTAを隠しハンバーガーへ（main.css の切替に追従） */
@media (max-width: 1100px) {
  .az-header__nav,
  .az-header__right {
    display: none;
  }

  .az-header__inner {
    min-height: 76px;
  }

  .az-header {
    margin-bottom: calc(-1 * (76px + 24px));
  }

  .az-header__logo img {
    height: 42px;
  }
}

@media (max-width: 896px) {
  .az-about__figs {
    margin-left: 0;
  }

  .az-about__fig-lg {
    margin-top: 0;
  }

  .az-cta__btns {
    justify-content: flex-start;
  }

  .az-footer__nav {
    grid-auto-flow: row;
    grid-template-rows: none;
    justify-content: start;
    justify-items: start;
    align-content: start;
    align-self: start;
  }
}

@media (max-width: 896px) {
  .az-flow {
    grid-template-columns: 1fr;
  }

  .az-flow__fig {
    position: static;
    aspect-ratio: 16 / 9;
  }

  .az-evo__compare,
  .az-way__list {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 639px) {
  .az-header__logo-name {
    display: none;
  }

  .az-news__list,
  .az-blog__main {
    grid-column: auto;
  }

  .az-flow__step {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .az-flow__desc {
    padding: 0 0 clamp(24px, 6vw, 34px) 60px;
  }

  .az-blog-item {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .az-blog-item__thumb {
    width: 100%;
  }

  .az-article__foot {
    justify-content: flex-start;
  }

  .az-mv__inner {
    padding-top: clamp(140px, 34vw, 200px);
  }

  .az-cta__tel,
  .az-cta__mail {
    width: 100%;
    justify-content: center;
    text-align: center;
  }
}
