/* Desentupidora DeDé — CSS puro */
:root{--background:oklch(1 0 0);--foreground:oklch(.18 0 0);--primary:oklch(.7 .18 48);--primary-foreground:oklch(.12 0 0);--accent:oklch(.723 .192 149.6);--accent-foreground:oklch(.12 0 0);--muted:oklch(.968 .007 248);--border:oklch(.929 .013 255)}
*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--foreground);background:var(--background)}a{color:inherit;text-decoration:none}button,a{ -webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;border:0;text-decoration:none;transition:opacity 150ms}.button:hover{opacity:.85}.button svg{width:16px;height:16px;flex-shrink:0}.button-primary{background:var(--primary);color:var(--primary-foreground)}.button-outline{background:var(--background);color:var(--foreground);border:1px solid var(--border)}.quote-button{background:var(--accent);color:var(--accent-foreground)}.mobile-menu-toggle{width:36px;height:36px;background:transparent;color:var(--primary-foreground);border:0;border-radius:4px}
:root {
  --header-top: oklch(0.08 0 0);
  --header-ink: oklch(1 0 0);
  --header-shadow: 0 3px 14px oklch(0 0 0 / 5%);
}

.site-header { position: relative; padding-top: 14px; }
.header-shell { width: min(1070px, calc(100% - 48px)); margin: 0 auto; display: grid; grid-template-columns: 180px minmax(0, 1fr); }
.brand-panel { position: relative; grid-column: 1; grid-row: 2; min-width: 0; display: flex; align-items: center; justify-content: center; background: var(--background); border-radius: 0; z-index: 2; }
.brand-panel::before { content: ''; position: absolute; right: 99%; top: 0; bottom: 0; width: 100vw; background: var(--background); }
.brand-logo { width: 155px; max-width: 100%; height: 64px; object-fit: contain; }
.contact-strip { grid-column: 2; grid-row: 1; min-width: 0; min-height: 42px; background: var(--header-top); color: var(--header-ink); border-radius: 24px 24px 0 0; padding: 0 25px; display: flex; align-items: center; justify-content: space-between; gap: 18px; font-size: 12px; font-weight: 600; }
.contact-strip a { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.contact-strip svg { width: 15px; height: 15px; color: var(--primary); flex-shrink: 0; }
.contact-message { display: inline-flex; align-items: center; gap: 7px; }
.main-navigation { grid-column: 2; grid-row: 2; min-width: 0; background: var(--primary); color: var(--primary-foreground); display: flex; min-height: 72px; align-items: stretch; border-bottom-right-radius: 46px; padding-left: 40px; }
.nav-links { display: flex; min-width: 0; align-items: center; justify-content: flex-start; flex: 1; gap: 28px; padding-right: 28px; }
.nav-link { font-size: 14px; font-weight: 700; text-decoration: none; display: inline-flex; align-items: center; gap: 4px; padding: 10px 0; transition: opacity 150ms; white-space: nowrap; }
.nav-link:hover { opacity: .75; }
.quote-button { height: auto; min-width: 192px; flex-shrink: 0; border-radius: 0 0 46px 0; padding: 0 20px; font-weight: 800; font-size: 12px; }
.quote-button .whatsapp-icon { width: 22px; height: 22px; flex-shrink: 0; }
.mobile-menu-toggle { display: none; }
.header-base { height: 1px; background: var(--border); margin-top: 0; box-shadow: var(--header-shadow); }

@media (max-width: 1100px) {
  .header-shell { grid-template-columns: 180px minmax(0, 1fr); }
  .contact-strip { padding: 0 18px; gap: 10px; font-size: 11px; }
  .contact-website { display: none !important; }
  .nav-link { font-size: 12px; }
  .quote-button { min-width: 160px; padding: 0 16px; font-size: 11px; }
  .main-navigation { padding-left: 24px; }
  .nav-links { gap: 20px; padding-right: 20px; }
}
@media (max-width: 900px) {
  .site-header { padding-top: 0; }
  .header-shell { width: 100%; margin: 0; grid-template-columns: minmax(0, 1fr) auto; }
  .contact-strip { grid-column: 1 / 3; grid-row: 1; border-radius: 0; min-height: 36px; font-size: 10px; padding: 0 12px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
  .contact-message { min-width: 0; overflow: hidden; white-space: nowrap; }
  .brand-panel { grid-column: 1; grid-row: 2; border-radius: 0; min-height: 84px; padding: 0 10px; }
  .brand-logo { width: 160px; height: 64px; }
  .main-navigation { grid-column: 2; grid-row: 2; border-radius: 0; padding-left: 0; min-height: 84px; display: grid; grid-template-columns: auto minmax(0, 1fr); }
  .quote-button { min-width: 0; padding: 0 12px; font-size: 11px; border-radius: 0; gap: 8px; }
  .quote-button span { max-width: 108px; white-space: normal; line-height: 1.4; text-align: left; }
  .mobile-menu-toggle { display: inline-flex; align-self: center; margin: 0 6px; }
  .nav-links { display: none; }
  .nav-links.is-open { display: flex; position: absolute; top: 100%; left: 0; right: 0; flex-direction: column; align-items: stretch; background: var(--primary); padding: 15px 22px; z-index: 3; gap: 0; box-shadow: var(--header-shadow); }
  .nav-link { font-size: 14px; padding: 12px 0; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

:root {
  --hero-overlay: oklch(0.08 0.01 255 / 88%);
  --hero-copy: oklch(0.8 0 0);
}
.reference-page { position: relative; overflow-x: clip; }
.reference-page .site-header { position: absolute; left: 0; right: 0; top: 0; z-index: 10; }
.reference-page .header-base { display: none; }
.plumbing-hero { position: relative; min-height: 690px; height: min(800px, 94svh); display: flex; align-items: center; overflow: hidden; background: var(--muted); }
.hero-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-slant { position: absolute; inset: 0; background: var(--hero-overlay); clip-path: polygon(31% 0, 82% 0, 100% 100%, 50% 100%); }
.hero-content { position: relative; min-width: 0; width: min(580px, calc(50% - 48px)); margin: 90px auto 0 calc(50% + 24px); padding-left: 0; color: var(--header-ink); }
.hero-eyebrow { font-size: 15px; color: var(--primary); font-weight: 700; margin: 0 0 20px; }
.hero-heading { border-left: 4px solid var(--accent); padding-left: 20px; margin: 0 0 24px; max-width: 520px; font-size: 54px; line-height: 1.16; font-weight: 800; letter-spacing: 0; overflow-wrap: anywhere; }
.hero-description { font-size: 15px; line-height: 1.7; color: var(--hero-copy); max-width: 545px; margin: 0 0 32px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 22px; }
.hero-action { min-height: 53px; height: auto; padding: 16px 25px; font-size: 12px; font-weight: 800; border-radius: 4px; }
.hero-contact-band { padding: 25px 24px; display: flex; justify-content: center; gap: 18px; align-items: center; flex-wrap: wrap; font-size: 14px; background: var(--background); }
.hero-contact-band strong { color: var(--primary); }
@media (max-width: 1100px) {
  .hero-heading { font-size: 38px; }
  .hero-slant { clip-path: polygon(30% 0, 83% 0, 100% 100%, 49% 100%); }
  .hero-content { padding-left: 0; }
}
@media (max-width: 760px) {
  .plumbing-hero { min-height: 700px; height: min(800px, 92svh); align-items: flex-end; }
  .hero-photo { object-position: 25% center; }
  .hero-slant { clip-path: polygon(0 40%, 100% 30%, 100% 100%, 0 100%); }
  .hero-content { width: calc(100% - 36px); margin: 0 auto 40px; padding-left: 0; }
  .hero-heading { font-size: 36px; max-width: 520px; padding-left: 15px; margin-bottom: 20px; }
  .hero-eyebrow { font-size: 13px; margin-bottom: 15px; }
  .hero-description { font-size: 14px; margin-bottom: 24px; }
  .hero-actions { gap: 12px; }
  .hero-action { padding: 14px 18px; font-size: 11px; }
}
@media (max-width: 360px) {
  .brand-panel { padding: 0 6px; }
  .brand-logo { width: 115px; }
  .quote-button { padding: 0 8px; font-size: 10px; }
  .quote-button span { max-width: 98px; }
  .hero-heading { font-size: 32px; }
}

:root {
 --services-background: oklch(.947 0 0); --services-card: oklch(1 0 0); --services-ink: oklch(.18 0 0);
 --services-title: oklch(.32 .11 255); --services-blue: oklch(.6 .23 255); --services-aqua: oklch(.73 .13 220); --services-copy: oklch(.49 0 0);
 --services-shadow: 0 10px 35px oklch(.25 .02 255 / 15%); --water-fill: oklch(.85 .06 220 / 65%); --water-edge: oklch(.67 .12 220 / 60%); --water-glint: oklch(1 0 0 / 90%);
}
.services-section { position: relative; isolation: isolate; overflow: hidden; background: var(--services-background); color: var(--services-ink); padding: 95px 0 75px; scroll-margin-top: 24px; }
.services-section::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 70px; background: var(--background); clip-path: polygon(0 0,100% 0,100% 20%,95% 75%,89% 25%,84% 80%,78% 36%,70% 82%,64% 30%,57% 85%,49% 28%,42% 72%,35% 20%,29% 80%,23% 25%,17% 77%,10% 35%,4% 85%,0 35%); }
.services-inner { position: relative; width: min(1000px, calc(100% - 300px)); margin-left: auto; margin-right: max(24px, calc((100% - 1380px) / 2)); z-index: 2; }
.services-heading { text-align: center; margin-bottom: 60px; }
.services-heading > p { color: var(--services-blue); font-size: 15px; font-weight: 700; margin: 0 0 16px; }
.services-heading h2 { font-size: 42px; font-weight: 800; line-height: 1.22; margin: 0; }
.services-composition { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.2fr) minmax(0,1fr); gap: 38px; align-items: center; }
.services-column { min-width: 0; display: grid; gap: 22px; }
.service-card { position: relative; min-width: 0; background: var(--services-card); border-radius: 8px; padding: 23px 20px 23px 43px; min-height: 151px; box-shadow: var(--services-shadow); }
.service-icon { position: absolute; top: 23px; left: -28px; width: 64px; height: 98px; display: grid; place-items: start center; }
.service-icon img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: top; }
.service-card h3 { font-size: 18px; line-height: 1.3; font-weight: 700; margin: 0 0 10px; color: var(--services-title); overflow-wrap: anywhere; }
.service-card p { font-size: 13px; line-height: 1.65; margin: 0; color: var(--services-copy); }
.services-portrait { position: relative; min-width: 0; aspect-ratio: .83; }
.services-portrait > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 65px 38px 38px 50px; transform: rotate(-3deg); box-shadow: var(--services-shadow); }
.portrait-outline { position: absolute; inset: -7px; border: 2px solid var(--services-aqua); border-radius: 70px 42px 42px 60px; transform: rotate(3deg); }
.services-badge { position: absolute; top: -18px; left: 20px; min-width: 96px; padding: 15px 14px; border-radius: 26px 26px 26px 6px; background: var(--services-blue); color: var(--services-card); box-shadow: -7px 7px 0 var(--services-title); transform: rotate(-3deg); text-align: center; }
.services-badge strong { display: block; font-size: 36px; line-height: 1; }
.services-badge span { display: block; font-size: 11px; line-height: 1.4; margin-top: 7px; font-weight: 700; }
.faucet-scene { position: absolute; left: -5px; top: 28px; width: 365px; aspect-ratio: 768 / 1280; z-index: 0; }
.faucet-scene img { width: 100%; height: 100%; object-fit: contain; }
.water-drop { position: absolute; left: 89%; top: 34%; width: 10px; height: 15px; border-radius: 60% 40% 65% 35%; background: var(--water-fill); border: 1px solid var(--water-edge); box-shadow: inset 2px 2px 2px var(--water-glint); opacity: 0; animation: faucet-drip 4.8s infinite ease-in; }
.water-drop-two { animation-delay: 2.4s; }
.water-ripple { position: absolute; left: 86%; top: 91%; width: 26px; height: 6px; border: 1px solid var(--water-edge); border-radius: 50%; opacity: 0; animation: faucet-ripple 4.8s infinite ease-out; }
@keyframes faucet-drip { 0%,15% { opacity: 0; transform: translateY(0) scale(.4); } 25% { opacity: .9; transform: translateY(0) scale(1); } 60% { opacity: .7; transform: translateY(340px) scale(.85); } 64%,100% { opacity: 0; transform: translateY(345px) scale(.5); } }
@keyframes faucet-ripple { 0%,59% { opacity: 0; transform: scale(.3); } 62% { opacity: .6; transform: scale(1); } 85%,100% { opacity: 0; transform: scale(2.5); } }
@media (max-width: 1100px) {
 .services-inner { width: calc(100% - 200px); margin-right: 24px; } .faucet-scene { left: -75px; width: 300px; top: 65px; }
 .services-composition { gap: 28px; } .service-card { padding: 20px 14px 20px 32px; } .service-card h3 { font-size: 16px; }
 .service-icon { left: -22px; width: 54px; height: 83px; } .services-heading h2 { font-size: 36px; }
}
@media (max-width: 900px) {
 .services-section { padding-top: 80px; } .services-inner { width: calc(100% - 72px); margin: 0 auto; } .faucet-scene { opacity: .22; left: -100px; }
 .services-composition { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 32px; } .services-portrait { grid-column: 1 / 3; grid-row: 1; width: min(320px,80%); margin: 0 auto 30px; }
}
@media (max-width: 540px) {
 .services-inner { width: calc(100% - 60px); margin-left: 38px; margin-right: 22px; } .services-heading { margin-bottom: 42px; } .services-heading h2 { font-size: 28px; } .services-heading > p { font-size: 13px; }
 .services-composition { grid-template-columns: minmax(0,1fr); gap: 22px; } .services-portrait { grid-column: 1; width: 85%; }
 .service-card { padding: 23px 20px 23px 48px; min-height: 135px; } .service-card h3 { font-size: 18px; } .service-card p { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) { .water-drop, .water-ripple { animation: none; } }

.services-paint-edge { display: none; }
@media (min-width: 901px) {
 .services-section { padding: 154px 0 76px; }
 .services-section *, .services-section *::before, .services-section *::after { box-sizing: border-box; }
 .services-section::before { display: none; }
 .services-paint-edge { display: block; position: absolute; inset: 0 0 auto; width: 100%; height: 180px; object-fit: fill; z-index: 0; pointer-events: none; }
 .services-inner { width: min(986px, calc(100% - 260px)); margin: 0 auto; }
 .services-heading { margin-bottom: 44px; }
 .services-heading > p { font-size: 16px; margin-bottom: 14px; }
 .services-heading h2 { font-size: 48px; line-height: 1.17; font-weight: 800; }
 .services-composition { grid-template-columns: minmax(0, 268fr) minmax(0, 350fr) minmax(0, 268fr); gap: 37px; align-items: start; }
 .services-column { gap: 24px; grid-auto-rows: 190px; }
 .service-card { min-height: 150px; height: 100%; padding: 28px 22px 24px 49px; border-radius: 8px; }
 .service-card h3 { font-size: 20px; line-height: 1.3; margin-bottom: 10px; }
 .service-card p { font-size: 14px; line-height: 1.65; }
 .service-icon { width: 70px; height: 108px; left: -32px; top: 28px; }
 .services-portrait { margin-top: 30px; aspect-ratio: 350 / 370; }
 .services-portrait > img { border-radius: 65px 38px 38px 50px; object-position: center; transform: rotate(-3deg); }
 .portrait-outline { inset: -7px; border-radius: 75px 42px 42px 65px; transform: rotate(3deg); }
 .services-badge { top: -18px; left: 20px; width: 102px; min-width: 102px; padding: 15px 12px; }
 .services-badge strong { font-size: 32px; }
 .faucet-scene { left: max(0px, calc((100% - 1680px) / 2)); top: 18px; bottom: 76px; width: min(530px, 32%); height: auto; aspect-ratio: auto; opacity: 1; z-index: 1; }
 .faucet-scene picture { display: block; width: 100%; height: 100%; }
 .faucet-scene img { object-fit: fill; }
 .water-drop { left: 90%; top: 35%; }
 .water-ripple { left: 88%; top: 81%; }
 @keyframes faucet-drip { 0%,15% { opacity: 0; transform: translateY(0) scale(.4); } 25% { opacity: .9; transform: translateY(0) scale(1); } 60% { opacity: .7; transform: translateY(340px) scale(.85); } 64%,100% { opacity: 0; transform: translateY(345px) scale(.5); } }
}
@media (min-width: 901px) and (max-width: 1200px) {
 .services-inner { width: calc(100% - 210px); margin-left: 170px; margin-right: 40px; }
 .services-column { grid-auto-rows: 210px; }
 .faucet-scene { width: 25%; }
 .services-composition { gap: 28px; }
 .service-card { padding: 23px 15px 23px 36px; }
 .service-card h3 { font-size: 17px; }
 .service-card p { font-size: 13px; }
 .services-heading h2 { font-size: 42px; }
 .service-icon { width: 54px; height: 83px; left: -26px; }
}

@media (min-width: 1201px) and (max-width: 1400px) { .faucet-scene { width: 26%; } .services-heading h2 { font-size: 42px; } }

:root { --home-dark: oklch(.2 .025 255); --home-dark-copy: oklch(.81 .01 255); --home-soft: oklch(.974 .004 240); --home-line: oklch(.89 .01 240); --home-orange-soft: oklch(.96 .035 60); }
.skip-link { position: fixed; top: -100px; left: 20px; z-index: 100; padding: 14px 22px; background: var(--primary); color: var(--primary-foreground); }
.skip-link:focus { top: 12px; }
.home-container { width: min(1120px, calc(100% - 64px)); margin: 0 auto; }
.home-section { padding: 100px 0; color: var(--foreground); }
.home-section h2,.hydro-section h2 { font-size: 42px; line-height: 1.18; font-weight: 800; margin: 0 0 26px; letter-spacing: 0; }
.home-section h3 { font-size: 21px; line-height: 1.3; font-weight: 700; margin: 0 0 12px; }
.home-section p,.hydro-section p { font-size: 16px; line-height: 1.8; margin: 0 0 24px; color: var(--services-copy); }
.section-label { color: var(--primary) !important; font-size: 12px !important; font-weight: 800; margin: 0 0 18px !important; letter-spacing: 0; }
.editorial-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 88px; }
.editorial-photo { position: relative; margin: 0; height: auto; padding: 0; }
.editorial-photo img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; border-radius: 8px; }
.editorial-photo figcaption,.hydro-section figcaption { position: absolute; bottom: 14px; left: 18px; background: var(--home-dark); color: var(--header-ink); font-size: 10px; padding: 4px 7px; }
.experience-mark { position: relative; margin: 16px 0 0 auto; display: flex; align-items: center; gap: 16px; width: 225px; background: var(--primary); color: var(--primary-foreground); padding: 20px 24px; border-radius: 4px; border-left: 5px solid var(--accent); }
.experience-mark strong { font-size: 60px; font-weight: 800; line-height: 1; }
.experience-mark span { font-size: 15px; line-height: 1.4; font-weight: 700; }
.check-list { list-style: none; padding: 0; margin: 28px 0; display: grid; gap: 17px; font-size: 14px; }
.check-list li { display: flex; align-items: center; gap: 12px; }.check-list svg { color: var(--accent); width: 20px; flex-shrink: 0; }
.editorial-link { padding: 0; font-weight: 700; height: auto; white-space: normal; text-align: left; }
.dark-section { background: var(--home-dark); color: var(--header-ink); }.dark-section p { color: var(--home-dark-copy); }
.section-heading-row { display: grid; grid-template-columns: 1.3fr 1fr; align-items: center; gap: 100px; margin-bottom: 40px; }
.symptom-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 30px; }
.symptom-item { position: relative; padding: 28px 0 0; border-top: 1px solid var(--home-dark-copy); }.symptom-item > svg { color: var(--primary); width: 32px; height: 32px; margin-bottom: 24px; }.symptom-item p { font-size: 14px; }.item-number { position: absolute; top: 28px; right: 0; font-size: 13px; color: var(--home-dark-copy); }
.center-heading { text-align: center; margin-bottom: 55px; }.center-action { display: flex; justify-content: center; margin-top: 42px; }
.process-grid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 70px; text-align: center; }.process-grid p { font-size: 14px; }.process-icon { position: relative; display: grid; place-items: center; width: 84px; height: 84px; background: var(--home-orange-soft); color: var(--primary); border-radius: 50%; margin: 0 auto 26px; }.process-icon > svg { width: 32px; height: 32px; }.process-icon small { position: absolute; right: -8px; top: 0; width: 28px; height: 28px; background: var(--primary); color: var(--primary-foreground); border-radius: 50%; display: grid; place-items: center; font-size: 11px; font-weight: 800; }
.home-cta { min-height: 52px; height: auto; padding: 16px 22px; border-radius: 4px; font-size: 12px; font-weight: 800; white-space: normal; text-align: center; }.home-cta .whatsapp-icon { width: 22px; height: 22px; }
.hydro-section { display: grid; grid-template-columns: 1fr 1fr; background: var(--home-dark); color: var(--header-ink); }.hydro-section figure { position: relative; margin: 0; min-height: 0; aspect-ratio: 1; align-self: center; }.hydro-section img { display: block; width: 100%; height: 100%; position: absolute; object-fit: contain; }.hydro-copy { padding: 74px 60px; max-width: 650px; }.hydro-copy p { color: var(--home-dark-copy); }.hydro-copy h2 { font-size: 44px; }
.environment-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px; }.environment-grid article { border: 1px solid var(--home-line); padding: 36px 28px 20px; border-radius: 6px; }.environment-grid svg { width: 38px; height: 38px; color: var(--services-title); margin-bottom: 24px; }.environment-grid p { font-size: 14px; }
.prevention-section { background: var(--home-soft); }.prevention-list { display: grid; gap: 25px; }.prevention-list article { display: flex; gap: 22px; border-bottom: 1px solid var(--home-line); padding-bottom: 24px; }.prevention-list article:last-child { border-bottom: 0; padding-bottom: 0; }.prevention-list > article > span { color: var(--primary); font-size: 26px; font-weight: 800; }.prevention-list p { font-size: 14px; margin: 0; }
.faq-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 90px; }.faq-list details { border-bottom: 1px solid var(--home-line); }.faq-list summary { display: flex; justify-content: space-between; gap: 18px; list-style: none; cursor: pointer; padding: 23px 0; font-size: 16px; line-height: 1.5; font-weight: 700; }.faq-list summary::-webkit-details-marker { display: none; }.faq-list summary span { color: var(--primary); font-size: 24px; flex-shrink: 0; }.faq-list details[open] summary span { transform: rotate(45deg); }.faq-list details p { font-size: 14px; margin: 0 0 24px; }
.contact-section { background: var(--primary); color: var(--primary-foreground); }.contact-section .section-label,.contact-section p { color: var(--primary-foreground) !important; }.contact-layout { display: grid; grid-template-columns: 1.2fr 1fr; gap: 60px; align-items: center; }.contact-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }.contact-phone { display: flex; gap: 14px; align-items: center; font-size: 30px; font-weight: 800; }.contact-actions > span { font-size: 12px; line-height: 1.6; }
.site-footer { background: var(--home-dark); color: var(--header-ink); padding: 55px 0 0; }.footer-layout { display: grid; grid-template-columns: 1.1fr 1fr auto; gap: 42px; }.footer-layout strong { font-size: 24px; font-weight: 800; }.footer-layout p { color: var(--home-dark-copy); font-size: 13px; line-height: 1.7; margin-top: 12px; }.footer-layout nav { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; font-size: 13px; }.footer-layout > a { font-size: 16px; font-weight: 700; }.footer-bottom { margin-top: 40px; border-top: 1px solid var(--home-dark-copy); padding: 22px 0; display: flex; justify-content: space-between; gap: 20px; font-size: 11px; color: var(--home-dark-copy); }
.content-page .site-header { padding-bottom: 28px; }.page-title-band { background: var(--home-dark); color: var(--header-ink); padding: 52px 0; }.page-title-band nav { font-size: 13px; color: var(--home-dark-copy); margin-bottom: 22px; }.page-title-band h1 { font-size: 42px; line-height: 1.2; font-weight: 800; margin: 0 0 18px; }.page-title-band p { color: var(--home-dark-copy); line-height: 1.7; margin: 0; }
@media (max-width: 1000px) { .editorial-grid,.faq-layout { gap: 40px; }.section-heading-row { gap: 40px; }.home-section h2 { font-size: 36px; }.hydro-copy { padding: 60px 35px; }.hydro-copy h2 { font-size: 36px; }.symptom-grid { gap: 20px; }.process-grid { gap: 30px; }.footer-layout { grid-template-columns: 1fr 1fr; }.footer-layout > a { grid-column: 1 / 3; } }
@media (max-width: 700px) { .home-container { width: calc(100% - 40px); }.home-section { padding: 65px 0; }.home-section h2,.hydro-copy h2 { font-size: 30px; }.editorial-grid,.section-heading-row,.faq-layout,.contact-layout,.hydro-section { grid-template-columns: 1fr; gap: 34px; }.editorial-photo { height: auto; padding-right: 0; }.experience-mark { width: 205px; }.symptom-grid { grid-template-columns: 1fr 1fr; gap: 28px 20px; }.symptom-item h3 { font-size: 19px; }.process-grid,.environment-grid { grid-template-columns: 1fr; gap: 25px; }.process-grid li { max-width: 380px; margin: 0 auto; }.center-heading { margin-bottom: 35px; }.hydro-section figure { min-height: 0; }.hydro-copy { padding: 48px 20px; }.section-heading-row { margin-bottom: 20px; }.section-heading-row p { margin-bottom: 0; }.contact-phone { font-size: 25px; }.footer-layout { grid-template-columns: 1fr; gap: 25px; }.footer-layout > a { grid-column: 1; }.footer-bottom { flex-direction: column; gap: 10px; }.page-title-band h1 { font-size: 30px; }.content-page .site-header { padding-bottom: 0; } }
@media (prefers-reduced-motion: no-preference) { .home-cta { transition: transform .2s ease, filter .2s ease; }.home-cta:hover { transform: translateY(-2px); }.environment-grid article { transition: border-color .2s ease; }.environment-grid article:hover { border-color: var(--primary); } }

.home-cta{background:var(--accent);color:var(--accent-foreground)}.editorial-link{color:var(--primary);display:inline-flex;align-items:center;gap:8px}.hero-action:not(.hero-outline){background:var(--primary);color:var(--primary-foreground)}.hero-outline{background:var(--background);color:var(--foreground);border:1px solid var(--border)}
/* Service detail editorial composition */
.service-detail-page{overflow-x:clip}.service-title-band{position:relative;isolation:isolate;padding:78px 0;color:var(--header-ink);background:var(--home-dark);overflow:hidden}.service-title-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%;z-index:-2}.service-title-band::before{content:'';position:absolute;inset:0;background:var(--hero-overlay);z-index:-1}.service-title-band h1{font-size:42px;line-height:1.2;font-weight:800;margin:0 0 26px;max-width:820px}.service-title-band nav{display:flex;flex-wrap:wrap;gap:12px;font-size:13px;line-height:1.6;color:var(--home-dark-copy)}.service-title-band nav a:hover{color:var(--primary)}
.service-detail-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:50px;padding-top:80px;padding-bottom:90px;align-items:start}.service-sidebar{display:grid;gap:32px;min-width:0}.service-side-menu h2,.service-toc h2{font-size:22px;font-weight:800;margin:0 0 22px}.service-side-menu{display:grid;gap:9px}.service-side-menu>a{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:18px 20px;background:var(--home-soft);border:1px solid var(--home-line);font-size:14px;line-height:1.5;font-weight:700;text-decoration:none}.service-side-menu>a svg{width:18px;height:18px;flex-shrink:0}.service-side-menu>a.is-current,.service-side-menu>a:hover{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}.service-toc{border-top:3px solid var(--primary);background:var(--home-soft);padding:28px 25px}.service-toc ol{margin:0;padding-left:20px;display:grid;gap:12px;color:var(--services-copy);font-size:14px;line-height:1.5}.service-toc a:hover{color:var(--foreground);text-decoration:underline}.service-side-contact{background:var(--home-dark);color:var(--header-ink);padding:32px 25px;border-bottom:4px solid var(--accent)}.service-side-contact>svg{color:var(--primary);width:38px;height:38px;margin-bottom:20px}.service-side-contact>p{font-size:12px;color:var(--home-dark-copy);margin:0 0 12px}.service-side-contact h2{font-size:26px;font-weight:800;margin:0 0 16px}.service-side-contact>a:not(.home-cta){display:block;font-size:22px;font-weight:700;margin-bottom:24px}.service-side-contact .home-cta{width:100%;padding:15px 10px}
.service-article{min-width:0}.service-cover{margin:0 0 42px;background:var(--home-soft);border-bottom:3px solid var(--primary)}.service-cover img{display:block;width:100%;height:420px;object-fit:contain;padding:18px}.service-cover figcaption{border-top:1px solid var(--home-line);padding:12px 18px;font-size:12px;line-height:1.6;color:var(--services-copy)}.service-article-section{margin:0 0 44px;scroll-margin-top:30px}.service-article h2{font-size:30px;line-height:1.25;font-weight:800;margin:0 0 22px}.service-article h3{font-size:18px;font-weight:700;margin:0 0 8px;line-height:1.4}.service-article p{font-size:16px;line-height:1.85;color:var(--services-copy);margin:0 0 20px}.service-article p a{color:var(--foreground);text-decoration:underline;text-decoration-color:var(--primary);text-underline-offset:4px}.service-article p a:hover{text-decoration-color:var(--accent)}.service-article .service-lead{font-size:18px}.service-checks{list-style:none;padding:0;margin:24px 0;display:grid;grid-template-columns:1fr 1fr;gap:20px 26px;font-size:15px;line-height:1.7;color:var(--services-copy)}.service-checks li{display:flex;align-items:flex-start;gap:12px}.service-checks svg{color:var(--primary);width:19px;height:19px;margin-top:4px;flex-shrink:0}.service-steps{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:22px}.service-steps li{display:flex;gap:20px;align-items:flex-start}.service-steps strong{background:var(--home-orange-soft);color:var(--foreground);border:1px solid var(--primary);width:48px;height:48px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;font-size:15px}.service-steps p{margin:0;font-size:14px}.service-safety{background:var(--home-soft);border-left:3px solid var(--primary);padding:24px}.service-safety>strong{font-size:16px;display:block;margin-bottom:10px}.service-safety p{font-size:14px;margin:0}.service-related-list{display:grid}.service-related-list>a{display:flex;align-items:center;gap:22px;border-bottom:1px solid var(--home-line);padding:20px 0}.service-related-list>a:hover h3{text-decoration:underline;text-decoration-color:var(--primary)}.service-related-list img{width:55px;height:80px;object-fit:contain;flex-shrink:0}.service-related-list>a>svg{width:20px;height:20px;flex-shrink:0;margin-left:auto;color:var(--primary)}.service-related-list p{margin:0;font-size:14px;line-height:1.6}.service-budget{border-top:4px solid var(--primary);padding:36px 30px;background:var(--home-soft);scroll-margin-top:30px}.service-budget>div{display:flex;flex-wrap:wrap;gap:12px}.service-budget>a{display:inline-flex;gap:10px;align-items:center;font-size:13px;font-weight:700;margin-top:25px}.service-budget>a svg{width:16px;height:16px}.service-card h3 a:hover{text-decoration:underline;text-decoration-color:var(--primary);text-underline-offset:3px}
@media(max-width:1050px){.service-detail-layout{grid-template-columns:275px minmax(0,1fr);gap:32px}.service-checks{grid-template-columns:1fr}.service-side-menu>a{padding:16px}}
@media(max-width:760px){.service-title-band{padding:50px 0}.service-title-band h1{font-size:30px}.service-detail-layout{grid-template-columns:1fr;padding-top:40px;padding-bottom:60px;gap:38px}.service-sidebar{gap:24px}.service-side-contact{display:none}.service-side-menu{grid-template-columns:1fr 1fr}.service-side-menu h2{grid-column:1/-1;margin-bottom:10px}.service-side-menu>a{padding:13px 12px;font-size:12px;gap:6px}.service-side-menu>a svg{width:14px}.service-toc{padding:22px}.service-toc ol{grid-template-columns:1fr 1fr;column-gap:26px;font-size:12px}.service-cover img{height:340px}.service-article h2{font-size:26px}.service-article .service-lead{font-size:17px}.service-budget{padding:30px 20px}.service-related-list>a{gap:14px}.service-related-list h3{font-size:16px}}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
/* Blog */
.blog-grid { display: grid; gap: 28px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.blog-card { background: var(--card); border: 1px solid var(--border); border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 10px 30px -18px oklch(0 0 0 / 0.35); transition: transform .25s ease; }
.blog-card:hover { transform: translateY(-4px); }
.blog-card-image { display: block; aspect-ratio: 4 / 3; background: var(--muted); }
.blog-card-image img { width: 100%; height: 100%; object-fit: contain; }
.blog-card-body { padding: 22px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.blog-card-body h2 { font-size: 19px; line-height: 1.3; font-weight: 800; margin: 0; }
.blog-card-body h2 a { color: inherit; text-decoration: none; }
.blog-card-body p { margin: 0; color: var(--muted-foreground); }
.blog-card-more { margin-top: auto; color: var(--primary); font-weight: 800; display: inline-flex; gap: 6px; align-items: center; text-decoration: none; }
.blog-card-more svg { width: 16px; height: 16px; }
.blog-tips { list-style: none; padding: 0; }
.blog-tips li h2 { font-size: 21px; margin: 0 0 6px; }
.blog-tips li { scroll-margin-top: 20px; }
@media (prefers-reduced-motion: reduce) { .blog-card { transition: none; } }
/* Áreas atendidas */
.bairro-map { position: relative; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden; border: 1px solid var(--border); background: var(--muted); }
.bairro-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.bairro-chips { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.bairro-chips a { display: inline-block; padding: 9px 14px; border: 1px solid var(--border); border-radius: 999px; font-size: 14px; font-weight: 600; text-decoration: none; color: inherit; background: var(--card); }
.bairro-chips a:hover { background: var(--primary); color: var(--primary-foreground); border-color: var(--primary); }
.bairro-letters { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 32px; }
.bairro-letters a { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 8px; background: var(--primary); color: var(--primary-foreground); font-weight: 800; text-decoration: none; }
.bairro-group { margin-bottom: 32px; scroll-margin-top: 20px; }
.bairro-group h2 { font-size: 28px; font-weight: 800; color: var(--primary); margin: 0 0 14px; }

:root { --contact-shadow: 0 -4px 24px oklch(0 0 0 / 16%); }
/* Navigation stays within the article; long indexes remain fully accessible. */
@media (min-width: 761px) {
  .service-sidebar { position: sticky; top: 20px; max-height: calc(100dvh - 40px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: var(--primary) var(--home-soft); padding-right: 8px; }
}
.mobile-contact-bar { display: none; }
@media (max-width: 760px) {
  body { padding-bottom: calc(132px + env(safe-area-inset-bottom, 0px)); }
  .mobile-contact-bar { display: block; position: fixed; inset: auto 8px 0; z-index: 50; background: var(--background); color: var(--foreground); border-radius: 8px 8px 0 0; box-shadow: var(--contact-shadow); padding: 7px 7px calc(7px + env(safe-area-inset-bottom, 0px)); }
  .mobile-callback { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 13px; width: 100%; height: 54px; border-radius: 6px; padding: 6px 18px; font-size: 15px; line-height: 1.3; font-weight: 700; white-space: normal; text-align: left; }
  .mobile-callback svg { width: 25px; height: 25px; flex-shrink: 0; }
  .mobile-callback span { min-width: 0; }
  .mobile-contact-actions { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); margin-top: 7px; }
  .mobile-contact-action { display: grid; grid-template-columns: auto minmax(0, 1fr); justify-content: start; gap: 7px; height: 50px; padding: 4px 7px; white-space: normal; border-radius: 4px; }
  .mobile-contact-action + .mobile-contact-action { border-left: 1px solid var(--border); }
  .mobile-contact-action svg { width: 19px; height: 19px; color: var(--foreground); }
  .mobile-contact-action .whatsapp-icon { color: var(--accent); }
  .mobile-contact-action span { min-width: 0; text-align: left; }
  .mobile-contact-action small { display: block; font-size: 8px; line-height: 1.6; font-weight: 700; }
  .mobile-contact-action strong { display: block; font-size: 12px; line-height: 1.6; white-space: nowrap; }
  html { scroll-padding-bottom: calc(132px + env(safe-area-inset-bottom, 0px)); }
}

.mobile-callback:hover { background: var(--accent); opacity: .9; }
.mobile-contact-action:hover { background: var(--muted); }

/* Shared company profile identity */
.site-footer address,.contact-section address { font-style:normal; margin-top:1.25rem; overflow-wrap:anywhere; }
.site-footer .flex,.contact-section .flex { display:flex; gap:.75rem; flex-wrap:wrap; }
.site-footer .flex-col { flex-direction:column; gap:1rem; }
.contact-section .mt-5 { margin-top:1.25rem; }
.site-footer .flex a:has(svg),.contact-section .flex a:has(svg) { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; padding:.5rem 1rem; border:1px solid var(--border); border-radius:6px; background:var(--background); color:var(--foreground); font-size:14px; text-decoration:none; }
.site-footer .flex a svg,.contact-section .flex a svg { width:16px; height:16px; flex-shrink:0; }

:root { --location: oklch(0.56 0.22 255); --location-foreground: oklch(1 0 0); --call: oklch(0.32 0 0); --call-foreground: oklch(1 0 0); --location-overlay: oklch(0.08 0 0 / 65%); --location-shadow: 0 20px 70px oklch(0 0 0 / 25%); --muted-foreground: oklch(0.554 0.046 257.417); --destructive: oklch(0.577 0.245 27.325); }
.location-overlay { position: fixed; inset: 0; background: var(--location-overlay); z-index: 100; }
.location-popup { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 101; width: min(446px, calc(100% - 24px)); max-height: calc(100dvh - 24px); overflow-y: auto; background: var(--background); color: var(--foreground); border-radius: 8px; box-shadow: var(--location-shadow); padding: 28px 30px 20px; text-align: center; }
.location-close { position: absolute; right: 12px; top: 12px; background: var(--muted); border-radius: 50%; }
.location-logo { width: 150px; height: 70px; object-fit: contain; margin: 0 auto 18px; }
.location-title { margin: 0 0 18px; font-size: 29px; line-height: 1.35; font-weight: 800; letter-spacing: 0; color: var(--foreground); }
.location-callout { margin: 0 0 15px; font-size: 20px; line-height: 1.35; font-weight: 800; color: var(--primary); }
.location-description { margin: 0 0 22px; font-size: 16px; line-height: 1.45; font-weight: 600; }
.location-action { display: flex; width: 100%; min-height: 52px; height: auto; padding: 12px; margin-top: 12px; white-space: normal; font-size: 19px; line-height: 1.3; font-weight: 800; text-decoration: none; border-radius: 8px; gap: 9px; }
.location-action svg { width: 21px; height: 21px; }
.location-whatsapp { color: var(--accent-foreground); }
.location-privacy, .location-footnote { color: var(--muted-foreground); font-size: 11px; line-height: 1.5; margin: 12px 0 0; }
.location-form { display: grid; gap: 7px; text-align: left; }
.location-form p { font-weight: 700; margin: 0 0 5px; }
.location-form label { font-size: 13px; font-weight: 600; }
.location-error { font-size: 13px; color: var(--destructive); line-height: 1.5; }
.region-change { color: inherit; padding: 4px 0; white-space: normal; }
.hero-heading, #service-page-title { overflow-wrap: anywhere; }
@media (max-width: 400px) { .location-popup { padding: 22px 18px 16px; } .location-title { font-size: 26px; } .location-callout { font-size: 18px; } .location-action { font-size: 17px; } }

.location-popup { margin:0; border:0; } .location-popup::backdrop { background:var(--location-overlay); } .location-popup[open] { display:block; } .location-popup:not([open]), [hidden] { display:none !important; } .location-popup button, .location-action { border:0; cursor:pointer; } .location-close { display:grid; place-items:center; width:36px; height:36px; } .location-close svg {width:16px;height:16px} .location-popup #location-detect,.export-location {background:var(--location);color:var(--location-foreground)} .location-popup #location-manual,.region-change,#location-forget {background:transparent;color:var(--primary);border:0;padding:10px;font-size:14px} .location-whatsapp {background:var(--accent)} .location-popup a:not(.location-whatsapp) {background:var(--call);color:var(--call-foreground)} .location-form input {height:36px;border:1px solid var(--border);border-radius:6px;padding:6px 10px;font:inherit;color:var(--foreground);background:var(--background)} .location-action:disabled {opacity:.6;cursor:wait}

.location-action { justify-content:center; align-items:center; }

/* Shared width safeguards for home, editorial pages and locality catalogs. */
.editorial-grid > *, .section-heading-row > *, .faq-layout > *, .contact-layout > *,
.environment-grid > *, .footer-layout > *, .hydro-section > *, .service-steps li > div,
.service-related-list > a > div { min-width: 0; }
.home-section h2, .home-section h3, .hydro-copy h2, .page-title-band h1,
.service-title-band h1, .service-article h2, .service-article h3,
.service-side-menu a, .service-toc a, .blog-card-body, .bairro-chips a {
  overflow-wrap: anywhere;
}
.home-cta, .editorial-link, .contact-phone, .bairro-chips li, .bairro-chips a { max-width: 100%; }
.quote-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.quote-button span { white-space: normal; }
.contact-phone svg, .check-list svg, .location-action svg { flex-shrink: 0; }
.location-form input { min-width: 0; width: 100%; font-size: 16px; }
.location-popup { overscroll-behavior: contain; scroll-padding: 20px; }
@media (max-width: 1050px) and (min-width: 761px) {
  .environment-grid { gap: 20px; }
  .environment-grid article { padding: 28px 20px 16px; }
}
@media (max-width: 760px) {
  .service-cover img { height: auto; max-height: 340px; aspect-ratio: 1; }
  .service-related-list > a { display: grid; grid-template-columns: 55px minmax(0, 1fr) 20px; }
  .service-budget > div { display: grid; grid-template-columns: minmax(0, 1fr); }
  .service-budget .home-cta { width: 100%; }
  .location-close { width: 44px; height: 44px; }
}
@media (max-width: 480px) {
  .service-side-menu, .service-toc ol { grid-template-columns: minmax(0, 1fr); }
  .service-side-menu > a { min-height: 48px; font-size: 14px; }
  .service-toc ol { font-size: 14px; gap: 14px; }
  .symptom-grid { grid-template-columns: minmax(0, 1fr); }
  .blog-grid { grid-template-columns: minmax(0, 1fr); }
  .bairro-map { aspect-ratio: 4 / 3; }
  .service-related-list > a { column-gap: 10px; }
  .service-steps li { gap: 12px; }
  .service-safety { padding: 20px 16px; }
  .contact-actions { align-items: stretch; }
  .contact-phone { gap: 10px; font-size: 23px; }
}
@media (max-height: 600px) {
  .location-popup { padding-top: 18px; }
  .location-logo { height: 48px; margin-bottom: 12px; }
  .location-title { margin-bottom: 12px; }
}
.hero-heading { overflow-wrap: normal; word-break: normal; hyphens: none; }
.hero-eyebrow { line-height: 1.5; }
.quote-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; line-height: 1.4; }
.quote-button .whatsapp-icon { display: block; }
@media (min-width: 901px) {
  .quote-button span { white-space: nowrap; }
  .nav-links { gap: 18px; padding-right: 18px; }
  .main-navigation { padding-left: 24px; }
  .nav-link { flex-shrink: 0; }
}
@media (max-width: 760px) { .hero-heading { font-size: 32px; } }
.mobile-callback { background: var(--accent); color: var(--accent-foreground); text-decoration: none; }
.mobile-contact-action { align-items: center; text-decoration: none; }
.mobile-callback svg, .mobile-contact-action svg { flex-shrink: 0; }
