@charset "UTF-8";
/*
 * ======================================
 * site.css — 有限会社阿佐商店（サイト固有CSS）
 * 共通クラス(main.css)で再現できないデザイン差分のみをここに追加。
 * 配色・フォントは asa.scss で共通SCSS変数を上書きして main.css にコンパイル済み。
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 * .asa-header / .asa-logo / .asa-nav / .asa-header__tel  - 半透明sticky追従ヘッダー（design準拠 88px・EN+JA2段ナビ）
 * .asa-footer                     - 藍色3カラムフッター（design準拠）
 * .asa-sec-head                   - セクション見出し（Quicksond小EN + 太字JA中央）
 * .asa-page-hero                  - 下層ページ グラデーションヒーロー
 * .asa-mv                         - トップ メインビュー（白グラデ重ね・角写真・波区切り）
 * .asa-btn / --primary / --ghost / --lg - 丸型CTAボタン
 * .asa-hover-lift                 - hoverで浮き上がるカード演出
 * .asa-trouble / .asa-strength / .asa-svc-card / .asa-work - TOP各セクションのカード
 * .asa-cta                        - TOP下部の電話CTA帯
 * .asa-greet / .asa-table         - 会社概要 挨拶・概要テーブル
 * .asa-svc-row / .asa-subsidy / .asa-area - 事業内容ページ
 * .asa-work-card                  - 施工事例ページ ビフォーアフターカード
 * .asa-faq                        - FAQ アコーディオン（Q/Aバッジ）
 * .asa-contact-tel / .asa-form    - お問い合わせ 電話カード・フォーム
 * .asa-grid-paper                 - 方眼背景
 *
 * ======================================
 * 共通SCSSに不足していたもの（5分類）
 * ======================================
 * ・構造不足：白グラデを片側から重ねる合成MV（asa-mv）／Q・A二バッジFAQカード（asa-faq）
 * ・装飾パターン不足：セクション間のSVG波区切り（HTMLにインラインSVGで対応）
 * ・値の粒度不足：デザイン指定の font-size(30/19/13.5px等)・radius(22/18px)・余白(90px)が
 *   共通utilityの刻みに無いため、本ファイルで実数指定
 */

/* -------------------------------------------------- base 微調整 */
body { font-weight: 500; }
img { display: block; }

.asa-container { max-width: 1200px; margin: 0 auto; padding-left: 24px; padding-right: 24px; }
.asa-container--md { max-width: 1120px; }
.asa-container--sm { max-width: 1000px; }
.asa-container--xs { max-width: 860px; }

/* 写真プレースホルダー用の淡い下地（実写真差し替え後は写真が覆う） */
.asa-mv__slideshow,
.asa-work__img, .asa-work-card__fig,
.asa-svc-row__img { background: #EAF4FB; }

.asa-section { padding: 90px 0; }
.asa-section--tight { padding: 90px 0 0; }

/* -------------------------------------------------- ボタン */
.asa-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  border-radius: 999px; font-size: 16px; font-weight: 800; line-height: 1.2;
  padding: 15px 30px; text-decoration: none; cursor: pointer;
  transition: all .2s ease; border: none;
}
.asa-btn i, .asa-btn svg { flex: none; }
.asa-btn--primary { background: #0A82CF; color: #fff; font-weight: 900; box-shadow: 0 10px 24px rgba(10,130,207,.26); }
.asa-btn--primary:hover { background: #1F5C8B; color: #fff; opacity: 1; }
.asa-btn--ghost { background: #fff; color: #0A82CF; border: 2px solid #0A82CF; }
.asa-btn--ghost:hover { background: #EAF4FB; color: #0A82CF; opacity: 1; }
.asa-btn--lg { font-size: 17px; padding: 16px 34px; }

.asa-hover-lift { transition: transform .18s ease, box-shadow .18s ease; }
.asa-hover-lift:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(10,130,207,.16); }

.asa-textlink { font-weight: 800; color: #0A82CF; text-decoration: none; }
.asa-textlink:hover { color: #1F5C8B; opacity: 1; }

/* -------------------------------------------------- セクション見出し */
.asa-sec-head { text-align: center; margin-bottom: 36px; }
.asa-sec-head--left { text-align: left; margin-bottom: 0; }
.asa-sec-head__en { font-family: "Quicksand", sans-serif; font-weight: 700; letter-spacing: 0.16em; color: #0A82CF; font-size: 14px; display: block; line-height: 1.2; }
.asa-sec-head__ttl { font-size: 30px; font-weight: 900; color: #1F5C8B; margin: 6px 0 8px; line-height: 1.3; }
.asa-sec-head__lead { color: #5A6B78; font-size: 15px; margin: 0; line-height: 1.7; }

/* -------------------------------------------------- ヘッダー */
.asa-header {
  position: sticky; top: 0; z-index: 100; width: 100%;
  background: rgba(255,255,255,0.96); backdrop-filter: blur(6px);
  border-bottom: 1px solid #E1E1E1; box-shadow: 0 2px 14px rgba(31,92,139,0.06);
}
/* 上部：連絡先ユーティリティバー */
.asa-header__topbar { background: #1F5C8B; color: #fff; }
.asa-header__topbar-inner { max-width: 100%; width: 96%; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 6px 24px; padding: 7px 0; }
.asa-topbar__contacts { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 22px; }
.asa-topbar__tel { display: inline-flex; align-items: center; gap: 8px; color: #fff; font-weight: 900; font-size: 19px; letter-spacing: 0.02em; text-decoration: none; line-height: 1.3; }
.asa-topbar__tel i { color: #9ed8ff; font-size: 0.82em; }
.asa-topbar__tel:hover { opacity: .85; }
.asa-topbar__tel--sub { font-size: 17px; }
.asa-topbar__tag { display: inline-block; font-size: 10.5px; font-weight: 700; letter-spacing: 0.06em; color: #1F5C8B; background: #fff; border-radius: 4px; padding: 2px 7px; }
.asa-topbar__tag--sub { color: #fff; background: #0A82CF; }
.asa-topbar__tag--mail { color: #fff; background: #0A82CF; }
.asa-topbar__mail { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 6px; font-size: 14px; font-weight: 700; color: #eaf4fb; }
.asa-topbar__mail i { color: #9ed8ff; font-size: 0.9em; }
.asa-topbar__mailnote { font-weight: 500; font-size: 11.5px; color: #ffd7a8; letter-spacing: 0.02em; }
.asa-topbar__hours { display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; color: #cfe6f6; white-space: nowrap; }
.asa-topbar__hours i { color: #9ed8ff; }

/* 下段：ロゴ＋ナビ */
.asa-header__inner { height: 100px; max-width: 100%; width: 96%; margin: 0 auto; padding: 0; gap: 28px; align-items: stretch; }
.asa-logo { display: flex; align-items: center; gap: 18px; }
.asa-logo img { height: 72px; width: auto; }
.asa-logo__text { display: flex; flex-direction: column; line-height: 1.15; }
.asa-logo__name { font-weight: 900; font-size: 40px; letter-spacing: 0.04em; color: #1F5C8B; }
.asa-logo__en { font-family: "Quicksand", sans-serif; font-weight: 700; font-size: 17px; letter-spacing: 0.18em; color: #0A82CF; }

.asa-nav { gap: 4px; margin-left: auto; margin-right: 0; align-self: stretch; align-items: stretch; }
.asa-nav__item { display: flex; align-items: stretch; }
.asa-nav__item a { position: relative; height: 100%; flex-direction: column; align-items: center; justify-content: center; gap: 2px; padding: 8px 16px; border-radius: 10px 10px 0 0; }
.asa-nav__item a::after { display: block; content: ""; position: absolute; left: 50%; right: auto; bottom: -1px; width: calc(100% - 24px); height: 3px; background: #0A82CF; border-radius: 2px 2px 0 0; opacity: 0; transform: translateX(-50%); transition: opacity .2s ease; }
.asa-nav__item a:hover { background: #EAF4FB; }
.asa-nav__en { font-family: "Quicksand", sans-serif; font-weight: 700; font-size: 11px; letter-spacing: 0.12em; color: #0A82CF; }
.asa-nav__ja { font-size: 16px; font-weight: 700; color: #3A4A57; margin-top: 0; padding-bottom: 2px; }
.asa-nav__item.is-current .asa-nav__ja { color: #0A82CF; }
.asa-nav__item.is-current a::after { opacity: 1; }


.asa-spnav__tel { color: #fff; font-weight: 900; font-size: 24px; display: inline-flex; align-items: center; gap: 8px; text-decoration: none; }
.asa-spnav__hours { color: rgba(255,255,255,.85); font-size: 13px; margin-top: 8px; }

/* -------------------------------------------------- フッター */
.asa-footer { background: #1F5C8B; color: #fff; }
.asa-footer__inner { max-width: 1200px; margin: 0 auto; padding: 48px 24px 28px; display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 40px; }
.asa-footer__logo { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; line-height: 1.2; }
.asa-footer__logo img { height: 46px; width: auto; }
.asa-footer__name { display: block; font-weight: 900; font-size: 18px; }
.asa-footer__en { display: block; font-family: "Quicksand", sans-serif; font-weight: 700; font-size: 11px; letter-spacing: 0.16em; color: #82DCFD; }
.asa-footer__address { margin: 0; font-size: 13px; line-height: 1.9; color: #cfe6f6; }
.asa-footer__title { font-family: "Quicksand", sans-serif; font-weight: 700; font-size: 12px; letter-spacing: 0.14em; color: #82DCFD; margin-bottom: 14px; }
.asa-footer__info { font-size: 13.5px; line-height: 2; color: #eaf4fb; }
.asa-footer__mailnote { font-size: 11.5px; color: #82DCFD; line-height: 1.6; }
.asa-footer__menu { display: flex; flex-direction: column; gap: 9px; }
.asa-footer__menu a { color: #eaf4fb; font-size: 13.5px; font-weight: 600; text-decoration: none; }
.asa-footer__menu a:hover { color: #fff; opacity: 1; }
.asa-footer__bottom { border-top: 1px solid rgba(255,255,255,0.16); }
.asa-footer__copyright { max-width: 1200px; margin: 0 auto; padding: 16px 24px; font-family: "Quicksand", sans-serif; font-size: 12px; color: #9ec4de; letter-spacing: 0.04em; }

/* -------------------------------------------------- 下層ページヒーロー */
.asa-page-hero { background: linear-gradient(135deg, #0A82CF, #1F5C8B); padding: 52px 24px; text-align: center; color: #fff; }
.asa-page-hero__en { font-family: "Quicksand", sans-serif; font-weight: 700; letter-spacing: 0.2em; font-size: 14px; color: #cfe6f6; display: block; }
.asa-page-hero__ttl { font-size: 36px; font-weight: 900; margin: 8px 0 0; }
.asa-page-hero__lead { margin: 12px 0 0; font-size: 15px; color: #eaf4fb; }

/* -------------------------------------------------- MV（トップ） */
.asa-mv { position: relative; background: #fff; overflow: hidden; }
.asa-mv__inner { position: relative; width: 100%; margin: 0 auto; overflow: hidden; min-height: 720px; display: flex; align-items: center; }
.asa-mv__slideshow { position: absolute; inset: 0; z-index: 0; }
.asa-mv__slideshow .swiper-slide,
.asa-mv__slideshow .main_slider__inner { position: absolute; inset: 0; width: 100%; height: 100%; }
.asa-mv__slideshow img { width: 100%; height: 100%; object-fit: cover; object-position: center 72%; }
/* フェード切り替え（JSで .is-active を付け替え。単一スライド時はそのまま表示） */
.asa-mv__slideshow .swiper-slide { opacity: 0; transition: opacity 1.2s ease; }
.asa-mv__slideshow .swiper-slide.is-active { opacity: 1; }
.asa-mv__slideshow .swiper-slide:only-child { opacity: 1; }
.asa-mv__scrim { position: absolute; inset: 0; z-index: 1; background: linear-gradient(100deg, rgba(255,255,255,0.96) 0%, rgba(255,255,255,0.9) 32%, rgba(255,255,255,0.4) 54%, rgba(255,255,255,0) 74%); }
.asa-mv__content { position: relative; z-index: 3; padding: 66px 60px; max-width: 860px; color: #243743; }
.asa-mv__badge { display: inline-flex; align-items: center; gap: 8px; background: #EAF4FB; border: 1px solid #CBE3F4; color: #1F5C8B; padding: 7px 15px; border-radius: 999px; font-size: 13px; font-weight: 700; letter-spacing: 0.04em; margin-bottom: 22px; }
.asa-mv__ttl { font-size: 52px; line-height: 1.28; font-weight: 900; margin: 0 0 20px; letter-spacing: 0.01em; color: #1F5C8B; }
.asa-mv__lead { font-size: 18px; line-height: 1.9; font-weight: 500; margin: 0 0 22px; color: #3E5260; }
.asa-mv__award { width: 260px; height: auto; margin: 0 0 30px; }
.asa-mv__btns { display: flex; gap: 14px; flex-wrap: wrap; }
.asa-mv__wave { position: absolute; left: 0; right: 0; bottom: -1px; width: 100%; height: 124px; display: block; z-index: 2; }
.asa-wave { display: block; width: 100%; }

/* -------------------------------------------------- TOP：困りごと */
.asa-trouble-sec { background: #faf8f2; }
.asa-trouble-sec .asa-container { padding-top: 24px; padding-bottom: 90px; }
.asa-trouble { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.asa-trouble__card { background: #fff; border-radius: 22px; padding: 30px 20px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 14px; text-decoration: none; }
.asa-trouble__icon { width: 78px; height: 78px; border-radius: 50%; background: #EAF4FB; display: flex; align-items: center; justify-content: center; }
.asa-trouble__ttl { font-weight: 900; font-size: 18px; color: #243743; }
.asa-trouble__desc { font-size: 13px; color: #5A6B78; line-height: 1.7; }

/* -------------------------------------------------- TOP：強み */
.asa-strength-sec { background: #EAF4FB; padding: 60px 0 0; }
.asa-strength { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.asa-strength__card { position: relative; background: #fff; border-radius: 22px; padding: 26px 30px; display: flex; gap: 24px; align-items: center; box-shadow: 0 6px 20px rgba(31,92,139,0.06); }
.asa-strength__media { position: relative; flex: none; }
.asa-strength__no { position: absolute; top: 2px; left: -6px; z-index: 2; font-family: "Quicksand", sans-serif; font-weight: 700; font-size: 40px; line-height: 1; color: #0A82CF; opacity: 0.9; text-shadow: 0 2px 6px rgba(255,255,255,0.9); }
.asa-strength__photo { width: 150px; height: 150px; border-radius: 50%; overflow: hidden; background: #EAF4FB; }
.asa-strength__photo img { width: 100%; height: 100%; object-fit: cover; }
.asa-strength__ttl { margin: 0 0 8px; font-size: 19px; font-weight: 900; color: #1F5C8B; }
.asa-strength__desc { margin: 0; font-size: 14px; line-height: 1.85; color: #4A5A67; }

/* -------------------------------------------------- TOP：事業内容 */
.asa-svc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.asa-svc-card { border-radius: 20px; overflow: hidden; display: flex; flex-direction: column; gap: 14px; background: #fff; }
.asa-svc-card__img { height: 220px; border-radius: 20px; overflow: hidden; background: #EAF4FB; }
.asa-svc-card__img img { width: 100%; height: 100%; object-fit: cover; }
.asa-svc-card__body { padding: 0 6px 6px; display: flex; flex-direction: column; gap: 8px; }
.asa-svc-card__ttl { margin: 0; font-size: 18px; font-weight: 900; color: #243743; }
.asa-svc-card__txt { margin: 0; font-size: 13.5px; line-height: 1.8; color: #5A6B78; }

/* -------------------------------------------------- TOP：施工事例抜粋 */
.asa-grid-paper { background-color: #fff; background-image: linear-gradient(#f0f0f0 1px, transparent 1px), linear-gradient(90deg, #f0f0f0 1px, transparent 1px); background-size: 16px 16px; }
.asa-works-head { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 28px; gap: 20px; }
.asa-work-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.asa-work { border-radius: 18px; overflow: hidden; border: 1px solid #E1E1E1; background: #fff; text-decoration: none; display: block; }
.asa-work__img { height: 180px; overflow: hidden; }
.asa-work__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.asa-work:hover .asa-work__img img { transform: scale(1.05); }
.asa-work__body { padding: 16px 18px; }
.asa-tag { display: inline-block; background: #EAF4FB; color: #1F5C8B; font-size: 11px; font-weight: 800; padding: 4px 10px; border-radius: 999px; margin-bottom: 8px; }
.asa-work__ttl { margin: 0; font-size: 16px; font-weight: 800; color: #243743; }

/* -------------------------------------------------- TOP：CTA帯 */
.asa-cta { background: linear-gradient(135deg, #1F5C8B, #0A82CF); padding: 56px 24px; text-align: center; color: #fff; }
.asa-cta__ttl { font-size: 28px; font-weight: 900; margin: 0 0 10px; }
.asa-cta__lead { margin: 0 0 24px; color: #EAF4FB; font-size: 15px; }
.asa-cta__tels { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 16px; }
.asa-cta__tel { display: inline-flex; align-items: center; gap: 12px; background: #fff; color: #1F5C8B; font-weight: 900; font-size: 30px; padding: 16px 40px; border-radius: 999px; box-shadow: 0 12px 28px rgba(0,0,0,0.2); text-decoration: none; }
.asa-cta__tel i { color: #0A82CF; font-size: 0.85em; }
.asa-cta__tel-tag { display: inline-block; font-size: 13px; font-weight: 700; letter-spacing: 0.04em; color: #fff; background: #0A82CF; border-radius: 6px; padding: 3px 10px; }
.asa-cta__tel--sub { background: #EAF4FB; }
.asa-cta__tel--sub .asa-cta__tel-tag { background: #1F5C8B; }
.asa-cta__note { margin: 16px 0 0; font-size: 13px; color: #cfe6f6; }

/* -------------------------------------------------- 会社概要 */
.asa-greet { display: grid; grid-template-columns: 260px 1fr; gap: 40px; align-items: center; background: #EAF4FB; border-radius: 26px; padding: 40px; }
.asa-greet__media { text-align: center; }
.asa-greet__photo { width: 200px; height: 200px; margin: 0 auto; border-radius: 50%; overflow: hidden; background: #fff; border: 5px solid #fff; box-shadow: 0 10px 26px rgba(31,92,139,0.14); }
.asa-greet__photo img { width: 100%; height: 100%; object-fit: cover; }
.asa-greet__name { margin-top: 16px; font-weight: 900; font-size: 18px; color: #1F5C8B; }
.asa-greet__qual { margin-top: 5px; font-size: 13px; font-weight: 700; color: #5A6B78; letter-spacing: 0.04em; }
.asa-greet__body p { margin: 0 0 16px; font-size: 16px; line-height: 2; color: #33434F; }
.asa-greet__body p:last-child { margin-bottom: 0; }
.asa-greet__body strong { color: #1F5C8B; }

.asa-table { border: 1px solid #E1E1E1; border-radius: 18px; overflow: hidden; }
.asa-table__row { display: grid; grid-template-columns: 220px 1fr; border-bottom: 1px solid #E1E1E1; }
.asa-table__row:last-child { border-bottom: none; }
.asa-table__key { background: #EAF4FB; padding: 18px 24px; font-weight: 800; color: #1F5C8B; font-size: 15px; }
.asa-table__val { padding: 18px 24px; font-size: 15px; line-height: 1.8; color: #33434F; }

/* -------------------------------------------------- 事業内容ページ */
.asa-svc-list { display: flex; flex-direction: column; gap: 70px; }
.asa-svc-row { display: grid; grid-template-columns: 40fr 55fr; gap: 36px; align-items: center; border-radius: 22px; overflow: hidden; background: #fff; }
.asa-svc-row__img { height: 300px; border-radius: 20px; overflow: hidden; background: #EAF4FB; }
.asa-svc-row__img img { width: 100%; height: 100%; object-fit: cover; }
.asa-svc-row__ttl { margin: 0 0 8px; font-size: 22px; font-weight: 900; color: #1F5C8B; }
.asa-svc-row__txt { margin: 0; font-size: 15px; line-height: 1.9; color: #4A5A67; }

.asa-subsidy { background: linear-gradient(135deg, #EAF4FB, #d7ebf8); border-radius: 24px; padding: 38px 40px; display: flex; gap: 26px; align-items: center; }
.asa-subsidy__icon { flex: none; width: 78px; height: 78px; border-radius: 20px; background: #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 16px rgba(31,92,139,0.12); }
.asa-subsidy__ttl { margin: 0 0 8px; font-size: 22px; font-weight: 900; color: #1F5C8B; }
.asa-subsidy__txt { margin: 0; font-size: 15px; line-height: 1.9; color: #3A4A57; }
.asa-subsidy__txt strong { color: #1F5C8B; }

.asa-area { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.asa-area__card { border: 2px solid #E1E1E1; border-radius: 20px; padding: 28px 30px; background: #fff; }
.asa-area__card--accent { border-color: #0A82CF; }
.asa-area__ttl { margin: 0 0 12px; font-size: 17px; font-weight: 900; color: #1F5C8B; }
.asa-area__card--accent .asa-area__ttl { color: #0A82CF; }
.asa-area__txt { margin: 0; font-size: 15px; line-height: 1.9; color: #33434F; }

/* -------------------------------------------------- 施工事例ページ */
.asa-worklist { display: grid; grid-template-columns: repeat(2, 1fr); gap: 26px; }
.asa-work-card { border: 1px solid #E1E1E1; border-radius: 20px; overflow: hidden; background: #fff; box-shadow: 0 6px 18px rgba(31,92,139,0.05); }
.asa-work-card__ba { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; background: #E1E1E1; }
.asa-work-card__fig { position: relative; height: 200px; overflow: hidden; margin: 0; }
.asa-work-card__fig--single { height: 260px; }
.asa-work-card__fig img { width: 100%; height: 100%; object-fit: cover; }
.asa-work-card__label { position: absolute; top: 10px; left: 10px; color: #fff; font-size: 11px; font-weight: 800; padding: 3px 10px; border-radius: 6px; }
.asa-work-card__label--before { background: #6a7b88; }
.asa-work-card__label--after { background: #0A82CF; }
.asa-work-card__body { padding: 20px 22px; }
.asa-work-card__ttl { margin: 0 0 6px; font-size: 18px; font-weight: 900; color: #243743; }
.asa-work-card__txt { margin: 0; font-size: 13.5px; line-height: 1.75; color: #5A6B78; }

/* -------------------------------------------------- FAQ */
.asa-faq { display: flex; flex-direction: column; gap: 14px; }
.asa-faq__item { border: 2px solid #E1E1E1; border-radius: 18px; overflow: hidden; background: #fff; }
.asa-faq__q { width: 100%; text-align: left; cursor: pointer; display: flex; align-items: center; gap: 16px; padding: 22px 24px; background: none; border: none; font-family: inherit; }
.asa-faq__q:hover { background: #f5fafd; }
.asa-faq__badge { flex: none; width: 36px; height: 36px; border-radius: 10px; font-family: "Quicksand", sans-serif; font-weight: 700; font-size: 19px; display: flex; align-items: center; justify-content: center; }
.asa-faq__badge--q { background: #0A82CF; color: #fff; }
.asa-faq__badge--a { background: #EAF4FB; color: #1F5C8B; margin-top: 16px; }
.asa-faq__qtext { flex: 1; font-weight: 800; font-size: 16.5px; color: #243743; line-height: 1.6; }
.asa-faq__sign { flex: none; font-size: 24px; font-weight: 700; color: #0A82CF; line-height: 1; transition: transform .2s ease; }
.asa-faq__a { display: none; gap: 16px; padding: 4px 24px 24px; border-top: 1px dashed #E1E1E1; margin-top: 2px; }
.asa-faq__atext { flex: 1; margin: 16px 0 0; font-size: 15px; line-height: 1.9; color: #4A5A67; }
.asa-faq__item.is-open .asa-faq__a { display: flex; }
.asa-faq__item.is-open .asa-faq__sign { }

/* -------------------------------------------------- お問い合わせ */
.asa-contact-tel { background: linear-gradient(135deg, #0A82CF, #1F5C8B); border-radius: 24px; padding: 40px; text-align: center; color: #fff; margin-bottom: 40px; }
.asa-contact-tel__lead { margin: 0 0 6px; font-size: 16px; font-weight: 700; }
.asa-contact-tel__num { display: inline-flex; align-items: center; gap: 12px; color: #fff; font-weight: 900; font-size: 38px; margin: 8px 0; text-decoration: none; }
.asa-contact-tel__note { margin: 6px 0 0; font-size: 14px; color: #EAF4FB; }

.asa-form { border: 1px solid #E1E1E1; border-radius: 20px; padding: 34px 40px; background: #fff; }
.asa-form__grid { display: grid; gap: 20px; }
.asa-form__row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.asa-form__label { display: block; }
.asa-form__labeltext { display: inline-block; font-weight: 800; color: #1F5C8B; font-size: 14px; margin-bottom: 7px; }
.asa-form__req { color: #0A82CF; }
.asa-input { width: 100%; border: 2px solid #E1E1E1; border-radius: 12px; padding: 13px 16px; font-size: 15px; font-family: inherit; color: #243743; outline: none; transition: border-color .2s ease; }
.asa-input:focus { border-color: #0A82CF; }
textarea.asa-input { resize: vertical; }
.asa-checks { display: flex; flex-wrap: wrap; gap: 10px 20px; }
.asa-check { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; color: #33434F; cursor: pointer; }
.asa-check input { width: 18px; height: 18px; accent-color: #0A82CF; }
.asa-form__submit { justify-self: center; }
.asa-form__submit .asa-btn { padding: 16px 48px; }

.asa-form-done { background: #EAF4FB; border: 2px solid #0A82CF; border-radius: 18px; padding: 36px; text-align: center; }
.asa-form-done__icon { width: 60px; height: 60px; border-radius: 50%; background: #0A82CF; display: flex; align-items: center; justify-content: center; margin: 0 auto 14px; color: #fff; font-size: 26px; }
.asa-form-done__ttl { margin: 0 0 6px; font-size: 20px; font-weight: 900; color: #1F5C8B; }
.asa-form-done__txt { margin: 0; color: #4A5A67; font-size: 14px; }
.asa-form-error { background: #fdecec; border: 2px solid #e0a0a0; border-radius: 14px; padding: 16px 20px; margin-bottom: 20px; color: #a23a3a; font-size: 14px; line-height: 1.9; }

/* --------------------------------------------------------------------------
 * CMSフォーム（cms_ajax 出力）を静的デザインに寄せる
 * 出力構造: <form> > <dl> > <dt><span class="required">ラベル</span></dt> <dd>入力</dd>
 *   テキスト/メール/電話は input.textarea（すべて type="text"）、複数選択は input.checkbox、
 *   本文は textarea.textarea、送信は button.submit-btn
 * ------------------------------------------------------------------------ */
#cms-contact-1-1-area form { text-align: center; }
#cms-contact-1-1-area dl { margin: 0; text-align: left; }
#cms-contact-1-1-area dd { margin: 0; }

/* ラベル（dt）：入力の上に配置 */
#cms-contact-1-1-area dt {
  margin: 18px 0 7px;
  font-weight: 800;
  color: #1F5C8B;
  font-size: 14px;
}
#cms-contact-1-1-area dl > dt:first-child { margin-top: 0; }

/* CMS標準の dt 上パディングを打ち消す（IDで詳細度を上げて上書き） */
#cms-contact-1-1-area .form-contents form dl dt:not(.pattern-exclusion) { padding-top: 0; }

/* 入力欄（.asa-input 相当）。ハニーポット等クラス無し要素は対象外 */
#cms-contact-1-1-area input.textarea,
#cms-contact-1-1-area textarea.textarea {
  width: 100%;
  border: 2px solid #E1E1E1;
  border-radius: 12px;
  padding: 13px 16px;
  font-size: 15px;
  font-family: inherit;
  color: #243743;
  background: #fff;
  outline: none;
  box-sizing: border-box;
  transition: border-color .2s ease;
}
#cms-contact-1-1-area textarea.textarea { min-height: 140px; resize: vertical; }
#cms-contact-1-1-area input.textarea:focus,
#cms-contact-1-1-area textarea.textarea:focus { border-color: #0A82CF; }

/* チェックボックス群（ご相談内容） */
#cms-contact-1-1-area dd label {
  display: inline-flex; align-items: center; gap: 8px;
  margin: 0 20px 8px 0;
  font-size: 15px; font-weight: 400; color: #33434F; cursor: pointer;
}
#cms-contact-1-1-area input.checkbox,
#cms-contact-1-1-area input[type="checkbox"],
#cms-contact-1-1-area input[type="radio"] { accent-color: #0A82CF; width: 18px; height: 18px; }

/* 送信ボタン（.asa-btn--primary 相当のピル・中央寄せ） */
#cms-contact-1-1-area .submit-btn,
#cms-contact-1-1-area button[type="submit"],
#cms-contact-1-1-area input[type="submit"] {
  display: inline-flex; align-items: center; justify-content: center;
  margin-top: 24px;
  background: #0A82CF; color: #fff;
  font-size: 17px; font-weight: 900; line-height: 1.2;
  border: none; border-radius: 999px; padding: 16px 48px; cursor: pointer;
  box-shadow: 0 10px 24px rgba(10,130,207,.26);
  transition: background-color .2s ease;
}
#cms-contact-1-1-area .submit-btn:hover,
#cms-contact-1-1-area button[type="submit"]:hover,
#cms-contact-1-1-area input[type="submit"]:hover { background: #1F5C8B; }
#cms-contact-1-1-area .submit-btn::before { display: none !important; }

.asa-infobox { margin-top: 34px; border: 2px solid #E1E1E1; border-radius: 18px; padding: 24px 28px; background: #fff; }
.asa-infobox__ttl { margin: 0 0 8px; font-size: 16px; font-weight: 900; color: #1F5C8B; }
.asa-infobox__txt { margin: 0; font-size: 14.5px; line-height: 1.9; color: #4A5A67; }

/* ==================================================
 * レスポンシブ
 * ================================================== */
@media (max-width: 1100px) {
  .asa-header__inner { height: 64px; width: 100%; padding: 0 15px; }
  .asa-logo img { height: 38px; }
  .asa-logo__name { font-size: 18px; }
}

@media (max-width: 900px) {
  .asa-section { padding: 60px 0; }
  .asa-section--tight { padding: 60px 0 0; }
  .asa-sec-head__ttl { font-size: 25px; }

  .asa-mv__inner { min-height: 0; display: block; }
  .asa-mv__slideshow { position: relative; height: 320px; }
  .asa-mv__scrim { background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.85) 70%, #fff 100%); }
  .asa-mv__content { position: relative; z-index: 3; padding: 28px 20px 40px; max-width: 100%; }
  .asa-mv__ttl { font-size: 30px; }
  .asa-mv__lead { font-size: 15px; }
  .asa-mv__wave { display: none; }

  .asa-trouble { grid-template-columns: repeat(2, 1fr); }
  .asa-svc-grid { grid-template-columns: repeat(2, 1fr); }
  .asa-work-grid { grid-template-columns: repeat(2, 1fr); }
  .asa-greet { grid-template-columns: 1fr; gap: 24px; padding: 30px; }
  .asa-svc-row { grid-template-columns: 1fr; gap: 20px; }
  .asa-worklist { grid-template-columns: 1fr; }
  .asa-footer__inner { grid-template-columns: 1fr 1fr; gap: 30px; }
}

@media (max-width: 640px) {
  .asa-container, .asa-page-hero, .asa-mv__content { padding-left: 18px; padding-right: 18px; }
  .asa-page-hero { padding-top: 40px; padding-bottom: 40px; }
  .asa-page-hero__ttl { font-size: 28px; }

  .asa-strength { grid-template-columns: 1fr; }
  .asa-strength__card { flex-direction: column; text-align: center; gap: 16px; padding: 24px; }
  .asa-svc-grid { grid-template-columns: 1fr; }
  .asa-work-grid { grid-template-columns: 1fr; }
  .asa-area { grid-template-columns: 1fr; }
  .asa-footer__inner { grid-template-columns: 1fr; gap: 24px; }

  .asa-table__row { grid-template-columns: 1fr; }
  .asa-table__key { padding: 12px 18px; }
  .asa-table__val { padding: 12px 18px; }

  .asa-cta__tel { font-size: 24px; padding: 14px 28px; }
  .asa-contact-tel { padding: 28px 20px; }
  .asa-contact-tel__num { font-size: 30px; }
  .asa-form { padding: 24px 20px; }
  .asa-form__row2 { grid-template-columns: 1fr; }
  .asa-subsidy { flex-direction: column; text-align: center; padding: 28px 22px; }
  .asa-mv__ttl { font-size: 26px; }
  .asa-mv__award { width: 210px; }
}
