:root {
  --navy: #143849;
  --navy-deep: #0c2a37;
  --blue: #4eb8d4;
  --blue-light: #e8f7fb;
  --green: #79be78;
  --green-deep: #4d9d63;
  --green-light: #edf8ed;
  --cream: #f8faf7;
  --white: #fff;
  --text: #26363c;
  --muted: #6c7c82;
  --border: #dce7e8;
  --shadow: 0 18px 50px rgba(19, 55, 69, .12);
  --radius: 24px;
  --container: 1180px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--text); font-family: "Noto Sans JP", sans-serif; line-height: 1.85; background: var(--white); }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
.container { width: min(calc(100% - 48px), var(--container)); margin-inline: auto; }
.skip-link { position: fixed; top: -100px; left: 12px; z-index: 9999; padding: 10px 16px; color: white; background: var(--navy); }
.skip-link:focus { top: 12px; }
.sp-only { display: none; }

.header-top { background: var(--navy-deep); color: rgba(255,255,255,.88); font-size: 12px; }
.header-top-inner { height: 34px; display: flex; justify-content: space-between; align-items: center; }
.header-top p { margin: 0; }
.header-contact-mini { display: flex; gap: 24px; }
.header-contact-mini a { font-weight: 700; color: white; }
.site-header { position: sticky; top: 0; z-index: 1000; background: rgba(255,255,255,.97); box-shadow: 0 1px 0 rgba(20,56,73,.08); backdrop-filter: blur(14px); }
.header-main { min-height: 86px; display: flex; align-items: center; gap: 26px; }
.brand { display: inline-flex; align-items: center; gap: 11px; flex-shrink: 0; }
.brand-mark { display: grid; place-items: center; width: 48px; aspect-ratio: 1; border-radius: 50% 50% 50% 14px; color: white; background: linear-gradient(145deg, var(--blue), var(--green)); transform: rotate(-5deg); box-shadow: 0 8px 20px rgba(78,184,212,.24); }
.brand-mark span { font-weight: 800; letter-spacing: -.07em; transform: rotate(5deg); }
.brand-text { line-height: 1.15; }
.brand-text strong { display: block; color: var(--navy); font-family: "Zen Kaku Gothic New", sans-serif; font-size: 20px; letter-spacing: .045em; }
.brand-text small { display: block; margin-top: 5px; color: var(--muted); font-size: 8px; letter-spacing: .16em; }
.global-nav { margin-left: auto; display: flex; align-items: center; gap: 21px; }
.global-nav a { position: relative; font-size: 13px; font-weight: 600; white-space: nowrap; }
.global-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -8px; height: 2px; background: var(--green); transition: .25s; }
.global-nav a:hover::after { right: 0; }
.header-cta { align-self: stretch; min-width: 202px; display: flex; flex-direction: column; justify-content: center; padding: 0 22px; color: white; background: linear-gradient(135deg, var(--green-deep), var(--green)); text-align: center; }
.header-cta span { font-size: 14px; font-weight: 800; }
.header-cta small { font-size: 9px; opacity: .9; }
.menu-button { display: none; }

.hero { position: relative; min-height: 690px; overflow: hidden; background: var(--cream); }
.hero-bg { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(247,251,249,.98) 0%, rgba(247,251,249,.94) 39%, rgba(247,251,249,.28) 68%, rgba(247,251,249,.06) 100%), url("../images/hero-house.svg") center right / cover no-repeat; }
.hero-inner { position: relative; z-index: 2; min-height: 690px; display: grid; grid-template-columns: minmax(0, 1.1fr) 360px; align-items: center; gap: 60px; padding-block: 70px 100px; }
.hero-copy { max-width: 630px; }
.hero-eyebrow, .section-kicker { margin: 0 0 14px; color: var(--green-deep); font-size: 12px; font-weight: 800; letter-spacing: .24em; }
.hero h1 { margin: 0; color: var(--navy-deep); font-family: "Zen Kaku Gothic New", sans-serif; font-size: clamp(54px, 6.2vw, 88px); line-height: 1.04; letter-spacing: -.055em; }
.hero h1 em { position: relative; color: var(--green-deep); font-style: normal; }
.hero h1 em::after { content: ""; position: absolute; left: 3%; right: -3%; bottom: 4px; height: 15px; z-index: -1; background: rgba(126,196,122,.22); border-radius: 50%; transform: rotate(-2deg); }
.hero-lead { margin: 26px 0 8px; color: var(--navy); font-size: clamp(24px, 3vw, 35px); font-weight: 700; line-height: 1.45; letter-spacing: .04em; }
.hero-description { max-width: 570px; margin: 0 0 32px; color: #4d6269; font-size: 15px; }
.hero-actions { display: flex; align-items: stretch; gap: 12px; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 58px; padding: 12px 30px; border: 0; border-radius: 999px; font-weight: 700; cursor: pointer; transition: .25s; }
.button:hover { transform: translateY(-2px); box-shadow: 0 12px 25px rgba(20,56,73,.18); }
.button-primary { color: white; background: linear-gradient(135deg, var(--green-deep), var(--green)); }
.button-secondary { min-width: 205px; flex-direction: column; color: var(--navy); background: white; border: 1px solid var(--border); line-height: 1.3; }
.button-secondary span { font-size: 10px; color: var(--muted); }
.button-secondary strong { font-size: 18px; }
.hero-card { padding: 34px; border-radius: var(--radius); color: white; background: rgba(13, 54, 69, .91); box-shadow: var(--shadow); backdrop-filter: blur(8px); }
.hero-card-label { display: block; margin-bottom: 5px; color: #8dd8e8; font-size: 10px; font-weight: 800; letter-spacing: .18em; }
.hero-card > strong { font-size: 32px; }
.hero-card p { margin: 15px 0 22px; font-size: 14px; color: rgba(255,255,255,.83); }
.hero-card ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 9px; }
.hero-card li { position: relative; padding-left: 25px; font-size: 13px; font-weight: 600; }
.hero-card li::before { content: "✓"; position: absolute; left: 0; color: #96d696; }
.hero-wave { position: absolute; left: -5%; right: -5%; bottom: -55px; height: 110px; border-radius: 50% 50% 0 0; background: white; }

.quick-links { position: relative; z-index: 4; margin-top: -25px; }
.quick-links-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-radius: 18px; background: white; box-shadow: var(--shadow); overflow: hidden; }
.quick-links-grid a { position: relative; min-height: 132px; display: grid; align-content: center; padding: 20px 24px 20px 70px; border-right: 1px solid var(--border); transition: .25s; }
.quick-links-grid a:last-child { border: 0; color: white; background: linear-gradient(145deg, var(--blue), #65c2d6); }
.quick-links-grid a:hover { background: var(--green-light); }
.quick-links-grid a:last-child:hover { background: linear-gradient(145deg, #40a9c3, #57b9cd); }
.quick-icon { position: absolute; left: 22px; top: 42px; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; color: white; background: var(--navy); font-size: 10px; font-weight: 800; }
.quick-links-grid strong { color: var(--navy); font-size: 15px; }
.quick-links-grid a:last-child strong { color: white; }
.quick-links-grid small { color: var(--muted); font-size: 10px; }
.quick-links-grid a:last-child small { color: rgba(255,255,255,.85); }

.section { padding: 110px 0; }
.split-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 100px; }
.section-heading h2, .section-title h2 { margin: 0; color: var(--navy-deep); font-family: "Zen Kaku Gothic New", sans-serif; font-size: clamp(34px, 4vw, 52px); line-height: 1.35; letter-spacing: -.035em; }
.section-title { margin-bottom: 52px; }
.section-title.centered { max-width: 720px; margin-inline: auto; margin-bottom: 55px; text-align: center; }
.section-title > p:last-child { margin: 14px 0 0; color: var(--muted); }
.intro { padding-top: 140px; }
.intro-body { padding-top: 28px; }
.intro-body p { margin: 0 0 22px; }
.intro-strong { color: var(--navy); font-size: 21px; font-weight: 700; }
.message-sign { margin-top: 36px; color: var(--navy); font-weight: 700; }

.service-section { background: linear-gradient(180deg, var(--cream), white); }
.main-service-card { display: grid; grid-template-columns: 1.05fr .95fr; border-radius: 30px; background: white; box-shadow: var(--shadow); overflow: hidden; }
.service-image { position: relative; min-height: 510px; background: var(--blue-light); }
.service-image img { width: 100%; height: 100%; object-fit: cover; }
.service-number { position: absolute; left: 28px; top: 25px; color: white; font-size: 70px; font-weight: 800; line-height: 1; opacity: .84; }
.service-content { display: flex; flex-direction: column; justify-content: center; padding: 60px; }
.service-status { margin: 0 0 12px; font-size: 10px; font-weight: 800; letter-spacing: .18em; }
.service-status.active { color: var(--green-deep); }
.service-status.future { color: var(--blue); }
.service-content h3, .future-heading h3 { margin: 0 0 22px; color: var(--navy); font-size: 36px; }
.service-content p { color: var(--muted); }
.service-points { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 28px; }
.service-points span { padding: 7px 15px; border-radius: 999px; color: var(--navy); background: var(--blue-light); font-size: 12px; font-weight: 600; }
.text-link { color: var(--green-deep); font-weight: 700; }
.text-link span { display: inline-block; transition: .2s; }
.text-link:hover span { transform: translateX(5px); }
.future-services { margin-top: 42px; display: grid; grid-template-columns: 330px 1fr; gap: 48px; padding: 44px; border: 1px solid var(--border); border-radius: 24px; background: white; }
.future-heading h3 { margin-bottom: 10px; font-size: 25px; }
.future-heading p:last-child { color: var(--muted); font-size: 13px; }
.future-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.future-grid div { min-height: 150px; display: flex; flex-direction: column; justify-content: center; padding: 20px; border-radius: 16px; background: var(--cream); }
.future-grid span { color: var(--blue); font-size: 12px; font-weight: 800; }
.future-grid strong { margin: 10px 0; color: var(--navy); font-size: 16px; }
.future-grid small { width: fit-content; padding: 3px 9px; border-radius: 999px; color: var(--muted); background: white; font-size: 9px; }

.reason-section { position: relative; color: white; background: linear-gradient(135deg, var(--navy-deep), #15506a); overflow: hidden; }
.reason-section::before { content: ""; position: absolute; width: 500px; height: 500px; right: -170px; top: -230px; border: 90px solid rgba(255,255,255,.035); border-radius: 50%; }
.section-title.light h2 { color: white; }
.section-title.light > p:last-child { color: rgba(255,255,255,.72); }
.reason-grid { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.reason-card { position: relative; min-height: 350px; padding: 34px 28px; border: 1px solid rgba(255,255,255,.13); border-radius: 20px; background: rgba(255,255,255,.07); backdrop-filter: blur(4px); }
.reason-no { position: absolute; right: 20px; top: 15px; color: rgba(255,255,255,.12); font-size: 50px; font-weight: 800; }
.reason-icon { display: grid; place-items: center; width: 58px; height: 58px; margin-bottom: 28px; border-radius: 16px; color: var(--navy-deep); background: linear-gradient(145deg, #b9ebef, #a9dda8); font-size: 19px; font-weight: 800; }
.reason-card h3 { margin: 0 0 18px; font-size: 20px; line-height: 1.55; }
.reason-card p { margin: 0; color: rgba(255,255,255,.73); font-size: 13px; }

.works-section { background: white; }
.work-card { display: grid; grid-template-columns: 1.25fr .75fr; gap: 42px; align-items: center; padding: 32px; border-radius: 24px; background: var(--cream); }
.work-visuals { display: grid; grid-template-columns: 1fr auto 1fr; gap: 15px; align-items: center; }
.work-visuals figure { position: relative; margin: 0; border-radius: 16px; overflow: hidden; background: white; }
.work-visuals img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.work-visuals figcaption { position: absolute; left: 12px; bottom: 12px; padding: 5px 12px; border-radius: 999px; color: white; background: rgba(12,42,55,.82); font-size: 10px; font-weight: 800; }
.work-arrow { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; color: white; background: var(--green); }
.work-meta { display: flex; align-items: center; gap: 12px; color: var(--muted); font-size: 11px; }
.work-meta span { padding: 5px 10px; border-radius: 999px; color: var(--green-deep); background: var(--green-light); font-weight: 700; }
.work-info h3 { margin: 15px 0 22px; color: var(--navy); font-size: 27px; }
.work-info dl { margin: 0 0 22px; border-top: 1px solid var(--border); }
.work-info dl div { display: grid; grid-template-columns: 90px 1fr; padding: 12px 0; border-bottom: 1px solid var(--border); font-size: 12px; }
.work-info dt { color: var(--muted); }
.work-info dd { margin: 0; font-weight: 600; }
.work-info > p { color: var(--muted); font-size: 13px; }

.flow-section { background: var(--blue-light); }
.flow-list { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; counter-reset: flow; }
.flow-list li { position: relative; min-height: 205px; padding: 30px 22px; border-radius: 18px; background: white; box-shadow: 0 10px 25px rgba(20,56,73,.07); }
.flow-list li:not(:last-child)::after { content: "→"; position: absolute; right: -19px; top: 50%; z-index: 2; color: var(--green); font-weight: 800; transform: translateY(-50%); }
.flow-list span { color: var(--blue); font-size: 12px; font-weight: 800; }
.flow-list strong { display: block; margin: 18px 0 12px; color: var(--navy); font-size: 17px; }
.flow-list p { margin: 0; color: var(--muted); font-size: 12px; }

.faq-section { background: white; }
.faq-layout { display: grid; grid-template-columns: 330px 1fr; gap: 80px; }
.faq-list { border-top: 1px solid var(--border); }
details { border-bottom: 1px solid var(--border); }
summary { list-style: none; position: relative; display: flex; align-items: center; gap: 18px; padding: 25px 50px 25px 5px; color: var(--navy); font-weight: 600; cursor: pointer; }
summary::-webkit-details-marker { display: none; }
summary::after { content: "+"; position: absolute; right: 12px; color: var(--green-deep); font-size: 25px; font-weight: 400; }
details[open] summary::after { content: "−"; }
summary span, .faq-answer > span { flex: 0 0 32px; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; color: white; background: var(--blue); font-weight: 800; }
.faq-answer { display: flex; gap: 18px; padding: 0 50px 25px 5px; }
.faq-answer > span { background: var(--green); }
.faq-answer p { margin: 2px 0 0; color: var(--muted); }

.news-section { background: var(--cream); }
.news-layout { display: grid; grid-template-columns: 330px 1fr; gap: 80px; }
.news-list { border-top: 1px solid var(--border); }
.news-list article { display: grid; grid-template-columns: 95px 90px 1fr; align-items: center; gap: 16px; padding: 23px 5px; border-bottom: 1px solid var(--border); }
.news-list time { color: var(--muted); font-size: 12px; }
.news-list span { padding: 5px 9px; border-radius: 999px; color: var(--green-deep); background: white; font-size: 10px; text-align: center; }
.news-list a { color: var(--navy); font-weight: 600; }
.news-list a:hover { color: var(--green-deep); }

.resident-banner { padding: 70px 0; color: white; background: linear-gradient(110deg, var(--blue), #62c8cc 55%, var(--green)); }
.resident-banner-inner { display: flex; justify-content: space-between; align-items: center; gap: 30px; }
.resident-banner .section-kicker { color: white; opacity: .8; }
.resident-banner h2 { margin: 0 0 10px; font-size: 34px; }
.resident-banner p { margin: 0; opacity: .9; }
.button-white { color: var(--navy); background: white; white-space: nowrap; }

.company-section { background: white; }
.company-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 45px; align-items: stretch; }
.company-info dl { margin: 0; border-top: 1px solid var(--border); }
.company-info dl div { display: grid; grid-template-columns: 130px 1fr; padding: 18px 8px; border-bottom: 1px solid var(--border); }
.company-info dt { color: var(--muted); font-size: 12px; }
.company-info dd { margin: 0; color: var(--navy); font-size: 13px; font-weight: 600; }
.map-wrap { min-height: 460px; border-radius: 22px; background: var(--cream); overflow: hidden; }
.map-wrap iframe { width: 100%; height: 410px; border: 0; }
.map-wrap p { margin: 10px 18px; color: var(--muted); font-size: 10px; }

.contact-section { color: white; background: var(--navy-deep); }
.contact-wrap { display: grid; grid-template-columns: .8fr 1.2fr; gap: 80px; align-items: start; }
.contact-intro .section-kicker { color: #87d7e7; }
.contact-intro h2 { margin: 0 0 25px; font-size: clamp(36px, 4vw, 52px); line-height: 1.4; }
.contact-intro > p { color: rgba(255,255,255,.72); }
.contact-phone { margin-top: 40px; padding: 25px 0; border-top: 1px solid rgba(255,255,255,.15); border-bottom: 1px solid rgba(255,255,255,.15); }
.contact-phone small, .contact-phone span { display: block; color: rgba(255,255,255,.65); }
.contact-phone a { display: block; margin: 3px 0; font-size: 34px; font-weight: 800; letter-spacing: .03em; }
.line-preparing { display: inline-block; margin-top: 24px; padding: 10px 18px; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; color: rgba(255,255,255,.75); font-size: 12px; }
.contact-form { padding: 42px; border-radius: 24px; color: var(--text); background: white; }
.form-note { margin-bottom: 25px; color: var(--navy); font-weight: 700; }
.form-note span { display: inline-grid; place-items: center; width: 45px; height: 45px; margin-right: 10px; border-radius: 50%; color: white; background: var(--green); }
.contact-form label:not(.privacy-check) { display: block; margin-bottom: 18px; color: var(--navy); font-size: 12px; font-weight: 600; }
.contact-form em { margin-left: 5px; color: #d76565; font-size: 9px; font-style: normal; }
.contact-form input, .contact-form textarea, .contact-form select { width: 100%; margin-top: 8px; padding: 13px 14px; border: 1px solid var(--border); border-radius: 8px; color: var(--text); background: #fbfdfd; outline: 0; }
.contact-form input:focus, .contact-form textarea:focus, .contact-form select:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(78,184,212,.12); }
.privacy-check { display: flex; gap: 9px; align-items: center; margin: 20px 0; color: var(--muted); font-size: 11px; }
.privacy-check input { width: auto; margin: 0; }
.form-submit { width: 100%; }
.form-caption { margin: 15px 0 0; color: var(--muted); font-size: 10px; }

.site-footer { color: rgba(255,255,255,.78); background: #081f29; }
.footer-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 70px; padding: 75px 0; }
.brand-footer .brand-text strong { color: white; }
.footer-brand p { margin-top: 24px; font-size: 13px; }
.footer-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 24px; align-content: start; font-size: 12px; }
.footer-nav a:hover { color: white; }
.footer-info { font-size: 12px; }
.footer-info strong { color: white; font-size: 15px; }
.footer-info p { margin: 12px 0; }
.footer-info a { display: block; color: white; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.08); }
.footer-bottom .container { min-height: 55px; display: flex; justify-content: space-between; align-items: center; font-size: 10px; }
.mobile-fixed-cta { display: none; }

.reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.reveal.is-visible { opacity: 1; transform: none; }
.delay-1 { transition-delay: .1s; }.delay-2 { transition-delay: .2s; }.delay-3 { transition-delay: .3s; }

/* Resident page */
.resident-page { background: var(--cream); }
.resident-header { padding: 16px 0; background: white; box-shadow: 0 1px 0 var(--border); }
.resident-header .container { display: flex; justify-content: space-between; align-items: center; }
.back-link { color: var(--green-deep); font-size: 12px; font-weight: 700; }
.resident-hero { padding: 90px 0 105px; color: white; text-align: center; background: linear-gradient(135deg, rgba(15,57,73,.93), rgba(34,123,141,.87)), url("../images/resident-bg.svg") center/cover; }
.resident-hero p { margin: 0 0 10px; font-size: 11px; font-weight: 800; letter-spacing: .25em; }
.resident-hero h1 { margin: 0; font-size: clamp(38px, 6vw, 62px); line-height: 1.35; }
.resident-hero span { display: inline-block; margin-top: 15px; padding: 7px 18px; border: 1px solid rgba(255,255,255,.4); border-radius: 999px; font-size: 11px; }
.resident-main { padding-top: 0; margin-top: -45px; }
.resident-container { max-width: 900px; }
.notice-card { padding: 35px; border-radius: 20px; background: white; box-shadow: var(--shadow); text-align: center; }
.notice-card.important { border-top: 6px solid var(--green); }
.notice-label { color: var(--green-deep); font-size: 11px; font-weight: 800; letter-spacing: .14em; }
.notice-card h2 { margin: 8px 0 3px; color: var(--navy); font-size: 28px; }
.notice-card p { margin: 0; color: var(--muted); font-size: 12px; }
.resident-message { margin: 45px 0; padding: 0 25px; }
.resident-message p { margin: 0 0 16px; }
.resident-info-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.resident-info-card { min-height: 215px; padding: 27px 20px; border-radius: 18px; background: white; text-align: center; box-shadow: 0 10px 25px rgba(20,56,73,.07); }
.resident-info-card > span { color: var(--blue); font-size: 11px; font-weight: 800; }
.resident-info-card h3 { margin: 10px 0 15px; color: var(--navy); font-size: 16px; }
.resident-info-card p { margin: 0; }
.resident-info-card strong { color: var(--navy-deep); font-size: 20px; }
.resident-info-card small { display: block; margin-top: 10px; color: var(--muted); font-size: 10px; }
.resident-attention { margin-top: 80px; }
.attention-list { display: grid; gap: 12px; }
.attention-list article { display: grid; grid-template-columns: 70px 1fr; gap: 22px; align-items: center; padding: 26px 30px; border-radius: 16px; background: white; }
.attention-icon { display: grid; place-items: center; width: 60px; height: 60px; border-radius: 50%; color: var(--navy); background: var(--blue-light); font-weight: 800; }
.attention-list h3 { margin: 0 0 7px; color: var(--navy); font-size: 17px; }
.attention-list p { margin: 0; color: var(--muted); font-size: 13px; }
.notice-card.warning { margin-top: 45px; border-left: 6px solid #e7bd55; text-align: left; }
.notice-card.warning h2 { font-size: 20px; }
.resident-contact { margin-top: 60px; padding: 50px; border-radius: 24px; color: white; background: var(--navy-deep); text-align: center; }
.resident-contact .section-kicker { color: #8dd8e8; }
.resident-contact h2 { margin: 0; font-size: 28px; }
.resident-contact > p { color: rgba(255,255,255,.75); }
.resident-phone { display: block; margin-top: 18px; font-size: 38px; font-weight: 800; }
.resident-contact > span { display: block; font-size: 11px; opacity: .7; }
.resident-mail { display: inline-block; margin-top: 15px; padding-bottom: 2px; border-bottom: 1px solid rgba(255,255,255,.4); font-size: 12px; }
.resident-footer { padding: 22px; color: rgba(255,255,255,.65); background: #081f29; text-align: center; font-size: 10px; }
.resident-footer p { margin: 0; }

@media (max-width: 1050px) {
  .global-nav { display: none; position: fixed; inset: 120px 20px auto; padding: 25px; border-radius: 18px; background: white; box-shadow: var(--shadow); }
  .global-nav.is-open { display: grid; gap: 18px; }
  .header-cta { margin-left: auto; }
  .menu-button { order: 3; width: 43px; height: 43px; display: grid; place-content: center; gap: 5px; border: 0; border-radius: 8px; background: var(--cream); }
  .menu-button span { width: 21px; height: 2px; background: var(--navy); }
  .hero-inner { grid-template-columns: 1fr 300px; gap: 30px; }
  .future-services { grid-template-columns: 1fr; }
  .reason-grid { grid-template-columns: repeat(2, 1fr); }
  .flow-list { grid-template-columns: repeat(3, 1fr); }
  .flow-list li:nth-child(3)::after { display: none; }
  .work-card { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  body { padding-bottom: 64px; }
  .container { width: min(calc(100% - 30px), var(--container)); }
  .sp-only { display: block; }
  .header-top { display: none; }
  .header-main { min-height: 70px; gap: 10px; }
  .brand-mark { width: 40px; }
  .brand-text strong { font-size: 16px; }
  .brand-text small { font-size: 6px; }
  .header-cta { display: none; }
  .global-nav { inset: 78px 15px auto; }
  .hero { min-height: auto; }
  .hero-bg { background: linear-gradient(180deg, rgba(247,251,249,.88), rgba(247,251,249,.98)), url("../images/hero-house.svg") center/cover; }
  .hero-inner { min-height: auto; grid-template-columns: 1fr; padding: 65px 0 100px; }
  .hero h1 { font-size: 52px; }
  .hero-lead { font-size: 24px; }
  .hero-description { font-size: 13px; }
  .hero-actions { flex-direction: column; }
  .hero-card { padding: 26px; }
  .quick-links { margin-top: -35px; }
  .quick-links-grid { grid-template-columns: 1fr 1fr; }
  .quick-links-grid a { min-height: 105px; padding: 18px 15px 18px 55px; border-bottom: 1px solid var(--border); }
  .quick-icon { left: 14px; top: 33px; width: 31px; height: 31px; }
  .quick-links-grid strong { font-size: 13px; }
  .section { padding: 78px 0; }
  .intro { padding-top: 100px; }
  .split-layout, .faq-layout, .news-layout, .company-grid, .contact-wrap { grid-template-columns: 1fr; gap: 35px; }
  .section-heading h2, .section-title h2 { font-size: 34px; }
  .section-title { margin-bottom: 35px; }
  .main-service-card { grid-template-columns: 1fr; }
  .service-image { min-height: 280px; }
  .service-content { padding: 32px 25px; }
  .service-content h3 { font-size: 29px; }
  .future-services { padding: 25px; }
  .future-grid { grid-template-columns: 1fr 1fr; }
  .future-grid div { min-height: 120px; }
  .reason-grid { grid-template-columns: 1fr; }
  .reason-card { min-height: auto; }
  .work-card { padding: 17px; }
  .work-visuals { grid-template-columns: 1fr; }
  .work-arrow { margin: -2px auto; transform: rotate(90deg); }
  .work-info { padding: 10px; }
  .flow-list { grid-template-columns: 1fr; }
  .flow-list li { min-height: auto; }
  .flow-list li:not(:last-child)::after { content: "↓"; display: block; right: 50%; top: auto; bottom: -25px; transform: translateX(50%); }
  .news-list article { grid-template-columns: 90px 1fr; gap: 8px 12px; }
  .news-list a { grid-column: 1 / -1; }
  .resident-banner-inner { flex-direction: column; align-items: flex-start; }
  .resident-banner h2 { font-size: 28px; }
  .company-info dl div { grid-template-columns: 95px 1fr; }
  .map-wrap { min-height: 350px; }
  .map-wrap iframe { height: 300px; }
  .contact-form { padding: 27px 20px; }
  .contact-phone a { font-size: 29px; }
  .footer-grid { grid-template-columns: 1fr; gap: 35px; padding: 55px 0; }
  .footer-bottom .container { gap: 15px; }
  .mobile-fixed-cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1001; display: grid; grid-template-columns: 1fr 1fr; height: 64px; box-shadow: 0 -5px 20px rgba(12,42,55,.16); }
  .mobile-fixed-cta a { display: flex; flex-direction: column; align-items: center; justify-content: center; color: white; background: var(--blue); line-height: 1.3; }
  .mobile-fixed-cta a:last-child { background: var(--green-deep); }
  .mobile-fixed-cta span { font-size: 9px; }
  .mobile-fixed-cta strong { font-size: 13px; }
  .reveal { opacity: 1; transform: none; }

  .resident-header .brand-text small { display: none; }
  .back-link { font-size: 10px; }
  .resident-hero { padding: 65px 0 85px; }
  .resident-main { margin-top: -35px; }
  .notice-card { padding: 25px 18px; }
  .resident-message { padding: 0 5px; }
  .resident-info-grid { grid-template-columns: 1fr; }
  .resident-info-card { min-height: auto; }
  .attention-list article { grid-template-columns: 50px 1fr; gap: 15px; padding: 22px 18px; }
  .attention-icon { width: 48px; height: 48px; }
  .resident-contact { padding: 36px 20px; }
  .resident-phone { font-size: 30px; }
}


/* v1.2 追加：運用・編集しやすさのための補助スタイル */
.service-detail-list {
  margin: 1.25rem 0;
  padding-left: 1.25rem;
}
.service-detail-list li {
  margin: .45rem 0;
}
.required-note {
  margin: 0 0 1rem;
  font-size: .9rem;
}
.required-note em {
  display: inline-block;
  margin-right: .4rem;
  padding: .15rem .45rem;
  border-radius: 999px;
  background: #e75454;
  color: #fff;
  font-style: normal;
  font-size: .75rem;
}
.form-honeypot {
  position: absolute !important;
  left: -9999px !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.form-status {
  min-height: 1.5em;
  margin-top: .75rem;
  font-weight: 700;
}
.footer-bottom .container > div {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
.legal-page {
  background: #f7fafb;
}
.legal-main {
  max-width: 900px;
  margin: 0 auto;
  padding: 70px 20px 100px;
}
.legal-main h1 {
  margin-bottom: 2rem;
}
.legal-main h2 {
  margin: 2.25rem 0 .75rem;
  font-size: 1.35rem;
}
.legal-main p,
.legal-main li {
  line-height: 1.9;
}
.template-note {
  margin: 1.5rem 0;
  padding: 1rem 1.25rem;
  border-left: 4px solid #2aa981;
  background: #eefaf6;
}
@media (max-width: 767px) {
  .footer-bottom .container > div {
    justify-content: center;
  }
}

/* v1.3 */
.hero-line{display:block;white-space:nowrap}.hero-lead .hero-line{display:inline}.hero-lead .hero-line+.hero-line:before{content:" "}
.campaign-banner{background:linear-gradient(90deg,#fff6dd,#fff);border-block:1px solid rgba(220,168,40,.25)}.campaign-banner[hidden]{display:none}.campaign-banner-inner{min-height:92px;display:grid;grid-template-columns:auto 1fr auto auto;gap:1rem;align-items:center}.campaign-badge{padding:.5rem .8rem;border-radius:999px;background:#e78c2d;color:#fff;font-weight:800}.campaign-copy{display:grid;gap:.2rem}.campaign-copy strong{font-size:1.15rem}.campaign-copy span{color:#60747d}.campaign-link{font-weight:800;color:#1e8d66}.campaign-close{border:0;background:transparent;font-size:1.7rem;cursor:pointer}
.service-main{transition:.22s}.service-main.is-changing{opacity:.25;transform:translateY(8px)}.service-sales-block{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin:1.5rem 0}.service-sales-block>div{padding:1.1rem 1.2rem;border-radius:18px;background:#f5faf9}.service-sales-block h4{margin:0 0 .8rem}.service-sales-block li{margin:.45rem 0}.service-selector{margin-top:1.25rem;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.8rem}.service-tab{min-height:116px;padding:1rem;border:1px solid #dce8e6;border-radius:18px;background:#fff;cursor:pointer;text-align:left;transition:.18s}.service-tab:hover,.service-tab.is-active{transform:translateY(-3px);border-color:#49af86;box-shadow:0 12px 24px rgba(34,89,76,.11)}.service-tab span,.service-tab strong,.service-tab small{display:block}.service-tab span{color:#4aae84;font-weight:800}.service-tab strong{margin:.4rem 0}.service-tab small{color:#6d7f86}
.works-carousel{position:relative;overflow:hidden;padding:1rem 0 3rem}.works-viewport{overflow:hidden}.works-track{display:flex;transition:transform .48s cubic-bezier(.2,.75,.25,1)}.work-slide{flex:0 0 min(68vw,980px);margin:0 1rem;opacity:.42;filter:saturate(.7);transform:scale(.93);transition:.35s;text-decoration:none;color:inherit}.work-slide.is-active{opacity:1;filter:none;transform:scale(1)}.works-carousel:before,.works-carousel:after{content:"";position:absolute;top:0;bottom:2.5rem;width:14vw;z-index:3;pointer-events:none}.works-carousel:before{left:0;background:linear-gradient(90deg,#fff,rgba(255,255,255,0))}.works-carousel:after{right:0;background:linear-gradient(270deg,#fff,rgba(255,255,255,0))}.works-nav{position:absolute;top:50%;z-index:5;width:52px;height:52px;border:0;border-radius:50%;background:#4dbb82;color:#fff;font-size:1.25rem;cursor:pointer}.works-nav:disabled{opacity:.25}.works-prev{left:3vw}.works-next{right:3vw}.works-dots{display:flex;justify-content:center;gap:.45rem;margin-top:1rem}.works-dots button{width:9px;height:9px;border:0;border-radius:50%;background:#c8d5d2}.works-dots button.is-active{width:26px;border-radius:999px;background:#4dbb82}
.faq-cta{margin-top:1.6rem;padding:1.4rem;border-radius:20px;background:#eef8f5;display:flex;justify-content:space-between;align-items:center;gap:1rem}.faq-cta-actions{display:flex;gap:.75rem;flex-wrap:wrap}
.news-list-scroll{max-height:310px;overflow-y:auto;padding-right:.5rem}.news-list-scroll article{display:grid;grid-template-columns:110px 110px minmax(0,1fr);gap:.8rem;align-items:center;padding:1rem 0;border-bottom:1px solid #dfe8e6}.news-cat{display:inline-flex;justify-content:center;padding:.35rem .55rem;border-radius:999px;font-size:.78rem;font-weight:800}.news-cat.campaign{background:#fff0d6;color:#a7630d}.news-cat.works{background:#e6f7ef;color:#267b5b}.news-cat.info{background:#e8f2ff;color:#356b9b}.news-cat.business{background:#f0ebff;color:#6546a3}.news-cat.residents{background:#fff0f3;color:#a64b64}.news-more{display:inline-block;margin-top:1rem;font-weight:800;color:#2d9d70}.news-list-page{max-height:none;overflow:visible}.campaign-hero-box{margin:2rem 0;padding:2rem;border-radius:24px;background:linear-gradient(135deg,#fff3cc,#f5fbf8)}
@media(max-width:1100px){.hero-line{white-space:normal}.service-selector{grid-template-columns:repeat(2,1fr)}.work-slide{flex-basis:78vw}}
@media(max-width:767px){.hero-copy h1 .hero-line,.hero-lead .hero-line{white-space:nowrap}.hero-lead .hero-line{display:block}.hero-lead .hero-line+.hero-line:before{content:""}.campaign-banner-inner{grid-template-columns:auto 1fr auto;padding-block:.9rem}.campaign-copy span{display:none}.campaign-link{grid-column:1/3}.service-sales-block{grid-template-columns:1fr}.service-selector{display:flex;overflow-x:auto}.service-tab{flex:0 0 72%}.work-slide{flex-basis:88vw;margin:0 .55rem}.works-carousel:before,.works-carousel:after{width:7vw}.works-nav{width:44px;height:44px}.faq-cta{align-items:flex-start;flex-direction:column}.news-list-scroll article{grid-template-columns:95px 1fr}.news-list-scroll article a{grid-column:1/-1}}
@media(max-width:430px){.hero-copy h1 .hero-line{white-space:normal}}


/* ==================== v1.4 ==================== */
.global-nav{gap:clamp(.6rem,1vw,1.15rem)}
.global-nav a{font-size:clamp(.74rem,.82vw,.9rem);white-space:nowrap}
.header-cta{min-width:178px}
.hero-copy{position:relative;z-index:2;max-width:760px}
.hero-copy h1{width:max-content;max-width:100%}
.hero-copy .hero-accent{color:#45a86f;font-weight:800}
.hero-card{position:relative;z-index:1;transform:translateX(clamp(30px,4.5vw,80px))}
.quick-links{position:relative;z-index:5}
.campaign-banner{position:relative;z-index:2;margin:56px 0 0;border-block:1px solid rgba(220,168,40,.3);background:linear-gradient(90deg,#fff6dc,#fffdf7);overflow:visible}
.campaign-banner[hidden]{display:none}
.campaign-banner-inner{min-height:104px;display:grid;grid-template-columns:auto minmax(260px,1fr) auto auto;gap:1rem;align-items:center}
.campaign-link{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.75rem 1.25rem;border-radius:999px;background:#299d6e;color:#fff;font-weight:800;box-shadow:0 8px 18px rgba(41,157,110,.2)}
.campaign-link:hover{transform:translateY(-1px);background:#238a60}
.campaign-minimize{width:32px;height:32px;border:1px solid #cad6d1;border-radius:50%;background:#fff;color:#587067;font-size:1.1rem;line-height:1;cursor:pointer}
.campaign-mini{display:none;position:fixed;right:20px;bottom:86px;z-index:100;min-width:220px;padding:.8rem 1rem;border:0;border-radius:18px;background:#fff4ce;color:#173746;box-shadow:0 14px 34px rgba(16,48,58,.18);cursor:pointer;text-align:left}
.campaign-mini span,.campaign-mini strong{display:block}
.campaign-mini span{font-size:.78rem}
.campaign-mini strong{margin-top:.15rem;color:#218e64}
.campaign-banner.is-minimized{margin:0;border:0;background:transparent}
.campaign-banner.is-minimized .campaign-banner-inner{display:none}
.campaign-banner.is-minimized .campaign-mini{display:block}
.faq-contact-band{margin-top:1.6rem;min-height:112px;padding:1.25rem 1.6rem;border-radius:20px;background:linear-gradient(90deg,#eaf7f3,#d9f0e8);display:flex;align-items:center;justify-content:space-between;gap:1rem;text-decoration:none;color:#173746;box-shadow:0 10px 24px rgba(31,91,69,.08);transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
.faq-contact-band:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(31,91,69,.13);background:linear-gradient(90deg,#e2f5ee,#cdebdc)}
.faq-contact-band strong,.faq-contact-band small{display:block}
.faq-contact-band strong{margin-bottom:.3rem;font-size:1.08rem}
.faq-contact-band small{color:#52706a}
.faq-contact-arrow{display:grid;place-items:center;flex:0 0 auto;width:44px;height:44px;border-radius:50%;background:#2fa675;color:#fff;font-size:1.35rem;animation:faqArrow 1.8s ease-in-out infinite}
@keyframes faqArrow{0%,100%{transform:translateY(-2px)}50%{transform:translateY(4px)}}
.news-panel{min-width:0}
.news-list-scroll{max-height:304px;overflow-y:auto;overscroll-behavior:contain;padding-right:.65rem;scrollbar-width:thin;scrollbar-color:#8bc9b2 #edf4f1}
.news-list-scroll::-webkit-scrollbar{width:8px}
.news-list-scroll::-webkit-scrollbar-track{background:#edf4f1;border-radius:999px}
.news-list-scroll::-webkit-scrollbar-thumb{background:#8bc9b2;border-radius:999px}
.news-list-scroll article{display:grid;grid-template-columns:104px 112px minmax(0,1fr);gap:.9rem;align-items:center;padding:1.05rem 0;border-bottom:1px solid #dce8e4}
.news-list-scroll article:first-child{border-top:1px solid #dce8e4}
.news-list-scroll a{font-weight:700}
.news-more{display:inline-flex;margin-top:1rem;font-weight:800;color:#299d6e}
#service,#reason,#works,#flow,#faq,#contact,#company,#news{scroll-margin-top:120px}
@media(max-width:1280px){.global-nav a:nth-child(6){display:none}.hero-card{transform:translateX(22px)}}
@media(max-width:1100px){.hero-card{transform:none}}
@media(max-width:900px){.campaign-banner{margin-top:36px}.campaign-banner-inner{grid-template-columns:auto 1fr auto}.campaign-link{grid-column:1/3;justify-self:start}.campaign-minimize{grid-column:3;grid-row:1}}
@media(max-width:767px){.hero-copy h1{width:auto}.hero-copy h1 .hero-line{white-space:nowrap}.hero-card{transform:none}.campaign-banner{margin-top:28px}.campaign-banner-inner{grid-template-columns:auto 1fr auto;min-height:auto;padding-top:1rem;padding-bottom:1rem}.campaign-copy span{display:block;font-size:.82rem}.campaign-link{width:100%;grid-column:1/-1}.campaign-mini{right:12px;bottom:84px;min-width:200px}.faq-contact-band{min-height:100px;padding:1rem 1.1rem}.news-list-scroll{max-height:330px}.news-list-scroll article{grid-template-columns:92px 1fr;gap:.6rem}.news-list-scroll article a{grid-column:1/-1}}
@media(max-width:430px){.hero-copy h1 .hero-line{white-space:normal}}


/* ==================== v1.5 ==================== */

/* 1. ヒーロー：左右を完全に分離し、文字とカードの重なりを防止 */
.hero-inner{
  grid-template-columns:minmax(0,1fr) minmax(340px,390px);
  column-gap:clamp(64px,7vw,118px);
}
.hero-copy{
  max-width:none;
  min-width:0;
  padding-right:0;
}
.hero-copy h1{
  width:auto;
  max-width:720px;
  font-size:clamp(48px,5.05vw,76px);
  letter-spacing:-.045em;
}
.hero-copy h1 .hero-line{
  white-space:nowrap;
}
.hero-card{
  width:100%;
  max-width:390px;
  justify-self:end;
  transform:none;
}
@media(max-width:1180px){
  .hero-inner{
    grid-template-columns:minmax(0,1fr) 340px;
    column-gap:48px;
  }
  .hero-copy h1{
    font-size:clamp(44px,5vw,64px);
  }
}
@media(max-width:980px){
  .hero-inner{
    grid-template-columns:1fr;
    gap:38px;
  }
  .hero-copy h1{
    max-width:100%;
  }
  .hero-card{
    max-width:620px;
    justify-self:start;
  }
}
@media(max-width:767px){
  .hero-copy h1{
    font-size:clamp(40px,12vw,58px);
  }
  .hero-copy h1 .hero-line{
    white-space:normal;
  }
}

/* 2. 施工事例：カテゴリー絞り込み */
.works-filter{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:.7rem;
  margin:1.8rem auto 1.2rem;
}
.works-filter button{
  min-height:44px;
  padding:.65rem 1.15rem;
  border:1px solid #d6e5df;
  border-radius:999px;
  background:#fff;
  color:#38545d;
  font-weight:800;
  cursor:pointer;
  transition:transform .18s ease,border-color .18s ease,background .18s ease,color .18s ease,box-shadow .18s ease;
}
.works-filter button:hover{
  transform:translateY(-2px);
  border-color:#55b98c;
  box-shadow:0 8px 18px rgba(35,98,76,.10);
}
.works-filter button.is-active{
  border-color:#2f9f72;
  background:#2f9f72;
  color:#fff;
  box-shadow:0 9px 20px rgba(47,159,114,.20);
}
.work-slide[hidden]{
  display:none !important;
}
.works-empty{
  min-height:360px;
  display:grid;
  place-content:center;
  text-align:center;
  padding:2rem;
  color:#526b72;
}
.works-empty[hidden]{
  display:none;
}
.works-empty strong{
  display:block;
  margin-bottom:.4rem;
  color:#173746;
  font-size:1.25rem;
}
.works-carousel.is-empty .works-prev,
.works-carousel.is-empty .works-next,
.works-carousel.is-empty .works-dots{
  display:none;
}
@media(max-width:767px){
  .works-filter{
    justify-content:flex-start;
    flex-wrap:nowrap;
    overflow-x:auto;
    padding:0 1rem .35rem;
    margin-inline:-1rem;
    scrollbar-width:none;
  }
  .works-filter::-webkit-scrollbar{
    display:none;
  }
  .works-filter button{
    flex:0 0 auto;
  }
}

/* 3. FAQ：横幅を広げ、中央配置 */
.faq-contact-band{
  grid-column:1/-1;
  width:min(1180px,96%);
  min-height:150px;
  margin:2.4rem auto 0;
  padding:1.8rem 2.5rem;
  text-align:center;
  justify-content:center;
  position:relative;
}
.faq-contact-copy{
  display:grid;
  justify-items:center;
  gap:.45rem;
}
.faq-contact-band strong{
  font-size:clamp(1.15rem,2vw,1.5rem);
}
.faq-contact-band small{
  font-size:.95rem;
}
.faq-contact-band em{
  margin-top:.45rem;
  color:#218e64;
  font-style:normal;
  font-weight:800;
}
.faq-contact-arrow{
  position:absolute;
  right:2rem;
}
@media(max-width:767px){
  .faq-contact-band{
    width:100%;
    min-height:160px;
    padding:1.5rem 3.6rem 1.5rem 1.2rem;
  }
  .faq-contact-arrow{
    right:1rem;
  }
  .faq-contact-band small{
    font-size:.85rem;
  }
}


/* ==================== v1.6 ==================== */
.company-message{max-width:920px;margin:0 auto 2rem;padding:1.5rem 1.7rem;border-left:5px solid #42aa78;background:#f4faf7;border-radius:0 18px 18px 0}
.company-message h3{margin:0 0 .65rem;color:#173746;font-size:clamp(1.2rem,2.5vw,1.65rem)}
.company-message p{margin:0;line-height:2;color:#52666d}
.instagram-section{background:#f7faf9}
.instagram-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.instagram-placeholder{aspect-ratio:1/1;display:grid;place-content:center;text-align:center;padding:1.25rem;border:1px solid #dbe8e3;border-radius:22px;background:linear-gradient(145deg,#fff,#edf7f2);box-shadow:0 12px 28px rgba(25,70,55,.08)}
.instagram-placeholder span{font-size:.78rem;color:#6d847c;letter-spacing:.15em}
.instagram-placeholder strong{margin:.5rem 0;color:#173746;font-size:1.2rem}
.instagram-placeholder small{color:#4aa779;font-weight:700}
.instagram-status{margin:1.4rem auto 0;display:flex;align-items:center;justify-content:center;gap:.7rem;flex-wrap:wrap;text-align:center}
.instagram-status>span{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#2fa675;color:#fff;font-weight:900}
.instagram-status p{width:100%;margin:0;color:#63766f}
.contact-instagram{margin-top:1rem;padding:1rem 1.15rem;display:flex;gap:.9rem;align-items:center;border:1px solid rgba(255,255,255,.22);border-radius:16px;background:rgba(255,255,255,.08)}
.contact-instagram .instagram-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#fff;color:#2fa675;font-size:1.25rem;font-weight:900}
.contact-instagram strong,.contact-instagram p,.contact-instagram span{display:block}
.contact-instagram p{margin:.15rem 0;font-size:.9rem}
.contact-instagram span{font-size:.8rem;opacity:.85}
.footer-instagram{font-weight:700}
.customer-projects{background:#f7faf9}
.customer-status-guide{display:flex;justify-content:center;gap:.7rem;flex-wrap:wrap;margin:0 0 1.5rem}
.status{display:inline-flex;align-items:center;min-height:30px;padding:.3rem .75rem;border-radius:999px;font-size:.78rem;font-weight:800}
.status.planned{background:#fff0c9;color:#8b6410}
.status.active{background:#dff3ea;color:#247c59}
.status.done{background:#e9eef0;color:#526269}
.customer-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}
.customer-project-card{display:block;padding:1.5rem;border:1px solid #dbe8e3;border-radius:22px;background:#fff;color:#173746;box-shadow:0 12px 28px rgba(25,70,55,.08);transition:.2s ease}
.customer-project-card:hover{transform:translateY(-3px);box-shadow:0 17px 34px rgba(25,70,55,.13)}
.customer-project-card .project-date{margin:.8rem 0 .25rem;color:#6b7e77;font-size:.85rem}
.customer-project-card h3{margin:.25rem 0 1rem;font-size:1.3rem}
.customer-project-card dl{margin:0 0 1rem;padding-top:.7rem;border-top:1px solid #e2ece8}
.customer-project-card dl div{display:grid;grid-template-columns:6em 1fr;gap:.5rem;padding:.35rem 0}
.customer-project-card dt{color:#71827c;font-size:.82rem}
.customer-project-card dd{margin:0;font-weight:700}
.customer-project-card>strong{color:#2b9c70}
.customer-list-note{margin:2rem 0 0;text-align:center;color:#61736c}
@media(max-width:767px){
  .instagram-grid,.customer-project-grid{grid-template-columns:1fr}
  .instagram-placeholder{aspect-ratio:16/10}
}


/* =========================================================
   v1.7 相談したくなるホームページ
   ========================================================= */

:root{
  --v17-navy:#173746;
  --v17-green:#2f9f72;
  --v17-green-dark:#247f5c;
  --v17-mint:#eaf7f2;
  --v17-cream:#fbf7ee;
  --v17-border:#dce9e4;
  --v17-text:#4e666e;
  --v17-shadow:0 20px 50px rgba(23,55,70,.10);
}

/* Hero */
.hero-v17{
  position:relative;
  overflow:hidden;
  padding:clamp(88px,10vw,140px) 0 clamp(76px,9vw,120px);
  background:
    radial-gradient(circle at 15% 20%,rgba(80,184,139,.12),transparent 34%),
    linear-gradient(135deg,#f8fcfa 0%,#eef7f4 58%,#fdfaf3 100%);
}
.hero-v17:after{
  content:"";
  position:absolute;
  right:-120px;
  top:-120px;
  width:420px;
  height:420px;
  border-radius:50%;
  border:1px solid rgba(47,159,114,.16);
  box-shadow:0 0 0 70px rgba(47,159,114,.04),0 0 0 140px rgba(47,159,114,.025);
}
.hero-v17 .hero-inner{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);
  gap:clamp(56px,7vw,110px);
  align-items:center;
}
.hero-eyebrow{
  display:inline-flex;
  margin:0 0 1rem;
  padding:.5rem .85rem;
  border:1px solid rgba(47,159,114,.26);
  border-radius:999px;
  background:rgba(255,255,255,.78);
  color:var(--v17-green-dark);
  font-size:.82rem;
  font-weight:800;
}
.hero-v17 h1{
  margin:0;
  color:var(--v17-navy);
  font-size:clamp(48px,5.4vw,78px);
  line-height:1.08;
  letter-spacing:-.055em;
}
.hero-v17 .hero-accent{color:var(--v17-green)}
.hero-lead{
  max-width:720px;
  margin:1.5rem 0 0;
  color:var(--v17-text);
  font-size:clamp(1rem,1.4vw,1.15rem);
  line-height:1.9;
}
.hero-trust{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  margin:1.3rem 0 0;
}
.hero-trust span{
  position:relative;
  padding:.5rem .8rem .5rem 1.75rem;
  border-radius:999px;
  background:#fff;
  color:#36575f;
  font-weight:800;
  font-size:.84rem;
  box-shadow:0 8px 18px rgba(23,55,70,.06);
}
.hero-trust span:before{
  content:"✓";
  position:absolute;
  left:.72rem;
  color:var(--v17-green);
}
.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.85rem;
  margin-top:1.7rem;
}
.hero-note{
  margin:.85rem 0 0;
  color:#6a7f85;
  font-size:.82rem;
}
.consultation-card{
  position:relative;
  padding:clamp(1.6rem,3vw,2.25rem);
  border:1px solid rgba(255,255,255,.7);
  border-radius:30px;
  background:rgba(255,255,255,.90);
  box-shadow:var(--v17-shadow);
  backdrop-filter:blur(12px);
}
.consultation-kicker{
  margin:0 0 .75rem;
  color:var(--v17-green);
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.14em;
}
.consultation-card h2{
  margin:0;
  color:var(--v17-navy);
  font-size:clamp(1.35rem,2.1vw,1.9rem);
  line-height:1.45;
}
.consultation-list{
  display:grid;
  gap:.7rem;
  margin:1.25rem 0;
  padding:0;
  list-style:none;
}
.consultation-list li{
  position:relative;
  padding-left:1.55rem;
  color:#49636a;
}
.consultation-list li:before{
  content:"";
  position:absolute;
  left:0;
  top:.55em;
  width:.65rem;
  height:.65rem;
  border-radius:50%;
  background:var(--v17-green);
  box-shadow:0 0 0 4px rgba(47,159,114,.12);
}
.consultation-link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:54px;
  padding:0 1.1rem;
  border-radius:16px;
  background:var(--v17-navy);
  color:#fff;
  font-weight:900;
}
.consultation-card small{
  display:block;
  margin-top:.8rem;
  color:#6a7f85;
  text-align:center;
}

/* Concerns */
.concern-section{
  background:#fff;
}
.section-title.center{
  max-width:760px;
  margin-inline:auto;
  text-align:center;
}
.concern-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
  margin-top:2rem;
}
.concern-card{
  padding:1.6rem;
  border:1px solid var(--v17-border);
  border-radius:22px;
  background:#fff;
  box-shadow:0 14px 30px rgba(23,55,70,.06);
}
.concern-number{
  display:inline-flex;
  margin-bottom:.85rem;
  color:var(--v17-green);
  font-weight:900;
  letter-spacing:.12em;
}
.concern-card h3{
  margin:0 0 .6rem;
  color:var(--v17-navy);
  font-size:1.08rem;
}
.concern-card p{
  margin:0;
  color:var(--v17-text);
  line-height:1.75;
}
.solution-strip{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.25rem;
  margin-top:1.2rem;
  padding:1.4rem 1.6rem;
  border-radius:22px;
  background:linear-gradient(90deg,var(--v17-navy),#225467);
  color:#fff;
}
.solution-strip span,
.solution-strip strong{display:block}
.solution-strip span{font-size:.82rem;opacity:.8}
.solution-strip strong{margin-top:.2rem;font-size:clamp(1.1rem,2vw,1.45rem)}
.solution-strip a{
  flex:0 0 auto;
  padding:.8rem 1rem;
  border-radius:999px;
  background:#fff;
  color:var(--v17-navy);
  font-weight:900;
}

/* Works polish */
.works-section{
  background:linear-gradient(180deg,#f8fbfa 0%,#fff 100%);
}
.work-card{
  border:1px solid var(--v17-border);
  box-shadow:0 22px 50px rgba(23,55,70,.10);
}
.work-info h3{
  font-size:clamp(1.35rem,2.2vw,1.9rem);
}
.work-meta span{
  border-radius:999px;
  background:var(--v17-mint);
  color:var(--v17-green-dark);
  font-weight:900;
}
.text-link{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  margin-top:.8rem;
  color:var(--v17-green-dark);
  font-weight:900;
}

/* Company trust */
.company-trust-section{
  background:linear-gradient(135deg,#f7fbf9,#fdf9f0);
}
.company-trust-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:clamp(28px,5vw,70px);
  align-items:center;
}
.company-trust-copy h2{
  margin:.4rem 0 1rem;
  color:var(--v17-navy);
  font-size:clamp(1.8rem,3.4vw,3rem);
  line-height:1.35;
}
.company-trust-copy p{
  color:var(--v17-text);
  line-height:1.9;
}
.company-promise-list{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  margin-top:1.2rem;
}
.company-promise-list span{
  padding:.55rem .8rem;
  border-radius:999px;
  background:#fff;
  color:#36575f;
  font-weight:800;
  box-shadow:0 8px 18px rgba(23,55,70,.06);
}
.company-trust-card{
  padding:2rem;
  border-radius:28px;
  background:var(--v17-navy);
  color:#fff;
  box-shadow:var(--v17-shadow);
}
.company-trust-label{
  display:inline-block;
  margin-bottom:1rem;
  color:#8ed8b8;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.15em;
}
.company-trust-card strong{
  display:block;
  font-size:clamp(1.35rem,2.4vw,2rem);
  line-height:1.5;
}
.company-trust-card p{
  margin:1rem 0 1.3rem;
  color:rgba(255,255,255,.78);
  line-height:1.8;
}
.company-trust-card a{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  padding:.75rem 1rem;
  border-radius:999px;
  background:#fff;
  color:var(--v17-navy);
  font-weight:900;
}

/* Footer */
.site-footer-v17{
  background:#102f3c;
  color:#fff;
}
.footer-consult{
  padding:2.2rem 0;
  background:linear-gradient(90deg,#dff3eb,#f5efe1);
  color:var(--v17-navy);
}
.footer-consult-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
}
.footer-consult p{
  margin:0 0 .35rem;
  color:var(--v17-green-dark);
  font-weight:900;
}
.footer-consult h2{
  margin:0;
  font-size:clamp(1.4rem,2.7vw,2.25rem);
}
.footer-consult-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
}
.btn-light{
  background:#fff;
  color:var(--v17-navy);
}
.footer-main{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:2rem;
  padding-top:3rem;
  padding-bottom:3rem;
}
.footer-logo{
  display:inline-block;
  color:#fff;
  font-size:1.4rem;
  font-weight:900;
  letter-spacing:.06em;
}
.footer-brand p{
  margin:.8rem 0;
  color:rgba(255,255,255,.76);
}
.footer-brand address{
  color:rgba(255,255,255,.62);
  font-style:normal;
  line-height:1.8;
}
.footer-nav{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.8rem 1.4rem;
}
.footer-nav a{
  color:rgba(255,255,255,.82);
}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.12);
}
.footer-bottom .container{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding-top:1rem;
  padding-bottom:1rem;
  color:rgba(255,255,255,.58);
  font-size:.82rem;
}
.footer-bottom div{
  display:flex;
  gap:1rem;
}
.footer-bottom a{color:inherit}

/* Common */
.btn{
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
}
.btn:hover{
  transform:translateY(-2px);
}
.section{
  padding-top:clamp(70px,8vw,110px);
  padding-bottom:clamp(70px,8vw,110px);
}

@media(max-width:980px){
  .hero-v17 .hero-inner,
  .company-trust-grid,
  .footer-main{
    grid-template-columns:1fr;
  }
  .consultation-card{
    max-width:720px;
  }
  .footer-consult-inner{
    align-items:flex-start;
    flex-direction:column;
  }
}
@media(max-width:767px){
  .hero-v17{
    padding-top:72px;
  }
  .hero-v17 h1{
    font-size:clamp(40px,12vw,58px);
  }
  .hero-v17 .hero-line{
    white-space:normal;
  }
  .hero-actions .btn{
    width:100%;
    justify-content:center;
  }
  .concern-grid{
    grid-template-columns:1fr;
  }
  .solution-strip{
    align-items:flex-start;
    flex-direction:column;
  }
  .footer-main{
    padding-top:2.2rem;
    padding-bottom:2.2rem;
  }
  .footer-nav{
    grid-template-columns:1fr 1fr;
  }
  .footer-bottom .container{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* =========================================================
   v1.7 revised — Hero photo / consultation balance / timeline
   ========================================================= */

/* Pattern 3: photo shifted right, white-to-transparent gradient from left */
.hero-v17{
  isolation:isolate;
  background-image:url("../images/hero-house-sky.png");
  background-size:cover;
  background-position:68% center;
  min-height:720px;
}
.hero-v17::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    linear-gradient(90deg,
      rgba(255,255,255,.98) 0%,
      rgba(255,255,255,.96) 30%,
      rgba(255,255,255,.82) 47%,
      rgba(255,255,255,.34) 68%,
      rgba(255,255,255,.12) 100%);
}
.hero-v17::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  width:auto;
  height:auto;
  border:0;
  border-radius:0;
  box-shadow:none;
  background:linear-gradient(180deg,rgba(16,47,60,.04),rgba(16,47,60,.10));
}
.hero-v17 .hero-inner{
  grid-template-columns:minmax(0,1.08fr) minmax(330px,400px);
  gap:clamp(60px,7vw,112px);
}

/* Consultation card: lighter hierarchy, balanced spacing */
.consultation-card{
  align-self:center;
  padding:2.1rem 2.25rem 2rem;
  border-radius:28px;
  background:rgba(255,255,255,.94);
}
.consultation-kicker{
  margin-bottom:.9rem;
  color:var(--v17-green-dark);
}
.consultation-card h2{
  margin:0;
  font-size:clamp(1.65rem,2.35vw,2.2rem);
  line-height:1.38;
  letter-spacing:-.03em;
}
.consultation-message{
  margin:.8rem 0 1rem;
  color:#60777d;
  font-size:.92rem;
  line-height:1.75;
}
.consultation-list{
  gap:.65rem;
  margin:0 0 1.2rem;
}
.consultation-list li{
  font-size:.91rem;
  line-height:1.55;
}
.consultation-link{
  min-height:52px;
  border-radius:14px;
}
.consultation-card small{
  margin-top:.85rem;
  font-size:.8rem;
}

/* Chronological works: past on left, current in center, future on right */
.works-track{
  align-items:stretch;
}
.work-slide{
  transition:opacity .28s ease,transform .28s ease,filter .28s ease;
}
.work-slide:not(.is-active){
  opacity:.34;
  transform:scale(.92);
  filter:saturate(.72);
}
.work-slide.is-active{
  opacity:1;
  transform:scale(1);
  filter:none;
}
.work-slide-future{
  text-decoration:none;
}
.future-work-card{
  min-height:100%;
  display:grid;
  place-items:center;
  border:1px dashed #b9d7ca;
  background:
    radial-gradient(circle at 75% 20%,rgba(47,159,114,.13),transparent 30%),
    linear-gradient(135deg,#f7fbf9,#eef6f2);
}
.future-work-visual{
  max-width:420px;
  padding:3rem 2rem;
  text-align:center;
}
.future-label{
  display:inline-flex;
  margin-bottom:1rem;
  padding:.45rem .75rem;
  border-radius:999px;
  background:#fff;
  color:var(--v17-green-dark);
  font-size:.76rem;
  font-weight:900;
  letter-spacing:.12em;
}
.future-work-visual strong{
  display:block;
  color:var(--v17-navy);
  font-size:clamp(1.5rem,2.6vw,2.2rem);
  line-height:1.45;
}
.future-work-visual p{
  margin:1rem 0 0;
  color:var(--v17-text);
}
.works-prev::after{
  content:" 過去";
  font-size:.72rem;
  font-weight:800;
}
.works-next::before{
  content:"未来 ";
  font-size:.72rem;
  font-weight:800;
}

@media(max-width:1100px){
  .hero-v17{
    background-position:62% center;
  }
  .hero-v17::before{
    background:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.94) 43%,rgba(255,255,255,.55) 72%,rgba(255,255,255,.25) 100%);
  }
}
@media(max-width:980px){
  .hero-v17{
    min-height:auto;
    background-position:68% center;
  }
  .hero-v17::before{
    background:linear-gradient(180deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.91) 58%,rgba(255,255,255,.75) 100%);
  }
  .consultation-card{
    max-width:620px;
  }
}
@media(max-width:767px){
  .hero-v17{
    background-position:72% center;
  }
  .consultation-card{
    padding:1.6rem 1.35rem;
  }
  .works-prev::after,
  .works-next::before{
    display:none;
  }
}


/* =========================================================
   v1.8 — compact hero / concern photos / service photo-ready
   ========================================================= */

/* 1. ファーストビュー：縦の間延びを解消し、家を主役に */
.hero-v17{
  min-height:540px;
  padding-top:clamp(34px,4vw,56px);
  padding-bottom:clamp(34px,4vw,56px);
  background-size:cover;
  background-position:72% 64%;
}
.hero-v17 .hero-inner{
  min-height:430px;
}
.hero-v17::before{
  background:
    linear-gradient(90deg,
      rgba(255,255,255,.98) 0%,
      rgba(255,255,255,.95) 28%,
      rgba(255,255,255,.76) 47%,
      rgba(255,255,255,.25) 66%,
      rgba(255,255,255,.06) 100%);
}
.hero-eyebrow{
  margin-bottom:.7rem;
}
.hero-v17 h1{
  font-size:clamp(44px,4.9vw,70px);
}
.hero-lead{
  margin-top:1.05rem;
}
.hero-trust{
  margin-top:.95rem;
}
.hero-actions{
  margin-top:1.2rem;
}
.consultation-card{
  padding:1.65rem 1.8rem 1.55rem;
}
.consultation-card h2{
  font-size:clamp(1.45rem,2vw,1.9rem);
}
.consultation-message{
  margin:.55rem 0 .75rem;
}
.consultation-list{
  margin-bottom:.9rem;
}

/* 2. 施工事例：矢印だけに戻す */
.works-prev::after,
.works-next::before{
  content:none !important;
}

/* 3. お悩み：写真を主役にしすぎず、共感材料として配置 */
.concern-card{
  padding:0;
  overflow:hidden;
}
.concern-photo{
  position:relative;
  margin:0;
  aspect-ratio:4/3;
  overflow:hidden;
  background:#eef4f1;
}
.concern-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .45s ease;
}
.concern-card:hover .concern-photo img{
  transform:scale(1.035);
}
.concern-photo figcaption{
  position:absolute;
  left:1rem;
  bottom:1rem;
  padding:.45rem .7rem;
  border-radius:999px;
  background:rgba(16,47,60,.84);
  color:#fff;
  font-size:.76rem;
  font-weight:800;
  backdrop-filter:blur(5px);
}
.concern-card-body{
  padding:1.35rem 1.45rem 1.55rem;
}
.concern-card-body .concern-number{
  margin-bottom:.55rem;
}

/* 4. サービス紹介：上半分を施工写真エリアに */
.main-service-card{
  overflow:hidden;
}
.service-photo-frame{
  position:relative;
  min-height:100%;
  aspect-ratio:4/3;
  overflow:hidden;
  background:#eef5f2;
}
.service-photo-frame img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.service-photo-note{
  position:absolute;
  left:1.2rem;
  bottom:1.2rem;
  display:flex;
  flex-direction:column;
  gap:.12rem;
  padding:.65rem .8rem;
  border-radius:14px;
  background:rgba(255,255,255,.88);
  color:#173746;
  box-shadow:0 10px 25px rgba(23,55,70,.10);
  backdrop-filter:blur(8px);
}
.service-photo-note span{
  font-size:.8rem;
  font-weight:900;
}
.service-photo-note small{
  color:#698087;
  font-size:.7rem;
}
.service-image .service-number{
  top:1.1rem;
  left:1.1rem;
  right:auto;
  bottom:auto;
}
.service-content{
  align-self:stretch;
}

@media(max-width:1100px){
  .hero-v17{
    min-height:500px;
    background-position:70% 62%;
  }
  .hero-v17 .hero-inner{
    min-height:390px;
  }
}
@media(max-width:980px){
  .hero-v17{
    min-height:auto;
    padding-top:44px;
    padding-bottom:44px;
    background-position:72% center;
  }
  .hero-v17 .hero-inner{
    min-height:0;
  }
}
@media(max-width:767px){
  .hero-v17{
    padding-top:34px;
    padding-bottom:34px;
    background-position:74% center;
  }
  .concern-grid{
    gap:1.2rem;
  }
  .service-photo-frame{
    aspect-ratio:16/10;
  }
}


/* =========================================================
   v1.9 — consultation-first service / promise / company / Instagram
   ========================================================= */

/* Service: one-screen featured presentation */
.service-section{padding-top:clamp(62px,7vw,92px);padding-bottom:clamp(62px,7vw,92px)}
.service-section .section-title{margin-bottom:1.8rem}
.service-switcher{max-width:1180px;margin-inline:auto}
.main-service-card{grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);border:1px solid #dfe9e5;border-radius:28px;box-shadow:0 22px 60px rgba(24,63,52,.10)}
.service-photo-frame{min-height:560px}
.service-content{padding:clamp(34px,4vw,54px)}
.service-content h3{margin-bottom:12px;font-size:clamp(30px,3vw,42px)}
.service-summary{margin:0;line-height:1.85}
.service-sales-block{gap:14px;margin:22px 0 16px}
.service-sales-block>div{padding:18px 20px;border:1px solid #dcebe5;border-radius:16px;background:#f2f8f5}
.service-sales-block h4{font-size:14px;color:#173746}
.service-sales-block ul{padding-left:1.15em;margin:0}
.service-sales-block li{font-size:13px;line-height:1.55}
.service-points{margin:14px 0 18px}
.service-selector{gap:10px;margin-top:14px}
.service-tab{min-height:94px;padding:13px 15px;border-radius:15px}
.service-tab span{font-size:11px}.service-tab strong{font-size:14px}.service-tab small{font-size:10px}

/* Promise: photo supports the message, not the other way around */
.company-trust-v19{padding:clamp(72px,8vw,112px) 0;background:#f4f7f5}
.company-trust-stage{position:relative;min-height:580px;display:flex;align-items:center;justify-content:flex-start;overflow:hidden;border-radius:30px;background:#1b3a38;box-shadow:0 24px 70px rgba(21,54,48,.14)}
.company-trust-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.75) brightness(.78)}
.company-trust-stage:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,38,35,.62) 0%,rgba(13,38,35,.28) 48%,rgba(13,38,35,.08) 100%)}
.company-trust-overlay{position:relative;z-index:1;width:min(590px,calc(100% - 64px));margin:32px;padding:clamp(30px,5vw,58px);border:1px solid rgba(255,255,255,.70);border-radius:24px;background:rgba(255,255,255,.90);box-shadow:0 20px 55px rgba(13,38,35,.18);backdrop-filter:blur(12px)}
.company-trust-overlay h2{margin:.45rem 0 1rem;color:#173746;font-size:clamp(28px,4vw,44px);line-height:1.35}
.company-trust-overlay>p:not(.section-kicker){margin:0;color:#52666d;line-height:1.9}
.company-trust-overlay .company-promise-list{margin:1.35rem 0 1.2rem}
.company-trust-overlay .text-link{display:inline-flex;margin-top:.3rem}

/* Company: editorial layout with a subtle accent line */
.company-section{padding-top:clamp(78px,9vw,120px)}
.company-heading{display:grid;grid-template-columns:180px 1fr;align-items:end;gap:32px;margin-bottom:42px}
.company-heading-label{display:flex;flex-direction:column;gap:3px;padding-left:16px;border-left:2px solid #39a879}
.company-heading-label span{color:#287e60;font-size:11px;font-weight:800;letter-spacing:.18em}
.company-heading-label small{color:#71817c;font-size:12px}
.company-heading h2{margin:0;color:#173746;font-size:clamp(34px,5vw,56px);line-height:1.2}
.company-message-v19{max-width:none;margin:0 0 58px;padding:0 0 0 30px;border:0;border-left:2px solid #42aa78;border-radius:0;background:transparent;display:grid;grid-template-columns:minmax(280px,.78fr) minmax(0,1.22fr);gap:clamp(36px,7vw,88px);align-items:start}
.company-message-v19 h3{margin:0;color:#173746;font-size:clamp(24px,3.2vw,38px);line-height:1.55}
.company-message-v19 p{margin:0;color:#52666d;line-height:2.1}

/* Instagram: intentionally quiet and replaceable */
.instagram-compact{padding:30px 0 36px;background:#f4f7f5;border-top:1px solid #e0e9e5}
.instagram-compact-inner{min-height:150px;display:flex;align-items:center;justify-content:space-between;gap:42px;padding:28px 36px;border-radius:22px;background:#fff;box-shadow:0 12px 35px rgba(24,63,52,.07)}
.instagram-compact-copy{display:flex;align-items:center;gap:20px}
.instagram-compact-icon{flex:0 0 auto;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#edf7f2;color:#269767;font-size:25px;font-weight:900}
.instagram-compact-copy .section-kicker{margin:0 0 5px}
.instagram-compact-copy p:not(.section-kicker){margin:0 0 8px;color:#52666d}
.instagram-compact-copy a{color:#237d5d;font-size:13px;font-weight:800}
.instagram-qr-placeholder{flex:0 0 112px;aspect-ratio:1;display:grid;place-content:center;text-align:center;border:1.5px dashed #a9bdb5;border-radius:12px;background:#fafcfb;color:#73857e}
.instagram-qr-placeholder span,.instagram-qr-placeholder strong,.instagram-qr-placeholder small{display:block}
.instagram-qr-placeholder span{font-size:10px}.instagram-qr-placeholder strong{margin:3px 0;font-size:13px;letter-spacing:.08em}.instagram-qr-placeholder small{font-size:9px}

@media(max-width:980px){
  .main-service-card{grid-template-columns:1fr}.service-photo-frame{min-height:390px}
  .company-message-v19{grid-template-columns:1fr;gap:18px}
}
@media(max-width:767px){
  .service-section{padding-block:58px}.service-photo-frame{min-height:260px}.service-content{padding:28px 22px}
  .service-tab{flex-basis:68%;min-height:92px}
  .company-trust-v19{padding:58px 0}.company-trust-stage{min-height:620px;border-radius:22px;align-items:flex-end}.company-trust-photo{object-position:62% center}.company-trust-stage:after{background:linear-gradient(0deg,rgba(13,38,35,.52),rgba(13,38,35,.06))}.company-trust-overlay{width:auto;margin:18px;padding:27px 22px}
  .company-heading{grid-template-columns:1fr;gap:14px;margin-bottom:34px}.company-heading-label{width:max-content}.company-message-v19{padding-left:20px;margin-bottom:42px}
  .instagram-compact{padding:20px 0 26px}.instagram-compact-inner{min-height:0;padding:22px;gap:18px}.instagram-compact-copy{align-items:flex-start;gap:13px}.instagram-compact-icon{width:42px;height:42px}.instagram-compact-copy p:not(.section-kicker){font-size:13px;line-height:1.65}.instagram-qr-placeholder{flex-basis:86px}
}

/* =========================================================
   v1.9.1 — requested service layout / restored contact / promise photo
   ========================================================= */

/* SERVICE: top photo, content below, selectors at bottom. Nearly one desktop viewport. */
@media (min-width: 981px){
  .service-section{
    min-height:calc(100vh - 82px);
    padding:34px 0 28px;
    display:flex;
    align-items:center;
  }
  .service-section>.container{width:100%}
  .service-section .section-title{margin-bottom:14px}
  .service-section .section-title h2{margin-bottom:3px;font-size:clamp(28px,2.3vw,38px)}
  .service-section .section-title>p:last-child{margin-top:4px;font-size:13px}
  .service-switcher{max-width:1160px}
  .main-service-card{
    display:block;
    overflow:hidden;
    border:1px solid #dce8e4;
    border-radius:30px;
    background:#fff;
    box-shadow:0 18px 48px rgba(24,63,52,.09);
  }
  .service-photo-frame{
    position:relative;
    width:100%;
    min-height:0;
    height:190px;
    aspect-ratio:auto;
    border-radius:0;
  }
  .service-photo-frame img{width:100%;height:100%;object-fit:cover}
  .service-photo-frame:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.78),rgba(255,255,255,.15) 54%,rgba(255,255,255,.04))}
  .service-photo-note{z-index:2}
  .service-number{z-index:3}
  .service-content{padding:14px 26px 17px;text-align:left}
  .service-content .service-status{display:inline-block;margin:0 0 1px;font-size:12px}
  .service-content h3{margin:0 0 5px;font-size:31px;line-height:1.15}
  .service-summary{font-size:13px;line-height:1.55}
  .service-sales-block{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:11px 0 8px}
  .service-sales-block>div{padding:11px 16px;border-color:#83bd72;border-radius:17px;background:linear-gradient(180deg,#b8dda9,#9dce8f)}
  .service-sales-block h4{margin:0 0 2px;color:#102d24;font-size:15px}
  .service-sales-block ul{list-style:none;padding:0;margin:0}
  .service-sales-block li{font-size:12px;line-height:1.45;color:#17372c}
  .service-points{justify-content:center;margin:6px 0 7px;gap:8px}
  .service-points span{min-width:104px;padding:5px 13px;text-align:center;font-size:11px}
  .service-content>.text-link{display:flex;justify-content:center;margin:0;font-size:15px}
  .service-selector{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:10px}
  .service-tab{min-height:78px;padding:10px 13px;border-radius:14px;text-align:left}
  .service-tab span{font-size:10px}.service-tab strong{font-size:13px}.service-tab small{font-size:9px}
}

/* PROMISE: text panel is primary; photo is softened like the hero. */
.company-trust-v19{padding:clamp(64px,7vw,96px) 0;background:#f5f7f6}
.company-trust-stage{
  position:relative;
  min-height:610px;
  display:flex;
  align-items:stretch;
  justify-content:flex-start;
  overflow:hidden;
  border-radius:0;
  background:#eef3f1;
  box-shadow:none;
}
.company-trust-photo{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;
  filter:saturate(.72) contrast(.92) brightness(1.08);
}
.company-trust-stage:after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.93) 31%,rgba(255,255,255,.67) 51%,rgba(255,255,255,.30) 72%,rgba(255,255,255,.15) 100%);
}
.company-trust-overlay{
  position:relative;z-index:2;
  width:min(520px,48%);
  margin:8px 0 8px 18px;
  padding:clamp(38px,5vw,66px) clamp(34px,4vw,58px);
  border:2px solid #173746;
  border-radius:70px 70px 70px 70px;
  background:rgba(250,251,250,.94);
  box-shadow:0 14px 36px rgba(20,55,48,.07);
  backdrop-filter:blur(2px);
}
.company-trust-overlay h2{font-size:clamp(32px,4vw,50px);line-height:1.35}
.company-trust-overlay>p:not(.section-kicker){font-size:17px;line-height:1.85;color:#273b40}
.company-trust-overlay .company-promise-list{gap:8px}
.company-trust-overlay .company-promise-list span{background:#fff;box-shadow:0 5px 15px rgba(20,55,48,.07)}

@media(max-width:980px){
  .company-trust-stage{min-height:620px}
  .company-trust-overlay{width:min(560px,70%)}
}
@media(max-width:767px){
  .company-trust-stage{min-height:680px;align-items:flex-end;border-radius:22px}
  .company-trust-photo{object-position:68% center}
  .company-trust-stage:after{background:linear-gradient(0deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.89) 48%,rgba(255,255,255,.25) 100%)}
  .company-trust-overlay{width:auto;margin:18px;padding:28px 22px;border-width:1px;border-radius:34px}
  .company-trust-overlay>p:not(.section-kicker){font-size:14px}
}

/* =========================================================
   v2.0 — service stage height / promise typography
   ========================================================= */

/* SERVICE: the main card and selector row together occupy almost one desktop screen. */
@media (min-width: 981px){
  .service-section{
    min-height:calc(100vh - 72px);
    padding:22px 0 24px;
  }
  .service-section .section-title{margin-bottom:12px}
  .service-switcher{max-width:1160px}
  .service-photo-frame{height:255px}
  .service-content{padding:20px 30px 23px}
  .service-content .service-status{margin-bottom:3px}
  .service-content h3{margin-bottom:7px;font-size:33px}
  .service-summary{font-size:13.5px;line-height:1.65}
  .service-sales-block{gap:22px;margin:15px 0 12px}
  .service-sales-block>div{min-height:116px;padding:15px 18px}
  .service-sales-block h4{margin-bottom:5px;font-size:15px}
  .service-sales-block li{font-size:12.5px;line-height:1.55}
  .service-points{margin:9px 0 10px}
  .service-content>.text-link{font-size:15.5px}
  .service-selector{margin-top:11px}
  .service-tab{min-height:82px}
}

/* PROMISE: preserve the typography hierarchy from the supplied visual reference. */
.company-trust-overlay h2{
  margin:.8rem 0 1.55rem;
  line-height:1.25;
}
.company-trust-overlay h2 .promise-title-main,
.company-trust-overlay h2 .promise-title-sub{
  display:block;
}
.company-trust-overlay h2 .promise-title-main{
  font-size:clamp(39px,4.55vw,58px);
  font-weight:800;
  letter-spacing:.01em;
}
.company-trust-overlay h2 .promise-title-sub{
  margin-top:1.25rem;
  padding-left:.9rem;
  font-size:clamp(22px,2.35vw,31px);
  font-weight:700;
  line-height:1.45;
}
.company-trust-overlay .promise-body{
  font-size:clamp(18px,1.65vw,22px) !important;
  line-height:1.72 !important;
  letter-spacing:.015em;
}
.company-trust-overlay .company-promise-list{margin:1.65rem 0 1.35rem}
.company-trust-overlay .text-link{font-size:14px}

@media(max-width:767px){
  .company-trust-overlay h2{margin:.55rem 0 1.1rem}
  .company-trust-overlay h2 .promise-title-main{font-size:clamp(30px,9.2vw,40px)}
  .company-trust-overlay h2 .promise-title-sub{margin-top:.75rem;padding-left:0;font-size:clamp(19px,5.6vw,25px)}
  .company-trust-overlay .promise-body{font-size:15px !important;line-height:1.8 !important}
}

/* =========================================================
   v2.1 — separate hero/service refinements and MESSAGE label
   ========================================================= */

/* HERO: keep the existing vertical rhythm, reveal more of the roof, and reduce the card slightly. */
@media (min-width: 981px){
  .hero-v17{
    min-height:720px;
    background-position:right center;
  }
  .hero-v17 .hero-inner{
    min-height:720px;
    grid-template-columns:minmax(0,1.12fr) minmax(300px,360px);
    gap:clamp(42px,5vw,78px);
    padding-block:70px 100px;
  }
  .consultation-card{
    width:92%;
    justify-self:end;
    padding:1.85rem 1.95rem 1.75rem;
    border-radius:26px;
  }
  .consultation-card h2{
    font-size:clamp(1.52rem,2.05vw,2rem);
  }
  .consultation-message{font-size:.87rem}
  .consultation-list li{font-size:.86rem}
  .consultation-kicker{
    color:var(--v17-green-dark);
  }
}

/* SERVICE: this remains a separate section from the hero. */
.service-status-visually-hidden{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}
.service-photo-heading{
  position:absolute;
  z-index:4;
  left:clamp(28px,4.6vw,72px);
  top:50%;
  transform:translateY(-50%);
  max-width:48%;
}
.service-photo-heading h3{
  margin:0;
  color:#173746;
  font-size:clamp(42px,5.2vw,72px);
  line-height:1.05;
  letter-spacing:-.035em;
  text-shadow:0 2px 18px rgba(255,255,255,.45);
}

@media (min-width: 981px){
  .service-photo-frame{
    height:278px;
  }
  .service-photo-frame img{
    object-position:center right;
  }
  .service-photo-frame:after{
    background:linear-gradient(90deg,
      rgba(255,255,255,.98) 0%,
      rgba(255,255,255,.94) 25%,
      rgba(255,255,255,.72) 43%,
      rgba(255,255,255,.25) 65%,
      rgba(255,255,255,.04) 100%);
  }
  .service-content{
    padding:22px 30px 25px;
  }
  .service-summary{
    max-width:980px;
    margin:0 auto;
    font-size:16px;
    line-height:1.75;
  }
  .service-sales-block{
    margin:18px 0 14px;
    gap:24px;
  }
  .service-sales-block>div{
    min-height:128px;
    padding:18px 20px;
  }
  .service-sales-block h4{
    margin-bottom:7px;
    font-size:16px;
  }
  .service-sales-block li{
    font-size:13px;
    line-height:1.62;
  }
  .service-points{margin:11px 0 11px}
}

@media (max-width: 980px){
  .service-photo-heading{left:24px;max-width:68%}
  .service-photo-heading h3{font-size:clamp(34px,8vw,52px)}
  .service-photo-frame:after{
    background:linear-gradient(90deg,rgba(255,255,255,.96),rgba(255,255,255,.66) 50%,rgba(255,255,255,.12));
  }
}


/* =========================================================
   v2.2 — hero crop / warmer promise typography / refined service cards
   ========================================================= */

/* 1. HERO: keep the existing height and shift only the photo crop to the right. */
@media (min-width:981px){
  .hero-v17{
    background-position:88% center;
  }
}

/* 2. OUR PROMISE: break the phrase by meaning and give “よかった” a gentle indent. */
.promise-title-main > span{
  display:block;
}
.promise-title-main .promise-good{
  padding-left:1.65em;
}
@media(max-width:767px){
  .promise-title-main .promise-good{
    padding-left:1.35em;
  }
}

/* 3–4. SERVICE: white information cards with a soft green edge and clearer hierarchy. */
.service-summary{
  color:#33484d;
}
.service-summary strong{
  display:block;
  margin:0 0 .42rem;
  color:#173746;
  font-size:clamp(18px,1.7vw,23px);
  font-weight:800;
  line-height:1.45;
  letter-spacing:.01em;
}
.service-summary p{
  margin:0;
  color:#53696e;
  font-size:clamp(14px,1.12vw,16px);
  line-height:1.75;
}
.service-sales-block > div{
  position:relative;
  border:1px solid rgba(77,168,115,.34) !important;
  background:rgba(255,255,255,.98) !important;
  box-shadow:
    0 0 0 4px rgba(77,168,115,.035),
    0 0 28px rgba(77,168,115,.14),
    0 12px 30px rgba(24,63,52,.06) !important;
  border-radius:19px !important;
}
.service-sales-block h4{
  position:relative;
  padding-left:1.65rem;
  color:#173746 !important;
  font-weight:800;
  letter-spacing:.01em;
}
.service-sales-block h4::before{
  content:"✓";
  position:absolute;
  left:0;
  top:.02em;
  display:grid;
  place-items:center;
  width:1.2rem;
  height:1.2rem;
  border-radius:50%;
  color:#fff;
  background:#4da873;
  font-size:.72rem;
  font-weight:900;
}
.service-sales-block ul{
  display:grid;
  gap:.42rem;
}
.service-sales-block li{
  position:relative;
  margin:0 !important;
  padding-left:1.45rem;
  color:#40575c !important;
}
.service-sales-block li::before{
  content:"✓";
  position:absolute;
  left:0;
  top:.02em;
  color:#4da873;
  font-size:.9em;
  font-weight:900;
}
@media (min-width:981px){
  .service-summary{
    max-width:none;
  }
  .service-sales-block > div{
    min-height:132px;
    padding:20px 22px;
  }
  .service-sales-block h4{
    margin-bottom:.8rem;
    font-size:16.5px;
  }
  .service-sales-block li{
    font-size:13px;
    line-height:1.55;
  }
}


/* =========================================================
   v2.3 — service-led page structure and verified visual fixes
   ========================================================= */

/* 1. HERO: preserve height, align the photo's right edge, reduce and move the consultation card. */
@media (min-width:981px){
  .hero-v17{
    background-position:right center !important;
  }
  .hero-v17 .hero-inner{
    grid-template-columns:minmax(0,1.12fr) minmax(300px,350px);
  }
  .consultation-card{
    width:min(100%,350px);
    padding:1.48rem 1.58rem 1.42rem;
    justify-self:end;
    transform:translate(34px,10px);
  }
  .consultation-card h2{
    font-size:clamp(1.36rem,1.72vw,1.72rem);
  }
  .consultation-message{
    font-size:.84rem;
  }
  .consultation-list li{
    font-size:.84rem;
  }
}
.consultation-kicker{
  color:var(--v17-green) !important;
}

/* 2. OUR PROMISE: exact offset requested and subtitle locked to one line on desktop. */
.promise-title-main .promise-good{
  padding-left:2.65em !important;
}
.company-trust-overlay h2 .promise-title-sub{
  white-space:nowrap;
  font-size:clamp(22px,2vw,31px);
  letter-spacing:-.025em;
}
@media(max-width:1100px){
  .promise-title-main .promise-good{padding-left:2.15em !important}
  .company-trust-overlay h2 .promise-title-sub{
    white-space:normal;
  }
}
@media(max-width:767px){
  .promise-title-main .promise-good{padding-left:1.6em !important}
}

/* 3. The former standalone concern section has been removed.
   Its purpose now lives inside every service panel. */

/* 4. SERVICE becomes the primary, self-contained content area. */
.service-section-v23{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 92% 8%,rgba(47,159,114,.09),transparent 27%),
    linear-gradient(180deg,#f7fbf9 0%,#fff 30%,#f8fbfa 100%);
}
.service-v23-container{
  max-width:1440px;
}
.service-v23-heading{
  margin-bottom:1.65rem;
}
.service-v23-heading h2{
  margin-bottom:.55rem;
}
.service-switcher-v23{
  display:grid;
  gap:1rem;
}
.service-selector-v23{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:.75rem;
  order:2;
}
.service-selector-v23 .service-tab{
  min-height:96px;
  padding:1rem 1.05rem;
  border:1px solid #d9e8e2;
  border-radius:18px;
  background:rgba(255,255,255,.9);
  box-shadow:0 9px 28px rgba(23,55,70,.045);
}
.service-selector-v23 .service-tab:hover{
  transform:translateY(-2px);
  border-color:rgba(47,159,114,.48);
}
.service-selector-v23 .service-tab.is-active{
  border-color:var(--v17-green);
  background:#fff;
  box-shadow:0 13px 32px rgba(47,159,114,.12);
}
.service-selector-v23 .service-tab span{
  color:var(--v17-green);
  font-weight:900;
}
.service-selector-v23 .service-tab strong{
  color:var(--v17-navy);
}
.service-selector-v23 .service-tab small{
  color:#6f8388;
}

.service-detail-v23{
  overflow:hidden;
  border:1px solid rgba(47,159,114,.23);
  border-radius:32px;
  background:#fff;
  box-shadow:0 30px 75px rgba(23,55,70,.10);
  transition:opacity .15s ease,transform .15s ease;
}
.service-detail-v23.is-changing{
  opacity:.62;
  transform:translateY(3px);
}
.service-visual-v23{
  position:relative;
  min-height:330px;
  overflow:hidden;
  background:#eff6f3;
}
.service-visual-v23>img{
  width:100%;
  height:100%;
  min-height:330px;
  object-fit:cover;
}
.service-visual-fade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,
      rgba(255,255,255,.99) 0%,
      rgba(255,255,255,.95) 24%,
      rgba(255,255,255,.70) 43%,
      rgba(255,255,255,.13) 69%,
      rgba(255,255,255,.02) 100%);
}
.service-visual-copy{
  position:absolute;
  z-index:2;
  left:clamp(34px,5.2vw,78px);
  top:50%;
  max-width:560px;
  transform:translateY(-50%);
}
.service-number-v23{
  display:block;
  margin-bottom:.55rem;
  color:var(--v17-green);
  font-size:.8rem;
  font-weight:900;
  letter-spacing:.13em;
}
.service-photo-label{
  margin:0 0 .45rem;
  color:var(--v17-green-dark);
  font-size:.73rem;
  font-weight:900;
  letter-spacing:.18em;
}
.service-visual-copy h3{
  margin:0;
  color:var(--v17-navy);
  font-size:clamp(50px,6vw,88px);
  line-height:1.02;
  letter-spacing:-.065em;
}
.service-photo-caption{
  margin:.9rem 0 0;
  color:#526970;
  font-size:clamp(16px,1.4vw,21px);
  font-weight:700;
}
.service-photo-placeholder-note{
  position:absolute;
  z-index:2;
  right:2rem;
  bottom:1.6rem;
  display:flex;
  flex-direction:column;
  gap:.15rem;
  max-width:230px;
  padding:.75rem .9rem;
  border:1px dashed rgba(47,159,114,.45);
  border-radius:14px;
  background:rgba(255,255,255,.83);
  color:#385860;
  backdrop-filter:blur(7px);
}
.service-photo-placeholder-note strong{font-size:.76rem}
.service-photo-placeholder-note small{font-size:.67rem;color:#71868b}

.service-detail-content-v23{
  padding:clamp(26px,3.4vw,48px);
}
.service-summary-v23{
  display:grid;
  grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);
  gap:1.6rem 3rem;
  align-items:end;
  margin-bottom:1.6rem;
}
.service-type-label{
  grid-column:1/-1;
  margin:0 0 -.9rem;
  color:var(--v17-green);
  font-size:.75rem;
  font-weight:900;
  letter-spacing:.18em;
}
.service-summary-v23 h4{
  margin:0;
  color:var(--v17-navy);
  font-size:clamp(25px,2.5vw,38px);
  line-height:1.38;
  letter-spacing:-.035em;
}
.service-summary-v23>p{
  margin:0;
  color:#536a70;
  font-size:clamp(15px,1.22vw,18px);
  line-height:1.9;
}

.service-info-grid-v23{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
}
.service-info-card-v23{
  position:relative;
  min-height:220px;
  padding:1.45rem 1.45rem 1.35rem;
  border:1px solid rgba(47,159,114,.28);
  border-radius:20px;
  background:#fff;
  box-shadow:
    0 0 0 1px rgba(47,159,114,.035),
    0 0 32px rgba(47,159,114,.09),
    0 16px 36px rgba(23,55,70,.055);
}
.service-info-heading{
  display:flex;
  align-items:center;
  gap:.65rem;
  margin-bottom:1rem;
}
.service-info-heading span{
  display:grid;
  place-items:center;
  width:2rem;
  height:2rem;
  border-radius:50%;
  background:var(--v17-mint);
  color:var(--v17-green-dark);
  font-size:.72rem;
  font-weight:900;
}
.service-info-heading h5{
  margin:0;
  color:var(--v17-navy);
  font-size:clamp(16px,1.35vw,20px);
}
.service-info-card-v23 ul{
  display:grid;
  gap:.72rem;
  margin:0;
  padding:0;
  list-style:none;
}
.service-info-card-v23 li{
  position:relative;
  padding-left:1.65rem;
  color:#486168;
  font-size:clamp(13px,1vw,15px);
  line-height:1.58;
}
.service-info-card-v23 li:before{
  content:"✓";
  position:absolute;
  left:0;
  top:.02em;
  display:grid;
  place-items:center;
  width:1.08rem;
  height:1.08rem;
  border-radius:50%;
  background:var(--v17-green);
  color:#fff;
  font-size:.65rem;
  font-weight:900;
}

.service-bottom-v23{
  display:grid;
  grid-template-columns:minmax(270px,.72fr) minmax(0,1.28fr);
  gap:1.2rem 2rem;
  align-items:center;
  margin-top:1.25rem;
  padding-top:1.25rem;
  border-top:1px solid #e2ece8;
}
.service-price-v23{
  display:flex;
  align-items:flex-end;
  gap:1rem;
}
.service-price-v23 div{
  flex:0 0 auto;
}
.service-price-v23 span{
  display:block;
  color:var(--v17-green);
  font-size:.7rem;
  font-weight:900;
  letter-spacing:.16em;
}
.service-price-v23 strong{
  display:block;
  margin-top:.22rem;
  color:var(--v17-navy);
  font-size:clamp(20px,2vw,29px);
  line-height:1.25;
}
.service-price-v23 small{
  max-width:280px;
  color:#71858a;
  line-height:1.55;
}
.service-action-v23{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:1rem;
}
.service-points-v23{
  justify-content:flex-end;
  margin:0;
}
.service-cta-v23{
  flex:0 0 auto;
  min-width:270px;
  justify-content:center;
}

@media(max-width:1100px){
  .service-selector-v23{
    overflow-x:auto;
    grid-template-columns:repeat(5,minmax(190px,1fr));
    padding-bottom:.35rem;
  }
  .service-summary-v23{
    grid-template-columns:1fr;
    gap:.65rem;
  }
  .service-type-label{margin-bottom:0}
  .service-bottom-v23{
    grid-template-columns:1fr;
  }
  .service-action-v23{
    justify-content:space-between;
  }
}
@media(max-width:820px){
  .service-info-grid-v23{
    grid-template-columns:1fr;
  }
  .service-info-card-v23{
    min-height:0;
  }
  .service-visual-v23,
  .service-visual-v23>img{
    min-height:300px;
  }
  .service-photo-placeholder-note{
    display:none;
  }
  .service-action-v23{
    align-items:stretch;
    flex-direction:column;
  }
  .service-points-v23{
    justify-content:flex-start;
  }
  .service-cta-v23{
    width:100%;
    min-width:0;
  }
}
@media(max-width:600px){
  .service-detail-v23{
    border-radius:24px;
  }
  .service-visual-v23,
  .service-visual-v23>img{
    min-height:260px;
  }
  .service-visual-copy{
    left:1.35rem;
    right:1.35rem;
  }
  .service-visual-copy h3{
    font-size:clamp(42px,15vw,60px);
  }
  .service-detail-content-v23{
    padding:1.25rem;
  }
  .service-price-v23{
    align-items:flex-start;
    flex-direction:column;
    gap:.4rem;
  }
}


/* =========================================================
   v2.4 — verified corrections from v2.3 review
   ========================================================= */

/* 1. HERO
   Keep the existing hero height. The source photo is moved right by
   enlarging the background and anchoring it beyond the right edge. */
@media (min-width:981px){
  .hero-v17{
    background-size:112% auto !important;
    background-position:112% center !important;
  }
  .hero-v17 .hero-inner{
    min-height:430px !important;
  }
  .consultation-card{
    width:min(100%,350px) !important;
    max-width:350px !important;
    transform:translate(46px,8px) scale(.90) !important;
    transform-origin:center right;
  }
}

/* 2. OUR PROMISE
   Two heading lines only. "よかった" starts below the centre of "談し". */
.company-trust-overlay h2{
  width:100%;
}
.promise-title-main{
  display:block;
  width:100%;
  max-width:620px;
}
.promise-title-main .promise-talk{
  display:block;
  white-space:nowrap;
}
.promise-title-main .promise-good{
  display:block;
  width:max-content;
  max-width:100%;
  margin-top:.10em;
  margin-left:2.85em !important;
  padding-left:0 !important;
  white-space:nowrap !important;
}
.company-trust-overlay h2 .promise-title-sub{
  display:block;
  width:max-content;
  max-width:100%;
  margin-top:.65em;
  white-space:nowrap !important;
  font-size:clamp(20px,1.78vw,29px) !important;
}
@media(max-width:1180px){
  .promise-title-main .promise-good{
    margin-left:2.35em !important;
  }
  .company-trust-overlay h2 .promise-title-sub{
    font-size:clamp(18px,2vw,25px) !important;
  }
}
@media(max-width:900px){
  .promise-title-main .promise-good{
    margin-left:1.65em !important;
  }
  .company-trust-overlay h2 .promise-title-sub{
    width:auto;
    white-space:normal !important;
  }
}

/* 3. SERVICE PHOTO
   Reduce the visual area to roughly half the previous desktop height. */
@media(min-width:821px){
  .service-visual-v23,
  .service-visual-v23>img{
    min-height:165px !important;
    height:165px !important;
  }
  .service-visual-copy{
    left:clamp(30px,4.6vw,66px) !important;
  }
  .service-visual-copy h3{
    font-size:clamp(42px,4.8vw,68px) !important;
  }
  .service-photo-caption{
    margin-top:.45rem !important;
    font-size:clamp(14px,1.15vw,17px) !important;
  }
  .service-photo-placeholder-note{
    right:1.35rem !important;
    bottom:.9rem !important;
  }
}

/* 4. Migrated v2.2 concern cards
   Keep the existing white-card style, use exact v2.2 content,
   and add a soft green accent only along the bottom edge. */
.service-info-grid-v23{
  align-items:stretch;
}
.concern-migrated-card{
  position:relative;
  overflow:hidden;
  min-height:220px;
  padding-bottom:1.75rem !important;
}
.concern-migrated-card::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:7px;
  background:linear-gradient(90deg,#9bd6a6 0%,#54b878 52%,#2f9f72 100%);
  box-shadow:0 -5px 18px rgba(47,159,114,.15);
}
.concern-migrated-card .service-info-heading{
  align-items:flex-start;
}
.concern-migrated-card .service-info-heading h5{
  line-height:1.55;
}
.service-info-copy-v24{
  margin:0;
  color:#536a70;
  font-size:clamp(14px,1vw,16px);
  line-height:1.85;
}

/* PRICE GUIDE and CTA area intentionally unchanged. */


/* =========================================================
   v2.5 — four requested changes
   ========================================================= */

/* 1. Restore v2.3 hero layout. Only the photo file is replaced. */
@media (min-width:981px){
  .hero-v17{
    background-size:cover !important;
    background-position:right center !important;
  }
  .hero-v17 .hero-inner{
    min-height:unset !important;
    grid-template-columns:minmax(0,1.12fr) minmax(300px,350px) !important;
  }
  .consultation-card{
    width:min(100%,350px) !important;
    max-width:none !important;
    padding:1.48rem 1.58rem 1.42rem !important;
    justify-self:end !important;
    transform:translate(34px,10px) !important;
    transform-origin:initial !important;
  }
}

/* 2. v2.4 photo height 165px × 2.5 = 412.5px. */
@media(min-width:821px){
  .service-visual-v23,
  .service-visual-v23>img{
    min-height:413px !important;
    height:413px !important;
  }
}

/* 3–4. v2.2 concern photos and heading inside the service section. */
.service-concerns-heading-v25{
  margin:2rem 0 1.35rem;
  text-align:center;
}
.service-concerns-heading-v25 .section-kicker{
  margin-bottom:.45rem;
}
.service-concerns-heading-v25 h5{
  margin:0;
  color:var(--v17-navy);
  font-size:clamp(28px,3vw,46px);
  line-height:1.25;
  letter-spacing:-.045em;
}
.concern-migrated-card{
  padding:0 0 1.75rem !important;
}
.concern-photo-v25{
  position:relative;
  overflow:hidden;
  aspect-ratio:4 / 2.45;
  margin:0;
  border-radius:19px 19px 0 0;
  background:#eef4f1;
}
.concern-photo-v25 img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.concern-photo-v25 figcaption{
  position:absolute;
  left:1rem;
  bottom:.85rem;
  padding:.42rem .72rem;
  border-radius:999px;
  background:rgba(23,55,70,.88);
  color:#fff;
  font-size:.72rem;
  font-weight:800;
}
.concern-card-content-v25{
  padding:1.3rem 1.45rem .4rem;
}
.concern-migrated-card .service-info-heading{
  margin-bottom:.75rem;
}


/* =========================================================
   v2.6 — requested three changes only
   ========================================================= */

/* 1) Hero: keep layout, slightly smaller card, move it left. */
@media (min-width:981px){
  .consultation-card{
    width:min(100%,322px) !important;
    padding:1.36rem 1.45rem 1.30rem !important;
    transform:translate(-8px,10px) !important;
  }
}

/* 2) Real exterior-cleaning photo supplied by the user. */
.service-photo-placeholder-note[hidden]{
  display:none !important;
}

/* 3) PRICE GUIDE: same area, simpler and more readable. */
.service-price-v26{
  align-items:center;
  gap:1.15rem;
}
.service-price-main-v26{
  flex:0 0 auto;
}
.service-price-note-wrap-v26{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:.48rem;
  min-width:0;
}
.service-price-badge-v26{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:.32rem .78rem;
  border-radius:999px;
  background:#eaf7ef;
  color:#23865f;
  font-size:.76rem;
  font-weight:800;
  line-height:1.35;
  white-space:nowrap;
}
.service-price-note-wrap-v26 small{
  max-width:220px;
  line-height:1.55;
}
@media(max-width:760px){
  .service-price-v26{
    align-items:flex-start;
  }
  .service-price-badge-v26{
    white-space:normal;
  }
}


/* =========================================================
   v2.7 requested changes only
   ========================================================= */

/* 1) Hero consultation card: keep size, move only horizontally left. */
@media (min-width:981px){
  .consultation-card{
    transform:translate(-38px,10px) !important;
  }
}

/* 2) Exterior-cleaning hero heading: stronger presence, no other layout change. */
.service-photo-copy h3{
  font-size:clamp(3.35rem,5.15vw,5.35rem) !important;
  font-weight:900 !important;
  line-height:.98 !important;
  letter-spacing:-.045em !important;
}

/* 3) PRICE GUIDE: compact, readable, and visually separated from category chips. */
.service-price-v27{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:center !important;
  gap:.42rem !important;
  min-width:430px;
}
.service-price-top-v27{
  display:flex;
  align-items:flex-end;
  gap:1rem;
  width:100%;
}
.service-price-v27 .service-price-main-v26{
  flex:0 0 auto;
}
.service-price-v27 .service-price-badge-v27{
  flex:0 0 auto;
  margin-bottom:.16rem;
  padding:.34rem .82rem;
  white-space:nowrap;
}
.service-price-v27 .service-price-note-v27{
  display:block;
  width:100%;
  max-width:none;
  margin:0;
  line-height:1.4;
  white-space:nowrap;
}
.service-panel-footer{
  column-gap:2.25rem !important;
}
.service-panel-footer .service-tags{
  margin-left:.65rem;
}
@media(max-width:980px){
  .service-price-v27{
    min-width:0;
  }
  .service-price-top-v27{
    align-items:flex-start;
    flex-wrap:wrap;
  }
  .service-price-v27 .service-price-note-v27{
    white-space:normal;
  }
}


/* =========================================================
   v2.8 — requested three changes only
   ========================================================= */

/* 1) EXTERIOR CLEANING intro block removed. */

/* 2) Category chips beside PRICE GUIDE removed. */
.service-action-v23{
  margin-left:auto;
  justify-content:flex-end !important;
}

/* 3) PRICE GUIDE — condition, large price, free-estimate message. */
.service-price-v28{
  display:grid !important;
  grid-template-columns:104px minmax(260px,1fr);
  grid-template-rows:auto auto;
  column-gap:1.15rem !important;
  row-gap:.32rem !important;
  align-items:center !important;
  min-width:0 !important;
  width:100%;
}

.price-condition-v28{
  grid-row:1 / span 2;
  width:92px;
  height:92px;
  border-radius:50%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  background:#edf8f1;
  border:1px solid rgba(47,159,114,.22);
  color:#215f4b;
  box-shadow:0 8px 20px rgba(47,159,114,.08);
}
.price-condition-v28 strong{
  font-size:1.02rem;
  line-height:1.05;
}
.price-condition-v28 span{
  margin-top:.24rem;
  font-size:.94rem;
  font-weight:900;
}

.price-main-v28{
  min-width:0;
}
.price-kicker-v28{
  display:block;
  color:var(--v17-green);
  font-size:.7rem;
  font-weight:900;
  letter-spacing:.16em;
  margin-bottom:.16rem;
}
.price-number-row-v28{
  display:flex;
  align-items:flex-end;
  gap:.42rem;
  white-space:nowrap;
}
.price-number-row-v28 strong{
  color:var(--v17-navy);
  font-size:clamp(2.7rem,3.9vw,4.4rem);
  line-height:.9;
  letter-spacing:-.055em;
}
.price-number-row-v28 span{
  padding-bottom:.18rem;
  color:var(--v17-navy);
  font-size:1.2rem;
  font-weight:900;
}

.price-free-v28{
  grid-column:2;
  width:max-content;
  min-width:285px;
  padding:.58rem 1.15rem;
  border-radius:999px;
  background:linear-gradient(90deg,#2f9f72,#5fba78);
  color:#fff;
  font-size:.98rem;
  font-weight:900;
  text-align:center;
  box-shadow:0 8px 18px rgba(47,159,114,.14);
}

.service-bottom-v23{
  grid-template-columns:minmax(450px,.95fr) minmax(300px,.55fr) !important;
  gap:2.2rem !important;
}
.service-cta-v23{
  min-width:310px;
}

/* For non-cleaning tabs, keep a readable generic price display. */
.service-price-v28.is-generic-price{
  grid-template-columns:1fr;
  grid-template-rows:auto;
}
.service-price-v28.is-generic-price .price-condition-v28,
.service-price-v28.is-generic-price .price-free-v28,
.service-price-v28.is-generic-price .price-kicker-v28,
.service-price-v28.is-generic-price .price-number-row-v28 span{
  display:none;
}
.service-price-v28.is-generic-price .price-number-row-v28 strong{
  font-size:clamp(1.6rem,2.2vw,2.25rem);
  line-height:1.2;
  white-space:normal;
}

@media(max-width:980px){
  .service-bottom-v23{
    grid-template-columns:1fr !important;
  }
  .service-price-v28{
    grid-template-columns:88px 1fr;
  }
  .price-condition-v28{
    width:80px;
    height:80px;
  }
  .price-free-v28{
    min-width:0;
    width:100%;
  }
  .service-cta-v23{
    width:100%;
    min-width:0;
  }
}


/* =========================================================
   v2.9 — six requested improvements
   ========================================================= */

/* 1) Service detail must NEVER fade when switching. */
.service-detail-v23,
.service-detail-v23.is-changing{
  opacity:1 !important;
  transform:none !important;
  transition:none !important;
}

/* 2) Centered infinite carousel selector. */
.service-switcher-v23{
  gap:1.35rem !important;
}
.service-carousel-v29{
  order:2;
  position:relative;
  display:grid;
  grid-template-columns:48px minmax(0,1fr) 48px;
  align-items:center;
  gap:.65rem;
  margin-top:.3rem;
}
.service-carousel-viewport{
  position:relative;
  height:142px;
  overflow:hidden;
  border-radius:24px;
  isolation:isolate;
}
.service-carousel-viewport::before,
.service-carousel-viewport::after{
  content:"";
  position:absolute;
  z-index:5;
  top:0;
  bottom:0;
  width:12%;
  pointer-events:none;
}
.service-carousel-viewport::before{
  left:0;
  background:linear-gradient(90deg,#f7fbf9 18%,rgba(247,251,249,.78) 45%,rgba(247,251,249,0) 100%);
}
.service-carousel-viewport::after{
  right:0;
  background:linear-gradient(270deg,#f7fbf9 18%,rgba(247,251,249,.78) 45%,rgba(247,251,249,0) 100%);
}
.service-selector-v29{
  position:absolute !important;
  inset:0 !important;
  display:block !important;
  order:initial !important;
  overflow:visible !important;
  padding:0 !important;
}
.service-selector-v29 .service-tab{
  position:absolute;
  top:50%;
  left:50%;
  width:230px;
  min-height:102px;
  margin:0;
  padding:1rem 1.05rem;
  transform:translate(-50%,-50%);
  transform-origin:center;
  transition:transform .28s ease,opacity .28s ease,border-color .28s ease,box-shadow .28s ease,background .28s ease;
  z-index:2;
}
.service-selector-v29 .service-tab[data-carousel-pos="0"]{
  transform:translate(-50%,-50%) scale(1.08);
  opacity:1;
  z-index:4;
  border-color:var(--v17-green);
  background:#fff;
  box-shadow:0 16px 34px rgba(47,159,114,.14);
}
.service-selector-v29 .service-tab[data-carousel-pos="-1"]{
  transform:translate(calc(-50% - 250px),-50%) scale(.90);
  opacity:.58;
  z-index:3;
}
.service-selector-v29 .service-tab[data-carousel-pos="1"]{
  transform:translate(calc(-50% + 250px),-50%) scale(.90);
  opacity:.58;
  z-index:3;
}
.service-selector-v29 .service-tab[data-carousel-pos="-2"]{
  transform:translate(calc(-50% - 470px),-50%) scale(.82);
  opacity:.34;
  z-index:1;
}
.service-selector-v29 .service-tab[data-carousel-pos="2"]{
  transform:translate(calc(-50% + 470px),-50%) scale(.82);
  opacity:.34;
  z-index:1;
}
.service-carousel-arrow{
  position:relative;
  z-index:7;
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border:1px solid rgba(47,159,114,.30);
  border-radius:50%;
  background:#fff;
  color:var(--v17-green-dark);
  font-size:1.25rem;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 8px 22px rgba(23,55,70,.08);
  transition:.2s ease;
}
.service-carousel-arrow:hover{
  transform:translateY(-2px);
  border-color:var(--v17-green);
  box-shadow:0 12px 26px rgba(47,159,114,.13);
}

/* 3) Service photo: reduce height by the marked lower band and crop from bottom. */
@media(min-width:821px){
  .service-visual-v23,
  .service-visual-v23>img{
    min-height:350px !important;
    height:350px !important;
  }
  .service-visual-v23>img{
    object-fit:cover !important;
    object-position:center top !important;
  }
}

/* 4 + 5) PRICE GUIDE: clear "estimate" wording + right-side free consultation illustration. */
.service-price-v29{
  display:grid !important;
  grid-template-columns:104px minmax(300px,.8fr) minmax(360px,1fr) !important;
  grid-template-rows:auto !important;
  column-gap:1.5rem !important;
  align-items:center !important;
  width:100%;
}
.price-condition-v29{
  grid-row:auto !important;
  position:relative;
}
.price-condition-v29 small{
  display:block;
  margin-bottom:.15rem;
  color:var(--v17-green);
  font-size:.64rem;
  font-weight:900;
  letter-spacing:.08em;
}
.price-main-v29{
  min-width:0;
}
.price-kicker-v28 em{
  display:inline-flex;
  align-items:center;
  margin-left:.5rem;
  padding:.18rem .48rem;
  border:1px solid rgba(47,159,114,.28);
  border-radius:999px;
  color:var(--v17-green-dark);
  background:#f5fbf8;
  font-style:normal;
  font-size:.64rem;
  letter-spacing:.04em;
}
.price-guide-note-v29{
  margin:.45rem 0 0;
  color:#71858a;
  font-size:.75rem;
  line-height:1.5;
}
.price-free-v29{
  justify-self:end;
  display:flex;
  align-items:center;
  gap:1rem;
  min-width:360px;
  min-height:104px;
  padding:.75rem 1.1rem .75rem .8rem;
  border-radius:24px;
  background:linear-gradient(135deg,#edf8f1 0%,#fff 52%,#e7f7ed 100%);
  border:1px solid rgba(47,159,114,.24);
  box-shadow:0 12px 28px rgba(47,159,114,.10);
}
.price-free-v29 img{
  flex:0 0 82px;
  width:82px;
  height:82px;
  object-fit:contain;
  border-radius:18px;
  background:#fff;
}
.price-free-v29 div{
  display:flex;
  flex-direction:column;
  gap:.22rem;
}
.price-free-v29 span{
  color:#698087;
  font-size:.75rem;
  font-weight:700;
}
.price-free-v29 strong{
  color:var(--v17-green-dark);
  font-size:1.02rem;
  font-weight:900;
  white-space:nowrap;
}

/* Generic non-cleaning price display remains compact. */
.service-price-v29.is-generic-price{
  grid-template-columns:1fr !important;
}
.service-price-v29.is-generic-price .price-condition-v29,
.service-price-v29.is-generic-price .price-free-v29,
.service-price-v29.is-generic-price .price-kicker-v28 em,
.service-price-v29.is-generic-price .price-guide-note-v29,
.service-price-v29.is-generic-price .price-number-row-v28 span{
  display:none !important;
}
.service-price-v29.is-generic-price .price-number-row-v28 strong{
  font-size:clamp(1.6rem,2.2vw,2.25rem) !important;
  line-height:1.2 !important;
  white-space:normal;
}

/* 6) Small one-point illustrations for each flow card. */
.flow-list li{
  overflow:hidden;
}
.flow-point-icon-v29{
  position:absolute;
  top:20px;
  right:18px;
  width:42px;
  height:42px;
  opacity:.72;
  color:#43aa7d;
}
.flow-point-icon-v29 svg{
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* Responsive */
@media(max-width:1100px){
  .service-selector-v29 .service-tab{
    width:210px;
  }
  .service-selector-v29 .service-tab[data-carousel-pos="-1"]{
    transform:translate(calc(-50% - 215px),-50%) scale(.90);
  }
  .service-selector-v29 .service-tab[data-carousel-pos="1"]{
    transform:translate(calc(-50% + 215px),-50%) scale(.90);
  }
  .service-selector-v29 .service-tab[data-carousel-pos="-2"]{
    transform:translate(calc(-50% - 395px),-50%) scale(.82);
  }
  .service-selector-v29 .service-tab[data-carousel-pos="2"]{
    transform:translate(calc(-50% + 395px),-50%) scale(.82);
  }
  .service-price-v29{
    grid-template-columns:92px minmax(240px,.8fr) minmax(300px,1fr) !important;
  }
  .price-free-v29{
    min-width:300px;
  }
}
@media(max-width:820px){
  .service-carousel-v29{
    grid-template-columns:40px minmax(0,1fr) 40px;
  }
  .service-carousel-viewport{
    height:132px;
  }
  .service-selector-v29 .service-tab{
    width:190px;
  }
  .service-selector-v29 .service-tab[data-carousel-pos="-1"]{
    transform:translate(calc(-50% - 170px),-50%) scale(.88);
  }
  .service-selector-v29 .service-tab[data-carousel-pos="1"]{
    transform:translate(calc(-50% + 170px),-50%) scale(.88);
  }
  .service-selector-v29 .service-tab[data-carousel-pos="-2"],
  .service-selector-v29 .service-tab[data-carousel-pos="2"]{
    opacity:0;
    pointer-events:none;
  }
  .service-carousel-arrow{
    width:38px;
    height:38px;
  }
  .service-price-v29{
    grid-template-columns:82px 1fr !important;
    grid-template-rows:auto auto !important;
  }
  .price-free-v29{
    grid-column:1/-1;
    justify-self:stretch;
    min-width:0;
    margin-top:.6rem;
  }
}
@media(max-width:560px){
  .service-selector-v29 .service-tab{
    width:172px;
  }
  .service-selector-v29 .service-tab[data-carousel-pos="-1"]{
    transform:translate(calc(-50% - 145px),-50%) scale(.84);
  }
  .service-selector-v29 .service-tab[data-carousel-pos="1"]{
    transform:translate(calc(-50% + 145px),-50%) scale(.84);
  }
  .price-free-v29 img{
    width:70px;
    height:70px;
    flex-basis:70px;
  }
  .price-free-v29 strong{
    white-space:normal;
  }
}


/* =========================================================
   v3.0 — requested changes only
   ========================================================= */

/* 1) PRICE GUIDE: prevent overlap and use one clickable consultation card. */
.service-price-v29{
  grid-template-columns:104px minmax(390px,.95fr) minmax(390px,1fr) !important;
  column-gap:2.15rem !important;
  align-items:center !important;
}
.price-main-v29{
  min-width:390px;
  padding:0 0 .25rem !important;
}
.price-number-row-v28{
  display:flex !important;
  align-items:baseline !important;
  gap:.5rem !important;
  margin:.12rem 0 .62rem !important;
  white-space:nowrap !important;
}
.price-number-row-v28 strong{
  display:block;
  line-height:.86 !important;
  padding-bottom:.12rem;
}
.price-number-row-v28 span{
  flex:0 0 auto;
  padding-bottom:0 !important;
}
.price-guide-note-v29{
  clear:both;
  display:block;
  position:relative;
  margin:.1rem 0 0 !important;
  padding-top:.12rem;
  line-height:1.55 !important;
  white-space:nowrap;
}
.price-free-link-v30{
  justify-self:end;
  text-decoration:none !important;
  cursor:pointer;
  color:inherit;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.price-free-link-v30:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 34px rgba(47,159,114,.15);
  border-color:rgba(47,159,114,.40);
}
.price-free-link-v30:focus-visible{
  outline:3px solid rgba(47,159,114,.25);
  outline-offset:3px;
}
.service-bottom-v23{
  grid-template-columns:1fr !important;
}

/* 2) Campaign banner: hidden outside configured period. */
#campaignBanner[hidden]{
  display:none !important;
}

@media(max-width:1050px){
  .service-price-v29{
    grid-template-columns:92px minmax(320px,.9fr) minmax(320px,1fr) !important;
    column-gap:1.35rem !important;
  }
  .price-main-v29{
    min-width:320px;
  }
}
@media(max-width:820px){
  .service-price-v29{
    grid-template-columns:82px 1fr !important;
  }
  .price-main-v29{
    min-width:0;
  }
  .price-free-link-v30{
    grid-column:1 / -1;
    justify-self:stretch;
  }
  .price-guide-note-v29{
    white-space:normal;
  }
}
