/* Correction layer for the evidence-backed local implementation. */
main p { max-width: 40em !important; }
.sato-service .svc-button,
.sato-service .svc-service-card__link,
.price-guide .pg-button { min-height: 44px; font-size: var(--rd-type-action) !important; }
/* Static price cards are containers; only their links should react to hover. */
.price-guide .pg-service-card:hover { transform: none; box-shadow: 0 8px 25px rgba(9,45,85,.07); }
.price-guide .pg-service-card:hover .pg-service-card__visual img { transform: none; }
/* Contact placeholders stay supplementary to persistent labels. */
.contact3 .home-form__control::placeholder,
.front-page .home-form__control::placeholder,
#sato-contact-form .form-control::placeholder { color: #4c6071 !important; opacity: 1; }
:where(a, button, input, textarea, select, summary):focus-visible {
    outline: var(--rd-focus);
    outline-offset: 3px;
}

/* The floating CTA must leave the whole footer visible. */
@media (max-width: 1024px) {
    :root { --fixed-cta-height: calc(56px + env(safe-area-inset-bottom, 0px)); }
    .fixed-cta__btn {
        min-height: 56px;
        padding-bottom: calc(var(--rd-space-1) + env(safe-area-inset-bottom, 0px));
        font-size: var(--rd-text-xs);
        line-height: 1.2;
    }
}

/* Four service details share a fact-first hero. */
:is(.sato-service--exterior, .sato-service--roof, .sato-service--waterproof, .sato-service--repair) .svc-hero--reference {
    height: auto !important;
    min-height: 500px !important;
}
:is(.sato-service--exterior, .sato-service--roof, .sato-service--waterproof, .sato-service--repair) .svc-hero--reference .svc-hero__grid {
    min-height: 500px;
}
:is(.sato-service--exterior, .sato-service--roof, .sato-service--waterproof, .sato-service--repair) .svc-hero--reference .svc-hero__copy {
    min-height: 500px !important;
    height: auto !important;
    padding-top: var(--rd-space-5) !important;
    padding-bottom: var(--rd-space-5) !important;
}
.sato-service .svc-hero__service-name {
    margin: 0 0 var(--rd-space-2);
    color: var(--rd-blue);
    font: 800 var(--rd-text-sm)/1.5 var(--rd-body-font);
    letter-spacing: .08em;
}
.sato-service .svc-hero__quick-price {
    width: min(100%, 390px);
    margin-top: var(--rd-space-3);
    padding-top: var(--rd-space-3);
    border-top: 1px solid var(--rd-line);
    color: var(--rd-ink);
    text-align: left;
    font-family: var(--rd-body-font);
}
.sato-service .svc-hero__quick-price > span {
    display: block;
    font-size: var(--rd-text-xs);
    font-weight: 700;
}
.sato-service .svc-hero__quick-price strong {
    display: block;
    color: var(--rd-blue);
    font-size: clamp(1.5rem, 2vw, 1.9rem);
    line-height: 1.35;
}
.sato-service .svc-hero__quick-price strong small { font-size: var(--rd-text-sm); }
.sato-service .svc-hero__quick-price p {
    max-width: var(--rd-measure);
    margin: var(--rd-space-1) 0 var(--rd-space-2);
    font-size: var(--rd-text-sm);
    line-height: 1.6;
}
.sato-service .svc-hero__quick-price a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: var(--rd-space-2) var(--rd-space-3);
    border-radius: var(--rd-radius);
    background: var(--rd-blue);
    color: var(--rd-white);
    font-size: var(--rd-text-sm);
    font-weight: 700;
}
.sato-service .svc-hero__quick-price a:hover { background: var(--rd-blue-deep); }

.front-page .hero2__price-link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--rd-space-2);
    width: fit-content;
    min-height: 44px;
    margin: 0 auto var(--rd-space-3);
    padding: var(--rd-space-2) var(--rd-space-4);
    border-radius: var(--rd-radius);
    background: var(--rd-blue);
    color: var(--rd-white);
    font: 700 var(--rd-text-sm)/1.4 var(--rd-body-font);
    box-shadow: var(--rd-shadow);
}
.front-page .hero2__price-link:hover { background: var(--rd-blue-deep); }
@media (min-width: 821px) {
    .front-page .hero2__title-main {
        font-size: clamp(34px, 4.3vw, 66px);
        white-space: nowrap;
    }
}
.front-page .hero2__simulator-link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: fit-content;
    min-height: 44px;
    margin: -8px auto 16px;
    padding: 7px 12px;
    color: var(--rd-blue-deep);
    font: 700 14px/1.4 var(--rd-body-font);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.front-page .hero2__simulator-link:hover { color: var(--rd-blue); }

.contact-preference {
    min-width: 0;
    margin: 0 0 var(--rd-space-4);
    padding: 0;
    border: 0;
}
.contact-preference .form-radio-group label { min-height: 44px; }
.postal-field { flex: 0 0 132px; }
.input-address { align-items: flex-end; }
.postal-field .form-label { font-size: var(--rd-text-sm); }
.postal-field .zip { width: 100%; }
#sato-contact-form .form-control::placeholder { color: var(--rd-muted); opacity: 1; }
#sato-contact-form .badge-required,
#sato-contact-form .badge-any { font-size: var(--rd-text-xs); }
/* Keep supporting text legible across the original blue/gold page styles. */
.sato-service--index .svc-index-hero .svc-button--gold { color: #fff !important; background: #986000; }
.sato-service--index .svc-index-hero .svc-button--gold:hover { background: #80530a; }
.sato-service--index .svc-service-card__meta strong,
.sato-service--index .svc-index-section-heading p { color: #855b10; }
.sato-service .svc-index-section-heading > p,
.sato-service .svc-reference-symptoms__heading > p,
.sato-service .svc-section--related .svc-kicker,
.sato-service #svc-price .svc-kicker,
.sato-service #svc-price-title span { color: #855b10; }
.sato-service--exterior .svc-section--related .svc-heading--center .svc-kicker { color: #855b10; }
.price-guide { --pg-muted: #5a6775; }
.price-guide .pg-breadcrumb { color: #5a6775; }
.price-guide .pg-eyebrow { color: #855b10; }
.contact-page .method-box__note,
.contact-page .form-note { color: #5a6775; }
#sato-contact-form .badge-required { background: #b42318; }
#sato-contact-form .badge-any { background: #4b5968; }
.col-archive .col-secttl__en,
.col-single .col-secttl__en,
.col-single .cs-nav__next .cs-nav__label { color: #855b10; }
.col-archive .col-card__date,
.col-single .cs-date,
.col-single .cs-rcard__date,
.col-single .cs-catlist li a span,
.col-single .cs-crumb .c { color: #5a6775; }
.col-archive .col-card__new { background: #855b10; }
.col-archive .col-cta__btn,
.col-single .cs-cta__btn { background: #a44b00; }
.col-single .cs-share__btn--fb { background: #0a65ad; }
.col-single .cs-share__btn--ln { background: #006e2b; }
@media (max-width: 640px) {
    .price-guide .pg-hero__content {
        width: 100%;
        margin-block: var(--rd-space-3);
        padding: var(--rd-space-3);
        border-radius: var(--rd-radius);
        background: rgba(255,255,255,.95);
    }
    .postal-field { width: 132px; flex-basis: auto; }
    .input-address { align-items: flex-start; }
    .input-address .p-region { width: 100%; }
}

@media (max-width: 260px) {
    :is(.sato-service--exterior, .sato-service--roof, .sato-service--waterproof, .sato-service--repair) .svc-hero__service-name { font-size: 12px; letter-spacing: 0; }
    :is(.sato-service--exterior, .sato-service--roof, .sato-service--waterproof, .sato-service--repair) .svc-hero__quick-price strong { font-size: 20px; }
    :is(.sato-service--exterior, .sato-service--roof, .sato-service--waterproof, .sato-service--repair) .svc-hero__quick-price strong small { font-size: 12px; }
    :is(.sato-service--exterior, .sato-service--roof, .sato-service--waterproof, .sato-service--repair) .svc-hero__quick-price a { padding: 8px 10px; font-size: 12px; white-space: nowrap; }
    :is(.sato-service--exterior, .sato-service--roof, .sato-service--waterproof, .sato-service--repair) .svc-hero--reference h1,
    :is(.sato-service--exterior, .sato-service--roof, .sato-service--waterproof, .sato-service--repair) .svc-hero--reference h1 span {
        font-size: 22px !important;
        line-height: 1.4 !important;
        letter-spacing: 0 !important;
    }
    :is(.sato-service--exterior, .sato-service--roof, .sato-service--waterproof, .sato-service--repair) .svc-hero--reference h1 br { display: none; }
    .header-main__inner { padding-inline: 8px; gap: 4px; }
    .header-logo__tagline { display: none; }
    .hero2__content { padding-inline: 12px; }
    .hero2__title-lead { font-size: 22px; white-space: nowrap; }
    .hero2__title-main { font-size: 20px; white-space: nowrap; }
    .hero2__badge { display: none; }
    .hero2__lead { font-size: 14px; letter-spacing: 0; }
    .hero2__features { grid-template-columns: minmax(0, 1fr); }
    .hero2__features li:last-child { grid-column: auto; max-width: none; }
    .contact-page .page-header__title { font-size: 22px; letter-spacing: 0; }
    .contact-page .page-header__lead { font-size: 14px; }
    .contact-methods__grid { grid-template-columns: minmax(0, 1fr) !important; }
    .method-box { min-width: 0; padding: 16px 8px; }
    .method-box__title { font-size: 1rem; }
    .method-box__link { min-width: 0; padding: 10px 4px; font-size: 14px !important; overflow-wrap: anywhere; }
    .form-wrapper { min-width: 0; padding: 16px 8px !important; }
    .contact3__body { padding-inline: 8px; }
    .contact3__formcard, .contact3__info { min-width: 0; padding: 16px 8px; }
    .contact3__info-list li { min-width: 0; flex-wrap: wrap; padding: 8px; }
    .psim__result-main, .psim__result-head, .psim__result-price { min-width: 0; overflow-wrap: anywhere; }
    .cs-layout { grid-template-columns: minmax(0, 1fr); padding-inline: 8px; }
    .cs-main, .cs-head, .cs-content, .cs-toc { min-width: 0; overflow-wrap: anywhere; }
    .cs-head__meta { flex-wrap: wrap; }
    .cs-toc { padding: 10px; }
}

@media (max-width: 699px) {
    :is(.sato-service--exterior, .sato-service--roof, .sato-service--waterproof, .sato-service--repair) .svc-hero--reference {
        display: flex;
        flex-direction: column;
        height: auto !important;
        min-height: 0 !important;
        background: var(--rd-white) !important;
    }
    :is(.sato-service--exterior, .sato-service--roof, .sato-service--waterproof, .sato-service--repair) .svc-hero--reference .svc-hero__grid {
        display: block !important;
        width: 100% !important;
        min-height: 0;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    :is(.sato-service--exterior, .sato-service--roof, .sato-service--waterproof, .sato-service--repair) .svc-hero--reference .svc-hero__copy {
        display: block !important;
        width: 100% !important;
        min-height: 0 !important;
        height: auto !important;
        margin: 0 !important;
        padding: var(--rd-space-5) var(--rd-space-4) var(--rd-space-4) !important;
        text-align: left !important;
    }
    :is(.sato-service--exterior, .sato-service--roof, .sato-service--waterproof, .sato-service--repair) .svc-hero--reference h1 {
        max-width: 16em;
        margin: 0 !important;
        font-size: clamp(1.9rem, 8vw, 2.5rem) !important;
        line-height: 1.35 !important;
        white-space: normal !important;
    }
    :is(.sato-service--exterior, .sato-service--roof, .sato-service--waterproof, .sato-service--repair) .svc-hero--reference .svc-hero__lead {
        max-width: var(--rd-measure) !important;
        margin-top: var(--rd-space-3) !important;
        padding-top: var(--rd-space-3) !important;
        font-size: var(--rd-text-base) !important;
        line-height: 1.8 !important;
    }
    :is(.sato-service--exterior, .sato-service--roof, .sato-service--waterproof, .sato-service--repair) .svc-hero--reference .svc-exterior-hero__visual {
        position: relative !important;
        z-index: 0;
        inset: auto !important;
        display: block;
        width: 100% !important;
        height: clamp(210px, 58vw, 300px) !important;
        overflow: hidden;
        opacity: 1 !important;
        clip-path: none !important;
    }
    :is(.sato-service--exterior, .sato-service--roof, .sato-service--waterproof, .sato-service--repair) .svc-hero--reference .svc-exterior-hero__visual img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    :is(.sato-service--exterior, .sato-service--roof, .sato-service--waterproof, .sato-service--repair) .svc-hero--reference .svc-exterior-hero__local {
        position: relative;
        inset: auto;
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .sato-service .svc-hero__quick-price a { transition: none; }
}

/* Short, actionable introductions and clear next steps on supporting pages. */
.company-quick-nav,
.column-purpose-nav__links {
    display: flex;
    flex-wrap: wrap;
    gap: var(--rd-space-2);
}
.company-quick-nav { margin-top: var(--rd-space-4); }
.company-quick-nav a,
.column-purpose-nav__links a,
.column-cost-guide a,
.company-service-areas__link,
.faq-detail-consult a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: var(--rd-space-2) var(--rd-space-3);
    border: 1px solid var(--rd-blue);
    border-radius: var(--rd-radius);
    color: var(--rd-blue);
    background: var(--rd-white);
    font: 700 var(--rd-text-sm)/1.5 var(--rd-body-font);
    text-decoration: none;
}
.company-service-areas__list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--rd-space-2);
    padding: 0;
    list-style: none;
}
.company-service-areas__list li {
    padding: var(--rd-space-1) var(--rd-space-3);
    border-radius: 999px;
    background: var(--rd-white);
}
.column-purpose-nav,
.column-cost-guide { padding: var(--rd-space-5) 0; background: var(--rd-soft); }
.column-purpose-nav h2,
.column-cost-guide h2 { margin: 0 0 var(--rd-space-3); font-size: var(--rd-text-lg); }
.column-purpose-nav__links a { flex: 1 1 190px; justify-content: space-between; }
.column-cost-guide p { max-width: var(--rd-measure); line-height: 1.8; }
.faq-category-content { padding-top: var(--rd-space-4); padding-bottom: var(--rd-space-6); }
.faq-category-list { margin: 0 0 var(--rd-space-4); padding: 0; list-style: none; }
.faq-category-list li + li { border-top: 1px solid var(--rd-line); }
.faq-category-list a {
    display: flex;
    align-items: center;
    gap: var(--rd-space-3);
    min-height: 56px;
    padding: var(--rd-space-2) 0;
    color: var(--rd-ink);
    text-decoration: none;
}
.faq-category-list a span:first-child { color: var(--rd-blue); font-weight: 800; }
.faq-category-list a span:last-child { margin-left: auto; color: var(--rd-blue); }
.faq-detail-related,
.faq-detail-next,
.faq-detail-consult { margin-top: var(--rd-space-5); padding-top: var(--rd-space-3); border-top: 1px solid var(--rd-line); }
.faq-detail-related h2,
.faq-detail-next h2,
.faq-detail-consult h2,
.content-detail--faq .content-detail__content h2 { font-size: var(--rd-text-lg); }
.faq-detail-related li,
.faq-detail-next li { margin: var(--rd-space-2) 0; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (max-width: 640px) {
    .company-quick-nav { flex-direction: column; }
    .company-quick-nav a { justify-content: center; }
    .faq-archive-page .page-header { padding: 68px 0 36px !important; }
    .faq-archive-page .page-header__tag { margin-bottom: 8px; }
    .faq-archive-page .page-header__title { margin-bottom: 8px; font-size: 1.8rem; }
    .faq-archive-page .page-header__lead { font-size: var(--rd-text-sm); line-height: 1.6; }
    .faq-archive-page .page-header__wave svg { height: 28px; }
    .faq-archive-page .faq-content { padding-top: var(--rd-space-3) !important; }
    .faq-archive-page .faq-nav-wrapper { margin-bottom: var(--rd-space-3); }
    .faq-category-page .legal-hero { padding: var(--rd-space-4) 0 var(--rd-space-3); }
    .faq-category-page .legal-hero nav { margin-bottom: var(--rd-space-2); }
    .faq-category-page .legal-hero h1 { font-size: clamp(1.6rem, 7vw, 2rem); }
}

/* 2026-10-04: 料金シミュレーターの試算条件（足場の有無など）を結果の近くに表示 */
.psim__result-condition { margin: 8px 0 0; font-size: 13px; line-height: 1.7; color: #fff; }
.psim__result-condition:empty { display: none; }

/* 2026-10-04: コラム検索の0件表示（「準備中」と区別し、再検索できるようにする） */
.col-empty--search { color: #3a4560; }
.col-empty--search p { margin: 0 0 16px; line-height: 1.8; }
.col-empty__search { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px; margin: 0 auto 16px; max-width: 520px; }
.col-empty__search label { width: 100%; font-weight: 700; color: #0e2a5e; }
.col-empty__search input[type="search"] { flex: 1 1 220px; min-height: 44px; padding: 8px 12px; border: 1px solid #9aa4b2; border-radius: 6px; font-size: 16px; }
.col-empty__search button { min-height: 44px; padding: 8px 20px; border: 0; border-radius: 6px; background: #0e2a5e; color: #fff; font-weight: 700; cursor: pointer; }
.col-empty--search a { color: #0b4fd0; font-weight: 700; }

/* 2026-10-04: 初画面で主な対応地域を読み取れるようにする */
.hero2__area { display: flex; align-items: center; justify-content: center; gap: 6px; margin: -6px 0 16px; font-size: 14px; font-weight: 700; color: #0e2a5e; }
.hero2__area svg { flex: none; color: #0b4fd0; }
