/* Shared finishing layer. Original art direction lives in home.css / services.css. */
:root { --header-clearance: 102px; }
[hidden] { display: none !important; }
html { scroll-padding-top: var(--header-clearance); }
body { font-size: 16px; line-height: 1.5; }
button, input, select, textarea { font: inherit; }
img { max-width: 100%; }
main, section, article, .field, .booking-grid > *, .header-row > * { min-width: 0; }
h1,h2,h3 { overflow-wrap: break-word; }
section[id],footer[id] { scroll-margin-top: 16px; }
:focus-visible { outline: 3px solid #55783c; outline-offset: 4px; }
h1[tabindex="-1"]:focus,h2[tabindex="-1"]:focus,h3[tabindex="-1"]:focus,legend[tabindex="-1"]:focus { outline:none; }
.skip-link { position:fixed;top:8px;left:12px;z-index:2001;padding:12px 20px;border-radius:12px;background:#fff;color:#18351e;transform:translateY(-180%); }
.skip-link:focus { transform:none; }
.home-page > .nav,.service-page > .header { z-index:1000; }
.home-page > .nav.is-scrolled,.service-page > .header.is-scrolled { min-height:86px; }
.nav-glass a,.service-page .nav a { font-size:14px;min-height:44px; }
.nav-request,.service-page .phone { font-size:14px; }
.language-current { display:inline-flex;align-items:center;gap:6px;color:#fff;font-size:13px;padding:10px;border:1px solid #ffffff45;border-radius:999px; }
.mobile-panel a { min-height:48px;font-size:16px; }
.mobile-panel { background:#18351e; }
.primary-cta,.card-button,.button-dark,.button-light,.primary,.secondary,.offer-cta,.step-button,.submit-button { font-size:16px;min-height:52px; }
.home-page .hero { min-height:min(860px,100svh); }
.home-page .hero-content { position:relative;inset:auto;min-height:min(860px,100svh);padding:180px max(36px,calc((100vw - 1350px)/2)) 90px;align-items:flex-end; }
.home-page .copy { width:min(760px,75%); }
.home-page h1 { font-size:clamp(48px,5.2vw,78px);line-height:1.03;letter-spacing:-.048em; }
.summary { font-size:clamp(18px,1.4vw,21px);max-width:570px;color:#ffffffdd; }
.hero-media { animation:none; }
.hero-media > img { display:block; }
.hero-secondary { display:inline-flex;min-height:52px;padding:0 22px;align-items:center;justify-content:center;gap:8px;border:1px solid #ffffff8a;border-radius:14px;background:#ffffff14;box-shadow:inset 0 1px 0 #ffffff22;color:#fff;font-size:16px;font-weight:600;transition:transform .18s ease,background .18s ease; }
.hero-secondary:hover { background:#ffffff26;transform:translateY(-2px); }
.section-shell,.shell { width:min(1280px,calc(100% - 72px));margin-inline:auto; }
.site-section,.section { padding:88px 0; }
.section-heading h2,.booking-copy h2,.split-intro h2,.intro-grid h2,.included-copy h2,.faq-intro h2 { font-size:clamp(36px,4.2vw,58px);line-height:1.06;letter-spacing:-.04em; }
.section-kicker,.kicker { font-size:12px;letter-spacing:.12em; }
.section-heading { margin-bottom:40px; }
.section-heading>p,.booking-copy>p,.trust-lead { font-size:18px;color:#536153; }
.response-time { display:table;width:max-content;max-width:100%;margin-top:18px;padding:9px 14px;border-radius:999px;background:#c7ef5b;color:#18351e;font-size:14px;font-weight:780;line-height:1.2; }
.offer-content .response-time { margin-top:22px;background:#c7ef5b;color:#18351e; }
.service-carousel { padding:24px 30px 30px;border-radius:28px;box-shadow:none; }
.service-card { height:520px;min-height:520px; }
.service-content { inset:auto 22px 22px; }
.service-content h3 { line-height:1.1;font-size:28px; }
.service-content p { color:#ffffffe8;font-size:16px;min-height:96px; }
.service-card::after { background:linear-gradient(180deg,transparent 15%,#0b170a30 36%,#0b170afa 100%); }
.service-arrow { width:48px;height:48px; }
.service-arrow-prev { left:-24px; }.service-arrow-next { right:-24px; }
.service-progress { display:none; }
.carousel-note { color:#536153;font-size:14px;margin:16px 0 0; }
.benefit-orbit { grid-template-columns:minmax(0,1fr) minmax(280px,1.3fr) minmax(0,1fr);gap:36px; }
.benefit-point p,.trust-card p,.reason p,.step p,.process-step p,.faq-answer,.scope-highlights li { font-size:16px;line-height:1.6; }
.benefit-point h3 { font-size:27px;line-height:1.14; }
.benefit-point p { color:#536153; }
.process-step { min-height:225px; }
.scope-showcase { min-height:610px; }
.scope-info-card { top:30px;right:30px;padding:30px;min-height:440px;width:43%; }
.scope-info-card h3 { font-size:32px;line-height:1.08; }
.scope-info-card>p { margin:20px 0; }
.scope-tabs { max-width:calc(100% - 48px); }
.scope-tab { font-size:16px;min-height:48px; }
.trust-card { min-height:235px; }
.trust-card h3 { line-height:1.15;font-size:26px; }
.trust-card p { color:#536153; }
.offer-card h2,.cta-card h2 { font-size:clamp(40px,5vw,68px);line-height:1.04; }
.offer-card { min-height:480px; }
.scope-layout { align-items:start; }
.included-copy,.faq-intro,.split-intro { top:110px; }
.home-page .faq .scope-details { border-top:1px solid #18351e30; }
.home-page .faq details { border-bottom:1px solid #18351e30; }
.home-page .faq summary { position:relative;display:flex;align-items:center;min-height:76px;padding:22px 54px 22px 0;list-style:none;cursor:pointer;color:#18351e;font-size:22px;font-weight:550;line-height:1.25; }
.home-page .faq summary::-webkit-details-marker { display:none; }
.home-page .faq summary::after { position:absolute;right:0;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#dfe7da;color:#18351e;content:'+';font-size:24px;font-weight:400; }
.home-page .faq details[open] summary::after { content:'−'; }
.home-page .faq .faq-answer { margin:0;padding:0 32px 26px 0;color:#536153;font-size:16px;line-height:1.6; }
.footer p,.footer-links { color:#ffffffc9; }
.footer h3 { font-size:16px; }
.footer-links a { min-height:40px;display:inline-flex;align-items:center; }
.footer-bottom { font-size:14px;color:#ffffffb8; }
.footer-links a:hover { text-decoration:underline; }
.scroll-reveal,.scroll-reveal.reveal-card,.scroll-reveal.reveal-media { filter:none;clip-path:none;transform:translateY(16px);transition:opacity .45s ease,transform .45s ease;will-change:auto; }
.scroll-reveal.is-visible { transform:none; }
.contact-strip { position:fixed;bottom:20px;right:24px;z-index:90;display:none;gap:8px;padding:6px;border:1px solid #ffffff55;border-radius:18px;background:#18351ef5;box-shadow:0 5px 24px #18351e24; }
.contact-strip a { padding:10px 18px;min-height:44px;border-radius:12px;color:#fff;font-size:14px;display:flex;align-items:center;justify-content:center; }
.contact-strip .contact-request { background:#f7f8f3;color:#18351e;font-weight:650; }
.contact-strip a:not(.contact-request) { border:1px solid #ffffff3d;background:#3c6342;box-shadow:inset 0 1px 0 #ffffff1f;color:#fff;font-weight:600; }
.contact-strip a:hover { box-shadow:inset 0 0 0 1px currentColor; }
.contact-strip a:not(.contact-request):hover { background:#4b774f;transform:translateY(-1px); }
.footer { padding-bottom:58px; }

/* Two-step request; contents remain in memory only until the visitor opens WhatsApp. */
.booking-copy { grid-template-columns:1.2fr .8fr; }
.booking-grid { display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.8fr);align-items:stretch; }
.wizard,.booking-aside { min-height:580px; }
.wizard { padding:36px; }
.booking-step { display:block;border:0;padding:0;margin:0;min-inline-size:0; }
.booking-step legend { padding:0;margin:0 0 24px;font-size:34px;font-weight:550;line-height:1.1;letter-spacing:-.035em;color:#18351e; }
.progress { grid-template-columns:repeat(2,1fr);margin-bottom:24px; }
.progress .is-complete { background:#25462a; }
.step-counter { color:#4e6845;font-size:12px; }
.choice-grid input { width:1px;height:1px; }
.choice-grid input:focus-visible+label { outline:3px solid #55783c;outline-offset:2px; }
.choice-grid label { min-height:60px;font-size:16px;padding:14px;gap:10px; }
.choice-grid label::after { flex:0 0 18px; }
.field input,.field select,.field textarea { font-size:16px;min-width:0; }
.field>span { font-size:14px;color:#455344; }
.field input[aria-invalid=true],.field select[aria-invalid=true] { border-color:#a43630; }
.field-hint { margin:16px 0 22px;font-size:14px;color:#566451;line-height:1.5; }
.wizard-actions .field-hint { margin:0;font-size:12px; }
.wizard-actions { gap:12px; }
.form-error { padding:12px 16px;border-radius:12px;background:#fff0ec;color:#8b2e24;font-size:16px;margin:0 0 20px; }
.form-trap { position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important; }
.consent-field { display:flex;align-items:flex-start;gap:12px;margin:4px 0 22px;color:#455344;font-size:14px;line-height:1.5; }
.consent-field input { flex:0 0 auto;width:20px;height:20px;margin-top:1px;accent-color:#25462a; }
.consent-field a { color:#18351e;text-decoration:underline;text-underline-offset:2px; }
.consent-field input[aria-invalid=true] { outline:2px solid #a43630;outline-offset:2px; }
.submit-button[disabled] { cursor:wait;opacity:.65;transform:none; }
.send-success { color:#25462a!important;font-weight:650; }
.send-failure { color:#8b2e24!important;font-weight:650; }
.booking-aside { padding:36px;background:#dfe7da;color:#18351e;gap:32px; }
.booking-aside h3 { font-size:40px;line-height:1.08; }
.booking-aside>div>p { color:#465a3d;font-size:16px; }
.booking-aside .aside-kicker { margin:0 0 24px;font-size:12px;font-weight:650;text-transform:uppercase;letter-spacing:.08em; }
.booking-notes { margin-top:28px;border-color:#18351e24; }
.booking-notes span { border-color:#18351e24;color:#354c30;font-size:16px; }
.booking-notes span::before { background:#b9d5a6;flex:0 0 24px; }
.booking-phone { width:100%;min-height:54px;margin-top:16px;padding:12px 18px;border:1px solid #ffffff38;border-radius:14px;background:#25462a;box-shadow:inset 0 1px 0 #ffffff1c,0 8px 18px #18351e18;color:white;font-size:16px;font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:transform .18s ease,background .18s ease; }
.booking-phone:hover { background:#315b36;transform:translateY(-2px); }
.aside-call { display:block;margin-top:14px;text-align:center;color:#354c30;font-size:14px;min-height:44px; }
.booking-ready h3 { font-size:34px;line-height:1.1;color:#18351e;margin:0 0 20px; }
.booking-ready p { color:#536153; }
.booking-ready dl { display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;padding:20px 0;border-block:1px solid #18351e25; }
.booking-ready dt { color:#536153;font-size:14px; }.booking-ready dd { margin:0;overflow-wrap:anywhere;white-space:pre-wrap; }
.booking-ready .submit-button { text-align:center;padding:14px 20px; }
.privacy-note { max-width:800px; }
.privacy-note h1 { font-size:clamp(36px,6vw,58px);line-height:1.1; }
.privacy-note h2 { font-size:26px;margin-top:36px; }
.privacy-note a { text-decoration:underline; }

@media(max-width:1100px){
  .nav-glass a,.service-page .nav a { padding-inline:12px; }
  .benefit-orbit { gap:26px;grid-template-columns:minmax(0,1fr) minmax(240px,1.1fr) minmax(0,1fr); }
  .booking-grid { grid-template-columns:minmax(0,1fr) minmax(280px,.65fr); }
  .wizard,.booking-aside { padding:28px; }
  .booking-aside h3 { font-size:34px; }
}
@media(max-width:980px){
  :root { --header-clearance:88px; }
  .home-page>.nav,.service-page>.header { left:20px;right:20px;top:16px; }
  .home-page>.nav.is-scrolled,.service-page>.header.is-scrolled { left:0;right:0;top:0;padding:8px 20px;min-height:72px; }
  .home-page>.nav,.service-page .header-row { grid-template-columns:minmax(0,1fr) auto auto;gap:12px; }
  .home-page .nav-side,.service-page .nav-side { position:static;transform:none; }
  .home-page .nav-side .language-current,.service-page .language-current { padding:7px 10px; }
  .section-shell,.shell { width:calc(100% - 48px); }
  .booking-grid { grid-template-columns:minmax(0,1fr); }
  .booking-aside { min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:24px; }
  .booking-aside br { display:none; }
  .booking-aside .booking-notes { margin-top:20px; }
  .booking-aside .booking-notes span { padding:12px 0;font-size:15px; }
  .booking-aside h3 { font-size:28px; }
  .booking-aside .aside-kicker { margin-bottom:10px; }
  .booking-aside>div>p { margin-top:10px; }
  .booking-copy { grid-template-columns:1fr;gap:22px; }
  .booking-copy>p { justify-self:start;max-width:640px; }
  .benefit-orbit { grid-template-columns:1fr 1fr;grid-template-areas:'photo photo' 'time away' 'schedule regular'; }
  .benefit-photo { width:min(440px,75%); }
  .service-card { flex-basis:calc((100% - 24px)/2); }
  .scope-info-card { width:49%;right:24px;top:24px;padding:26px; }
  .scope-showcase { min-height:640px; }
}
@media(max-width:640px){
  body { min-width:0; }
  .home-page .social-rail { display:none; }
  .section-shell,.shell { width:calc(100% - 32px); }
  .site-section,.section { padding:60px 0; }
  .home-page .hero,.home-page .hero-content { min-height:740px;min-height:max(680px,100svh); }
  .home-page .hero-content { display:flex;padding:150px 22px 110px;align-items:flex-end; }
  .home-page .copy { width:100%; }
  .home-page h1 { font-size:clamp(38px,9.7vw,58px);line-height:1.06;letter-spacing:-.04em; }
  .summary { font-size:18px;margin-top:22px;line-height:1.5; }
  .actions { display:flex;flex-wrap:wrap;gap:12px;margin-top:24px; }
  .primary-cta { min-width:0;width:100%; }
  .hero-secondary { display:inline-flex;min-height:52px;width:100%; }
  .social-rail { display:grid;top:50%;right:16px;gap:10px;transform:translateY(-50%); }
  .social-link { width:42px;height:42px; }
  .section-heading h2,.booking-copy h2,.split-intro h2,.intro-grid h2,.included-copy h2,.faq-intro h2 { font-size:36px;line-height:1.08; }
  .section-heading { display:block;margin-bottom:32px; }
  .home-page .faq summary { font-size:19px;min-height:72px; }
  .home-page .faq .faq-answer { padding-right:0; }
  .section-heading>p { margin-top:20px;font-size:17px; }
  .wizard { padding:24px 20px;min-height:0; }
  .booking-step legend,.booking-ready h3 { font-size:30px; }
  .choice-grid { grid-template-columns:1fr 1fr;gap:8px; }
  .choice-grid label { min-height:76px;padding:12px 10px;font-size:15px;line-height:1.25; }
  .choice-grid label::after { width:16px;height:16px;flex-basis:16px; }
  .field-grid { grid-template-columns:1fr; }
  .wizard-actions { flex-wrap:wrap; }
  .wizard-actions .submit-button { min-width:0;flex:1;padding-inline:16px; }
  .step-button { min-width:0;padding-inline:18px; }
  .booking-ready dl { grid-template-columns:1fr;gap:4px; }
  .booking-ready dd { margin-bottom:12px; }
  .booking-aside { display:block;padding:24px; }
  .booking-aside h3 { font-size:28px; }
  .booking-aside .booking-notes { margin-top:22px; }
  .aside-contact { margin-top:24px; }
  .service-carousel { padding:16px 14px 72px;border-radius:24px; }
  .service-grid { gap:14px; }
  .service-card:nth-child(n) { flex-basis:100%;height:490px;min-height:490px; }
  .service-content { right:20px;left:20px;bottom:20px; }
  .service-content h3 { font-size:28px; }.service-content p { min-height:0;margin:16px 0 24px; }
  .service-arrow { top:auto;bottom:14px;transform:none;width:44px;height:44px; }
  .service-arrow-prev { left:14px; }.service-arrow-next { right:14px; }
  .service-progress { position:absolute;right:82px;bottom:24px;left:82px;display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;color:#18351e;font-size:11px;font-weight:780;letter-spacing:.06em;line-height:1; }
  .service-progress-line { position:relative;display:block;height:3px;overflow:hidden;border-radius:999px;background:#dfe5d9; }
  .service-progress-line i { position:absolute;inset:0 auto 0 0;width:var(--service-progress,14.285%);border-radius:inherit;background:#bde94d;transition:width 180ms ease; }
  .benefit-orbit { grid-template-columns:1fr;grid-template-areas:'photo' 'time' 'away' 'schedule' 'regular';gap:32px; }
  .benefit-point { max-width:none;display:grid;grid-template-columns:48px 1fr;gap:10px 18px;text-align:left;align-items:start; }
  .benefit-icon { grid-row:span 2;margin:0;width:48px;height:48px; }
  .benefit-icon svg { width:48px;height:48px; }
  .benefit-point h3 { font-size:25px;margin:0; }
  .benefit-point p { margin:0; }
  .scope-showcase { min-height:0;padding:0 0 16px;display:flex;flex-direction:column;border-radius:24px; }
  .scope-scene { position:relative;inset:auto;display:block; }
  .scope-scene>img { height:250px;aspect-ratio:4/3;object-fit:cover; }
  .scope-scene::after { display:none; }
  .scope-info-card { position:relative;inset:auto;width:auto;min-height:0;margin:-30px 14px 18px;padding:24px;box-shadow:0 8px 24px #18351e12; }
  .scope-info-card h3 { font-size:28px; }.scope-info-card>p { font-size:16px; }
  .scope-tabs { position:relative;inset:auto;transform:none;width:auto;max-width:none;margin:0 14px;padding:6px;overflow:auto;justify-content:flex-start;border-radius:16px; }
  .scope-tab { flex:0 0 auto;white-space:nowrap;font-size:15px;padding:10px 16px; }
  .trust-card { min-height:210px;padding:24px; }
  .offer-card { min-height:580px;padding:42px 24px 48px;background-position:65% center;align-items:flex-end; }
  .offer-content { width:100%;max-width:none; }.offer-content h2 { font-size:42px; }.offer-content p { font-size:17px; }
  .offer-cta { width:100%;justify-content:center; }
  .service-page .hero h1 { font-size:44px;line-height:1.06; }
  .service-page .hero { min-height:650px; }.service-page .hero-content { padding:140px 0 70px; }
  .contact-strip { display:flex;right:0;left:0;bottom:0;border-radius:18px 18px 0 0;padding:8px 12px calc(8px + env(safe-area-inset-bottom));gap:8px; }
  .contact-strip a { flex:1;padding:10px 6px;min-height:44px; }
  .footer { padding-bottom:110px; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-grid>div:nth-child(4) { grid-column:1/-1; }
}
/* Home-page trust section: photo-led composition with readable solid panels. */
#benefits .trust-grid { gap:20px; }
#benefits .trust-card { min-height:270px;padding:30px;border-radius:28px; }
#benefits .trust-card .index { width:46px;height:46px;background:#c7ef5b;border-color:#c7ef5b;color:#18351e;opacity:1; }
#benefits .trust-card:nth-child(2) { grid-row:span 2;min-height:560px;background:linear-gradient(180deg,#18351e08 25%,#18351eec 85%),url('service-house.jpg') center/cover; }
#benefits .trust-card:nth-child(2) h3 { color:#fff; }
#benefits .trust-card:nth-child(2) p { color:#ffffffd9; }
#benefits .trust-card:nth-child(4) { background:#18351e;border-color:#18351e; }
#benefits .trust-card:nth-child(4) h3 { color:#fff; }
#benefits .trust-card:nth-child(4) p { color:#ffffffcc; }
#benefits .trust-card:nth-child(5) { grid-column:span 4;background:#e1e8d9; }
#benefits .trust-card h3 { margin-top:28px; }
@media(max-width:980px){
  #benefits .trust-card:nth-child(n) { grid-column:span 6;grid-row:auto;min-height:280px; }
  #benefits .trust-card:nth-child(2) { grid-row:span 2; }
  #benefits .trust-card:nth-child(5) { grid-column:span 12; }
}
@media(max-width:640px){
  #benefits .trust-grid { grid-template-columns:1fr;gap:16px; }
  #benefits .trust-card:nth-child(n) { grid-column:auto;grid-row:auto;min-height:240px;padding:26px; }
  #benefits .trust-card:nth-child(2) { min-height:390px; }
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after { scroll-behavior:auto!important;animation:none!important;transition:none!important; }
  .scroll-reveal { opacity:1;transform:none; }
  .hero-media video { display:block; }
}
