/* Public-site design system. Loaded after legacy page styles, including PHP shells. */
/* 配色：赤とダークブラウンを主役に、それ以外は白い塗り壁のような明るいニュートラルと木の色で組む（参考：マニカホーム）。
   生成り・ピンク系の淡色は「温かみがありすぎる」「AI感」とされたため使わない。 */
:root {
  --ink:#2d2a28; --ink-soft:#4a4643; --muted:#6b6661;
  --accent:#b91c1c; --accent-dark:#991b1b; --accent-soft:#f4f3f1;
  --paper:#fff; --warm:#f4f4f3; --warm-2:#ebeae7;
  --line:#e4e2de; --line-soft:#efeeeb; --radius:10px;
  --primary-100:#f1f0ed; --primary-200:#e4e2de; --primary-300:#cdc9c3;
  --primary-400:#c24141; --primary-700:#7f1d1d; --gray-400:#6b6661;
  --brown:#5e454a; --brown-deep:#292326; --brown-mid:#35292d;
  --tan:#d9bb8e; --cream-on-dark:#eadfcf;
  --font-serif:'Noto Serif JP','Yu Mincho','YuMincho','Hiragino Mincho ProN',serif;
  --tex-plaster:url('/images/backgrounds/plaster.webp');
  --tex-soft:url('/images/backgrounds/plaster-soft.webp');
  --tex-walnut:url('/images/backgrounds/walnut.webp');
  --page-hero-photo:url('/images/backgrounds/header-room.webp');
  --shadow:0 16px 40px #2f2a270b; --shadow-lg:0 24px 65px #2f2a2712;
  --section-padding:6rem 0;
  /* 固定ヘッダーの高さ。script.js が実測値で上書きするまでの初期値（表示直後のずれを防ぐ）。 */
  --header-offset:154px;
}
html { scroll-padding-top:112px; }
body { background:#fff; color:var(--ink); letter-spacing:.025em; }
::selection { background:#e6e2dc; color:var(--ink); }
:focus-visible { outline:3px solid #b91c1c; outline-offset:5px; }
.skip-link { position:fixed; top:8px; left:16px; transform:translateY(-160%); z-index:2000; padding:12px 20px; color:#fff; background:var(--brown-deep); border-radius:8px; }
.skip-link:focus { transform:none; }

/* 見出しは明朝、本文はゴシック。 */
h1,h2,h3,h4,.section-title,.logo-text,.footer-title { font-family:var(--font-serif); font-feature-settings:"palt"; }
h1,h2 { font-weight:600; letter-spacing:.06em; }
h3,h4 { font-weight:600; letter-spacing:.04em; }

/* ヘッダー：最上部では全表示。下へスクロールすると隠れ、上へ戻すと細い形で戻る（script.js が header-compact / header-hidden を付け外しする）。 */
.header { background:#fff; box-shadow:0 1px 0 var(--line); transition:transform .3s ease,box-shadow .2s ease; }
.header.header-compact { box-shadow:0 1px 0 var(--line),0 10px 26px #2d2a2812; }
.header-main-inner { min-height:78px; }
.logo-img { width:43px; height:50px; object-fit:contain; border-radius:0; }
.logo-text { font-size:1.14rem; font-weight:700; letter-spacing:.06em; }
.logo-sub { display:block; font-weight:500; font-size:.67rem; letter-spacing:.06em; }
.header-phone strong { font-size:1.22rem; color:var(--ink); font-variant-numeric:tabular-nums; }
.header-phone small { display:block; color:var(--muted); font-size:.64rem; font-weight:500; letter-spacing:.04em; }
.header-contact { min-height:44px; padding:0 1.3rem; border-radius:7px; gap:28px; font-size:.87rem; background:var(--accent); border-color:var(--accent); }
.header.header-compact .header-main-inner { min-height:58px; }
.header.header-compact .logo-img { width:32px; height:38px; }
.header.header-compact .logo-text { font-size:1rem; }
.header.header-compact .logo-sub,.header.header-compact .header-phone span,.header.header-compact .header-phone small { display:none; }
.header.header-compact .header-phone strong { font-size:1.08rem; }
.header.header-compact .header-contact { min-height:38px; padding:0 1rem; }
.top-bar { background:var(--accent-dark); color:#fff; font-size:.7rem; font-weight:500; letter-spacing:.04em; }
.top-bar-inner { min-height:28px; }
.top-bar a { text-decoration:none; }
.nav-row { background:#fff; }
.nav-links { justify-content:space-between; min-height:46px; }
.header.header-compact .nav-links > a,.header.header-compact .nav-dropdown > a,.nav-links > a,.nav-dropdown > a { border:0; padding:0 .6rem; font-family:var(--font-serif); font-size:.84rem; font-weight:600; letter-spacing:.06em; }
.nav-links > a,.nav-dropdown > a { min-height:46px; }
.header.header-compact .nav-links,.header.header-compact .nav-links > a,.header.header-compact .nav-dropdown > a { min-height:40px; }
.nav-links > a:last-child { border:0; }
.nav-links a[aria-current="page"] { color:var(--accent); box-shadow:inset 0 -2px var(--accent); }
.nav-links > a[href="/owners.html"] { color:var(--accent-dark); }
.nav-dropdown-menu { border-radius:12px; padding:12px; }
.nav-dropdown:focus-within .nav-dropdown-menu { visibility:visible; opacity:1; transform:none; }
.nav-dropdown-menu a { font-size:.86rem; min-height:42px; }
.footer { background:var(--brown-deep); color:#d9cdbf; padding-top:4.5rem; }
.footer .logo-img { background:white; padding:3px; border-radius:4px; }
.footer .logo-sub { color:#cdbfae; }
.footer-title { font-size:.9rem; font-weight:600; letter-spacing:.08em; }
.footer-links { font-size:.83rem; gap:.65rem; }
.footer-brand > p { font-size:.84rem; line-height:2; }
.footer-bottom { font-size:.7rem; border-top-color:#ffffff1f; }
.mobile-cta { border-top:1px solid var(--line); }
/* PC：ヘッダーが隠れている間だけ、右下に相談の入口を出す（スマホ・タブレットは下部の追従バーが担う）。 */
.float-cta { display:none; }
@media (min-width:1025px) {
  .float-cta { position:fixed; right:24px; bottom:24px; z-index:950; display:flex; gap:.5rem; padding:.5rem; background:#fffffff5; border:1px solid var(--line); border-radius:14px; box-shadow:0 18px 44px #2d2a281f; opacity:0; visibility:hidden; transform:translateY(12px); transition:opacity .25s,transform .25s,visibility .25s; }
  body.header-away .float-cta { opacity:1; visibility:visible; transform:none; }
  .float-cta a { display:flex; align-items:center; gap:.55rem; min-height:48px; padding:0 1.05rem; border-radius:9px; font-size:.86rem; font-weight:700; letter-spacing:.04em; }
  .float-cta .site-icon { width:1.3rem; height:1.3rem; }
  .float-cta-form { background:var(--accent); color:#fff; }
  .float-cta-form:hover { background:var(--accent-dark); color:#fff; }
  .float-cta-call { background:var(--brown-deep); color:#fff; font-variant-numeric:tabular-nums; }
  .float-cta-call:hover { background:var(--brown); color:#fff; }
  .float-cta-call small { font-size:.72rem; font-weight:500; opacity:.85; }
}
.mobile-cta .mobile-cta-call { background:var(--brown-deep); border-color:var(--brown-deep); }
.mobile-cta .mobile-cta-form { color:var(--accent-dark); border-color:var(--accent); }

/* 無地の背景色の代わりに、写真と素材の質感を敷く。 */
.page-hero,.blog-list-hero {
  background:linear-gradient(#f7f7f5ad,#f7f7f5ad),var(--page-hero-photo) center/cover no-repeat,var(--warm) !important;
  border-bottom:1px solid var(--line) !important;
}
.page-hero[data-photo="kitchen"],.blog-list-hero { --page-hero-photo:url('/images/backgrounds/header-kitchen.webp'); }
.page-hero[data-photo="bath"] { --page-hero-photo:url('/images/backgrounds/header-bath.webp'); }
.page-hero[data-photo="water-heater"] { --page-hero-photo:url('/images/backgrounds/header-water-heater.webp'); }
nav.breadcrumb:has(> .container) { display:block !important; width:100%; }
.lp-hero,.work-detail-hero { background:var(--tex-plaster) repeat,#f3f1ec !important; border-bottom:1px solid var(--line) !important; }
.blog-hero { background:#fff !important; }
.blog-list-hero { width:100% !important; margin:0 !important; padding:4.6rem 20px 4.2rem !important; border:0 !important; border-bottom:1px solid var(--line) !important; border-radius:0 !important; box-shadow:none !important; text-align:center !important; }
.page-hero,.blog-list-hero { padding:4.6rem 0 4.2rem !important; margin-top:0 !important; }
.page-hero::before,.blog-list-hero::before { content:none !important; }
.page-hero .container,.blog-list-hero .container { max-width:920px; padding:0 !important; background:transparent !important; border:0 !important; box-shadow:none !important; text-align:center !important; }
.page-hero .breadcrumb,.blog-list-hero .breadcrumb { display:flex !important; justify-content:center; flex-wrap:wrap; gap:.2rem; margin:0 0 1.4rem !important; font-size:.78rem; color:var(--ink-soft); }
.page-hero h1,.blog-list-hero h1 { max-width:none !important; margin:0 auto .9rem !important; font-family:var(--font-serif) !important; font-size:clamp(1.9rem,3.4vw,2.75rem) !important; line-height:1.45 !important; font-weight:600 !important; letter-spacing:.12em !important; color:var(--ink) !important; }
.page-hero p,.blog-list-hero p { max-width:720px; margin:0 auto !important; color:var(--ink-soft) !important; font-size:.94rem; line-height:1.9; }
.page-hero h1::after,.blog-list-hero h1::after { content:''; display:block; width:36px; height:2px; margin:1.1rem auto 0; background:var(--accent); }
.lp-hero-text h1,.blog-hero h1,.work-detail-hero h1 { font-family:var(--font-serif) !important; letter-spacing:.05em !important; font-weight:600 !important; }
.next-services,.next-reassurance,.owner-support,.owner-flow-section,.owner-faq,
.services,.flow,.filter-section,.phone-cta-section,.works-section,.form-section,.faq-section,.info-section,.greeting-section,.access-section,
.flyer-mini-section.is-warm,.flyer-blog-section,.rental-section,.cases-slideshow-section,.reasons-section,.pricing-section,.promise-section,.area-band.is-warm,.service-detail:nth-child(even),.work-detail-main {
  background-image:var(--tex-soft) !important; background-repeat:repeat !important;
}
.cta { padding:5.5rem 0 !important; background:linear-gradient(#f7f7f5c4,#f7f7f5c4),url('/images/backgrounds/header-room.webp') center/cover no-repeat,var(--warm) !important; border-top:1px solid var(--line); text-align:center; }
.cta > .container { max-width:780px; padding:2.6rem 2.2rem; background:#fffffff2; border:1px solid var(--line); border-radius:14px; box-shadow:0 18px 50px #2f2a2710; }
.cta-title { font-family:var(--font-serif); font-size:clamp(1.55rem,2.6vw,2.2rem) !important; font-weight:600 !important; letter-spacing:.08em; line-height:1.5 !important; }
.cta-title::after { content:''; display:block; width:36px; height:2px; margin:1rem auto 0; background:var(--accent); }
.cta-subtitle { margin-top:.9rem; }
.cta .cta-buttons { justify-content:center; margin:1.5rem 0 1rem; }
.cta-note { font-size:.8rem; }
.lp-cta { background:linear-gradient(#991b1bf2,#991b1bf2),var(--tex-plaster) repeat !important; }

.section-title { font-weight:600; line-height:1.55; letter-spacing:.08em; }
.section-title::after { width:36px; height:2px; border-radius:0; }
.section-label,.subtitle { font-size:.7rem; font-weight:600; letter-spacing:.14em; }
.problem-card,.reason-card,.work-card,.service-card,.case-card,.price-card,.pricing-card,.promise-card,.mini-step,.faq-item,.contact-form-card,.sidebar-card,.info-table,.greeting-card,.message-card,.area-main,.area-sub,.blog-card,.article-content,.summary-box,.post-card,.flow-step-body,.work-detail-section,.work-detail-cta {
  border:1px solid var(--line) !important; border-radius:12px !important; box-shadow:var(--shadow) !important;
}
.service-card:hover,.work-card:hover,.blog-card:hover,.post-card:hover { border-color:var(--primary-300) !important; box-shadow:0 15px 40px #2f2a2714 !important; }
.post-card { overflow:hidden; }
.post-card > img { height:250px; object-fit:cover; }
.post-body { padding:1.6rem; }
.post-body h3 { font-weight:600; }
.post-category,.blog-card-tag,.article-tag,.quick-label,.required { border-radius:5px; }
.btn-primary,.btn-secondary,.btn-phone,.btn-form,.quick-button,.section-more,.form-submit { border-radius:7px !important; min-height:48px; font-weight:700; }
.btn-primary,.form-submit,.quick-button.primary { box-shadow:0 5px 16px #b91c1c16 !important; }
.quick-contact,.quick-contact-inner { background:var(--paper); }
.form-input,.form-select,.form-textarea { border:1px solid #cfcac3 !important; border-radius:7px !important; background:#fff !important; color:var(--ink) !important; font-size:1rem !important; }
.form-input:focus,.form-select:focus,.form-textarea:focus { border-color:var(--accent) !important; box-shadow:0 0 0 3px #b91c1c1a !important; }
.photo-estimate-box { border-color:var(--line) !important; background:var(--warm) !important; border-radius:10px; }
.photo-badge { background:var(--accent) !important; }
.company-table th,.info-table th { background:var(--warm) !important; }
.fade-in,.fade-in-left,.fade-in-right,.scale-in { opacity:1; transform:none; }
.works-preview { padding:6rem 0; }
.news-section { padding:4rem 0; }
.blog-card-placeholder { display:flex; align-items:center; justify-content:center; background:var(--tex-soft) repeat,var(--warm); color:var(--primary-300); font-family:var(--font-serif); font-size:1.1rem; font-weight:600; letter-spacing:.3em; }
.news-item span { background:var(--accent-soft); color:var(--accent-dark); border:1px solid var(--primary-200); font-weight:500; }

/* New public home and owner service */
.eyebrow { display:flex; align-items:center; gap:.8rem; color:var(--accent-dark); font-family:var(--font-serif); font-size:.82rem; line-height:1.8; font-weight:600; letter-spacing:.12em; margin-bottom:1.2rem; }
.eyebrow::before { content:''; width:28px; height:1px; background:currentColor; flex:none; }
.next-section { padding:6.5rem 0; }
.next-section h2,.next-contact h2 { font-size:clamp(1.7rem,2.9vw,2.5rem); line-height:1.65; letter-spacing:.06em; font-weight:600; }
.next-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin-bottom:3rem; }
.next-section-heading > p { font-size:.88rem; line-height:2; color:var(--muted); }
.next-section-heading .eyebrow { margin-bottom:.7rem; }
.next-section-heading h2::after { content:''; display:block; width:36px; height:2px; margin-top:1rem; background:var(--accent); }
.next-actions { display:flex; align-items:center; flex-wrap:wrap; gap:1.5rem; margin-top:2rem; }
.next-button { display:inline-flex; align-items:center; justify-content:space-between; gap:2rem; min-height:54px; padding:1rem 1.5rem; border:1px solid var(--accent); border-radius:7px; background:var(--accent); color:#fff; font-size:.9rem; font-weight:700; line-height:1.5; }
.next-button:hover { background:var(--accent-dark); color:#fff; transform:translateY(-2px); }
.next-text-link { display:inline-flex; align-items:center; gap:1rem; color:var(--accent-dark); font-size:.86rem; font-weight:600; padding:.65rem 0; border-bottom:1px solid var(--primary-300); }
.next-text-link:hover { color:var(--ink); border-color:var(--ink); }
.fine-print { font-size:.74rem; line-height:1.8; color:var(--muted); }
.outline-pill { display:inline-block; padding:.24rem .7rem; border:1px solid var(--primary-200); border-radius:100px; font-size:.7rem; color:var(--accent-dark); }
.next-hero { background:var(--tex-plaster) repeat,#f3f1ec; padding-top:3.8rem; padding-bottom:3.4rem; overflow:hidden; border-bottom:1px solid var(--line); }
.next-hero-grid { display:grid; grid-template-columns:1.05fr 1fr; align-items:center; gap:3rem; }
.next-hero-copy { padding:.4rem 0 2rem; }
.next-hero h1 { font-size:clamp(2.5rem,4.1vw,3.8rem); line-height:1.55; font-weight:600; letter-spacing:.08em; }
.hero-h1-key { display:block; margin-bottom:.7rem; font-size:clamp(1rem,1.5vw,1.2rem); line-height:1.6; letter-spacing:.14em; color:var(--accent-dark); }
.next-hero-lead { margin:1.6rem 0; line-height:2.1; font-size:1rem; color:var(--ink-soft); }
.hero-detail { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:2.2rem; }
.hero-detail > span { display:inline-flex; align-items:center; gap:.45rem; padding:.45rem .85rem .45rem .7rem; background:#ffffffd9; border:1px solid var(--line); border-radius:6px; font-size:.78rem; font-weight:500; color:var(--ink-soft); }
.hero-detail .site-icon { width:1.15rem; height:1.15rem; color:var(--accent); }
.next-hero-visual { position:relative; min-height:0; border-radius:10px; margin-bottom:0; }
.next-hero-visual > img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; object-position:center; border-radius:inherit; }
/* トップ冒頭の写真：実際の施工写真3枚で「何をする会社か」を示し、代表の顔を名札として重ねる。 */
.hero-mosaic { position:relative; display:grid; grid-template-columns:1.12fr 1fr; grid-template-rows:repeat(2,minmax(0,1fr)); gap:10px; aspect-ratio:1.22; }
.hero-mosaic figure { position:relative; margin:0; overflow:hidden; border-radius:10px; background:#e7e5e1; }
.hero-mosaic-main { grid-row:1 / 3; }
.hero-mosaic img { display:block; width:100%; height:100%; object-fit:cover; }
.hero-mosaic figcaption { position:absolute; left:10px; top:10px; padding:.3rem .65rem; background:#fffffff2; border-left:3px solid var(--accent); border-radius:4px; font-size:.74rem; font-weight:700; letter-spacing:.04em; color:var(--ink); }
.hero-rep { position:absolute; left:12px; bottom:12px; display:flex; align-items:center; gap:.65rem; padding:.35rem 1rem .35rem .35rem; background:#fffffff5; border-radius:999px; box-shadow:0 10px 24px #2d2a2826; }
.hero-rep img { width:52px; height:52px; border-radius:50%; object-fit:cover; }
.hero-rep p { margin:0; font-family:var(--font-serif); font-size:.95rem; font-weight:600; line-height:1.35; letter-spacing:.06em; }
.hero-rep small { display:block; font-family:var(--font-family); font-size:.64rem; font-weight:500; color:var(--muted); letter-spacing:.04em; }
.visual-caption { color:var(--ink); display:grid; gap:.35rem; padding:1rem 0; }
.visual-caption span { font-size:.65rem; letter-spacing:.08em; color:var(--muted); }
.visual-caption strong { font-family:var(--font-serif); font-size:.98rem; font-weight:600; }
.hero-owner-link { display:flex; gap:1rem; align-items:center; border-top:1px solid var(--line); padding:1rem 0; }
.hero-owner-link > span:last-child { margin-left:auto; font-size:1.7rem; color:var(--accent); }
.hero-owner-link small,.hero-owner-link strong { display:block; }
.hero-owner-link small { font-size:.72rem; color:var(--muted); }
.hero-owner-link strong { font-size:.96rem; margin-top:.2rem; }
.hero-owner-link .site-icon { width:2rem; height:2rem; color:var(--accent); }
.choice-grid,.quality-grid,.support-grid,.commitment-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.3rem; }
.choice-card { display:flex; flex-direction:column; padding:2rem; border:1px solid var(--line); border-radius:12px; background:#fff; transition:transform .2s,box-shadow .2s; }
.choice-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.choice-num { font-family:var(--font-serif); font-size:.9rem; color:var(--accent); letter-spacing:.08em; margin-bottom:1.6rem; }
.choice-card h3 { font-size:1.2rem; line-height:1.8; font-weight:600; margin-bottom:1rem; }
.choice-card p { font-size:.86rem; line-height:1.95; color:var(--muted); margin-bottom:1.8rem; }
.card-link { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding-top:1.2rem; border-top:1px solid var(--line); margin-top:auto; font-size:.8rem; font-weight:600; color:var(--accent-dark); }
.choice-owner { background:var(--brown); color:#fff; border-color:var(--brown); }
.choice-owner .choice-num { color:var(--tan); }
.choice-owner p { color:var(--cream-on-dark); }
.choice-owner .card-link { color:#f3e7d6; border-color:#7a6064; }
.next-services { background-color:var(--warm); }
.equipment-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.3rem; }
.equipment-card { background:#fff; border-radius:12px; border:1px solid var(--line); overflow:hidden; transition:transform .25s,box-shadow .25s,border-color .25s; }
.equipment-card:hover { transform:translateY(-3px); border-color:#d8d5d0; box-shadow:0 16px 36px #2d2a2814; }
.equipment-card img { width:100%; height:190px; object-fit:cover; transition:transform .4s; }
.equipment-card:hover img { transform:scale(1.04); }
.equipment-card img.is-product { background:#fff; border-bottom:1px solid var(--line-soft); }
.equipment-card img.is-contain { object-fit:contain; padding:12px 16px; }
.equipment-card:hover img.is-product { transform:scale(1.02); }
.equipment-credit { margin-top:.9rem; text-align:right; font-size:.7rem; color:var(--muted); letter-spacing:.04em; }
.equipment-card > div { padding:1rem 1.1rem; display:flex; align-items:center; gap:.7rem; }
.equipment-card h3 { font-size:.95rem; font-weight:600; letter-spacing:.06em; }
.equipment-card > div > span:last-child { display:grid; place-items:center; flex:none; width:30px; height:30px; margin-left:auto; border:1px solid var(--line); border-radius:50%; color:var(--accent); font-size:.8rem; transition:background-color .25s,color .25s,border-color .25s; }
.equipment-card:hover > div > span:last-child { background:var(--accent); border-color:var(--accent); color:#fff; }
.equipment-index { font-family:var(--font-serif); font-size:.75rem; color:var(--accent); }
.help-strip { margin-top:2rem; display:flex; flex-wrap:wrap; justify-content:center; gap:1rem; font-size:.84rem; color:var(--muted); }
.help-strip a { color:var(--accent-dark); border-bottom:1px solid var(--primary-300); }
.owner-feature { background:linear-gradient(#241c1be0,#241c1be0),var(--tex-walnut) center/cover,var(--brown-deep); color:#fff; position:relative; }
.owner-feature-grid { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:6rem; }
.owner-feature .eyebrow { color:var(--tan); }
.owner-feature h2 em { font-style:normal; color:var(--tan); }
.owner-feature-grid > div > p:not(.eyebrow) { color:var(--cream-on-dark); line-height:2.1; margin:1.5rem 0 2rem; font-size:.94rem; }
.owner-feature .next-button { background:#b91c1c; color:#fff; border-color:#b91c1c; }
.care-map { background:#2923267a; border:1px solid #6b5559; border-radius:16px; padding:2rem; }
.care-map-top { display:flex; align-items:center; justify-content:space-between; gap:1rem; font-family:var(--font-serif); font-size:.82rem; letter-spacing:.08em; color:var(--cream-on-dark); }
.care-map .outline-pill { border-color:#8a7358; color:#ecdcc3; letter-spacing:0; }
.care-map li { display:flex; gap:1.3rem; align-items:start; padding:1.5rem 0; border-bottom:1px solid #5b4a45; }
.care-map li > span { font-family:var(--font-serif); font-size:.85rem; color:var(--tan); }
.care-map strong { font-family:var(--font-serif); font-size:1.02rem; font-weight:600; letter-spacing:.04em; }
.care-map li p { font-size:.78rem; color:var(--cream-on-dark); margin-top:.35rem; }
.care-map > a { display:block; margin-top:1.5rem; font-size:.78rem; color:#ecdcc3; }
.next-reassurance { background-color:var(--warm); }
.commitment-grid { gap:2.5rem; }
.commitment-grid article { border-top:1px solid var(--primary-200); padding-top:1.4rem; }
.commitment-grid article > .site-icon { display:block; width:2.4rem; height:2.4rem; margin-bottom:1rem; color:var(--accent); }
.commitment-grid article > span:not(.site-icon) { font-family:var(--font-serif); color:var(--accent); font-size:.8rem; }
.commitment-grid h3 { font-size:1.15rem; margin:1rem 0; }
.commitment-grid p { font-size:.88rem; color:var(--muted); line-height:1.9; }
.commitment-grid a { display:inline-block; color:var(--accent-dark); font-size:.8rem; margin-top:1.5rem; }
.next-contact { padding:5.5rem 0; background:linear-gradient(90deg,#f7f7f5f5 0%,#f7f7f5e6 45%,#f7f7f5b8 100%),url('/images/backgrounds/header-room.webp') center/cover no-repeat,var(--warm); border-top:1px solid var(--line); }
.next-contact-grid { display:grid; grid-template-columns:1.4fr 1fr; align-items:center; gap:3rem; }
.next-contact p:not(.eyebrow) { margin-top:1rem; font-size:.9rem; color:var(--ink-soft); line-height:2; }
.next-contact-actions { display:grid; gap:.6rem; text-align:center; justify-items:stretch; padding:1.8rem; background:#fffffff0; border:1px solid var(--line); border-radius:12px; }
.contact-number { font-size:1.8rem; font-weight:600; letter-spacing:.06em; margin-top:.8rem; }
.contact-number .site-icon { width:1.4rem; height:1.4rem; margin-right:.4rem; color:var(--accent); vertical-align:-.15em; }
.next-contact-actions > span { font-size:.73rem; color:var(--muted); }

.owner-hero { background:linear-gradient(100deg,#221a19eb 0%,#241c1bd6 55%,#241c1bb8 100%),var(--tex-walnut) center/cover,var(--brown-deep); color:#fff; position:relative; overflow:hidden; }
.owner-hero::before { content:none; }
.owner-hero > .container { position:relative; }
.owner-breadcrumb { display:flex; gap:.9rem; padding:1.5rem 0; color:#e3d6c6; font-size:.68rem; }
.owner-breadcrumb a { text-decoration:underline; text-underline-offset:4px; }
.owner-hero-grid { display:grid; grid-template-columns:1.2fr 1fr; align-items:center; gap:3rem; padding:2.2rem 0 4rem; }
.owner-hero .eyebrow { color:var(--tan); }
.owner-audience { display:flex; align-items:center; gap:.8rem; color:var(--tan); font-family:var(--font-serif); font-size:.86rem; font-weight:600; letter-spacing:.1em; margin-bottom:1.2rem; }
.owner-audience::before { content:''; width:28px; height:1px; background:currentColor; flex:none; }
.owner-hero h1 { font-size:clamp(2.3rem,3.75vw,3.4rem); line-height:1.55; letter-spacing:.06em; font-weight:600; }
.owner-hero-lead { font-size:.91rem; line-height:2.1; color:var(--cream-on-dark); margin:1.6rem 0; }
.owner-hero .next-button { background:#b91c1c; border-color:#b91c1c; color:#fff; }
.owner-hero .next-button:hover { background:#991b1b; }
.owner-hero .next-text-link { color:#efe4d4; border-color:#8d7a6c; font-size:.78rem; }
.owner-hero-note { margin-top:1rem; font-size:.72rem; color:#dccfbd; }
.owner-visual { position:relative; padding:1.5rem 0; }
.owner-dossier { position:relative; background:#fff; color:var(--ink); border:1px solid var(--line); border-radius:14px; box-shadow:0 30px 80px #130c0e44; padding:1.7rem 1.6rem; }
.dossier-top { display:flex; justify-content:space-between; align-items:center; color:var(--muted); font-size:.68rem; letter-spacing:.1em; padding-bottom:1.4rem; border-bottom:1px solid var(--line); }
.dossier-dot { width:7px; height:7px; background:#b91c1c; border-radius:50%; }
.dossier-label { margin:1.5rem 0 .5rem; font-size:.72rem; color:var(--muted); }
.dossier-title { display:block; font-family:var(--font-serif); font-size:1.8rem; line-height:1.65; font-weight:600; letter-spacing:.06em; margin-bottom:1.5rem; }
.dossier-row { display:flex; gap:.8rem; align-items:center; padding:1rem 0; border-top:1px solid var(--line-soft); }
.dossier-row > span:first-child { font-family:var(--font-serif); font-size:.75rem; color:var(--muted); }
.dossier-row strong { font-size:.83rem; font-weight:500; }
.dossier-tag { margin-left:auto; background:var(--accent-soft); color:var(--accent-dark); border-radius:4px; padding:.2rem .45rem; font-size:.6rem; white-space:nowrap; }
.dossier-bottom { display:flex; flex-wrap:wrap; gap:.5rem; justify-content:space-between; padding-top:1rem; border-top:1px solid var(--line); font-size:.61rem; color:var(--muted); }
.dossier-bottom a { color:var(--accent); }
.owner-visual-caption { position:relative; padding:1.2rem 0 0; text-align:center; font-size:.7rem; color:#dccfbd; letter-spacing:.07em; }
.owner-hero-footer { border-top:1px solid #5d4c47; padding:1.25rem 0; display:flex; gap:1rem; justify-content:space-between; font-size:.7rem; color:#dccfbd; }
.owner-jump { border-bottom:1px solid var(--line); background:#fff; }
.owner-jump .container { display:flex; gap:2.5rem; align-items:center; min-height:64px; overflow-x:auto; }
.owner-jump a { white-space:nowrap; padding:.9rem 0; color:var(--ink-soft); font-size:.8rem; }
.owner-jump a:hover { color:var(--accent); }
.quality-grid { gap:2rem; }
.quality-grid article { display:flex; flex-direction:column; border-top:1px solid var(--line); padding:1.7rem 0 0; }
.quality-number { font-family:var(--font-serif); font-size:2.2rem; font-weight:500; color:var(--accent); font-variant-numeric:tabular-nums; }
.quality-grid h3 { font-size:1.15rem; font-weight:600; margin:1.1rem 0; }
.quality-grid p { color:var(--ink-soft); font-size:.9rem; line-height:2.05; margin-bottom:1.6rem; }
.quality-footer { margin-top:auto; padding-top:1rem; border-top:1px solid var(--line); font-size:.74rem; color:var(--accent); }
.quality-pricing { display:grid; grid-template-columns:180px 1fr; gap:2rem; margin-top:3rem; padding:1.7rem 2rem; border-radius:10px; background:var(--tex-soft) repeat,var(--warm); border:1px solid var(--line); }
.quality-pricing > span { font-size:.82rem; font-weight:600; }
.quality-pricing p { font-size:.86rem; line-height:2; color:var(--ink-soft); }
.owner-support { background-color:var(--warm); }
.support-card { display:flex; flex-direction:column; align-items:flex-start; background:#fff; border:1px solid var(--line); border-radius:12px; padding:2rem; }
.support-card:hover { border-color:var(--accent); transform:translateY(-3px); }
.support-card h3 { font-size:1.16rem; line-height:1.8; margin:1.5rem 0 1rem; font-weight:600; }
.support-card p { font-size:.85rem; color:var(--muted); line-height:2; margin-bottom:2rem; }
.support-card .card-link { width:100%; font-size:.77rem; }
.owner-equipment { border-top:1px solid var(--line); margin-top:3rem; padding-top:2rem; display:grid; grid-template-columns:200px 1fr; gap:1rem; }
.owner-equipment h3 { font-size:.9rem; font-weight:600; }
.owner-equipment > div { display:flex; flex-wrap:wrap; gap:.6rem 1.3rem; font-size:.8rem; }
.owner-equipment a { padding:.3rem 0; border-bottom:1px solid var(--primary-300); color:var(--accent-dark); }
.owner-report { background:#fff; }
.report-grid { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.report-lead { margin:1.5rem 0 2rem; font-size:.94rem; line-height:2; color:var(--ink-soft); }
.report-points li { display:flex; gap:1rem; padding:1.3rem 0; border-top:1px solid var(--line); }
.report-points li > span { font-family:var(--font-serif); color:var(--accent); font-size:.8rem; padding-top:.2rem; }
.report-points strong { font-size:.93rem; font-weight:600; }
.report-points p { font-size:.79rem; color:var(--muted); margin-top:.4rem; }
.report-grid > div > .fine-print { margin-top:1.5rem; }
.report-sample { background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden; box-shadow:0 20px 60px #2f2a2712; }
.report-sample-head { display:flex; align-items:center; justify-content:space-between; background:var(--tex-soft) repeat,var(--warm); padding:1rem 1.5rem; border-bottom:1px solid var(--line); font-family:var(--font-serif); font-weight:600; font-size:.88rem; }
.report-sample-body { padding:1.7rem; }
.sample-id { color:var(--muted); font-size:.68rem; letter-spacing:.08em; }
.report-sample h3 { font-size:1.13rem; margin:.5rem 0; }
.sample-summary { color:var(--muted); font-size:.78rem; }
.report-photos { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; margin:1.4rem 0; }
.report-photos img { width:100%; height:180px; object-fit:cover; border-radius:5px; }
.report-photos figcaption { padding:.5rem 0; font-size:.68rem; letter-spacing:.04em; color:var(--muted); }
.report-sample dl > div { display:grid; grid-template-columns:110px 1fr; border-top:1px solid var(--line-soft); padding:.75rem 0; font-size:.72rem; gap:.5rem; }
.report-sample dt { color:var(--muted); }
.report-sample dd { margin:0; }
.report-sample .fine-print { margin-top:1rem; font-size:.65rem; }
.owner-flow-section { background-color:var(--warm); }
.owner-flow { max-width:880px; margin:0 auto; }
.owner-flow li { display:grid; grid-template-columns:90px 1fr; gap:1.5rem; padding:2rem 0; border-top:1px solid var(--line); }
.flow-index { font-family:var(--font-serif); font-size:2rem; color:var(--accent); font-weight:500; }
.flow-role { color:var(--accent); font-size:.72rem; letter-spacing:.06em; }
.owner-flow h3 { font-size:1.1rem; font-weight:600; margin:.6rem 0; }
.owner-flow p { color:var(--muted); font-size:.87rem; line-height:2; }
.owner-trust-grid { display:grid; grid-template-columns:1fr 1fr; gap:6rem; align-items:center; }
.owner-trust-grid > div > p:not(.eyebrow) { margin-top:1.5rem; font-size:.9rem; line-height:2.1; color:var(--muted); }
.owner-area-card { padding:2.5rem; background:var(--tex-soft) repeat,var(--warm); border:1px solid var(--line); border-radius:12px; }
.owner-area-card h3 { font-size:1.4rem; font-weight:600; line-height:1.8; }
.owner-area-card > a { display:inline-block; margin-top:1.5rem; color:var(--accent); font-size:.85rem; }
.owner-area-card > div { display:grid; gap:.4rem; margin-top:1.5rem; padding-top:1.5rem; border-top:1px solid var(--line); }
.owner-area-card > div > span,.owner-area-card small { color:var(--muted); font-size:.74rem; }
.owner-area-card > div > a { font-size:1.7rem; font-weight:600; }
.owner-faq { background-color:var(--warm); }
.owner-faq-list { max-width:880px; margin:auto; border-top:1px solid var(--line); }
.owner-faq-list details { border-bottom:1px solid var(--line); }
.owner-faq-list summary { display:flex; justify-content:space-between; gap:2rem; list-style:none; cursor:pointer; padding:1.5rem .5rem; font-size:.95rem; font-weight:600; }
.owner-faq-list summary::-webkit-details-marker { display:none; }
.owner-faq-list summary span { color:var(--accent); transition:transform .2s; }
.owner-faq-list details[open] summary span { transform:rotate(45deg); }
.owner-faq-list details p { padding:0 .5rem 1.5rem; color:var(--ink-soft); line-height:2; font-size:.9rem; }
.owner-inquiry-fields { min-width:0; margin:0 0 2rem; padding:1.5rem; border:1px solid var(--primary-200); border-radius:10px; background:var(--warm); }
.owner-inquiry-fields legend { font-size:.96rem; font-weight:700; padding:0 .5rem; }
.owner-inquiry-fields legend span { display:block; font-size:.72rem; color:var(--muted); font-weight:400; }
.owner-inquiry-fields > p { color:var(--ink-soft); font-size:.84rem; margin-bottom:1rem; }
.owner-field-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.owner-inquiry-fields .form-group { margin-bottom:1rem; }
.owner-inquiry-fields .owner-topic { color:var(--accent-dark); font-weight:600; }

/* Person and equipment remain visible in introduction photographs. */
.about-intro-image { border:0 !important; background:transparent !important; box-shadow:none !important; }
.about-intro-image img { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; object-position:center; }
.lp-hero-image img[src*="service-ih.webp"],.lp-hero-image img[src*="service-bathroom.webp"],.lp-hero-image img[src*="service-renovation.webp"] { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; object-position:center; }
.phone-cta-section { padding:3.5rem 0 2rem; }
.phone-cta-card { max-width:1000px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); align-items:center; gap:3rem; padding:0 !important; border:0 !important; border-radius:0 !important; background:transparent !important; box-shadow:none !important; }
.phone-cta-card .contact-photo { width:100%; margin:0; border:0; border-radius:8px; }
.phone-cta-card .contact-photo img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
.phone-cta-card .phone-number a { color:var(--accent) !important; }
/* 補助金・凍結対策などの案内ページ */
.subsidy-status { margin:0 0 2.5rem; padding:1.3rem 1.5rem; background:#fff; border:1px solid var(--line); border-left:4px solid var(--accent); }
.subsidy-status strong { display:block; font-family:var(--font-serif); font-size:1rem; margin-bottom:.4rem; }
.subsidy-status p { margin:0; line-height:1.9; }
.subsidy-status b { color:var(--accent-dark); font-size:1.1em; }
.subsidy-list { margin:0 0 1.5rem; padding:0; list-style:none; border-top:1px solid var(--line); }
.subsidy-list li { position:relative; padding:.9rem 0 .9rem 1.6rem; border-bottom:1px solid var(--line); line-height:1.9; }
.subsidy-list li::before { content:''; position:absolute; left:.2rem; top:1.65rem; width:8px; height:8px; border-radius:50%; background:var(--accent); }
.subsidy-steps { margin:0 0 1.5rem; padding:0; list-style:none; counter-reset:step; display:grid; gap:.8rem; }
.subsidy-steps li { counter-increment:step; display:grid; grid-template-columns:3rem 1fr; column-gap:1rem; align-items:start; padding:1.1rem 1.2rem; background:#fff; border:1px solid var(--line); border-radius:10px; }
.subsidy-steps li::before { content:counter(step,decimal-leading-zero); grid-row:span 2; font-family:var(--font-serif); font-size:1.4rem; color:var(--accent); line-height:1.3; }
.subsidy-steps strong { font-family:var(--font-serif); font-size:1.02rem; }
.subsidy-steps span { font-size:.9rem; color:var(--ink-soft); line-height:1.9; }
.guide-faq { border-top:1px solid var(--line); margin-bottom:1.5rem; }
.guide-faq details { border-bottom:1px solid var(--line); }
.guide-faq summary { display:flex; justify-content:space-between; gap:1.5rem; list-style:none; cursor:pointer; padding:1.2rem .3rem; font-weight:700; }
.guide-faq summary::-webkit-details-marker { display:none; }
.guide-faq summary span { color:var(--accent); transition:transform .2s; }
.guide-faq details[open] summary span { transform:rotate(45deg); }
.guide-faq .faq-answer p { padding:0 .3rem 1.2rem; margin:0; line-height:2; color:var(--ink-soft); }
.flyer-mini-links { margin:1rem 0 0; padding:0; list-style:none; display:grid; gap:.4rem; font-size:.86rem; }
.flyer-mini-links a { color:var(--accent-dark); border-bottom:1px solid var(--primary-300); }
.err-cta { display:flex; flex-wrap:wrap; align-items:center; gap:.8rem 1.4rem; margin:1.5rem 0 3rem; padding:1.3rem 1.5rem; background:#fff; border:1px solid var(--line); border-left:4px solid var(--accent); }
.err-cta p { flex:1 1 320px; margin:0; line-height:1.9; }
.err-cta p strong { display:block; font-family:var(--font-serif); }
.err-cta-tel { font-size:1.3rem; font-weight:700; letter-spacing:.04em; color:var(--ink); }
.flow-step-body .step-icon { color:var(--accent); background:var(--accent-soft); }
.flow-step-body .step-icon .site-icon { width:28px; height:28px; }
.flow-step-photo:has(img[src*="representative"],img[src*="label-location"]) img { height:auto; aspect-ratio:3/2; object-fit:cover; object-position:center 30%; }
.phone-cta-card .contact-photo img[src*="representative"] { object-position:center 25%; }

/* Articles and their closing contact information sit naturally on the page. */
.blog-article,.article-content { background:transparent !important; border:0 !important; border-radius:0 !important; box-shadow:none !important; }
.blog-cta { margin:3rem 0 0 !important; padding:2rem 0 0 !important; background:transparent !important; border:0 !important; border-top:1px solid var(--line) !important; border-radius:0 !important; box-shadow:none !important; text-align:left !important; color:var(--ink) !important; }
.blog-cta h3 { margin:0 0 .75rem !important; padding:0 !important; border:0 !important; background:transparent !important; font-size:1.15rem !important; line-height:1.8; color:var(--ink) !important; }
.blog-cta p { margin:.5rem 0 !important; color:var(--ink-soft) !important; }
.blog-cta .btn-primary { display:inline-block; margin:.6rem 0 .25rem; padding:0 !important; min-height:0; border:0 !important; border-radius:0 !important; background:transparent !important; box-shadow:none !important; color:var(--accent) !important; font-size:1.6rem; line-height:1.5; }
.blog-cta .btn-primary:hover { text-decoration:underline; transform:none; }

@media(min-width:769px) and (max-width:1050px) {
  .header.header-compact .nav-links > a,.header.header-compact .nav-dropdown > a,.nav-links > a,.nav-dropdown > a { font-size:.72rem; padding:0 .35rem; letter-spacing:.02em; }
  .next-hero-grid,.owner-hero-grid { gap:2rem; }
  .owner-feature-grid,.report-grid,.owner-trust-grid { gap:2.5rem; }
  .equipment-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .choice-card,.support-card { padding:1.4rem; }
  .choice-card h3,.support-card h3 { font-size:1.05rem; }
  .dossier-row { flex-wrap:wrap; gap:.4rem; }
}
@media(max-width:768px) {
  :root { --header-offset:70px; }
  html { scroll-padding-top:76px; }
  .container { width:calc(100% - 40px); }
  .top-bar,.header.header-compact .top-bar { display:none; }
  .header-main-inner { min-height:70px; }
  .logo-img { width:34px; height:42px; }
  .logo-text { font-size:1rem; }
  .logo-sub { font-size:.56rem; display:block; }
  .header.header-compact .header-main-inner { min-height:56px; }
  .header.header-compact .logo-img { width:28px; height:34px; }
  .header.header-compact .logo-text { font-size:.94rem; }
  .header-actions { display:none; }
  .header.header-compact .nav-links,.nav-links { justify-content:flex-start; gap:0; padding-top:5.5rem; }
  .header.header-compact .nav-links > a,.header.header-compact .nav-dropdown > a,.nav-links > a,.nav-dropdown > a { min-height:52px; width:100%; font-size:.95rem; padding:.8rem .5rem; border-bottom:1px solid var(--line); }
  .nav-links a[aria-current="page"] { background:var(--accent-soft); box-shadow:none; }
  .nav-dropdown:focus-within .nav-dropdown-menu { display:none; }
  .nav-dropdown.open .nav-dropdown-menu { display:block; }
  .nav-dropdown-menu a { min-height:44px; }
  .next-section { padding:4rem 0; }
  .next-section-heading { display:block; margin-bottom:2rem; }
  .next-section-heading > p,.next-section-heading > a { margin-top:1rem; }
  .next-section h2,.next-contact h2 { font-size:1.65rem; line-height:1.65; }
  .next-hero { padding-top:2.5rem; padding-bottom:2.5rem; }
  .next-hero-grid,.owner-hero-grid,.owner-feature-grid,.report-grid,.owner-trust-grid,.next-contact-grid { grid-template-columns:1fr; gap:2.5rem; }
  .next-hero h1 { font-size:clamp(2.1rem,8.2vw,3.2rem); }
  .next-hero-copy { padding:0; }
  .next-hero-lead { font-size:.9rem; }
  .eyebrow { font-size:.74rem; letter-spacing:.08em; }
  .eyebrow::before { width:20px; }
  .next-actions { gap:1rem; margin-top:1.5rem; }
  .next-button { font-size:.85rem; min-height:52px; gap:1.2rem; }
  .next-text-link { font-size:.8rem; }
  .hero-detail { margin-top:1.8rem; gap:.45rem; }
  .hero-detail > span { font-size:.72rem; padding:.4rem .7rem .4rem .55rem; }
  .next-hero-visual { min-height:0; margin-bottom:0; border-radius:10px; }
  .next-hero-visual > img { height:auto; }
  .hero-mosaic { gap:6px; aspect-ratio:1.1; }
  .hero-mosaic figcaption { left:6px; top:6px; padding:.2rem .45rem; font-size:.64rem; }
  .hero-rep { left:8px; bottom:8px; padding:.25rem .75rem .25rem .25rem; gap:.45rem; }
  .hero-rep img { width:40px; height:40px; }
  .hero-rep p { font-size:.82rem; }
  .visual-caption { padding:.9rem 0; }
  .visual-caption strong { font-size:.94rem; }
  .hero-owner-link { padding:1rem 0; }
  .hero-owner-link strong { font-size:.88rem; }
  .choice-grid,.quality-grid,.support-grid,.commitment-grid { grid-template-columns:1fr; gap:1rem; }
  .choice-card,.support-card { padding:1.5rem; }
  .choice-num { margin-bottom:1rem; }
  .choice-card h3 { font-size:1.17rem; }
  .equipment-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }
  .equipment-card img { height:125px; }
  .equipment-card img.is-contain { padding:10px 8px; }
  .equipment-card > div { padding:.8rem; gap:.3rem; }
  .equipment-card h3 { font-size:.78rem; }
  .equipment-index { display:none; }
  .help-strip { text-align:center; font-size:.78rem; }
  .care-map { padding:1.4rem; }
  .owner-feature-grid > div > p:not(.eyebrow) { font-size:.86rem; }
  .works-preview { padding:4rem 0; }
  .commitment-grid { gap:2rem; }
  .next-contact { padding:3.5rem 0; background:linear-gradient(#f7f7f5eb,#f7f7f5eb),url('/images/backgrounds/header-room.webp') center/cover no-repeat,var(--warm); }
  .next-contact-actions { padding:1.4rem; }
  .next-contact-actions .next-button { justify-content:center; }
  .owner-breadcrumb { font-size:.62rem; padding:1rem 0; }
  .owner-hero-grid { padding:2rem 0; }
  .owner-hero h1 { font-size:clamp(2rem,7.7vw,2.9rem); }
  .owner-audience { font-size:.74rem; }
  .owner-hero-lead { font-size:.84rem; }
  .owner-hero-lead br { display:none; }
  .owner-visual { padding:1rem 0 0; }
  .owner-dossier { padding:1.5rem; }
  .dossier-title { font-size:1.6rem; }
  .dossier-row strong { font-size:.75rem; }
  .dossier-tag { font-size:.56rem; padding:.2rem .35rem; }
  .owner-hero-footer { font-size:.64rem; flex-direction:column; }
  .owner-jump .container { width:100%; padding:0 20px; gap:1.5rem; min-height:56px; }
  .owner-jump a { font-size:.75rem; }
  .quality-grid { gap:2rem; }
  .quality-number { font-size:1.8rem; }
  .quality-pricing { grid-template-columns:1fr; padding:1.5rem; gap:.8rem; }
  .owner-equipment { grid-template-columns:1fr; }
  .report-photos img { height:160px; }
  .report-sample-body { padding:1.3rem; }
  .report-sample dl > div { grid-template-columns:95px 1fr; }
  .owner-flow li { grid-template-columns:40px 1fr; gap:1rem; padding:1.5rem 0; }
  .flow-index { font-size:1.5rem; }
  .owner-flow h3 { font-size:1rem; }
  .owner-flow p { font-size:.83rem; }
  .owner-area-card { padding:1.6rem; }
  .owner-faq-list summary { font-size:.87rem; gap:1rem; }
  .owner-faq-list details p { font-size:.85rem; }
  .owner-field-grid { grid-template-columns:1fr; gap:0; }
  .owner-inquiry-fields { padding:1rem; }
  .contact-form-card { padding:1.2rem !important; }
  .phone-cta-card { grid-template-columns:1fr; gap:1.5rem; }
  .phone-cta-card .contact-photo { max-width:440px; margin:0 auto; }
  .phone-cta-card .phone-text { text-align:left; }
  .phone-cta-section { padding:2rem 0; }
  .about-intro-image img { height:auto; }
  .footer-grid { gap:2rem; }
  .footer { padding-top:3rem; }
  .cta { padding:3.5rem 0 !important; }
  .cta > .container { padding:1.8rem 1.2rem; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none !important; transition:none !important; }
}
