.benefit-photo { position: relative; overflow: hidden; }
.site-header :is(.brand-name, .brand-area) { overflow-wrap: anywhere; }
.benefit-list:empty, .steps:empty, .local-points:empty, .faq-list:empty { display: none; }
.service-cta-actions:empty, .cta-actions:empty, .hero-actions:empty, .nav-mobile-actions:empty { display: none; }
.privacy-check input[type="checkbox"] { width: 18px; height: 18px; flex: 0 0 18px; margin: 4px 0 0; padding: 0; accent-color: #147d4e; }
.privacy-check span { min-width: 0; }
.contact-section :is(input, textarea, select):focus-visible, .search-form input:focus-visible { outline: 3px solid #147d4e; outline-offset: 2px; border-color: #147d4e; }
.contact-section .btn-primary, .site-header .header-request, .site-header .nav .nav-mobile-actions .btn-primary { background: #147d4e; }
.contact-section .btn-primary:hover, .site-header .header-request:hover { background: #106b42; }
.contact-section :is(.contact-card, .contact-form), .contact-list > *, .service-cta-box > div { min-width: 0; overflow-wrap: anywhere; }
.contact-section .contact-grid { align-items: start; }
.contact-section .contact-list a { width: fit-content; max-width: 100%; }
.contact-section .notice { scroll-margin-top: 120px; }
.content-wrap :is(h1, h2, p, a) { overflow-wrap: anywhere; }
.entry-content > img, .entry-content iframe { max-width: 100%; }
.entry-content table { display: block; max-width: 100%; overflow-x: auto; }
.search-form { display: flex; align-items: end; flex-wrap: wrap; gap: 12px; margin: 24px 0; }
.search-form label { display: grid; gap: 7px; flex: 1 1 220px; font-weight: 600; }
.search-form .search-field { width: 100%; min-height: 46px; border: 1px solid #c9dacf; border-radius: 11px; padding: 10px 13px; font: inherit; }
.search-form .search-submit { min-height: 46px; background: #147d4e; color: #fff; }
.content-wrap .page-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 24px 0; }
.content-wrap .page-actions .btn-primary { background: #147d4e; }
.content-wrap .result-card { padding: 24px 0; border-bottom: 1px solid #e3ece6; }
.result-card h2 { margin: 0 0 12px; font-size: 24px; }
.result-card a:hover { color: #147d4e; text-decoration: underline; }
.pagination { margin-top: 28px; }
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.pagination .page-numbers { display: grid; place-items: center; min-width: 44px; min-height: 44px; padding: 8px; border: 1px solid #d9e6dd; border-radius: 10px; }
.pagination .current { background: #147d4e; color: #fff; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.screen-reader-text:focus { position: fixed; top: 10px; left: 10px; width: auto; height: auto; margin: 0; padding: 12px; clip-path: none; background: #fff; color: #163d2b; z-index: 1000; }
.contact-card h2 { margin-top: 0; font-size: 24px; line-height: 1.3; }
.contact-form .notice[hidden] { display: none; }
.contact-form button:disabled { opacity: .7; cursor: wait; transform: none; }
@media (max-width: 700px) {
    .contact-card, .contact-form { padding: 22px; }
    .form-field :is(input, select, textarea) { font-size: 16px; }
    .content-wrap { padding: 44px 0; }
    .content-wrap h1 { font-size: clamp(28px, 8vw, 40px); line-height: 1.2; }
}
@media (max-width: 640px) { .content-wrap { padding-bottom: calc(110px + env(safe-area-inset-bottom)); } }
@media (prefers-reduced-motion: reduce) { .ctp-theme *, .ctp-theme *::before, .ctp-theme *::after { scroll-behavior: auto !important; transition: none !important; } }
