*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
--primary:#2e7d32;--primary-dark:#1b5e20;--accent:#d35c2b;--accent-hover:#b84a1f;
--gold:#c9a84c;--green:#00B900;--dark-green:#1b5e3b;
--text:#333;--text-sub:#555;--text-muted:#555;
--bg:#fff;--bg-alt:#f5f7fa;--border:#e0e3e8;
--font:'Noto Serif JP',serif;--font-serif:'Noto Serif JP',serif;--font-sans:'Noto Sans JP',sans-serif;
}
input,textarea,select{font-family:var(--font-sans) !important}
html{font-size:16px;-webkit-font-smoothing:antialiased}
body{font-family:var(--font);color:var(--text);line-height:1.8}
img{display:block;max-width:100%;height:auto}
a{text-decoration:none;color:inherit}
.container{max-width:1240px;margin:0 auto;padding:0 24px}

/* ===== HEADER / HEADER-NAV CSS は inc/shared-header-footer-css.php に集約済み ===== */

/* ===== FV（雅: 全幅写真スライダー＋画像テキスト＋バナー群） ===== */
.fv{position:relative;min-height:560px;background:#2a2a2a;overflow:hidden;display:flex;align-items:center}
.fv__bg{position:absolute;inset:0;background:url('https://images.unsplash.com/photo-1504307651254-35680f356dfd?w=1600&h=900&fit=crop') center/cover;opacity:.55}
.fv__content{position:relative;z-index:2;max-width:1240px;margin:0 auto;padding:60px 40px;width:100%}
.fv__catch{font-family:var(--font-serif);font-size:52px;font-weight:900;color:#fff;line-height:1.3;text-shadow:0 2px 12px rgba(0,0,0,.5)}
.fv__catch em{font-style:normal;color:var(--accent);background:rgba(0,0,0,.4);padding:0 8px}
.fv__sub{font-size:20px;color:#fff;margin-top:16px;text-shadow:0 1px 6px rgba(0,0,0,.5);font-weight:700}
.fv__tagline{font-size:15px;color:rgba(255,255,255,.95);margin-top:24px;display:flex;gap:12px;flex-wrap:wrap}
.fv__tagline span{background:rgba(255,255,255,.15);backdrop-filter:blur(4px);padding:6px 16px;border-radius:100px;border:1px solid rgba(255,255,255,.2);font-weight:600}

/* ===== FV下バナー群（雅: 4枚の横並びバナー） ===== */
.fv-banners{background:var(--bg-alt);padding:24px 0;border-bottom:1px solid var(--border)}
.fv-banners__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;max-width:1240px;margin:0 auto;padding:0 24px}
.fv-banner{border-radius:10px;overflow:hidden;border:2px solid var(--border);background:#fff;padding:20px 16px;text-align:center;transition:box-shadow .2s,border-color .2s}
.fv-banner:hover{box-shadow:0 4px 20px rgba(0,0,0,.1);border-color:var(--accent)}
.fv-banner__icon{font-size:28px;margin-bottom:6px}
.fv-banner__title{font-size:16px;font-weight:900;color:var(--primary);font-family:var(--font-serif);line-height:1.4}
.fv-banner__sub{font-size:14px;color:var(--text-sub);margin-top:4px;font-weight:500;line-height:1.5}

/* ===== 実績メダル（雅: 金色メダル4つ横並び） ===== */
.medals{padding:64px 0;background:#fff}
.medals__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;text-align:center}
.medal{padding:24px 16px}
.medal__icon{width:140px;height:140px;margin:0 auto 16px;border-radius:50%;background:linear-gradient(145deg,#f5e6a3 0%,#d4af37 40%,#c9a84c 60%,#e8d48b 100%);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 24px rgba(201,168,76,.35),inset 0 -3px 6px rgba(0,0,0,.15);position:relative}
.medal__icon::before{content:'';position:absolute;inset:5px;border-radius:50%;border:3px solid rgba(255,255,255,.5)}
.medal__icon::after{content:'';position:absolute;inset:10px;border-radius:50%;border:1px solid rgba(255,255,255,.3)}
.medal__icon-inner{font-size:13px;font-weight:900;color:var(--primary-dark);text-align:center;line-height:1.15;letter-spacing:.02em}
.medal__icon-inner .big{font-size:44px;display:block;font-family:var(--font-serif);color:#8b0000;text-shadow:0 1px 2px rgba(0,0,0,.15);margin:2px 0}
.medal__label{font-size:15px;font-weight:900;font-family:var(--font-serif);color:var(--text);margin-top:8px;letter-spacing:.02em}

/* ===== 簡単10秒フォーム（雅: FV直下のミニフォーム） ===== */
.quick-form{padding:48px 0;background:#fff;border-bottom:1px solid var(--border)}
.quick-form__inner{max-width:700px;margin:0 auto;text-align:center;border:3px solid var(--dark-green);border-radius:16px;padding:36px 40px;position:relative}
.quick-form__badge{position:absolute;top:-24px;left:50%;transform:translateX(-50%);background:var(--gold);color:#fff;font-size:14px;font-weight:700;padding:8px 24px;border-radius:100px;white-space:nowrap}
.quick-form__title{font-family:var(--font-serif);font-size:28px;font-weight:900;margin-top:12px}
.quick-form__row{display:flex;align-items:center;gap:12px;margin-top:16px;text-align:left}
.quick-form__label{font-size:16px;font-weight:700;white-space:nowrap;min-width:80px}
.quick-form__label .req{background:#e74c3c;color:#fff;font-size:13px;padding:2px 6px;border-radius:4px;margin-left:4px}
.quick-form__input{flex:1;padding:12px 16px;border:1px solid var(--border);border-radius:6px;font-size:16px;font-family:var(--font)}
.quick-form__submit{margin-top:20px;width:100%;padding:16px;background:#e74c3c;color:#fff;font-size:18px;font-weight:700;border:none;border-radius:8px;cursor:pointer;font-family:var(--font);transition:background .2s}
.quick-form__submit:hover{background:#c0392b}

/* ===== 電話バナーCTA（雅: 全幅の電話バナー） ===== */
.cta-tel{background:linear-gradient(135deg,var(--accent),#d35400);padding:24px 0;text-align:center}
.cta-tel__inner{display:flex;align-items:center;justify-content:center;gap:24px;flex-wrap:wrap}
.cta-tel__text{color:#fff;font-size:18px;font-weight:700}
.cta-tel__number{font-size:40px;font-weight:900;color:#fff;font-family:var(--font-serif);letter-spacing:.02em}
.cta-tel__hours{font-size:14px;color:rgba(255,255,255,.95)}

/* ===== 技術力セクション（雅: 写真左＋テキスト右＋メダル） ===== */
.trust{padding:64px 0;background:#fff}
.trust__grid{display:grid;grid-template-columns:1fr 1.2fr;gap:48px;align-items:center}
.trust__images{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.trust__images img{border-radius:8px;height:200px;object-fit:cover;width:100%}
.trust__text h2{font-family:var(--font-serif);font-size:32px;font-weight:900;margin-bottom:8px}
.trust__text h2 .hl{color:var(--accent);border-bottom:3px solid var(--accent)}
.trust__medal{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,#fdf6e3,#f5e6b8);padding:8px 20px;border-radius:100px;border:2px solid var(--gold);margin-bottom:16px}
.trust__medal-text{font-size:16px;font-weight:900;font-family:var(--font-serif);color:#8b0000}
.trust__medal-text .num{font-size:28px;font-family:var(--font-serif)}
.trust__body{font-size:16px;color:var(--text-sub);line-height:2}

/* ===== 施工事例（雅: ダーク全幅ヘッダー＋大きなBA写真＋施工データ） ===== */
.cases-header{background:var(--primary-dark);padding:40px 0;text-align:center}
.cases-header h2{font-family:var(--font-serif);font-size:36px;font-weight:900;color:#fff}
.cases-header h2 .hl{color:var(--gold);text-decoration:underline;text-underline-offset:6px}
.cases-header p{color:rgba(255,255,255,.95);font-size:15px;margin-top:8px}
.cases{padding:48px 0;background:var(--bg-alt)}
.cases__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.case-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.case-card__title{font-size:15px;font-weight:900;padding:12px 16px;background:var(--primary-dark);color:#fff}
.case-card__tags{padding:8px 16px;display:flex;gap:6px;flex-wrap:wrap}
.case-card__tag{font-size:13px;padding:3px 8px;border:1px solid var(--border);border-radius:4px;font-weight:600}
.case-card__ba{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}
.case-card__ba img{width:100%;height:140px;object-fit:cover}
.case-card__arrow{padding:0 4px;color:#cc0000;font-size:28px;font-weight:900;text-shadow:0 2px 4px rgba(0,0,0,.2)}
.case-card__data{padding:14px 16px;font-size:15px;color:var(--text-sub);line-height:1.7}
.cases__more{text-align:center;margin-top:32px}

/* ===== サービスメニュー（雅: ダーク背景＋写真＋キャッチ＋価格＋くわしく見るボタン） ===== */
.services{padding:64px 0;background:#fff}
.services h2{text-align:center;font-family:var(--font-serif);font-size:36px;font-weight:900;margin-bottom:8px}
.services h2 span{color:var(--accent)}
.services__sub{text-align:center;font-size:15px;color:var(--text-muted);margin-bottom:40px}
.services__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.service-card{background:var(--dark-green);color:#fff;position:relative;overflow:hidden;display:flex;flex-direction:column}
.service-card__header{background:var(--dark-green);padding:12px 20px}
.service-card__catch{font-size:15px;font-weight:700;opacity:.9}
.service-card__title{font-size:22px;font-weight:900;font-family:var(--font-serif);margin-top:2px}
.service-card__image{height:200px;overflow:hidden}
.service-card__image img{width:100%;height:100%;object-fit:cover}
.service-card__body{padding:16px 20px}
.service-card__desc{font-size:15px;line-height:1.7;opacity:.9}
.service-card__price{font-size:32px;font-weight:900;font-family:var(--font-serif);text-align:right;margin-top:8px;color:#fff}
.service-card__price span{font-size:18px}
.service-card__link{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-top:1px solid rgba(255,255,255,.15);font-size:16px;font-weight:700;transition:background .2s}
.service-card__link:hover{background:rgba(255,255,255,.1)}

/* ===== 選ばれる理由（雅: 写真50%＋テキスト50%の左右交互） ===== */
.reasons{padding:64px 0;background:var(--bg-alt)}
.reasons h2{text-align:center;font-family:var(--font-serif);font-size:36px;font-weight:900;margin-bottom:48px}
.reasons h2 span{color:var(--accent)}
.reason{display:grid;grid-template-columns:1fr 1fr;min-height:400px}
.reason:nth-child(even){direction:rtl}
.reason:nth-child(even) > *{direction:ltr}
.reason__image{overflow:hidden}
.reason__image img{width:100%;height:100%;object-fit:cover}
.reason__content{padding:48px;display:flex;flex-direction:column;justify-content:center;background:var(--bg-alt)}
.reason__number{font-family:var(--font-serif);font-size:48px;font-weight:900;color:var(--gold);font-style:italic;margin-bottom:8px}
.reason__title{font-size:32px;font-weight:900;line-height:1.35;margin-bottom:20px;font-family:var(--font-serif)}
.reason__desc{font-size:17px;color:var(--text-sub);line-height:2.1}

/* ===== 代表メッセージ（雅: ダーク帯＋巨大ポートレート左＋テキスト右） ===== */
.ceo{position:relative}
.ceo-header{background:var(--primary-dark);padding:32px 0;text-align:center}
.ceo-header__sup{font-size:20px;color:rgba(255,255,255,.9);font-weight:700;font-family:var(--font-serif)}
.ceo-header__title{font-family:var(--font-serif);font-size:40px;font-weight:900;color:#fff;margin-top:4px}
.ceo__grid{display:grid;grid-template-columns:1fr 1.2fr;background:#fff}
.ceo__photo{overflow:hidden}
.ceo__photo img{width:100%;height:100%;object-fit:cover;min-height:500px}
.ceo__text{padding:48px;display:flex;flex-direction:column;justify-content:center}
.ceo__text p{font-size:17px;line-height:2.2;margin-bottom:16px;color:var(--text-sub)}
.ceo__text p .hl{color:var(--accent);font-weight:700}
.ceo__text p .ul{text-decoration:underline;text-underline-offset:4px;color:var(--accent);font-weight:700}
.ceo__name{font-size:24px;font-weight:900;text-align:right;margin-top:16px;font-family:var(--font-serif)}

/* ===== お約束 ===== */
.promise{padding:64px 0;background:var(--primary-dark);color:#fff;position:relative}
.promise h2{text-align:center;font-family:var(--font-serif);font-size:32px;font-weight:900;margin-bottom:12px}
.promise__sub{text-align:center;font-size:15px;color:rgba(255,255,255,.95);margin-bottom:40px}
.promise__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.promise__item{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:32px 24px;text-align:center}
.promise__check{font-size:32px;color:var(--gold);margin-bottom:12px}
.promise__item h3{font-size:20px;font-weight:900;font-family:var(--font-serif);margin-bottom:12px}
.promise__item p{font-size:15px;line-height:1.8;color:rgba(255,255,255,.95)}

/* ===== 料金 ===== */
.pricing{padding:64px 0;background:#fff}
.pricing h2{text-align:center;font-family:var(--font-serif);font-size:36px;font-weight:900;margin-bottom:8px}
.pricing h2 span{color:var(--accent)}
.pricing__sub{text-align:center;font-size:15px;color:var(--text-muted);margin-bottom:40px}
.pricing__table{max-width:900px;margin:0 auto}
.pricing__row{display:grid;grid-template-columns:1.5fr 1fr .8fr;background:#fff;border-radius:8px;margin-bottom:8px;overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.pricing__row>div{padding:20px 24px;display:flex;align-items:center}
.pricing__row--head{background:var(--primary-dark);color:#fff;font-size:15px;font-weight:700;letter-spacing:.05em}
.pricing__row--head>div{padding:14px 24px}
.pricing__price{font-size:32px;font-weight:900;color:var(--primary);font-family:var(--font-serif);letter-spacing:-.02em}
.pricing__price span{font-size:18px}
.pricing__row--featured{border:3px solid var(--accent);position:relative;background:rgba(230,126,34,.03)}
.pricing__row--featured::before{content:'おすすめ';position:absolute;top:-14px;left:24px;background:var(--accent);color:#fff;padding:6px 24px;border-radius:100px;font-size:14px;font-weight:700}
.pricing__note{text-align:center;font-size:15px;color:var(--text-muted);margin-top:16px}

/* ===== 大CTA帯（雅: 写真背景＋黄色帯＋巨大電話番号＋LINE） ===== */
.big-cta{position:relative;padding:56px 0;background:var(--primary-dark);overflow:hidden}
.big-cta::before{content:'';position:absolute;inset:0;background:url('https://images.unsplash.com/photo-1504307651254-35680f356dfd?w=1600&h=600&fit=crop') center/cover;opacity:.15}
.big-cta__inner{position:relative;z-index:2;text-align:center;color:#fff}
.big-cta__lead{font-size:24px;font-weight:700;font-family:var(--font-serif);margin-bottom:4px}
.big-cta__title{font-family:var(--font-serif);font-size:36px;font-weight:900;margin-bottom:8px}
.big-cta__area{font-size:18px;color:#ffe03d;font-weight:900;margin-bottom:32px}
.big-cta__channels{display:flex;justify-content:center;gap:16px;flex-wrap:wrap}
.big-cta__tel{background:#fff;color:var(--primary-dark);padding:20px 40px;border-radius:12px;text-align:center;min-width:320px;box-shadow:0 4px 20px rgba(0,0,0,.2)}
.big-cta__tel-label{font-size:16px;font-weight:700;margin-bottom:4px}
.big-cta__tel-number{font-size:40px;font-weight:900;font-family:var(--font-serif);letter-spacing:.02em}
.big-cta__tel-hours{font-size:14px;color:var(--text-muted);margin-top:2px}
.big-cta__mail,.big-cta__line{padding:20px 32px;border-radius:12px;font-size:18px;font-weight:700;display:flex;align-items:center;gap:8px;min-width:180px;justify-content:center}
.big-cta__mail{background:#fff;color:var(--primary);border:2px solid #fff}
.big-cta__line{background:#00B900;color:#fff;border:2px solid #00B900}

/* ===== 声 ===== */
.voices{padding:64px 0;background:#fff}
.voices h2{text-align:center;font-family:var(--font-serif);font-size:32px;font-weight:900;margin-bottom:40px}
.voices__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.voice-card{background:var(--bg-alt);border-radius:12px;padding:28px;position:relative}
.voice-card::before{content:'"';position:absolute;top:12px;left:20px;font-size:56px;font-family:Georgia,serif;color:var(--accent);opacity:.2;line-height:1}
.voice-card__text{font-size:16px;line-height:1.9;color:var(--text-sub);margin-bottom:16px;min-height:100px}
.voice-card__meta{display:flex;align-items:center;gap:12px;padding-top:16px;border-top:1px solid var(--border)}
.voice-card__avatar{width:48px;height:48px;border-radius:50%;background:var(--border);border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.1)}
.voice-card__name{font-size:15px;font-weight:700}
.voice-card__detail{font-size:14px;color:var(--text-muted)}

/* ===== 流れ（雅: 3列×3行のグリッド＋矢印＋写真） ===== */
.flow{padding:64px 0;background:var(--bg-alt)}
.flow h2{text-align:center;font-family:var(--font-serif);font-size:36px;font-weight:900;margin-bottom:8px}
.flow h2 span{color:var(--accent)}
.flow__sub{text-align:center;font-size:15px;color:var(--text-muted);margin-bottom:40px}
.flow__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.flow-step{position:relative}
.flow-step__number{font-size:16px;font-weight:900;color:var(--dark-green);margin-bottom:6px;display:flex;align-items:center;gap:8px}
.flow-step__number span{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--dark-green);color:#fff;font-size:14px}
.flow-step__title{font-size:20px;font-weight:900;font-family:var(--font-serif);margin-bottom:10px}
.flow-step__image{height:180px;border-radius:8px;overflow:hidden;margin-bottom:12px}
.flow-step__image img{width:100%;height:100%;object-fit:cover}
.flow-step__desc{font-size:15px;color:var(--text-sub);line-height:1.8}
.flow-step__arrow{position:absolute;right:-18px;top:50%;color:#d35c2b;font-size:24px;font-weight:900;z-index:2}

/* ===== FAQ ===== */
.faq{padding:64px 0;background:#fff}
.faq h2{text-align:center;font-family:var(--font-serif);font-size:32px;font-weight:900;margin-bottom:40px}
.faq__list{max-width:800px;margin:0 auto}
.faq__item{border:1px solid var(--border);border-radius:8px;margin-bottom:10px;background:#fff;overflow:hidden}
.faq__q{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;cursor:pointer;font-size:17px;font-weight:700;font-family:var(--font-serif)}
.faq__q-label{color:var(--accent);font-weight:900;margin-right:8px;font-size:16px}
.faq__toggle{width:28px;height:28px;border-radius:50%;background:rgba(230,126,34,.1);display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:18px;flex-shrink:0;transition:all .2s}
.faq__a{padding:0 24px 20px;font-size:16px;line-height:1.9;color:var(--text-sub);display:none;border-top:1px solid var(--border)}

/* ===== 会社情報 ===== */
.company{padding:64px 0;background:var(--bg-alt)}
.company h2{text-align:center;font-family:var(--font-serif);font-size:32px;font-weight:900;margin-bottom:40px}
.company__grid{display:grid;grid-template-columns:2fr 3fr;gap:48px;align-items:start}
.company__photo{border-radius:12px;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,.08)}
.company__photo img{width:100%;height:auto;min-height:360px;object-fit:cover}
.company__info h3{font-size:22px;font-weight:900;font-family:var(--font-serif);margin-bottom:4px}
.company__info .title-sub{font-size:15px;color:var(--text-muted);margin-bottom:16px}
.company__story{font-size:16px;line-height:2;color:var(--text-sub);margin-bottom:24px}
.company__certs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:20px}
.company__cert{background:#fff;border:1px solid var(--border);border-radius:8px;padding:16px 12px;text-align:center;font-size:14px;font-weight:700}
.company__area{font-size:15px;color:var(--text-sub);padding-top:16px;border-top:1px solid var(--border)}
.company__area strong{color:var(--text)}
.company__table{margin-top:24px;width:100%;border-collapse:collapse}
.company__table th,.company__table td{padding:16px 20px;border-bottom:1px solid var(--border);font-size:15px;text-align:left}
.company__table th{width:120px;font-weight:700;background:rgba(26,58,92,.03)}

/* ===== 累計実績帯（雅: 全幅写真＋「1,500棟」） ===== */
.achievement{position:relative;min-height:400px;background:var(--primary-dark);overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff}
.achievement::before{content:'';position:absolute;inset:0;background:url('https://images.unsplash.com/photo-1504307651254-35680f356dfd?w=1600&h=600&fit=crop') center/cover;opacity:.2}
.achievement__inner{position:relative;z-index:2;padding:48px 24px}
.achievement__lead{font-size:24px;font-weight:900;font-family:var(--font-serif);margin-bottom:8px}
.achievement__number{font-family:var(--font-serif);font-size:64px;font-weight:900}
.achievement__number .red{color:#ff3333;font-size:100px}
.achievement__sub{font-size:14px;color:rgba(255,255,255,.95);margin-top:8px}

/* ===== 最終CTA（フォーム左＋電話右） ===== */
.final-cta{background:var(--primary-dark);padding:64px 0;color:#fff}
.final-cta h2{text-align:center;font-family:var(--font-serif);font-size:36px;font-weight:900;margin-bottom:8px}
.final-cta__sub{text-align:center;font-size:16px;color:rgba(255,255,255,.95);margin-bottom:40px}
.final-cta__grid{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:start}
.final-cta__form{background:#fff;border-radius:16px;padding:36px;color:var(--text)}
.final-cta__form-title{font-size:20px;font-weight:900;font-family:var(--font-serif);margin-bottom:20px;text-align:center}
.form-row{margin-bottom:16px}
.form-row label{display:block;font-size:16px;font-weight:700;margin-bottom:4px}
.form-row label .req{background:#e74c3c;color:#fff;font-size:13px;padding:1px 6px;border-radius:3px;margin-left:4px}
.form-row input,.form-row textarea,.form-row select{width:100%;padding:12px 16px;border:1px solid var(--border);border-radius:8px;font-size:16px;font-family:var(--font)}
.form-row textarea{min-height:100px;resize:vertical}
.form-submit{width:100%;padding:16px;background:var(--accent);color:#fff;font-size:18px;font-weight:700;border:none;border-radius:8px;cursor:pointer;font-family:var(--font);margin-top:8px}
.form-submit:hover{background:var(--accent-hover)}
.final-cta__right{text-align:center}
.final-cta__phone-label{font-size:20px;font-weight:900;font-family:var(--font-serif);margin-bottom:12px}
.final-cta__phone-number{font-size:44px;font-weight:900;font-family:var(--font-serif);letter-spacing:.02em}
.final-cta__phone-hours{font-size:15px;color:rgba(255,255,255,.95);margin-top:4px;margin-bottom:24px}
.final-cta__line-btn{display:inline-flex;align-items:center;gap:8px;background:var(--green);color:#fff;padding:18px 48px;border-radius:8px;font-size:18px;font-weight:700}
.final-cta__note{font-size:14px;color:#fff;margin-top:16px}

/* ===== フッター（雅: 写真背景＋巨大サイトマップ4列） ===== */
/* ===== FOOTER CSS は inc/shared-header-footer-css.php に集約済み ===== */

/* ===== SP ===== */
@media(max-width:900px){
  .header-top{flex-wrap:wrap;gap:8px}.header-nav a{padding:10px 14px;font-size:13px}
  .fv__catch{font-size:32px}.fv-banners__grid{grid-template-columns:1fr 1fr}
  .medals__grid{grid-template-columns:repeat(2,1fr)}
  .trust__grid,.ceo__grid,.company__grid,.final-cta__grid{grid-template-columns:1fr}
  .services__grid{grid-template-columns:1fr 1fr}
  .reason{grid-template-columns:1fr}.reason:nth-child(even){direction:ltr}
  .cases__grid,.voices__grid,.flow__grid{grid-template-columns:1fr}
  .promise__grid{grid-template-columns:1fr}
  .footer__nav{grid-template-columns:1fr 1fr}
  .big-cta__tel-number{font-size:28px}.final-cta__phone-number{font-size:32px}
  .achievement__number .red{font-size:56px}
}

/* ============================================================
   ARCHIVE / SINGLE / BLOG / PAGE — レガシースタイル維持
   ============================================================ */

/* ---------- a11y: skip-link / focus ---------- */
.skip-link{position:absolute;top:-100%;left:0;padding:8px 16px;background:var(--primary);color:#fff;z-index:9999;transition:top 0.2s}
.skip-link:focus{top:0}
*:focus-visible{outline:3px solid #2e7d32;outline-offset:2px}
.screen-reader-text{position:absolute;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden}

/* ---------- Sticky banner (SP only) ---------- */
.sticky-banner{display:none}
@media(max-width:767px){
  body{padding-bottom:56px}
  .sticky-banner{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:999;height:56px;box-shadow:0 -2px 10px rgba(0,0,0,.15)}
  .sticky-banner__btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;color:#fff;font-weight:700;font-size:15px}
  .sticky-banner__btn--tel{background:var(--accent)}
  .sticky-banner__btn--line{background:var(--green)}
}

/* ---------- Buttons (legacy — archive/single) ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:14px 28px;border:none;border-radius:6px;font-size:15px;font-weight:700;font-family:var(--font);text-decoration:none;cursor:pointer;transition:all .2s ease;line-height:1}
.btn--primary{background:var(--accent);color:#fff;box-shadow:0 2px 8px rgba(230,126,34,.25)}
.btn--primary:hover{background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 4px 16px rgba(230,126,34,.35)}
.btn--secondary{background:var(--green);color:#fff}
.btn--secondary:hover{background:#009a00;transform:translateY(-2px)}
.btn--outline-dark{background:transparent;color:var(--primary);border:2px solid var(--primary)}
.btn--outline-dark:hover{background:var(--primary);color:#fff}

/* ---------- CF7 ---------- */
.wpcf7-form-control:not([type="submit"]){width:100%;padding:12px 16px;border:1px solid var(--border);border-radius:8px;font-size:16px;font-family:var(--font)}
.wpcf7-form-control:not([type="submit"]):focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(26,58,92,.1)}
.wpcf7-form-control[type="submit"]{display:block;width:100%;padding:16px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:18px;font-weight:700;cursor:pointer;font-family:var(--font);transition:background .3s ease}
.wpcf7-form-control[type="submit"]:hover{background:var(--accent-hover)}
textarea.wpcf7-form-control{min-height:100px;resize:vertical}
.wpcf7-not-valid-tip{color:#e74c3c;font-size:13px;margin-top:4px}
.wpcf7-form-control.wpcf7-not-valid{border-color:#e74c3c !important;background:#fff5f5}
.wpcf7-response-output{margin-top:16px;padding:12px;border-radius:4px;font-size:14px}

/* ---------- Breadcrumb ---------- */
.breadcrumb{padding:12px 0;font-size:13px;background:var(--bg-alt);border-bottom:1px solid var(--border)}
.breadcrumb__list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:4px}
.breadcrumb__item{display:inline-flex;align-items:center;gap:4px}
.breadcrumb__item::after{content:'>';margin-left:4px;color:var(--text-muted)}
.breadcrumb__item:last-child::after{display:none}
.breadcrumb__item a{color:var(--primary);text-decoration:none}
.breadcrumb__item a:hover{text-decoration:underline}
.breadcrumb__item:last-child span{color:var(--text-sub)}

/* ---------- Inline CTA (single-* 用) ---------- */
.cta-inline{background:var(--bg-alt);padding:40px 0;margin:48px 0 0}
.cta-inline__inner{display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:1240px;margin:0 auto;padding:0 24px}
.cta-inline__heading{font-size:18px;font-weight:700;color:var(--primary);margin-bottom:4px}
.cta-inline__sub{font-size:14px;color:var(--text-sub)}
.cta-inline__actions{display:flex;gap:12px;flex-shrink:0}
@media(max-width:767px){
  .cta-inline__inner{flex-direction:column;text-align:center}
  .cta-inline__actions{flex-direction:column;width:100%}
  .cta-inline__actions .btn{width:100%}
}

/* ---------- Pagination ---------- */
.nav-links{display:flex;justify-content:center;gap:8px;padding:40px 0;flex-wrap:wrap}
.page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 12px;border-radius:4px;background:#fff;border:1px solid var(--border);color:var(--text);text-decoration:none;font-size:13px;transition:all .3s ease}
.page-numbers.current{background:var(--primary);color:#fff;border-color:var(--primary)}
.page-numbers:hover:not(.current){border-color:var(--primary);color:var(--primary)}

/* ---------- Helpers ---------- */
.pc-only{display:inline-block}
.sp-only{display:none}
@media(max-width:767px){
  .pc-only{display:none !important}
  .sp-only{display:inline-block !important}
}

/* ---------- 施工事例 詳細 (single-case) ---------- */
.case-detail__ba{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:40px}
.case-detail__ba-item{position:relative;margin:0}
.case-detail__ba-label{position:absolute;top:12px;left:12px;background:var(--primary);color:#fff;padding:4px 16px;border-radius:4px;font-size:13px;font-weight:700;z-index:1}
.case-detail__ba-item img{width:100%;height:auto;border-radius:8px}
.case-detail__info{background:var(--bg-alt);border-radius:8px;padding:24px;margin-bottom:40px}
.case-detail__info-table{width:100%;border-collapse:collapse}
.case-detail__info-table th{text-align:left;padding:12px 16px;border-bottom:1px solid var(--border);color:var(--primary);font-weight:700;font-size:13px;width:30%;vertical-align:top}
.case-detail__info-table td{padding:12px 16px;border-bottom:1px solid var(--border);font-size:16px}
.case-detail__story{margin-bottom:40px}
.case-detail__story-heading{font-size:18px;font-weight:700;color:var(--primary);margin-bottom:12px;padding-left:16px;border-left:4px solid var(--accent)}
.case-detail__story-text{font-size:16px;line-height:1.8;color:var(--text)}
.case-nav{display:flex;justify-content:space-between;align-items:center;padding-top:32px;border-top:1px solid var(--border);margin-top:40px;gap:16px}
.case-nav__link{color:var(--primary);font-size:13px;font-weight:700}
.case-nav__link:hover{color:var(--accent)}
.case-nav__back{color:var(--text-sub);font-size:13px}
.case-nav__back:hover{color:var(--primary);text-decoration:underline}
@media(max-width:767px){
  .case-detail__ba{grid-template-columns:1fr}
  .case-detail__info-table th{width:35%}
}

/* ---------- お客様の声 詳細 (single-voice) ---------- */
.voice-detail__header{text-align:center;margin-bottom:40px}
.voice-detail__name{font-size:22px;font-weight:700;color:var(--primary);margin-bottom:8px}
.voice-detail__meta{font-size:13px;color:var(--text-sub)}
.voice-detail__comment{position:relative;background:var(--bg-alt);border-radius:12px;padding:48px 40px;margin-bottom:40px;font-size:18px;line-height:2;color:var(--text)}
.voice-detail__comment::before{content:'\201C';position:absolute;top:16px;left:20px;font-size:72px;color:#2e7d32;opacity:.2;font-family:Georgia,serif;line-height:1}
.voice-detail__reason{margin-bottom:40px}
.voice-detail__reason-heading{font-size:18px;font-weight:700;color:var(--primary);margin-bottom:12px;padding-left:16px;border-left:4px solid var(--accent)}
.voice-detail__reason-text{font-size:16px;line-height:1.8;color:var(--text)}
@media(max-width:767px){
  .voice-detail__comment{padding:36px 24px;font-size:16px}
}

/* ---------- Archive: case / voice ---------- */
.archive-header{text-align:center;padding:48px 0 32px}
.archive-header__title{font-size:32px;font-weight:700;color:var(--primary)}

.archive-page .case-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 4px rgba(0,0,0,.06);transition:box-shadow .3s ease,transform .3s ease;text-decoration:none;color:inherit;display:block}
.archive-page .case-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.10);transform:translateY(-4px)}
.case-card__image{width:100%;height:220px;object-fit:cover}
.archive-page .case-card__body{padding:20px;background:#fff}
.case-card__area{display:inline-block;background:var(--primary);color:#fff;font-size:12px;padding:2px 10px;border-radius:4px;margin-bottom:8px}
.archive-page .case-card__title{font-size:16px;font-weight:700;margin-bottom:8px;color:var(--text);background:none;padding:0;font-family:var(--font)}
.archive-page .case-card__meta{font-size:13px;color:var(--text-sub);display:block}
.case-card__link{display:inline-block;margin-top:12px;color:var(--accent);font-size:13px;font-weight:700}

.archive-page .voice-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 4px rgba(0,0,0,.06);border-top:3px solid var(--primary);transition:box-shadow .3s ease}
.archive-page .voice-card::before{content:none}
.archive-page .voice-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.10)}
.archive-page .voice-card__service{font-size:13px;color:var(--text-sub);margin-bottom:12px}
.archive-page .voice-card__link{color:var(--accent);font-size:13px;font-weight:700}

/* ---------- Blog post card ---------- */
.post-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 4px rgba(0,0,0,.06);transition:box-shadow .3s ease,transform .3s ease;text-decoration:none;color:inherit;display:block}
.post-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.10);transform:translateY(-4px)}
.post-card__image{width:100%;height:200px;object-fit:cover}
.post-card__body{padding:20px}
.post-card__category{display:inline-block;background:var(--accent);color:#fff;font-size:11px;padding:2px 10px;border-radius:4px;margin-bottom:8px}
.post-card__title{font-size:16px;font-weight:700;margin-bottom:8px;color:var(--text);line-height:1.5}
.post-card__date{font-size:13px;color:var(--text-muted)}

/* ---------- entry-content ---------- */
.entry-content{max-width:780px;margin:0 auto;font-size:16px;line-height:2;color:var(--text)}
.entry-content h2{font-size:22px;font-weight:700;color:var(--primary);margin:48px 0 16px;padding-bottom:12px;border-bottom:3px solid var(--primary)}
.entry-content h3{font-size:18px;font-weight:700;color:var(--primary);margin:36px 0 12px;padding-left:16px;border-left:4px solid var(--accent)}
.entry-content h4{font-size:16px;font-weight:700;color:var(--text);margin:24px 0 8px}
.entry-content p{margin-bottom:24px}
.entry-content img{max-width:100%;height:auto;border-radius:8px;margin:24px 0}
.entry-content ul,.entry-content ol{margin:16px 0 24px;padding-left:24px}
.entry-content ul{list-style:disc}
.entry-content ol{list-style:decimal}
.entry-content li{margin-bottom:8px;line-height:1.8}
.entry-content blockquote{background:var(--bg-alt);border-left:4px solid var(--primary);padding:20px 24px;margin:24px 0;border-radius:0 8px 8px 0;font-style:italic}
.entry-content a{color:#2e7d32;text-decoration:underline}
.entry-content a:hover{color:var(--accent)}
.entry-content table{width:100%;border-collapse:collapse;margin:24px 0}
.entry-content th,.entry-content td{padding:12px 16px;border:1px solid var(--border);text-align:left}
.entry-content th{background:var(--bg-alt);font-weight:700}

/* ---------- Author box ---------- */
.author-box{display:flex;gap:20px;align-items:center;background:var(--bg-alt);border-radius:12px;padding:24px;margin:48px 0}
.author-box__image{width:80px;height:80px;border-radius:50%;object-fit:cover;flex-shrink:0}
.author-box__name{font-weight:700;color:var(--primary);margin-bottom:4px}
.author-box__desc{font-size:13px;color:var(--text-sub);line-height:1.6}
@media(max-width:767px){
  .author-box{flex-direction:column;text-align:center}
}

/* ---------- thanks page ---------- */
.page-thanks__icon{width:96px;height:96px;margin:0 auto 24px;color:var(--green)}
.page-thanks__icon svg{width:100%;height:100%}

/* ---------- Faq accordion state (JS による .is-open 対応) ---------- */
.faq__item.is-open .faq__a{display:block;padding-top:16px}
.faq__item.is-open .faq__toggle{background:var(--accent);color:#fff}

/* ===== サブページ共通余白・タイポ ===== */
.site-main{padding-bottom:100px;min-height:60vh}
.site-main.page,.site-main.page-404{padding:48px 24px 120px}
.site-main.page article{max-width:900px;margin:0 auto}
.site-main.page h1{font-family:var(--font-serif);font-size:32px;font-weight:900;color:#333;margin:0 0 28px;padding-bottom:16px;border-bottom:2px solid var(--primary)}
.site-main.page .entry-content{font-size:16px;line-height:1.9;color:#333}
.site-main.page .entry-content h2{font-family:var(--font-serif);font-size:24px;font-weight:700;margin:32px 0 16px;color:#2e7d32;padding-bottom:8px;border-bottom:1px solid var(--border)}
.site-main.page .entry-content h3{font-family:var(--font-serif);font-size:18px;font-weight:700;margin:24px 0 12px;color:#333}
.site-main.page .entry-content p{margin:0 0 16px}
.site-main.page .entry-content table{margin:24px 0;width:100%}
.site-main.page .entry-content a{color:#2e7d32;text-decoration:underline}
.blog-archive,.archive,.search,.error404{padding-bottom:100px;min-height:60vh}
