@charset "UTF-8";
/*
 * ======================================
 * 株式会社 東瑞 — サイト固有CSS（site.css）
 * ======================================
 * 配色・フォントは scss/main.scss で @use "vars" with(...) により上書きし、
 * main.css にコンパイル済み（base=#0090D2 / sub=#0d2c3e / accent=#DF002E）。
 * 本ファイルは claude-design-output の固有レイアウト・余白・装飾を
 * tz- プレフィックスで補完する（共通コンポーネントで再現できない差分のみ）。
 *
 * --------------------------------------
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * --------------------------------------
 * 共通レイアウト/部品
 *   .tz-wrap(--1240〜900)   - design準拠の固定幅ラッパー（左右28px）
 *   .tz-section(--sm)       - セクション余白 84px / 72px
 *   .tz-sec-head(--spread)  - セクション見出し（中央 / 左右振り分け）
 *   .tz-btn(--red/--white/--lg/--md) - 角丸3pxのソリッドCTAボタン
 *   .tz-link-arrow          - 「→」付きテキストリンク
 * ヘッダー/フッター/共通帯
 *   .tz-header(--solid/--overlay) - 上部バー＋メインバー。overlayはTOPの写真上重ね＋スクロールで固定化
 *   .tz-cta                 - ブルーのお問い合わせCTA帯（拠点TEL2件＋メールボタン）
 *   .tz-footer / .tz-pagetop / .tz-hero - フッター・ページトップ・下層ヒーロー
 * ページ固有
 *   TOP     : .tz-mv / .tz-news / .tz-firsttime / .tz-strength / .tz-itemcard / .tz-flowband / .tz-yard
 *   items   : .tz-items-intro / .tz-itemsec / .tz-cat / .tz-chip / .tz-ng / .tz-finalcta
 *   flow    : .tz-flowintro / .tz-pattern / .tz-faq
 *   recruit : .tz-rec-hero / .tz-rec-photos / .tz-reason / .tz-reqs / .tz-rec-cta
 *   company : .tz-overview / .tz-office / .tz-company-cta
 *   contact : .tz-contact / .tz-form / .tz-ipt
 *
 * --------------------------------------
 * 共通SCSSに不足していたもの（5分類で整理）
 * --------------------------------------
 * ・構造不足：上部ユーティリティバー付きヘッダー、写真上オーバーレイ→スクロール固定化する
 *             ヘッダーパターン（header-sticky--transparent に近いが上部バー＋2段構成は未対応）
 * ・装飾パターン不足：番号(01/02/03)を巨大英字あしらいにしたカード（strength/itemsec）、
 *             5カラム＋CSS矢印のフロー帯（flowband, card-flow--4col に近いが配色・矢印形状が異なる）
 * ・値の粒度不足：design固有の余白（46/54/62/78/84px）・フォントサイズ（13.5/14.5/30/34/40/62px）が
 *             共通utilityの刻みに無く、セクション単位で個別指定
 * ・状態不足：—（hoverは共通hover utility相当を個別実装）
 * ・指定方向不足：—
 */

/* ============ アニメーション（TOP） ============ */
/* スクロールで要素をフェードアップ表示（top.js で .tz-reveal 付与＋is-in） */
.tz-reveal { opacity: 0; transform: translateY(26px); transition: opacity .7s ease, transform .7s ease; }
.tz-reveal.is-in { opacity: 1; transform: none; }
/* メインビュー コピーの登場アニメ */
.tz-mv__copy .tz-wrap > * { opacity: 0; transform: translateY(22px); animation: tzMvIn .9s cubic-bezier(.2,.7,.2,1) forwards; }
.tz-mv__title { animation-delay: .15s; }
.tz-mv__tagline { animation-delay: .35s; }
.tz-mv__lead { animation-delay: .5s; }
.tz-mv__btns { animation-delay: .65s; }
@keyframes tzMvIn { to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .tz-reveal, .tz-mv__copy .tz-wrap > * { transition: none; animation: none; opacity: 1; transform: none; }
}

/* ============ ベース微調整 ============ */
body { letter-spacing: normal; }
.tz-page { color: #16323f; background: #fff; font-family: 'Noto Sans JP', sans-serif; }
img { display: block; }

/* 共通ラッパー幅（design準拠：左右28px） */
.tz-wrap { margin: 0 auto; padding-left: 28px; padding-right: 28px; }
.tz-wrap--1240 { max-width: 1240px; }
.tz-wrap--1200 { max-width: 1200px; }
.tz-wrap--1160 { max-width: 1160px; }
.tz-wrap--1100 { max-width: 1100px; }
.tz-wrap--1000 { max-width: 1000px; }
.tz-wrap--980  { max-width: 980px; }
.tz-wrap--960  { max-width: 960px; }
.tz-wrap--900  { max-width: 900px; }

/* セクション背景色（design準拠） */
.tz-bg-white   { background: #fff; }
.tz-bg-gray    { background: #fbfbfb; }
.tz-bg-navy    { background: #0d2c3e; color: #fff; }

/* セクション見出し（中央・左） */
.tz-sec-head { text-align: center; margin-bottom: 44px; }
.tz-sec-head__title { font-size: 34px; font-weight: 700; margin: 0; line-height: 1.4; }
.tz-sec-head__title .ac { color: #0090D2; }
.tz-sec-head__lead { font-size: 15px; color: #52677a; margin: 10px 0 0; line-height: 1.8; }
/* タイトル下の短い横棒あしらい（青） */
.tz-sec-head__bar { display: block; width: 48px; height: 3px; background: #0090D2; border-radius: 2px; margin: 14px auto 0; }
/* 背景に大きな英字を透過で敷き、日本語タイトルを前面に重ねる見出し */
.tz-sec-head--bgtext { position: relative; }
.tz-sec-head__en { display: block; font-family: 'Archivo', sans-serif; font-weight: 800; font-size: 92px;
  line-height: 1; color: #0d2c3e; opacity: .06; letter-spacing: .06em; text-transform: uppercase; pointer-events: none; }
.tz-sec-head--bgtext .tz-sec-head__title { position: relative; margin-top: -54px; }

/* 汎用ボタン */
.tz-btn { display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  text-decoration: none; font-weight: 700; border-radius: 3px; letter-spacing: .04em;
  transition: opacity .3s ease, background .3s ease, color .3s ease; line-height: 1.5; }
.tz-btn:hover { opacity: .88; }
.tz-btn--red   { background: #DF002E; color: #fff; }
.tz-btn--white { background: rgba(255,255,255,.96); color: #0d2c3e; }
.tz-btn--lg { font-size: 16px; padding: 18px 34px; }
.tz-btn--md { font-size: 16px; padding: 16px 36px; border-radius: 4px; }
.tz-btn__arrow { font-family: 'Archivo', sans-serif; }
.tz-btn--white .tz-btn__arrow { color: #0090D2; }

/* テキストリンク（→付き・ブルー） */
.tz-link-arrow { display: inline-flex; align-items: center; gap: 8px; color: #0090D2;
  font-size: 14.5px; font-weight: 700; text-decoration: none; }
.tz-link-arrow .tz-btn__arrow { font-family: 'Archivo', sans-serif; }
.tz-link-arrow:hover { opacity: .8; }

/* ============ ヘッダー ============ */
.tz-header { font-family: 'Noto Sans JP', sans-serif; }
.tz-header--solid { position: sticky; top: 0; z-index: 100; }
.tz-header--overlay { position: absolute; top: 0; left: 0; right: 0; z-index: 100; }
.tz-header--overlay.is-fixed { position: fixed; background: #fff; box-shadow: 0 2px 14px rgba(13,44,62,.1); animation: tzSlideDown .3s ease; }
@keyframes tzSlideDown { from { transform: translateY(-100%); } to { transform: translateY(0); } }

.tz-header__bar { background: #0090D2; color: #fff; }
.tz-header__bar-inner { max-width: 1240px; margin: 0 auto; padding: 0 28px; height: 38px;
  display: flex; align-items: center; justify-content: space-between; font-size: 12.5px; letter-spacing: .04em; }
.tz-header__yards { display: flex; align-items: center; gap: 18px; }
.tz-header__yard { display: flex; align-items: center; gap: 7px; }
.tz-header__yard-name { font-family: 'Archivo', sans-serif; font-weight: 700; opacity: .85; }
.tz-header__yard-tel { font-family: 'Archivo', sans-serif; font-weight: 700; letter-spacing: .04em; }
.tz-header__sep { opacity: .45; }
.tz-header__hours { opacity: .92; }

.tz-header__main { background: #fff; box-shadow: 0 1px 0 rgba(16,40,56,.06); }
.tz-header__main-inner { max-width: 1240px; margin: 0 auto; padding: 0 28px; height: 80px;
  display: flex; align-items: center; justify-content: space-between; }
.tz-header__logo { font-size: 24px; font-weight: 700; color: #0e2a3a; letter-spacing: .04em; text-decoration: none; }
.tz-header__nav { display: flex; align-items: center; gap: 2px; }
.tz-header__nav-item { position: relative; color: #16323f; font-size: 14.5px; font-weight: 500;
  padding: 12px 16px; text-decoration: none; letter-spacing: .02em; white-space: nowrap; }
.tz-header__nav-item:hover { color: #0090D2; opacity: 1; }
.tz-header__nav-item.is-current { font-weight: 700; }
.tz-header__nav-item.is-current::after { content: ""; position: absolute; left: 16px; right: 16px;
  bottom: 4px; height: 2.5px; background: #0090D2; border-radius: 2px; }
.tz-header__cta { margin-left: 14px; background: #DF002E; color: #fff; font-size: 14px; font-weight: 700;
  padding: 13px 26px; border-radius: 3px; text-decoration: none; letter-spacing: .04em; white-space: nowrap; transition: opacity .3s ease; }
.tz-header__cta:hover { opacity: .9; }

/* オーバーレイ（TOP・未スクロール時：写真の上に白文字） */
.tz-header--overlay:not(.is-fixed) .tz-header__bar { background: transparent; border-bottom: 1px solid rgba(255,255,255,.14); }
.tz-header--overlay:not(.is-fixed) .tz-header__bar-inner { height: 40px; color: rgba(255,255,255,.9); }
.tz-header--overlay:not(.is-fixed) .tz-header__main { background: transparent; box-shadow: none; }
.tz-header--overlay:not(.is-fixed) .tz-header__main-inner { height: 84px; }
.tz-header--overlay:not(.is-fixed) .tz-header__logo { color: #fff; font-size: 25px; }
.tz-header--overlay:not(.is-fixed) .tz-header__nav-item { color: rgba(255,255,255,.92); }
.tz-header--overlay:not(.is-fixed) .tz-header__nav-item:hover { color: #fff; }
.tz-header--overlay:not(.is-fixed) .tz-header__nav-item.is-current::after { background: #fff; }
/* スクロール固定後は下層ページと同じ（水色帯＋メインバー）。
   :not(.is-fixed) のオーバーレイ用上書きが外れ、ベースのソリッド表示に戻る。 */

/* ハンバーガー（PC非表示）— 開閉機構は共通 .nav-toggle を流用し、色・位置のみ上書き */
.nav-toggle { background: rgba(13,44,62,.92); top: 14px; right: 16px; z-index: 210; }
.nav-toggle__line { background: #fff; }

/* SPフルスクリーンナビ（共通 .sp-nav を流用しつつ見た目を上書き） */
.sp-nav { position: fixed; inset: 0; z-index: 200; background: #0d2c3e; display: flex; flex-direction: column;
  justify-content: center; padding: 80px 32px 40px; opacity: 0; visibility: hidden; transform: none; transition: opacity .35s ease, visibility .35s ease; overflow-y: auto; }
.sp-nav.is-open { opacity: 1; visibility: visible; transform: none; }
.sp-nav__list { display: flex; flex-direction: column; gap: 2px; }
.sp-nav__link { display: block; color: #fff; font-size: 17px; font-weight: 700; padding: 16px 8px;
  border-bottom: 1px solid rgba(255,255,255,.1); text-decoration: none; justify-content: flex-start; }
.sp-nav__link::after { content: none; }
.sp-nav__link.is-current { color: #5fb9e6; }
.sp-nav__link--cta { background: #DF002E; border-radius: 4px; text-align: center; border: none; margin-top: 16px; }
.sp-nav__bottom { margin-top: 30px; display: flex; flex-direction: column; gap: 10px; }
.sp-nav__tel { color: #fff; font-family: 'Archivo', sans-serif; font-size: 20px; font-weight: 700;
  text-decoration: none; display: flex; align-items: baseline; gap: 10px; }
.sp-nav__tel span { font-family: 'Noto Sans JP', sans-serif; font-size: 11px; font-weight: 500; opacity: .8; }
.sp-nav__hours { color: #9fb3c0; font-size: 12px; margin-top: 6px; }

/* ============ お問い合わせCTA帯 ============ */
.tz-cta { background: #0090D2; color: #fff; }
.tz-cta__inner { max-width: 1100px; margin: 0 auto; padding: 54px 28px; display: flex;
  align-items: center; justify-content: space-between; gap: 40px; }
.tz-cta__en { font-family: 'Archivo', sans-serif; font-size: 13px; font-weight: 700; letter-spacing: .22em; opacity: .8; }
.tz-cta__title { font-size: 30px; font-weight: 700; letter-spacing: .02em; margin: 8px 0 0; line-height: 1.4; }
.tz-cta__desc { font-size: 15px; opacity: .92; margin: 10px 0 0; line-height: 1.7; }
.tz-cta__actions { display: flex; flex-direction: column; gap: 12px; flex-shrink: 0; }
.tz-cta__tels { display: flex; gap: 14px; }
.tz-cta__tel { background: rgba(255,255,255,.12); border-radius: 4px; padding: 12px 18px; text-decoration: none; display: block; transition: background .3s ease; }
.tz-cta__tel:hover { background: rgba(255,255,255,.2); opacity: 1; }
.tz-cta__tel-label { display: block; font-size: 11px; letter-spacing: .04em; opacity: .85; color: #fff; }
.tz-cta__tel-num { display: block; font-family: 'Archivo', sans-serif; font-size: 23px; font-weight: 700; letter-spacing: .02em; color: #fff; }
.tz-cta__mail { background: #DF002E; color: #fff; font-size: 16px; font-weight: 700; text-align: center;
  padding: 16px; border-radius: 3px; letter-spacing: .06em; text-decoration: none; transition: opacity .3s ease; }
.tz-cta__mail:hover { opacity: .9; }

/* ============ フッター ============ */
.tz-footer { background: #0d2c3e; color: #cdd9e1; font-family: 'Noto Sans JP', sans-serif; }
.tz-footer__inner { max-width: 1240px; margin: 0 auto; padding: 60px 28px 40px;
  display: grid; grid-template-columns: 0.72fr 1.28fr; gap: 48px; }
.tz-footer__name { font-size: 21px; font-weight: 700; color: #fff; letter-spacing: .04em; margin: 0 0 14px; }
.tz-footer__license { font-size: 12px; color: #7b93a2; margin: 0 0 24px; letter-spacing: .02em; }
.tz-footer__meta { display: flex; gap: 30px; font-size: 13.5px; }
.tz-footer__meta-label { color: #5fb9e6; font-size: 11.5px; font-weight: 700; letter-spacing: .08em; margin: 0 0 5px; }
.tz-footer__meta-value { color: #dde7ed; margin: 0; }
.tz-footer__yards { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.tz-footer__yard { background: #0a2433; border-radius: 5px; overflow: hidden; }
.tz-footer__map { background: #123749; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; color: #5b86a0; height: 104px; }
.tz-footer__map span { font-size: 10.5px; letter-spacing: .06em; }
.tz-footer__yard-body { padding: 16px 18px; }
.tz-footer__yard-name { font-size: 14.5px; font-weight: 700; color: #fff; margin: 0; }
.tz-footer__yard-role { font-size: 11px; color: #5fb9e6; margin: 3px 0 9px; letter-spacing: .04em; }
.tz-footer__yard-addr { font-size: 12.5px; color: #9fb3c0; line-height: 1.7; margin: 0; }
.tz-footer__yard-tel { font-size: 12.5px; color: #9fb3c0; line-height: 1.7; margin: 6px 0 0; }
.tz-footer__bottom { border-top: 1px solid rgba(255,255,255,.08); text-align: center; }
.tz-footer__copy { display: inline-block; padding: 18px 28px; font-size: 11.5px; color: #7b93a2;
  font-family: 'Archivo', sans-serif; letter-spacing: .04em; }

/* ============ ページトップ ============ */
.tz-pagetop { position: fixed; right: 20px; bottom: 20px; z-index: 90; width: 46px; height: 46px;
  border: none; border-radius: 50%; background: #0090D2; cursor: pointer; opacity: 0; visibility: hidden;
  transition: .3s ease; display: flex; align-items: center; justify-content: center; }
.tz-pagetop.is-visible { opacity: 1; visibility: visible; }
.tz-pagetop:hover { background: #0b7fb8; }
.tz-pagetop__arrow { display: block; width: 10px; height: 10px; border-top: 2px solid #fff; border-right: 2px solid #fff; transform: rotate(-45deg); margin-top: 3px; }

/* ============ 下層ページヒーロー ============ */
.tz-hero { position: relative; background: #0d2c3e; overflow: hidden; }
.tz-hero::before { content: ""; position: absolute; inset: 0;
  background-image: radial-gradient(circle at 15% 20%, rgba(0,144,210,.32), transparent 42%),
    radial-gradient(circle at 88% 90%, rgba(0,144,210,.2), transparent 40%); }
.tz-hero__inner { position: relative; max-width: 1200px; margin: 0 auto; padding: 62px 28px 56px; color: #fff; }
.tz-hero__crumb { display: flex; align-items: center; gap: 9px; font-size: 12.5px; color: #8fb0c4; margin-bottom: 22px; }
.tz-hero__crumb a { color: #8fb0c4; text-decoration: none; }
.tz-hero__crumb a:hover { color: #cfe0ea; opacity: 1; }
.tz-hero__crumb-sep { opacity: .6; }
.tz-hero__crumb-current { color: #cfe0ea; }
.tz-hero__title { font-size: 40px; font-weight: 700; margin: 0; letter-spacing: .02em; }

/* ============ レスポンシブ（共通） ============ */
@media (max-width: 1100px) {
  .tz-header__nav { display: none; }
  .nav-toggle { display: flex; }
  .tz-header__bar-inner { font-size: 11.5px; padding: 0 16px; }
  .tz-header__main-inner { padding: 0 16px; }
}
@media (max-width: 900px) {
  .tz-cta__inner { flex-direction: column; align-items: stretch; gap: 26px; }
  .tz-footer__inner { grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 768px) {
  .tz-wrap { padding-left: 20px; padding-right: 20px; }
  .tz-header__bar { display: none; }
  .tz-sec-head__title { font-size: 26px; }
  .tz-cta__title { font-size: 23px; }
  .tz-cta__tels { flex-direction: column; }
  .tz-hero__inner { padding: 44px 20px 40px; }
  .tz-hero__title { font-size: 28px; }
}
@media (max-width: 639px) {
  .tz-footer__yards { grid-template-columns: 1fr; }
  .tz-footer__meta { gap: 20px; }
}

/* ============================================================
 * TOPページ（index.php）
 * ============================================================ */

/* セクション余白 */
.tz-section { padding: 84px 0; }
.tz-section--sm { padding: 72px 0; }
.tz-sec-head--spread { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; text-align: left; margin-bottom: 40px; }
.tz-sec-head--spread .tz-sec-head__lead { max-width: 640px; }
.tz-tal { text-align: left; }

/* メインビュー */
/* MV高さ 100vh（フル画面）。スライダー(#main_slider)は枠に追従させ高さを一致させる（位置ずれ防止）。 */
.tz-mv { position: relative; height: 100vh; min-height: 560px; overflow: hidden; background: #0d2c3e; }
.tz-mv__slideshow { position: absolute; inset: 0; height: 100%; z-index: 1; }
.tz-mv__slide, .tz-mv__slide-inner { height: 100%; }
.tz-mv__slide img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; }
/* CMSスライダー出力をMV枠いっぱいに追従させる（§10.1） */
.tz-mv__slideshow #cms-slider-1-1-area,
.tz-mv__slideshow .swiper,
.tz-mv__slideshow .swiper-wrapper,
.tz-mv__slideshow .swiper-slide { height: 100%; }
.tz-mv__slideshow .swiper-slide img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; }
/* CMSスライダー(#main_slider)は既定で高さ 98vh。MV枠(#slideshow)に合わせて100%へ上書きし、
   スマホ等で画像表示位置がずれるのを防ぐ（CMS注入CSSより詳細度を上げて勝たせる） */
#slideshow #main_slider.slider_wrapper { --swiper-wrapper-height: 100%; }
#slideshow #main_slider .main_slider__outer,
#slideshow #main_slider.slider_wrapper { height: 100%; }
.tz-mv__overlay { position: absolute; inset: 0; z-index: 2;
  /* 上〜中部は軽め（写真を見せる）／コピーのある下部だけ濃くして可読性を確保 */
  background:
    linear-gradient(180deg,
      rgba(8,30,44,.42) 0%,
      rgba(8,30,44,.20) 24%,
      rgba(8,30,44,.24) 42%,
      rgba(8,30,44,.46) 60%,
      rgba(8,30,44,.68) 82%,
      rgba(8,30,44,.78) 100%),
    rgba(8,30,44,.12); }
.tz-mv__copy { position: absolute; left: 0; right: 0; bottom: 130px; z-index: 10; }
.tz-mv__title { font-size: 62px; font-weight: 700; line-height: 1.28; letter-spacing: .01em; margin: 0 0 8px; color: #fff; text-shadow: 0 2px 24px rgba(0,0,0,.3); }
.tz-mv__title-ac { color: #7fd0f3; }
.tz-mv__tagline { font-size: 19px; font-weight: 500; color: #fff; margin: 0 0 22px; letter-spacing: .02em; text-shadow: 0 2px 14px rgba(0,0,0,.35); }
.tz-mv__lead { font-size: 15.5px; line-height: 1.95; max-width: 680px; margin: 0 0 34px; color: #fff; opacity: .9; }
.tz-mv__btns { display: flex; gap: 14px; }
.tz-mv__dots { position: absolute; left: 50%; transform: translateX(-50%); bottom: 34px; z-index: 10; display: flex; gap: 10px; }
.tz-mv__dots span { width: 10px; height: 4px; border-radius: 2px; background: rgba(255,255,255,.45); }
.tz-mv__dots span.is-active { width: 34px; background: #fff; }

/* お知らせ */
.tz-news { display: grid; grid-template-columns: 230px 1fr; gap: 30px; align-items: start; padding-top: 46px; padding-bottom: 46px; }
.tz-news__en { font-family: 'Archivo', sans-serif; font-size: 13px; font-weight: 700; letter-spacing: .18em; color: #0090D2; margin: 0 0 4px; }
/* お知らせ一覧：3件分の高さで固定し、それ以降はスクロール表示（1件=68px×3） */
.tz-news__list { max-height: 204px; overflow-y: auto; }
.tz-news__list::-webkit-scrollbar { width: 6px; }
.tz-news__list::-webkit-scrollbar-thumb { background: #cfdae2; border-radius: 3px; }
.tz-news__list::-webkit-scrollbar-track { background: #f0f3f6; }
.tz-news__heading { font-size: 34px; font-weight: 700; margin: 0; line-height: 1.4; }
.tz-news__item { display: flex; align-items: center; gap: 20px; padding: 16px 4px; border-bottom: 1px solid #eef1f4; text-decoration: none; color: inherit; }
.tz-news__item:hover { opacity: 1; } /* ホバーで変化させない */
.tz-news__date { font-family: 'Archivo', sans-serif; font-size: 13px; font-weight: 700; color: #0090D2; background: #e8f5fc; padding: 6px 14px; border-radius: 2px; letter-spacing: .04em; flex-shrink: 0; text-align: center; }
.tz-news__title { font-size: 14.5px; }

/* はじめての方へ */
.tz-firsttime { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.tz-firsttime__card { background: #fff; border-radius: 6px; overflow: hidden; box-shadow: 0 2px 18px rgba(13,44,62,.06); display: flex; flex-direction: column; }
.tz-firsttime__img { height: 260px; overflow: hidden; }
.tz-firsttime__img img { width: 100%; height: 100%; object-fit: cover; object-position: center 32%; }
.tz-firsttime__bar { color: #fff; padding: 22px 32px; display: flex; align-items: center; gap: 16px; }
.tz-firsttime__bar--blue { background: #0090D2; }
.tz-firsttime__bar--navy { background: #0d2c3e; }
.tz-firsttime__bar-title { font-size: 23px; font-weight: 700; }
.tz-firsttime__body { padding: 28px 32px; flex: 1; display: flex; flex-direction: column; }
.tz-firsttime__text { font-size: 14.5px; line-height: 1.95; color: #3a4d5c; margin: 0 0 22px; flex: 1; }
.tz-firsttime__btn { text-decoration: none; background: #fff; font-size: 14.5px; font-weight: 700; text-align: center; padding: 14px; border-radius: 3px; transition: .3s ease; }
.tz-firsttime__btn--blue { color: #0090D2; border: 1.5px solid #0090D2; }
.tz-firsttime__btn--blue:hover { background: #0090D2; color: #fff; opacity: 1; }
.tz-firsttime__btn--navy { color: #0d2c3e; border: 1.5px solid #0d2c3e; }
.tz-firsttime__btn--navy:hover { background: #0d2c3e; color: #fff; opacity: 1; }

/* 3つの強み */
.tz-strengths { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.tz-strength { background: #f4f6f8; border-radius: 6px; padding: 36px 30px; position: relative; }
.tz-strength__no { display: block; font-family: 'Archivo', sans-serif; font-size: 54px; font-weight: 800; color: #cfe4f0; line-height: .9; margin-bottom: 16px; }
.tz-strength__title { font-size: 18px; font-weight: 700; margin: 0 0 14px; line-height: 1.4; color: #0d2c3e; }
.tz-strength__body { font-size: 14px; line-height: 1.95; color: #46596a; margin: 0; }

/* 主な取扱品目（カード） */
.tz-itemcards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.tz-itemcard { background: #fff; border-radius: 6px; overflow: hidden; box-shadow: 0 2px 16px rgba(13,44,62,.05); text-decoration: none; color: inherit; display: block; transition: transform .3s ease, box-shadow .3s ease; }
.tz-itemcard:hover { opacity: 1; transform: translateY(-4px); box-shadow: 0 8px 24px rgba(13,44,62,.12); }
.tz-itemcard__img { height: 180px; position: relative; overflow: hidden; background: linear-gradient(135deg, #dde7ee, #c6d6e0); }
.tz-itemcard__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.tz-itemcard:hover .tz-itemcard__img img { transform: scale(1.06); }
.tz-itemcard__tag { position: absolute; top: 14px; left: 14px; z-index: 2; background: #0090D2; color: #fff; font-size: 12px; font-weight: 700; padding: 5px 12px; border-radius: 2px; letter-spacing: .04em; }
.tz-itemcard__body { padding: 24px; }
.tz-itemcard__title { font-size: 19px; font-weight: 700; margin: 0 0 10px; color: #0d2c3e; }
.tz-itemcard__text { font-size: 13px; line-height: 1.85; color: #5b6d7c; margin: 0; }

/* お取引の流れ band */
.tz-flowband__more { display: inline-flex; align-items: center; gap: 8px; color: #fff; font-size: 14.5px; font-weight: 700; text-decoration: none; border: 1px solid rgba(255,255,255,.4); padding: 13px 24px; border-radius: 3px; flex-shrink: 0; transition: background .3s ease; }
.tz-flowband__more:hover { background: rgba(255,255,255,.12); opacity: 1; }
.tz-flowband { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; align-items: stretch; gap: 10px; }
.tz-flowband__step { background: rgba(255,255,255,.06); border-radius: 6px; padding: 30px 26px; text-align: center; }
.tz-flowband__icon { width: 62px; height: 62px; border-radius: 50%; background: rgba(127,208,243,.14); border: 1px solid rgba(127,208,243,.35); display: flex; align-items: center; justify-content: center; margin: 0 auto 16px; }
.tz-flowband__no { font-family: 'Archivo', sans-serif; font-size: 13px; font-weight: 700; letter-spacing: .14em; color: #7fd0f3; }
.tz-flowband__title { font-size: 21px; font-weight: 700; margin: 12px 0 10px; color: #fff; }
.tz-flowband__body { font-size: 13.5px; color: #a9c0cf; line-height: 1.8; }
.tz-flowband__arrow { display: flex; align-items: center; font-family: 'Archivo', sans-serif; font-size: 28px; color: #7fd0f3; font-weight: 700; }

/* 事業所案内（TOP） */
.tz-yards { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.tz-yard { background: #fff; border-radius: 6px; overflow: hidden; box-shadow: 0 2px 16px rgba(13,44,62,.06); }
.tz-yard__map { height: 230px; background: #dde7ee; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; color: #7c95a6; }
.tz-yard__map span { font-size: 11px; letter-spacing: .14em; font-family: 'Archivo', sans-serif; }
.tz-yard__body { padding: 28px 30px; }
.tz-yard__head { display: flex; align-items: center; gap: 12px; margin-bottom: 6px; }
.tz-yard__name { font-size: 22px; font-weight: 700; margin: 0; color: #0d2c3e; }
.tz-yard__role { font-size: 11.5px; font-weight: 700; color: #0090D2; background: #e8f5fc; padding: 4px 11px; border-radius: 2px; }
.tz-yard__addr { font-size: 13.5px; color: #5b6d7c; line-height: 1.9; margin: 10px 0 14px; }
.tz-yard__tel { display: flex; gap: 24px; font-family: 'Archivo', sans-serif; font-size: 15px; font-weight: 700; color: #0d2c3e; letter-spacing: .02em; }
.tz-yard__fax { color: #8499a7; }

/* TOP レスポンシブ */
/* 当サイトは viewport=1200 固定（非レスポンシブ）のため、幅のメディアクエリは実機モバイルで効かない。
   幅（PCのウィンドウ縮小用）と向き（実機スマホ／タブレット縦用）の両方で判定し、
   タブレット以下・縦向き端末では MV を 60vh に下げる（PC横向きのみ 100vh フル画面） */
@media (max-width: 1024px), (orientation: portrait) {
  .tz-mv { height: 60vh; min-height: 360px; }
}
@media (max-width: 1000px) {
  .tz-flowband { grid-template-columns: 1fr; }
  .tz-flowband__arrow { transform: rotate(90deg); justify-content: center; margin: 0 auto; padding: 4px 0; }
}
@media (max-width: 900px) {
  .tz-firsttime, .tz-strengths, .tz-itemcards, .tz-yards { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .tz-mv__title { font-size: 34px; }
  .tz-mv__copy { bottom: 80px; }
  .tz-mv__btns { flex-direction: column; }
  .tz-mv__btns .tz-btn--lg { width: 100%; }
  .tz-news { grid-template-columns: 1fr; gap: 8px; padding-top: 36px; padding-bottom: 36px; }
  .tz-news__heading { font-size: 26px; }
  .tz-sec-head--spread { flex-direction: column; align-items: flex-start; gap: 16px; margin-bottom: 28px; }
  .tz-section { padding: 56px 0; }
  .tz-section--sm { padding: 48px 0; }
  .tz-sec-head__en { font-size: 52px; }
  .tz-sec-head--bgtext .tz-sec-head__title { margin-top: -32px; }
}

/* ============================================================
 * お取り扱い品目（items.php）
 * ============================================================ */
.tz-items-intro { padding: 66px 0 50px; text-align: center; }
.tz-items-intro__lead { font-size: 21px; font-weight: 600; line-height: 1.7; color: #0d2c3e; margin: 0; }
.tz-items-intro__sub { display: block; margin: 22px 0 0; font-size: 16px; font-weight: 400; color: #3a4d5c; line-height: 2.05; }

.tz-itemsec { display: grid; gap: 44px; align-items: start; }
.tz-itemsec--img-left { grid-template-columns: 0.85fr 1fr; }
.tz-itemsec--img-right { grid-template-columns: 1fr 0.85fr; }
.tz-itemsec__media { position: sticky; top: 30px; }
.tz-itemsec__img { border-radius: 8px; overflow: hidden; height: 420px; }
.tz-itemsec__img img { width: 100%; height: 100%; object-fit: cover; object-position: center 50%; }
.tz-itemsec__point { margin-top: 18px; background: #e8f5fc; border-radius: 6px; padding: 20px 22px; }
.tz-itemsec__point-badge { display: inline-block; background: #0090D2; color: #fff; font-size: 11.5px; font-weight: 700; padding: 5px 12px; border-radius: 3px; letter-spacing: .04em; margin-bottom: 10px; }
.tz-itemsec__point-text { font-size: 13.5px; color: #1f4a60; line-height: 1.9; margin: 0; }
.tz-itemsec__head { display: flex; align-items: baseline; gap: 16px; margin-bottom: 8px; }
.tz-itemsec__no { font-family: 'Archivo', sans-serif; font-size: 40px; font-weight: 800; color: #0090D2; line-height: 1; }
.tz-itemsec__title { font-size: 30px; font-weight: 700; margin: 0; }
.tz-itemsec__title-sub { font-size: 15px; color: #5b7689; font-weight: 500; margin-left: 10px; }
.tz-itemsec__desc { font-size: 14.5px; color: #46596a; line-height: 1.9; margin: 0 0 24px; }
.tz-itemsec__note { font-size: 12.5px; color: #8499a7; margin: 18px 0 0; }

.tz-catlist { display: flex; flex-direction: column; gap: 16px; }
.tz-cat { border-radius: 6px; padding: 22px 24px; }
.tz-cat--white { background: #fff; box-shadow: 0 2px 14px rgba(13,44,62,.05); }
.tz-cat--gray { background: #f4f6f8; }
.tz-cat__name { font-size: 16.5px; font-weight: 700; color: #0d2c3e; margin: 0 0 14px; padding-bottom: 12px; border-bottom: 2px solid #d4e1ea; }
.tz-cat__tags { display: flex; flex-wrap: wrap; gap: 8px; }
.tz-chip { font-size: 13px; color: #3a4d5c; padding: 6px 13px; border-radius: 3px; }
.tz-chip--gray { background: #f4f6f8; }
.tz-chip--white { background: #fff; }

/* 買取できないもの */
.tz-ng { background: #fff; border-radius: 8px; border: 2px solid #f4ccd5; overflow: hidden; }
.tz-ng__head { background: #DF002E; color: #fff; padding: 20px 30px; display: flex; align-items: center; gap: 13px; }
.tz-ng__title { font-size: 22px; font-weight: 700; margin: 0; }
.tz-ng__grid { padding: 30px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.tz-ng__item { display: flex; align-items: flex-start; gap: 12px; background: #fbf2f4; border-radius: 5px; padding: 16px 20px; }
.tz-ng__x { flex-shrink: 0; width: 22px; height: 22px; border-radius: 50%; background: #DF002E; color: #fff; display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 700; }
.tz-ng__text { font-size: 14px; color: #3a4d5c; line-height: 1.7; }

/* 最終導線（items / company 共通） */
.tz-finalcta { text-align: center; }
.tz-finalcta__title { font-size: 26px; font-weight: 700; margin: 0 0 14px; line-height: 1.6; }
.tz-finalcta__lead { font-size: 15px; color: #52677a; line-height: 1.9; margin: 0 0 32px; }
.tz-finalcta__actions { display: inline-flex; gap: 16px; align-items: stretch; justify-content: center; }
.tz-finalcta__tel { background: #fff; border-radius: 5px; padding: 16px 28px; text-align: left; box-shadow: 0 2px 14px rgba(13,44,62,.06); text-decoration: none; display: block; }
.tz-finalcta__tel:hover { opacity: 1; box-shadow: 0 4px 18px rgba(13,44,62,.12); }
.tz-finalcta__tel-label { display: block; font-size: 11.5px; color: #5b7689; letter-spacing: .04em; }
.tz-finalcta__tel-num { display: block; font-family: 'Archivo', sans-serif; font-size: 26px; font-weight: 700; color: #0090D2; letter-spacing: .02em; }
.tz-finalcta__btn { padding: 22px 36px; font-size: 16px; border-radius: 4px; }

@media (max-width: 900px) {
  .tz-itemsec--img-left, .tz-itemsec--img-right { grid-template-columns: 1fr; }
  .tz-itemsec__media { position: static; }
  .tz-ng__grid { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .tz-items-intro__lead { font-size: 18px; }
  .tz-items-intro__sub { font-size: 14.5px; }
  .tz-itemsec__img { height: 280px; }
  .tz-itemsec__title { font-size: 24px; }
  .tz-itemsec__title-sub { display: block; margin: 6px 0 0; }
  .tz-finalcta__actions { flex-direction: column; align-items: stretch; }
  .tz-finalcta__title { font-size: 21px; }
}

/* ============================================================
 * お取引の流れ（flow.php）
 * ============================================================ */
.tz-flowintro { padding: 64px 0 8px; display: grid; grid-template-columns: 1fr 1.1fr; gap: 40px; align-items: center; }
.tz-flowintro__title { font-size: 28px; font-weight: 700; margin: 0 0 18px; line-height: 1.5; color: #0d2c3e; }
.tz-flowintro__lead { font-size: 15.5px; line-height: 2.05; color: #3a4d5c; margin: 0; }
.tz-flowintro__media { border-radius: 8px; overflow: hidden; height: 300px; position: relative; }
.tz-flowintro__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 55%; }
.tz-flowintro__caption { position: absolute; left: 24px; bottom: 20px; background: rgba(13,44,62,.82); color: #fff; font-size: 13px; font-weight: 700; padding: 9px 18px; border-radius: 3px; letter-spacing: .04em; }

.tz-patterns { padding: 78px 0 40px; display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: stretch; }
.tz-pattern { border-radius: 8px; padding: 34px 32px 38px; display: flex; flex-direction: column; scroll-margin-top: 130px; }
#flow-steps { scroll-margin-top: 120px; }
.tz-pattern--blue { background: #eef6fb; border-top: 4px solid #0090D2; }
.tz-pattern--navy { background: #eef1f3; border-top: 4px solid #0d2c3e; }
.tz-pattern__head { display: flex; align-items: center; gap: 14px; margin-bottom: 20px; flex-wrap: wrap; }
.tz-pattern__title { font-size: 24px; font-weight: 700; margin: 0; line-height: 1.4; }
/* 対象者ラベル（A/Bバッジを廃止し、対象者を目立たせる色付きピル） */
.tz-pattern__target { display: inline-block; font-size: 14px; font-weight: 700; color: #fff; padding: 7px 16px; border-radius: 4px; letter-spacing: .02em; line-height: 1.3; }
.tz-pattern--blue .tz-pattern__target { background: #0090D2; }
.tz-pattern--navy .tz-pattern__target { background: #0d2c3e; }
.tz-pattern__note { background: #fff; border-radius: 4px; padding: 13px 18px; font-size: 13px; color: #46596a; line-height: 1.75; margin-bottom: 24px; }
.tz-pattern__steps { display: flex; flex-direction: column; flex: 1; justify-content: flex-start; }
.tz-pattern__step { background: #fff; border-radius: 6px; box-shadow: 0 2px 14px rgba(13,44,62,.06); padding: 22px 24px; }
.tz-pattern__step-head { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
/* STEP番号バッジ（角丸・STEP＋大きな番号を縦配置） */
.tz-pattern__step-no { display: inline-flex; flex-direction: column; align-items: center; justify-content: center;
  width: 52px; height: 52px; border-radius: 10px; line-height: 1; flex-shrink: 0; }
.tz-pattern__step-lbl { font-family: 'Archivo', sans-serif; font-size: 8.5px; font-weight: 700; letter-spacing: .12em; }
.tz-pattern__step-num { font-family: 'Archivo', sans-serif; font-size: 22px; font-weight: 800; margin-top: 2px; }
.tz-pattern--blue .tz-pattern__step-no { background: #e8f5fc; }
.tz-pattern--blue .tz-pattern__step-lbl, .tz-pattern--blue .tz-pattern__step-num { color: #0090D2; }
.tz-pattern--navy .tz-pattern__step-no { background: #eef1f3; }
.tz-pattern--navy .tz-pattern__step-lbl, .tz-pattern--navy .tz-pattern__step-num { color: #0d2c3e; }
.tz-pattern__step-title { font-size: 17px; font-weight: 700; margin: 0; color: #0d2c3e; }
.tz-pattern__step-body { font-size: 13.5px; color: #46596a; line-height: 1.85; margin: 0; }
.tz-pattern__step-img { margin-top: 14px; border-radius: 6px; overflow: hidden; height: 200px; }
.tz-pattern__step-img img { width: 100%; height: 100%; object-fit: cover; object-position: center 72%; display: block; }
.tz-pattern__arrow { display: flex; justify-content: center; align-items: center; font-family: 'Archivo', sans-serif; font-size: 24px; font-weight: 700; padding: 8px 0; }
.tz-pattern--blue .tz-pattern__arrow { color: #0090D2; }
.tz-pattern--navy .tz-pattern__arrow { color: #0d2c3e; }

.tz-faq { display: flex; flex-direction: column; gap: 16px; }
.tz-faq__item { background: #fff; border-radius: 6px; padding: 26px 30px; box-shadow: 0 2px 14px rgba(13,44,62,.05); }
.tz-faq__row { display: flex; gap: 14px; align-items: flex-start; }
.tz-faq__item .tz-faq__row:first-child { margin-bottom: 14px; }
.tz-faq__q { flex-shrink: 0; font-family: 'Archivo', sans-serif; font-size: 20px; font-weight: 800; color: #0090D2; }
.tz-faq__q-text { font-size: 17px; font-weight: 700; color: #0d2c3e; line-height: 1.6; }
.tz-faq__a { flex-shrink: 0; font-family: 'Archivo', sans-serif; font-size: 20px; font-weight: 800; color: #DF002E; }
.tz-faq__a-text { font-size: 14.5px; color: #46596a; line-height: 1.9; }

@media (max-width: 900px) {
  .tz-flowintro { grid-template-columns: 1fr; gap: 24px; }
  .tz-patterns { grid-template-columns: 1fr; padding-top: 48px; }
}
@media (max-width: 768px) {
  .tz-flowintro { padding-top: 44px; }
  .tz-flowintro__title { font-size: 23px; }
  .tz-flowintro__media { height: 220px; }
  .tz-pattern__step-img { height: 180px; }
  .tz-faq__item { padding: 22px 20px; }
  .tz-faq__q-text { font-size: 15px; }
}

/* ============================================================
 * 採用情報（recruit.php）
 * ============================================================ */
.tz-rec-hero { position: relative; overflow: hidden; background: #0d2c3e; }
.tz-rec-hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 25%; }
.tz-rec-hero__overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8,30,44,.82) 0%, rgba(10,38,57,.6) 38%, rgba(10,38,57,.28) 65%, rgba(10,38,57,.08) 100%); }
.tz-rec-hero__inner { position: relative; padding-top: 78px; padding-bottom: 78px; color: #fff; }
.tz-rec-hero__badge { display: inline-flex; align-items: center; gap: 9px; background: #DF002E; padding: 8px 18px; border-radius: 3px; font-size: 13px; font-weight: 700; letter-spacing: .06em; margin-bottom: 24px; }
.tz-rec-hero__dot { width: 7px; height: 7px; border-radius: 50%; background: #fff; }
.tz-rec-hero__catch { font-size: 18px; font-weight: 500; margin: 0 0 12px; color: #7fd0f3; text-shadow: 0 2px 12px rgba(0,20,34,.5); }
.tz-rec-hero__title { font-size: 46px; font-weight: 700; line-height: 1.4; margin: 0 0 18px; letter-spacing: .01em; text-shadow: 0 2px 20px rgba(0,0,0,.45); }
.tz-rec-hero__lead { font-size: 15.5px; line-height: 1.95; max-width: 680px; margin: 0; opacity: .95; text-shadow: 0 1px 10px rgba(0,20,34,.5); }

.tz-rec-photos { padding: 64px 0 0; display: grid; grid-template-columns: 1.4fr 1fr; gap: 20px; }
.tz-rec-photos__main { position: relative; border-radius: 8px; overflow: hidden; height: 320px; }
.tz-rec-photos__main img { width: 100%; height: 100%; object-fit: cover; object-position: center 18%; }
.tz-rec-photos__caption { position: absolute; left: 22px; bottom: 18px; background: rgba(13,44,62,.82); color: #fff; font-size: 13px; font-weight: 700; padding: 9px 16px; border-radius: 3px; }
.tz-rec-photos__sub { border-radius: 8px; overflow: hidden; height: 320px; }
.tz-rec-photos__sub img { width: 100%; height: 100%; object-fit: cover; }

.tz-rec-reasons-sec { padding: 64px 0 84px; }
.tz-reasons { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.tz-reason { background: #f4f6f8; border-radius: 6px; padding: 32px 34px; display: flex; gap: 22px; align-items: flex-start; }
.tz-reason__no { flex-shrink: 0; font-family: 'Noto Sans JP', sans-serif; font-size: 42px; font-weight: 800; color: #0090D2; line-height: .9; }
.tz-reason__title { font-size: 19px; font-weight: 700; color: #0d2c3e; margin: 0 0 10px; line-height: 1.5; }
.tz-reason__text { font-size: 14px; color: #46596a; line-height: 1.9; margin: 0; }

.tz-reqs { background: #fff; border-radius: 8px; overflow: hidden; box-shadow: 0 2px 18px rgba(13,44,62,.06); border: 1px solid #e4ebf0; }
.tz-reqs__row { display: grid; grid-template-columns: 210px 1fr; align-items: stretch; border-bottom: 1px solid #e9eef2; }
.tz-reqs__row:last-child { border-bottom: none; }
.tz-reqs__label { background: #f1f6fa; border-left: 4px solid #0090D2; padding: 24px 26px; display: flex; align-items: center; font-size: 15px; font-weight: 700; color: #0d2c3e; letter-spacing: .04em; }
.tz-reqs__value { padding: 24px 30px; font-size: 14.5px; color: #3a4d5c; line-height: 2; }

.tz-rec-cta { position: relative; overflow: hidden; background: #0090D2; color: #fff; }
.tz-rec-cta__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 60%; }
.tz-rec-cta__overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,86,134,.93) 0%, rgba(0,98,150,.86) 50%, rgba(0,120,180,.72) 100%); }
.tz-rec-cta__inner { position: relative; padding-top: 78px; padding-bottom: 78px; text-align: center; }
.tz-rec-cta__title { font-size: 28px; font-weight: 700; margin: 0 0 14px; line-height: 1.6; text-shadow: 0 2px 16px rgba(0,40,64,.35); }
.tz-rec-cta__lead { font-size: 15px; line-height: 1.95; margin: 0 0 36px; opacity: .95; }
.tz-rec-cta__actions { display: inline-flex; gap: 16px; align-items: stretch; justify-content: center; }
.tz-rec-cta__tel { color: #fff; background: rgba(255,255,255,.14); border-radius: 5px; padding: 18px 30px; text-align: left; display: flex; flex-direction: column; justify-content: center; text-decoration: none; transition: background .3s ease; }
.tz-rec-cta__tel:hover { background: rgba(255,255,255,.24); opacity: 1; }
.tz-rec-cta__tel-label { font-size: 12px; opacity: .9; }
.tz-rec-cta__tel-num { font-family: 'Archivo', sans-serif; font-size: 28px; font-weight: 700; letter-spacing: .02em; }
.tz-rec-cta__btn { display: flex; align-items: center; padding: 0 40px; border-radius: 5px; }

@media (max-width: 900px) {
  .tz-rec-photos { grid-template-columns: 1fr; }
  .tz-reasons { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .tz-rec-hero__inner { padding-top: 54px; padding-bottom: 54px; }
  .tz-rec-hero__title { font-size: 32px; }
  .tz-rec-photos__main, .tz-rec-photos__sub { height: 240px; }
  .tz-reqs__row { grid-template-columns: 1fr; }
  .tz-reqs__label { border-left: none; border-top: 4px solid #0090D2; padding: 16px 20px; }
  .tz-reqs__value { padding: 18px 20px; }
  .tz-rec-cta__inner { padding-top: 54px; padding-bottom: 54px; }
  .tz-rec-cta__title { font-size: 22px; }
  .tz-rec-cta__actions { flex-direction: column; align-items: stretch; }
  .tz-rec-cta__btn { justify-content: center; padding: 18px 24px; }
}

/* ============================================================
 * 会社概要（company.php）
 * ============================================================ */
.tz-overview { background: #fff; border-radius: 8px; overflow: hidden; box-shadow: 0 2px 18px rgba(13,44,62,.06); }
.tz-overview__row { display: grid; grid-template-columns: 220px 1fr; align-items: start; background: #fff; }
.tz-overview__row.is-alt { background: #f7f9fb; }
.tz-overview__label { padding: 22px 28px; font-size: 14.5px; font-weight: 700; color: #0d2c3e; letter-spacing: .04em; }
.tz-overview__value { padding: 22px 28px; font-size: 14.5px; color: #3a4d5c; line-height: 1.9; }

.tz-offices { display: flex; flex-direction: column; gap: 30px; }
.tz-office { background: #fff; border-radius: 8px; overflow: hidden; box-shadow: 0 2px 16px rgba(13,44,62,.06); display: grid; grid-template-columns: 1fr 1.05fr; }
.tz-office__body { padding: 38px 40px; }
.tz-office__head { display: flex; align-items: center; gap: 13px; margin-bottom: 8px; }
.tz-office__name { font-size: 24px; font-weight: 700; margin: 0; color: #0d2c3e; }
.tz-office__role { font-size: 12px; font-weight: 700; color: #fff; background: #0090D2; padding: 5px 13px; border-radius: 3px; }
.tz-office__desc { font-size: 14px; color: #52677a; line-height: 1.9; margin: 6px 0 22px; }
.tz-office__rows { display: flex; flex-direction: column; }
.tz-office__row { display: grid; grid-template-columns: 90px 1fr; padding: 11px 0; border-bottom: 1px solid #eef1f4; font-size: 14px; }
.tz-office__k { color: #5b7689; font-weight: 700; }
.tz-office__v { color: #3a4d5c; }
.tz-office__map { background: #dde7ee; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; color: #7c95a6; min-height: 300px; }
.tz-office__map span { font-size: 12px; letter-spacing: .14em; font-family: 'Archivo', sans-serif; }

.tz-company-intro__text { font-size: 15.5px; line-height: 2.05; color: #3a4d5c; margin: 0; text-align: left; }
.tz-company-intro__text + .tz-company-intro__text { margin-top: 22px; }
.tz-company-cta { text-align: center; }
.tz-company-cta__title { font-size: 23px; font-weight: 700; margin: 0 0 12px; }
.tz-company-cta__lead { font-size: 14.5px; color: #52677a; line-height: 1.9; margin: 0 0 30px; }
.tz-company-cta__btn { padding: 18px 44px; font-size: 16px; border-radius: 4px; }

@media (max-width: 900px) {
  .tz-office { grid-template-columns: 1fr; }
  .tz-office__map { min-height: 220px; }
}
@media (max-width: 768px) {
  .tz-overview__row { grid-template-columns: 1fr; }
  .tz-overview__label { padding: 16px 20px 0; }
  .tz-overview__value { padding: 6px 20px 18px; }
  .tz-office__body { padding: 28px 24px; }
  .tz-company-cta__title { font-size: 19px; }
}

/* ============================================================
 * お問い合わせ（contact.php）
 * ============================================================ */
.tz-contact-intro { padding: 64px 0 56px; text-align: center; }
.tz-contact-intro__title { font-size: 32px; font-weight: 700; margin: 0 0 18px; color: #0d2c3e; }
.tz-contact-intro__lead { font-size: 16px; line-height: 2.1; color: #3a4d5c; margin: 0; }

.tz-contact-sec { padding: 64px 0 84px; }
.tz-contact { display: grid; grid-template-columns: 1fr 0.62fr; gap: 36px; align-items: start; }

.tz-contact__form-title { font-size: 24px; font-weight: 700; margin: 0 0 8px; display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.tz-contact__badge { font-size: 11px; color: #DF002E; border: 1px solid #f0b6c1; padding: 3px 10px; border-radius: 2px; font-weight: 700; }
.tz-contact__form-note { font-size: 12.5px; color: #8499a7; line-height: 1.8; margin: 8px 0 0; }
/* CMSフォームのカード枠（内部のフォーム要素はCMS出力の design_pattern=1 スタイル） */
.tz-contact__cms { background: #fff; border-radius: 10px; padding: 38px 40px; box-shadow: 0 2px 20px rgba(13,44,62,.06); margin-top: 16px; }
.tz-contact__cms input[type="text"], .tz-contact__cms input[type="tel"], .tz-contact__cms input[type="email"], .tz-contact__cms textarea, .tz-contact__cms select { max-width: 100%; }
/* CMS出力の .form-contents の余白を打ち消す（外側クラスで詳細度を上げて強めに上書き） */
.tz-contact__cms .form-contents { padding: 0; }

/* フォーム入力欄（共通） */
.tz-ipt { width: 100%; font-family: 'Noto Sans JP', sans-serif; font-size: 15px; color: #16323f; padding: 14px 16px; border: 1px solid #cfdae2; border-radius: 4px; background: #fff; outline: none; }
.tz-ipt:focus { border-color: #0090D2; box-shadow: 0 0 0 3px rgba(0,144,210,.15); }
.tz-ipt--area { resize: vertical; min-height: 140px; line-height: 1.7; }

.tz-form { background: #fff; border-radius: 10px; padding: 38px 40px; box-shadow: 0 2px 20px rgba(13,44,62,.06); margin-top: 16px; display: flex; flex-direction: column; gap: 24px; }
.tz-form__label { display: flex; align-items: center; gap: 9px; font-size: 14px; font-weight: 700; color: #0d2c3e; margin-bottom: 9px; }
.tz-form__req { font-size: 10.5px; color: #DF002E; border: 1px solid #f0b6c1; padding: 1px 7px; border-radius: 2px; font-weight: 700; }
.tz-form__opt { font-size: 11px; color: #8499a7; font-weight: 400; }
.tz-form__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.tz-form__checks { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.tz-form__check { display: flex; align-items: center; gap: 11px; background: #f4f6f8; border-radius: 5px; padding: 14px 18px; font-size: 14px; color: #3a4d5c; cursor: pointer; }
.tz-form__check input { width: 17px; height: 17px; accent-color: #0090D2; flex-shrink: 0; }
.tz-form__err { font-size: 12.5px; color: #DF002E; margin-top: 6px; }
.tz-form__hint { font-size: 12px; color: #8499a7; line-height: 1.7; margin: 10px 0 0; }
.tz-form__submit { margin-top: 6px; width: 100%; background: #DF002E; color: #fff; font-family: 'Noto Sans JP', sans-serif; font-size: 17px; font-weight: 700; letter-spacing: .06em; border: none; border-radius: 5px; padding: 19px; cursor: pointer; transition: opacity .3s ease; }
.tz-form__submit:hover { opacity: .9; }

.tz-contact__done { background: #fff; border-radius: 10px; padding: 40px; box-shadow: 0 2px 20px rgba(13,44,62,.06); margin-top: 16px; text-align: center; }
.tz-contact__done-title { font-size: 20px; font-weight: 700; color: #0090D2; margin-bottom: 10px; }
.tz-contact__done-text { font-size: 14px; color: #52677a; line-height: 1.9; margin: 0; }

.tz-contact__phones { position: sticky; top: 90px; background: #0d2c3e; border-radius: 10px; padding: 34px 32px; }
.tz-contact__phones-title { font-size: 22px; font-weight: 700; margin: 0 0 10px; color: #fff; }
.tz-contact__phones-time { font-size: 13px; color: #bcd1dd; margin: 0 0 4px; line-height: 1.75; }
.tz-contact__phones-note { font-size: 12px; color: #8aa5b6; margin: 0 0 24px; }
.tz-contact__phone-list { display: flex; flex-direction: column; gap: 16px; }
.tz-contact__phone { background: #fff; border-radius: 8px; padding: 22px 26px; }
.tz-contact__phone-head { display: flex; align-items: center; gap: 11px; padding-bottom: 14px; margin-bottom: 14px; border-bottom: 1px solid #eef1f4; }
.tz-contact__phone-name { font-size: 18px; font-weight: 700; margin: 0; color: #0d2c3e; }
.tz-contact__phone-role { font-size: 11px; font-weight: 700; color: #fff; background: #0090D2; padding: 4px 11px; border-radius: 2px; }
.tz-contact__phone-tel { display: flex; align-items: baseline; gap: 12px; text-decoration: none; margin-bottom: 11px; }
.tz-contact__phone-fax { display: flex; align-items: baseline; gap: 12px; padding-top: 11px; border-top: 1px dashed #e4e9ee; }
.tz-contact__tag { font-size: 11px; font-weight: 700; color: #fff; padding: 3px 9px; border-radius: 2px; letter-spacing: .06em; }
.tz-contact__tag--tel { background: #0090D2; }
.tz-contact__tag--fax { background: #9aabb7; }
.tz-contact__phone-num { font-family: 'Archivo', sans-serif; font-size: 21px; font-weight: 700; color: #0090D2; letter-spacing: .01em; white-space: nowrap; }
.tz-contact__fax-num { font-family: 'Archivo', sans-serif; font-size: 21px; font-weight: 700; color: #8499a7; letter-spacing: .01em; white-space: nowrap; }

@media (max-width: 900px) {
  .tz-contact { grid-template-columns: 1fr; }
  .tz-contact__phones { position: static; }
}
@media (max-width: 768px) {
  .tz-contact-intro__title { font-size: 26px; }
  .tz-contact-sec { padding: 48px 0 56px; }
  .tz-contact__cms { padding: 24px 20px; }
  .tz-form { padding: 28px 22px; }
  .tz-form__cols { grid-template-columns: 1fr; }
  .tz-form__checks { grid-template-columns: 1fr; }
}

/* ============================================================
 * GoogleMap 埋め込み（拠点別）
 * ============================================================ */
.tz-gmap { display: block; width: 100%; border: 0; }
/* 地図セルを relative にし、iframe を absolute inset:0 で確実に充填する */
.tz-footer__map.is-map { position: relative; height: 104px; padding: 0; display: block; }
.tz-yard__map.is-map   { position: relative; padding: 0; display: block; } /* 親 height:230px 固定 */
.tz-office__map.is-map { position: relative; padding: 0; min-height: 300px; }
.tz-footer__map.is-map .tz-gmap,
.tz-yard__map.is-map .tz-gmap,
.tz-office__map.is-map .tz-gmap { position: absolute; inset: 0; width: 100%; height: 100%; }
@media (max-width: 900px) {
  .tz-office__map.is-map { min-height: 260px; }
}

/* ============================================================
 * Font Awesome アイコン（インラインSVGから置換）
 * ============================================================ */
.tz-firsttime__icon { font-size: 30px; color: #fff; line-height: 1; }
.tz-flowband__icon i { font-size: 26px; color: #7fd0f3; line-height: 1; }
.tz-yard__map i { font-size: 28px; color: #0090D2; }
.tz-office__map i { font-size: 30px; color: #0090D2; }
.tz-footer__map i { font-size: 22px; color: #5fb9e6; }
.tz-ng__head i { font-size: 22px; color: #fff; line-height: 1; }
