/* styles.css */
:root {
  --primary:#0d3b8e;
  --primary-2:#1557c0;
  --accent:#16b6e8;
  --dark:#102037;
  --text:#223042;
  --muted:#5e7087;
  --line:#dce7f4;
  --bg:#f5f9ff;
  --white:#fff;
  --success:#20a84b;
  --shadow:0 18px 42px rgba(13,59,142,.10);
  --radius:20px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--text);background:var(--white);line-height:1.6}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit}
.container{width:min(1120px,calc(100% - 32px));margin:0 auto}
.topbar{background:var(--dark);color:#d9e8ff;font-size:.9rem}
.topbar .container{display:flex;gap:14px;justify-content:space-between;align-items:center;padding:9px 0;flex-wrap:wrap}
.topbar a:hover{text-decoration:underline}
.header{position:sticky;top:0;z-index:20;backdrop-filter:blur(10px);background:rgba(255,255,255,.96);border-bottom:1px solid rgba(220,231,244,.9)}
.header .container{display:flex;align-items:center;gap:18px;justify-content:space-between;padding:12px 0}
.brand{display:flex;align-items:center;min-width:0}
.brand img.logo{width:205px;height:74px;object-fit:contain;object-position:left center}
.nav{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.nav a{color:var(--muted);font-weight:700;font-size:.94rem}
.nav a:hover,.nav a[aria-current="page"]{color:var(--primary)}
.mobile-nav{display:none;position:relative}
.whatsapp-mini,.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:999px;padding:13px 20px;font-weight:700;transition:transform .2s ease,box-shadow .2s ease}
.whatsapp-mini{background:var(--success);color:var(--white);white-space:nowrap}
.whatsapp-mini:hover,.button:hover{transform:translateY(-2px)}
.button{box-shadow:var(--shadow)}
.button-green{background:var(--success);color:var(--white)}
.button-blue{background:var(--primary);color:var(--white)}
.button-white{background:var(--white);color:var(--primary);border:1px solid var(--line)}
.text-link{color:var(--primary);font-weight:700}
.hero{padding:72px 0 58px;background:radial-gradient(circle at 90% 15%,rgba(22,182,232,.18),transparent 30%),linear-gradient(180deg,#eef6ff 0%,#fff 100%)}
.hero-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:42px;align-items:center}
.eyebrow,.kicker{display:inline-flex;align-items:center;gap:8px;font-weight:800;color:var(--primary);text-transform:uppercase;letter-spacing:.08em;font-size:.76rem}
.hero h1,.internal h1{font-size:clamp(2.15rem,4.8vw,4rem);line-height:1.04;margin:14px 0;color:var(--dark);letter-spacing:-.045em}
.hero p,.lead,.section-head p,.internal p{color:var(--muted);font-size:1.04rem}
.hero-copy>p{max-width:670px}
.actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:24px}
.hero-points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:26px}
.hero-points div{padding:14px 15px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.88)}
.hero-points strong,.hero-points span{display:block}
.hero-points strong{color:var(--dark);font-size:.95rem}
.hero-points span{color:var(--muted);font-size:.76rem;margin-top:2px}
.equipment-showcase{overflow:hidden;border:1px solid #cfe0f0;border-radius:28px;background:linear-gradient(150deg,#0d3b8e,#1557c0 62%,#16a7d6);box-shadow:0 26px 62px rgba(10,53,120,.22)}
.showcase-head{display:flex;justify-content:space-between;align-items:end;gap:18px;padding:24px 26px 18px;color:#dcecff}
.showcase-head span{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700}
.showcase-head strong{font-size:1.5rem;color:#fff}
.equipment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 18px 18px}
.equipment-item{min-height:134px;padding:18px;border:1px solid rgba(255,255,255,.18);border-radius:18px;background:rgba(255,255,255,.96);box-shadow:0 12px 25px rgba(3,32,78,.12);transition:transform .2s ease}
.equipment-item:hover{transform:translateY(-3px)}
.equipment-item strong,.equipment-item small{display:block}
.equipment-item strong{color:var(--dark);margin-top:9px}
.equipment-item small{color:var(--muted);margin-top:2px;line-height:1.3}
.equipment-symbol{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#eaf4ff;color:var(--primary);font-size:1.2rem;font-weight:800}
.showcase-footer{padding:14px 22px;background:rgba(4,35,80,.34);color:#dcecff;text-align:center;font-size:.82rem}
.hero-media{position:relative;overflow:hidden;margin:0;padding:12px;border:1px solid #cfe0f0;border-radius:28px;background:#eaf4ff;box-shadow:0 26px 62px rgba(10,53,120,.22)}
.hero-media picture{display:block}
.hero-media img{width:100%;aspect-ratio:1.82/1;object-fit:contain;object-position:center;border-radius:18px}
.hero-media figcaption{position:absolute;left:18px;top:18px;width:min(310px,calc(100% - 36px));display:grid;gap:2px;padding:14px 16px;border:1px solid rgba(255,255,255,.42);border-radius:16px;background:rgba(7,35,72,.84);color:#fff;box-shadow:0 12px 32px rgba(3,24,56,.25);backdrop-filter:blur(8px)}
.hero-media figcaption strong{font-size:.95rem}.hero-media figcaption span{color:#dcecff;font-size:.78rem;line-height:1.35}
.section{padding:72px 0}
.section-soft{background:var(--bg)}
.section-blue{background:linear-gradient(180deg,#12397d,#0d2d62);color:#fff}
.section-blue .kicker,.section-blue p{color:#cfe1ff}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:22px;margin-bottom:28px;flex-wrap:wrap}
.compact-head{align-items:center}
.section h2{margin:9px 0 0;font-size:clamp(1.75rem,3vw,2.55rem);line-height:1.13;color:var(--dark);letter-spacing:-.03em}
.section-blue h2,.section-blue h3,.section-blue .step span{color:#fff}
.cards,.steps,.trust-grid,.tips-grid,.service-grid,.values,.services,.tips,.stats-grid,.contact-grid{display:grid;gap:20px}
.cards,.trust-grid,.tips-grid,.service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.steps{grid-template-columns:repeat(3,minmax(0,1fr))}
.values,.services,.tips{grid-template-columns:repeat(2,minmax(0,1fr))}
.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.contact-grid{grid-template-columns:1fr 1fr}
.card,.step,.trust-card,.tip-card,.schedule-box,.service-box,.contact-card,.mini-card,.stat-card{padding:24px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.card h3,.step h3,.trust-card h3,.tip-card h3,.schedule-box h2,.service-box h3,.contact-card h3{margin:10px 0;color:var(--dark)}
.card p,.step p,.trust-card p,.tip-card p,.service-box p,.contact-card p{margin:0;color:var(--muted)}
.icon,.step span.num,.service-icon{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;font-size:1.2rem;font-weight:800;background:linear-gradient(135deg,#dff4ff,#edf2ff);color:var(--primary)}
.step span.num{margin-bottom:16px}
.brand-carousel,.review-carousel{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:5px 4px 15px;scrollbar-width:none}
.brand-carousel::-webkit-scrollbar,.review-carousel::-webkit-scrollbar{display:none}
.brand-card{scroll-snap-align:start;flex:0 0 190px;min-height:92px;display:grid;place-items:center;padding:18px;border:1px solid var(--line);border-radius:18px;background:#fff;color:var(--primary);font-size:1.05rem;font-weight:800;box-shadow:0 10px 28px rgba(13,59,142,.08)}
.carousel-controls{display:flex;gap:8px}
.carousel-button{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--primary);font-size:1.2rem;font-weight:800;cursor:pointer;box-shadow:0 7px 18px rgba(13,59,142,.08)}
.carousel-button:hover{border-color:#b9cfe3;background:#f7fbff}
.faq{display:grid;gap:14px}
.faq details{padding:20px 22px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 9px 24px rgba(13,59,142,.06)}
.faq summary{cursor:pointer;list-style:none;font-weight:700;color:var(--dark)}
.faq summary::-webkit-details-marker{display:none}
.faq p{margin:12px 0 0;color:var(--muted)}
.reviews-section{overflow:hidden}
.google-score{display:flex;align-items:center;gap:9px;margin-top:13px}
.google-score>strong{font-size:1.7rem;color:var(--dark)}
.google-score small{color:var(--muted)}
.score-stars,.stars{color:#f7b500;letter-spacing:.06em}
.score-stars>span{color:#d7dce4}
.review-carousel{padding-top:5px}
.review-card{scroll-snap-align:start;flex:0 0 min(390px,86vw);min-height:230px;padding:24px;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}
.review-top{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;margin-bottom:18px}
.review-top h3{margin:0;color:var(--dark);font-size:1rem}
.review-top small{color:var(--muted)}
.review-avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#0d3b8e,#16b6e8);color:#fff;font-weight:800}
.google-mark{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);font-weight:800;color:#4285f4;background:#fff}
.review-card .stars{font-size:1.08rem;margin-bottom:15px}
.review-card p{margin:0;color:#34485e;font-size:1rem;line-height:1.65}
.review-card .rating-only{color:var(--muted);font-style:italic}
.final-cta{padding-top:48px}
.cta-panel{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:34px 36px;background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}
.cta-panel h2{margin-top:6px}.cta-panel p{color:var(--muted);margin-bottom:0}
.internal{padding:60px 0 28px;background:linear-gradient(180deg,#eef6ff,#fff)}
.breadcrumbs{font-size:.92rem;color:var(--muted);margin-bottom:14px}
.content-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:start}
.prose{display:grid;gap:17px;color:var(--muted);font-size:1.03rem;line-height:1.75}
.prose p{margin:0}
.contact-list{display:grid;gap:12px;align-content:start}
.contact-item{padding:19px;border:1px solid var(--line);border-radius:15px;background:#fff}
.contact-item small{display:block;margin-bottom:4px;color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase}
.form{display:grid;gap:16px;padding:30px;background:#f5faff;border:1px solid var(--line);border-radius:22px}
.form label{display:grid;gap:7px;color:#27445f;font-size:.8rem;font-weight:800}
.form input,.form select,.form textarea{width:100%;padding:12px;border:1px solid #bed4e7;border-radius:9px;background:#fff}
.form textarea{min-height:110px;resize:vertical}
.schedule-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:24px;align-items:start}
.schedule-form{padding:clamp(24px,4vw,38px)}
.form-heading h2{margin:7px 0;color:var(--dark)}.form-heading p{margin:0 0 5px;color:var(--muted)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.schedule-form .button{border:0;cursor:pointer;width:fit-content}
.consent{grid-template-columns:auto 1fr!important;align-items:start;gap:10px!important;font-weight:600!important;line-height:1.45}.consent input{width:18px!important;height:18px;margin-top:2px}
.form-status{margin:0;padding:13px 15px;border-radius:10px;background:#eaf8ef;color:#176532;font-weight:700}
.calendar-link[hidden],.form-status[hidden]{display:none}.calendar-link{width:fit-content}
.schedule-disclaimer{margin:0;color:var(--muted);font-size:.84rem;line-height:1.5}
.schedule-sidebar{display:grid;gap:20px}.schedule-steps{display:grid;gap:15px;margin-top:20px}.schedule-steps div{display:grid;grid-template-columns:36px 1fr;gap:12px;align-items:center}.schedule-steps strong{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;background:#eaf4ff;color:var(--primary)}.schedule-steps span{color:var(--muted);line-height:1.45}
.notice,.schedule-note{margin-top:18px;padding:14px 16px;border-left:4px solid var(--accent);border-radius:10px;background:#effbff;color:#31506b}
.map-placeholder{width:100%;min-height:320px;display:grid;place-items:center;padding:28px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(135deg,#eef6ff,#f9fbff);box-shadow:var(--shadow)}
.table-like{display:grid;gap:12px}.row-line{display:grid;grid-template-columns:1fr auto;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}.row-line:last-child{border-bottom:0}.inline-link{color:var(--primary);font-weight:700}
.footer{background:var(--dark);color:#d5e4ff;padding:46px 0 32px;margin-top:30px}
.footer-grid{display:grid;grid-template-columns:1.1fr .7fr .8fr;gap:22px}
.footer img{width:190px;height:82px;object-fit:contain;object-position:left center;margin-bottom:12px}
.footer p{color:#a9bfd3;max-width:360px}.footer h3{color:#fff;margin-top:0}.footer-links{display:grid;gap:10px;align-content:start}.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:24px;padding-top:18px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:.9rem}
.whatsapp-float{position:fixed;right:18px;bottom:18px;width:62px;height:62px;border-radius:50%;background:linear-gradient(135deg,#28d366,#17ad49);color:#fff;display:grid;place-items:center;z-index:30;box-shadow:0 18px 40px rgba(32,168,75,.35)}
.whatsapp-float svg{width:30px;height:30px;fill:currentColor}.whatsapp-tooltip{position:fixed;right:92px;bottom:30px;background:var(--dark);color:#fff;padding:10px 14px;border-radius:999px;box-shadow:var(--shadow);z-index:29;font-size:.9rem;font-weight:700}
.service-card{padding:0;overflow:hidden;display:flex;flex-direction:column}
.service-card-media{display:block;overflow:hidden;background:#eaf4ff}
.service-card-media img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center}
.service-card-body{display:flex;flex:1;flex-direction:column;padding:20px 22px 24px}
.service-card-body h2{margin:0 0 8px;color:var(--dark);font-size:1.35rem;line-height:1.18}
.service-card-body p{margin:0 0 16px;color:var(--muted)}
.service-card-body .text-link{margin-top:auto}
.internal .service-hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(300px,.72fr);gap:clamp(28px,5vw,64px);align-items:center}
.service-hero-copy{min-width:0}
.service-hero-media{display:block;overflow:hidden;border:1px solid #cfe0f0;border-radius:26px;background:#eaf4ff;box-shadow:0 24px 54px rgba(10,53,120,.18)}
.service-hero-media img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center}
@media(max-width:980px){
  .nav,.whatsapp-mini{display:none}.mobile-nav{display:block}.mobile-nav summary{list-style:none;cursor:pointer;padding:11px 16px;border:1px solid var(--line);border-radius:12px;font-weight:700;color:var(--primary)}.mobile-nav summary::-webkit-details-marker{display:none}.mobile-nav div{position:absolute;right:0;margin-top:8px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);min-width:220px;padding:12px;display:grid;gap:6px}.mobile-nav a{padding:10px 8px;color:var(--muted);font-weight:700}
  .hero-grid,.contact-grid,.footer-grid,.content-grid{grid-template-columns:1fr}.cards,.steps,.trust-grid,.tips-grid,.service-grid{grid-template-columns:1fr 1fr}.hero-points{grid-template-columns:1fr}.cta-panel{align-items:flex-start;flex-direction:column}.brand img.logo{width:180px}
}
@media(max-width:900px){.internal .service-hero-grid{grid-template-columns:1fr}.service-hero-media{max-width:620px}.service-detail-hero .service-hero-copy{max-width:760px}}
@media(max-width:860px){.schedule-layout{grid-template-columns:1fr}.schedule-sidebar{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){
  .section,.hero{padding:52px 0}.cards,.steps,.trust-grid,.tips-grid,.service-grid,.values,.services,.tips,.stats-grid{grid-template-columns:1fr}.header .container{padding:10px 0}.brand img.logo{width:155px;height:62px}.equipment-grid{grid-template-columns:1fr 1fr}.equipment-item{min-height:126px;padding:14px}.showcase-head{padding:20px 20px 14px}.showcase-head strong{font-size:1.2rem}.carousel-controls{display:none}.brand-card{flex-basis:155px}.review-card{flex-basis:88vw}.whatsapp-tooltip{display:none}.topbar .container{gap:5px}.cta-panel{padding:27px 22px}.footer img{width:165px}.google-score{flex-wrap:wrap}
}
@media(max-width:900px){.hero-media img{aspect-ratio:1/1}}
@media(max-width:600px){.form-grid,.schedule-sidebar{grid-template-columns:1fr}.schedule-form .button,.calendar-link{width:100%}.hero-media figcaption{left:12px;top:12px;width:min(280px,calc(100% - 24px));padding:12px 14px}}
@media(max-width:480px){.service-card-body{padding:18px 18px 21px}.service-hero-media{border-radius:20px}}
@media(max-width:430px){.equipment-grid{grid-template-columns:1fr}.equipment-item{min-height:auto}.hero h1,.internal h1{font-size:2.35rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.equipment-item{transition:none}.brand-carousel,.review-carousel{scroll-behavior:auto}}
/* accessibility.css */
/* Acessibilidade global */
:root{--user-font-scale:1}
html{font-size:calc(100% * var(--user-font-scale))}

.sr-only,
.a11y-launcher>span:last-child{
  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;
}

.skip-link{
  position:fixed;
  left:16px;
  top:12px;
  z-index:1400;
  padding:11px 16px;
  border-radius:10px;
  background:#102037;
  color:#fff;
  font-weight:800;
  transform:translateY(-180%);
  transition:transform .18s ease;
  box-shadow:0 10px 24px rgba(0,0,0,.2);
}
.skip-link:focus{transform:translateY(0)}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible{
  outline:3px solid #0d3b8e;
  outline-offset:3px;
}

[aria-current="page"]{
  text-decoration:underline;
  text-decoration-thickness:2px;
  text-underline-offset:5px;
}

input:focus-visible,
select:focus-visible,
textarea:focus-visible{border-color:#0d3b8e}

/* O launcher fica pequeno. O painel abre independente dele. */
.a11y-tools{
  position:fixed!important;
  left:16px!important;
  bottom:16px!important;
  z-index:1300!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  font-size:16px!important;
  line-height:1.4!important;
}
.a11y-launcher{
  position:relative;
  z-index:3;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:50px!important;
  height:50px!important;
  min-width:50px!important;
  min-height:50px!important;
  max-width:50px!important;
  padding:0!important;
  border:1px solid #c6d8eb;
  border-radius:50%;
  background:#fff;
  color:#102037;
  box-shadow:0 10px 26px rgba(16,32,55,.18);
  font-weight:800;
  cursor:pointer;
}
.a11y-launcher:hover{background:#f4f9ff}
.a11y-launcher>span:first-child{font-size:1.2rem}

.a11y-backdrop{
  position:fixed!important;
  inset:0!important;
  z-index:1!important;
  background:rgba(9,22,38,.38)!important;
  backdrop-filter:blur(1px);
}
.a11y-backdrop[hidden]{display:none!important}

.a11y-panel{
  position:fixed!important;
  left:18px!important;
  right:auto!important;
  bottom:82px!important;
  z-index:2!important;
  display:block;
  width:min(380px,calc(100vw - 36px))!important;
  min-width:min(320px,calc(100vw - 36px))!important;
  max-width:380px!important;
  max-height:min(680px,calc(100dvh - 110px))!important;
  overflow:auto!important;
  padding:18px!important;
  margin:0!important;
  border:1px solid #cbdced;
  border-radius:18px;
  background:#fff;
  color:#223042;
  box-shadow:0 20px 50px rgba(16,32,55,.28);
  writing-mode:horizontal-tb!important;
  text-orientation:mixed!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
}
.a11y-panel[hidden]{display:none!important}
.a11y-panel,
.a11y-panel *{
  writing-mode:horizontal-tb!important;
  text-orientation:mixed!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
}
.a11y-panel-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px!important}
.a11y-panel-head strong{font-size:1.05rem!important;color:#102037;white-space:normal!important}
.a11y-panel-head button{flex:0 0 40px;width:40px!important;height:40px!important;min-width:40px!important;border:0;border-radius:50%;background:#edf4fb;color:#102037;font-size:1.35rem;cursor:pointer}
.a11y-help,.a11y-voice-help{margin:8px 0 14px!important;color:#566b82;line-height:1.45!important;font-size:.88rem!important;white-space:normal!important}
.a11y-group{display:grid!important;grid-template-columns:minmax(44px,1fr) auto minmax(44px,1fr)!important;align-items:center!important;gap:8px!important;margin-bottom:10px!important;width:100%!important}
.a11y-group button,.a11y-action,.a11y-reset{min-height:44px!important;border:1px solid #bed2e5;border-radius:11px;background:#f7fbff;color:#173b66;font-weight:800;cursor:pointer;font-size:.95rem!important;line-height:1.25!important;white-space:normal!important}
.a11y-group span{text-align:center!important;font-weight:800;color:#102037;white-space:nowrap!important}
.a11y-action{display:block!important;width:100%!important;max-width:none!important;margin-top:8px!important;padding:10px 12px!important;text-align:left!important}
.a11y-action[aria-pressed="true"]{background:#dcecff;border-color:#0d3b8e;color:#0d3b8e}
.a11y-voice{background:#e8f8ef;border-color:#9dd4b3;color:#176532}
.a11y-reset{display:block!important;width:100%!important;max-width:none!important;margin-top:10px!important;padding:10px 12px!important;background:#fff;color:#5c6570}
.is-voice-listening .a11y-voice{outline:3px solid #176532;outline-offset:2px}
body.a11y-panel-open{overflow:hidden!important}

html.a11y-high-contrast body{background:#000!important;color:#fff!important}
html.a11y-high-contrast .header,
html.a11y-high-contrast .section,
html.a11y-high-contrast .section-soft,
html.a11y-high-contrast .hero,
html.a11y-high-contrast .internal,
html.a11y-high-contrast .card,
html.a11y-high-contrast .trust-card,
html.a11y-high-contrast .service-card,
html.a11y-high-contrast .review-card,
html.a11y-high-contrast .form,
html.a11y-high-contrast .contact-item,
html.a11y-high-contrast .schedule-box,
html.a11y-high-contrast .a11y-panel{background:#000!important;color:#fff!important}
html.a11y-high-contrast h1,
html.a11y-high-contrast h2,
html.a11y-high-contrast h3,
html.a11y-high-contrast p,
html.a11y-high-contrast span,
html.a11y-high-contrast strong,
html.a11y-high-contrast a,
html.a11y-high-contrast label,
html.a11y-high-contrast summary{color:#fff!important}
html.a11y-high-contrast a{text-decoration:underline}
html.a11y-high-contrast button,
html.a11y-high-contrast input,
html.a11y-high-contrast select,
html.a11y-high-contrast textarea{border-color:#fff!important}
html.a11y-high-contrast .button,
html.a11y-high-contrast .whatsapp-mini{outline:2px solid #fff}

html.a11y-reduce-motion *,
html.a11y-reduce-motion *::before,
html.a11y-reduce-motion *::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}

@media(max-width:600px){
  .a11y-tools{left:12px!important;bottom:12px!important}
  .a11y-launcher{width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;max-width:48px!important}
  .a11y-panel{
    left:12px!important;
    right:12px!important;
    bottom:76px!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    max-height:calc(100dvh - 100px)!important;
    padding:18px!important;
    border-radius:18px!important;
  }
  .a11y-action,.a11y-reset{font-size:1rem!important;padding:11px 12px!important}
  .a11y-help,.a11y-voice-help{font-size:.92rem!important}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .skip-link{transition:none}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}

@media(forced-colors:active){
  a:focus-visible,
  button:focus-visible,
  input:focus-visible,
  select:focus-visible,
  textarea:focus-visible,
  summary:focus-visible,
  [tabindex]:focus-visible{outline:2px solid CanvasText}
}
/* layout.css */
html{overflow-x:hidden}
body{overflow-x:clip}
*,*::before,*::after{box-sizing:border-box;min-width:0}
img,picture,video,iframe,svg{max-width:100%}
img{height:auto}

h1,h2,h3,h4,p,a,span,strong,small,label,summary{overflow-wrap:break-word}

.header .container,
.topbar .container,
.hero-grid,
.contact-grid,
.schedule-layout,
.service-grid,
.service-hero-grid,
.form-grid,
.footer-grid,
.cards,.steps,.trust-grid,.tips-grid,.values,.services,.stats-grid{
  min-width:0;
}

.header .container{position:relative}
.logo{max-width:100%;height:auto}

.mobile-nav{position:relative;z-index:60}
.mobile-nav div{
  max-width:min(360px,calc(100vw - 24px));
  max-height:calc(100vh - 110px);
  overflow-y:auto;
  overscroll-behavior:contain;
}

.hero-grid{
  grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  gap:clamp(28px,4.5vw,58px);
}
.hero-copy{min-width:0}
.hero h1{
  font-size:clamp(2.5rem,4.35vw,4.45rem);
  line-height:1.04;
  max-width:13ch;
}
.hero p{max-width:62ch}
.hero-media{min-width:0;max-width:100%}
.hero-media picture,.hero-media img{max-width:100%}

.internal h1{
  font-size:clamp(2.25rem,4vw,4rem);
  line-height:1.06;
}

.cards,.steps,.trust-grid,.tips-grid,.service-grid,.values,.services,.stats-grid{
  --cols:3;
  grid-template-columns:repeat(var(--cols),minmax(0,1fr));
}
.values,.services{--cols:2}
.stats-grid{--cols:4}

.card,.step,.trust-card,.tip-card,.schedule-box,.service-box,
.contact-card,.mini-card,.stat-card,.service-card,.contact-item,.form{
  min-width:0;
  max-width:100%;
}

.form input,.form select,.form textarea,.form button{
  min-width:0;
  max-width:100%;
}

.contact-grid,.schedule-layout{min-width:0}
.contact-item strong,.row-line strong{overflow-wrap:anywhere}

.brand-carousel,.review-carousel{
  max-width:100%;
  overscroll-behavior-inline:contain;
}

.cta-panel{min-width:0;max-width:100%}
.footer-grid>*{min-width:0}

.whatsapp-float{
  right:max(18px,env(safe-area-inset-right));
  bottom:max(18px,env(safe-area-inset-bottom));
}

@media(max-width:1179px){
  .nav,.whatsapp-mini{display:none}
  .mobile-nav{display:block}

  .header .container{gap:16px}
  .brand img.logo{width:min(190px,42vw)}

  .hero-grid{grid-template-columns:1fr;gap:34px}
  .hero-copy{max-width:860px}
  .hero-media{max-width:840px;margin-inline:auto}
  .hero h1{max-width:15ch}

  .cards,.steps,.trust-grid,.tips-grid,.service-grid{--cols:2}
  .stats-grid{--cols:2}
}

@media(max-width:1080px){
  .schedule-layout{grid-template-columns:1fr}
  .schedule-sidebar{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:1020px){.contact-grid{grid-template-columns:1fr}}

@media(max-width:900px){
  .internal .service-hero-grid{grid-template-columns:1fr}
  .service-hero-copy{max-width:760px}
  .service-hero-media{max-width:620px;margin-inline:auto}

  .content-grid{grid-template-columns:1fr;gap:34px}
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-grid>:first-child{grid-column:1/-1}
}

@media(max-width:760px){
  .form-grid{grid-template-columns:1fr}
  .schedule-sidebar{grid-template-columns:1fr}
}

@media(max-width:680px){
  .section,.hero{padding-block:clamp(42px,8vw,54px)}
  .internal{padding-top:34px;padding-bottom:22px}
  .internal + .section{padding-top:32px}

  .cards,.steps,.trust-grid,.tips-grid,.service-grid,
  .services,.values,.stats-grid{--cols:1}

  .hero h1,.internal h1{
    font-size:clamp(2rem,9.4vw,2.7rem);
    line-height:1.07;
    letter-spacing:-.035em;
    max-width:none;
  }

  .internal h1{margin:9px 0 12px}
  .internal p{font-size:.98rem;line-height:1.55}

  .section h2{
    font-size:clamp(1.55rem,7vw,2.1rem);
    line-height:1.15;
  }

  .hero-points{grid-template-columns:1fr}
  .equipment-grid{grid-template-columns:1fr}
  .equipment-item{min-height:auto}
  .row-line{grid-template-columns:1fr;gap:4px}

  .actions{
    display:grid;
    grid-template-columns:1fr;
    width:100%;
  }
  .actions .button,.cta-panel .button{width:100%}
  .form{padding:22px 18px}

  .topbar .container{
    align-items:center;
    gap:4px 12px;
    font-size:.8rem;
  }
  .topbar .container>span{flex:1 1 190px}
  .topbar .container>a{flex:0 0 auto;white-space:nowrap}

  .whatsapp-tooltip{display:none!important}
  .whatsapp-float{
    right:max(14px,env(safe-area-inset-right));
    bottom:max(14px,env(safe-area-inset-bottom));
    width:58px;
    height:58px;
  }
}

@media(max-width:480px){
  .brand img.logo{width:150px}
  .header .container{padding-block:9px}
  .mobile-nav summary{padding:9px 12px}
  .mobile-nav div{
    right:0;
    width:calc(100vw - 20px);
    max-width:calc(100vw - 20px);
  }

  .hero{padding-top:38px}
  .hero h1,.internal h1{font-size:clamp(1.9rem,10vw,2.4rem)}
  .hero p,.internal p,.section-head p{font-size:.96rem}

  .card,.step,.trust-card,.tip-card,.schedule-box,.service-box,
  .contact-card,.mini-card,.stat-card{padding:20px}

  .showcase-head{padding:20px 18px 14px;align-items:flex-start;flex-direction:column}
  .equipment-grid{padding-inline:12px;padding-bottom:12px}
  .equipment-item{padding:16px}
  .showcase-footer{padding-inline:14px}

  .cta-panel{padding:24px 20px}
  .footer{padding-inline:0}
}

@media(min-width:1440px){
  .hero-grid{gap:64px}
  .internal h1{max-width:20ch}
}

@media(min-width:901px){
  .hero-grid{gap:clamp(34px,4vw,54px)}
  .hero-media{width:100%;margin-inline:auto}
  .hero-media img{
    width:100%;
    height:auto;
    aspect-ratio:auto;
    object-fit:contain;
    object-position:center;
  }

  .service-card-media{
    display:grid;
    place-items:center;
    aspect-ratio:4/3;
    padding:10px;
  }
  .service-card-media img{
    width:100%;
    height:100%;
    aspect-ratio:auto;
    object-fit:contain;
    object-position:center;
  }
  .service-card-body{padding:18px 20px 22px}

  .internal{
    padding-top:clamp(30px,3vw,42px);
    padding-bottom:clamp(12px,1.5vw,20px);
  }
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}

.brands-section{overflow:hidden}
.brands-section .section-head{margin-bottom:20px}
.brands-intro{max-width:650px;min-width:0}
.brands-intro p{margin:10px 0 0;color:var(--muted);font-size:.96rem}
.logo-carousel-tools{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.marquee-toggle{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--primary);box-shadow:0 7px 18px rgba(13,59,142,.08);cursor:pointer;font-weight:900;transition:transform .2s ease,border-color .2s ease,background .2s ease}
.marquee-toggle:hover{transform:translateY(-2px);border-color:#b9cfe3;background:#f8fbff}
.marquee-toggle:focus-visible,.logo-marquee:focus-visible{outline:3px solid #0d3b8e;outline-offset:4px}
.logo-marquee-shell{position:relative;width:100%;max-width:100%;overflow:hidden;margin-inline:0}
.logo-marquee-shell:before,.logo-marquee-shell:after{content:"";position:absolute;top:0;bottom:0;width:64px;z-index:3;pointer-events:none}
.logo-marquee-shell:before{left:0;background:linear-gradient(90deg,var(--bg),rgba(245,249,255,.9) 28%,rgba(245,249,255,0))}
.logo-marquee-shell:after{right:0;background:linear-gradient(270deg,var(--bg),rgba(245,249,255,.9) 28%,rgba(245,249,255,0))}
.logo-marquee{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;cursor:grab;padding:10px 4px 18px;user-select:none;touch-action:pan-x pan-y;overscroll-behavior-inline:contain;scroll-padding-inline:18px}
.logo-marquee::-webkit-scrollbar{display:none}
.logo-marquee.is-dragging{cursor:grabbing}
.logo-track{display:flex;width:max-content;max-width:none;will-change:transform}
.logo-set{display:flex;gap:18px;padding-right:18px}
.brand-logo{position:relative;flex:0 0 190px;height:112px;display:grid;place-items:center;padding:23px 24px;border:1px solid #dce7f4;border-radius:20px;background:rgba(255,255,255,.96);box-shadow:0 12px 30px rgba(13,59,142,.075);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,background .22s ease;overflow:hidden}
.brand-logo:hover{transform:translateY(-4px);border-color:#c4d8ea;background:#fff;box-shadow:0 18px 38px rgba(13,59,142,.13)}
.brand-logo img{display:block;width:auto;height:auto;max-width:142px;max-height:54px;object-fit:contain;filter:grayscale(1) saturate(.25);opacity:.66;transition:filter .25s ease,opacity .25s ease,transform .25s ease}
.brand-logo:hover img,.brand-logo:focus-within img{filter:none;opacity:1;transform:scale(1.035)}
.brand-logo.is-tall img{max-height:62px;max-width:132px}
.brand-logo.is-wide img{max-width:152px;max-height:48px}
.brand-fallback{display:none;color:var(--primary);font-size:1.02rem;font-weight:900;letter-spacing:.01em;text-align:center}
.brand-logo.image-missing img{display:none}
.brand-logo.image-missing .brand-fallback{display:block}
.logo-marquee-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@media(max-width:760px){
  .brands-section .section-head{gap:14px}
  .logo-carousel-tools{align-self:flex-start}
  .brand-logo{flex-basis:min(168px,44vw);height:98px;padding:18px}
  .brand-logo img{max-width:min(124px,32vw);max-height:46px}
  .brand-logo.is-tall img{max-height:52px;max-width:min(116px,30vw)}
  .brand-logo.is-wide img{max-width:min(132px,34vw);max-height:42px}
  .logo-set{gap:12px;padding-right:12px}
  .logo-marquee{padding-inline:2px;scroll-padding-inline:8px}
  .logo-marquee-shell:before,.logo-marquee-shell:after{width:18px}
  .logo-marquee-shell:before{background:linear-gradient(90deg,var(--bg),rgba(245,249,255,0))}
  .logo-marquee-shell:after{background:linear-gradient(270deg,var(--bg),rgba(245,249,255,0))}
  .marquee-toggle{width:40px;height:40px}
}

@media(max-width:480px){
  .brand-logo{flex-basis:min(152px,46vw);height:92px;padding:16px}
  .brand-logo img{max-width:min(116px,34vw);max-height:43px}
  .brand-logo.is-wide img{max-width:min(124px,36vw);max-height:40px}
  .logo-set{gap:10px;padding-right:10px}
  .logo-marquee-shell:before,.logo-marquee-shell:after{display:none}
}

@media(prefers-reduced-motion:reduce){
  .brand-logo,.brand-logo img,.marquee-toggle{transition:none}
}

html,body{max-width:100%;margin:0}
body{overflow-x:clip}
*,*::before,*::after{min-width:0}
img,picture,figure,video,iframe{max-width:100%}
figure{margin-inline:0}

h1,h2,h3,h4,p,a,span,strong,small,label,summary{
  max-width:100%;
  overflow-wrap:break-word;
  word-break:normal;
}

.container{
  width:min(1120px,calc(100% - 32px))!important;
  max-width:1120px!important;
  margin-inline:auto!important;
  padding-inline:0!important;
}

main,section,.hero,.internal,.section,.hero-grid,.contact-grid,.schedule-layout,
.service-grid,.service-hero-grid,.form,.form-grid,.schedule-sidebar,.cards,
.review-carousel,.logo-marquee-shell{min-width:0;max-width:100%}

.hero{
  overflow:visible!important;
  padding:clamp(38px,4.5vw,58px) 0 clamp(40px,4vw,54px)!important;
}
.hero-grid{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:clamp(30px,4vw,46px)!important;
  align-items:center!important;
}
.hero-copy{min-width:0;max-width:100%}
.hero-copy h1{
  max-width:650px!important;
  font-size:clamp(2.65rem,3.8vw,3.55rem)!important;
  line-height:1.035!important;
  letter-spacing:-.04em!important;
  margin:12px 0 14px!important;
}
.hero-copy>p{
  margin:0!important;
  max-width:625px!important;
  font-size:1rem!important;
  line-height:1.55!important;
}
.hero-copy .actions{margin-top:19px!important}
.hero-points{margin-top:18px!important;gap:9px!important}
.hero-points div{padding:12px 13px!important}

.hero-media{
  display:block!important;
  width:min(100%,540px)!important;
  max-width:540px!important;
  justify-self:center!important;
  margin-inline:auto!important;
  padding:10px!important;
  overflow:visible!important;
}
.hero-media picture{
  display:grid!important;
  place-items:center!important;
  width:100%!important;
  max-width:100%!important;
  aspect-ratio:1693/929!important;
  overflow:hidden!important;
  border-radius:18px!important;
  background:#eef7ff!important;
}
.hero-media picture>img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  margin:auto!important;
  object-fit:contain!important;
  object-position:center center!important;
  transform:none!important;
}
.hero-media figcaption{
  position:static!important;
  display:grid!important;
  gap:2px!important;
  width:100%!important;
  max-width:none!important;
  margin:9px 0 0!important;
  padding:11px 13px!important;
  border:0!important;
  border-radius:14px!important;
  background:#12365f!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
}

@media(min-width:1180px) and (max-height:850px){
  .hero{padding:28px 0 34px!important}
  .hero-grid{gap:32px!important}
  .hero-copy h1{
    font-size:clamp(2.55rem,3.4vw,3.05rem)!important;
    line-height:1.02!important;
    max-width:585px!important;
  }
  .hero-copy>p{font-size:.95rem!important;line-height:1.48!important}
  .hero-copy .actions{margin-top:14px!important}
  .hero-points{margin-top:14px!important;gap:7px!important}
  .hero-points div{padding:9px 11px!important}
  .hero-media{width:min(100%,485px)!important;max-width:485px!important}
  .hero-media figcaption{padding:9px 11px!important;margin-top:7px!important}
}

@media(max-width:1179px){
  .hero-grid{grid-template-columns:1fr!important;gap:26px!important}
  .hero-copy{width:100%;max-width:820px;margin-inline:auto}
  .hero-copy h1{max-width:740px!important;font-size:clamp(2.45rem,5.4vw,3.25rem)!important}
  .hero-media{width:min(100%,720px)!important;max-width:720px!important}
}

@media(max-width:900px){
  .hero{padding:30px 0 36px!important}
  .hero-grid{gap:20px!important}
  .hero-copy h1{font-size:clamp(2.25rem,7.4vw,2.95rem)!important;line-height:1.055!important}
  .hero-media{width:min(100%,620px)!important;max-width:620px!important}
  .hero-media picture{aspect-ratio:1/1!important}
  .hero-media picture>img{object-fit:contain!important;object-position:center!important}
}

@media(max-width:520px){
  .container{width:calc(100% - 24px)!important;max-width:none!important;padding-inline:0!important}
  .hero{padding:24px 0 30px!important}
  .hero-copy h1{font-size:clamp(2rem,9.4vw,2.42rem)!important;line-height:1.06!important;margin:10px 0 12px!important}
  .hero-copy>p{font-size:.96rem!important;line-height:1.5!important}
  .hero-media{width:100%!important;max-width:100%!important;padding:6px!important;border-radius:18px!important}
  .hero-media picture{border-radius:13px!important}
  .hero-media figcaption{font-size:.9rem!important}
  .hero-points{grid-template-columns:1fr!important;gap:7px!important}
  .actions{width:100%}
  .actions .button{width:100%}
}

.reviews-section{overflow:hidden!important}
.reviews-section .section-head{align-items:center!important}
.reviews-section .google-score{max-width:100%!important;flex-wrap:wrap!important}
.review-carousel{
  display:flex!important;
  width:100%!important;
  max-width:100%!important;
  gap:16px!important;
  overflow-x:auto!important;
  overflow-y:visible!important;
  scroll-snap-type:x mandatory!important;
  scroll-padding-inline:0!important;
  padding:5px 0 15px!important;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.review-carousel::-webkit-scrollbar{display:none}
.review-card{
  box-sizing:border-box!important;
  width:auto!important;
  max-width:none!important;
  min-width:0!important;
  min-height:230px!important;
  scroll-snap-align:start!important;
  scroll-snap-stop:always;
}
.reviews-section .carousel-controls{display:flex!important;align-self:center!important}
@media(min-width:1200px){.review-card{flex:0 0 calc((100% - 32px)/3)!important}}
@media(min-width:701px) and (max-width:1199px){.review-card{flex:0 0 calc((100% - 16px)/2)!important}}
@media(max-width:700px){
  .review-carousel{gap:12px!important;padding-inline:0!important}
  .review-card{flex:0 0 100%!important;width:100%!important;min-height:0!important}
  .reviews-section .carousel-controls{display:none!important}
}

.internal.service-detail-hero{overflow:visible!important}
.internal .service-hero-grid{
  grid-template-columns:minmax(0,1fr) minmax(240px,350px)!important;
  gap:clamp(24px,4vw,42px)!important;
  align-items:center!important;
}
.service-hero-copy{min-width:0}
.service-hero-media{
  display:grid!important;
  place-items:center!important;
  width:min(100%,350px)!important;
  max-width:350px!important;
  justify-self:center!important;
  margin-inline:auto!important;
  padding:10px!important;
  overflow:hidden!important;
}
.service-hero-media img{
  display:block!important;
  width:min(100%,300px)!important;
  max-width:300px!important;
  height:auto!important;
  aspect-ratio:1/1!important;
  margin-inline:auto!important;
  object-fit:contain!important;
  object-position:center!important;
}
@media(max-width:900px){
  .internal .service-hero-grid{grid-template-columns:1fr!important}
  .service-hero-copy{width:100%;max-width:760px;margin-inline:auto}
  .service-hero-media{width:min(100%,300px)!important;max-width:300px!important}
  .service-hero-media img{width:min(100%,265px)!important;max-width:265px!important}
}
@media(max-width:480px){
  .service-hero-media{width:min(100%,270px)!important;max-width:270px!important;padding:8px!important}
  .service-hero-media img{width:min(100%,238px)!important;max-width:238px!important}
}

.service-grid{align-items:stretch!important}
.service-card{min-width:0;height:100%;overflow:hidden!important}
.service-card-media{
  display:grid!important;
  place-items:center!important;
  width:100%!important;
  aspect-ratio:16/10!important;
  padding:14px!important;
  overflow:hidden!important;
}
.service-card-media img{
  display:block!important;
  width:auto!important;
  max-width:80%!important;
  height:100%!important;
  max-height:100%!important;
  aspect-ratio:auto!important;
  margin:auto!important;
  object-fit:contain!important;
  object-position:center!important;
}
.service-card-body{min-width:0}
.service-card-body h2{font-size:clamp(1.18rem,2vw,1.38rem)!important;line-height:1.2!important}
.service-card-body p{line-height:1.55!important}
@media(max-width:980px){.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:680px){
  .service-grid{grid-template-columns:1fr!important}
  .service-card-media{aspect-ratio:4/3!important;padding:11px!important}
  .service-card-media img{max-width:74%!important}
}

.contact-grid{
  grid-template-columns:minmax(250px,.78fr) minmax(0,1.22fr)!important;
  gap:clamp(22px,4vw,42px)!important;
  align-items:start!important;
}
.contact-list,.contact-item,.contact-grid .form{min-width:0;max-width:100%}
.contact-item strong{display:block;line-height:1.45;overflow-wrap:anywhere}
.contact-grid .form{width:100%;max-width:760px}
.contact-grid .form input,.contact-grid .form select,.contact-grid .form textarea{min-width:0;width:100%;max-width:100%}
@media(max-width:1020px){
  .contact-grid{grid-template-columns:1fr!important}
  .contact-list,.contact-grid .form{width:100%;max-width:780px;margin-inline:auto}
}

.schedule-layout{
  grid-template-columns:minmax(0,1.22fr) minmax(260px,.78fr)!important;
  gap:clamp(20px,3vw,30px)!important;
  align-items:start!important;
}
.schedule-form,.schedule-sidebar,.schedule-box{min-width:0;max-width:100%}
.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.form-grid label,.schedule-form label{min-width:0}
.form input,.form select,.form textarea{min-width:0;max-width:100%;width:100%}
.schedule-form .button,.calendar-link{white-space:normal!important;text-align:center!important;max-width:100%}
.row-line{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
.row-line strong{text-align:right;overflow-wrap:anywhere}
@media(max-width:1080px){
  .schedule-layout{grid-template-columns:1fr!important}
  .schedule-sidebar{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:760px){
  .form-grid{grid-template-columns:1fr!important}
  .schedule-sidebar{grid-template-columns:1fr!important}
  .schedule-form{padding:22px 18px!important}
}
@media(max-width:520px){
  .row-line{grid-template-columns:1fr!important;gap:2px!important}
  .row-line strong{text-align:left!important}
  .contact-item{padding:16px!important}
}

.internal,.internal .container,.section,.section .container{min-height:0!important;max-height:none!important;overflow:visible}
.internal h1,.internal p,.section h2,.section p{overflow:visible!important;text-overflow:clip!important}
.internal{padding-top:clamp(30px,4vw,50px)!important;padding-bottom:clamp(16px,2vw,26px)!important}
.internal + .section{padding-top:clamp(24px,3vw,42px)!important}

.button,.whatsapp-mini,.text-link{max-width:100%}
@media(max-width:520px){.button{white-space:normal!important;text-align:center!important}}
/* usability.css */
/*
 * D’orus — guardrails de usabilidade real
 * Protege leitura, viewport, formulários e acessibilidade sem substituir
 * componentes intencionais como carrosséis por grids artificiais.
 */

html,
body{
  max-width:100%!important;
  overflow-x:hidden!important;
}

main,
section,
.internal,
.section,
.hero,
.container{
  min-width:0!important;
  max-width:100%;
}

.container{overflow:visible!important}

.content-grid,
.contact-grid,
.schedule-layout,
.service-grid,
.cards,
.steps,
.trust-grid,
.tips-grid,
.values,
.services,
.stats-grid,
.faq,
.prose,
.contact-list,
.schedule-sidebar{
  min-width:0!important;
  max-width:100%!important;
}

.content-grid > *,
.contact-grid > *,
.schedule-layout > *,
.service-grid > *,
.cards > *,
.steps > *,
.trust-grid > *,
.tips-grid > *,
.values > *,
.services > *,
.stats-grid > *{
  min-width:0!important;
  max-width:100%!important;
}

h1,h2,h3,h4,p,a,strong,small,label,summary,button{
  max-width:100%!important;
}

/* Títulos podem quebrar entre palavras, mas nunca no meio delas. */
h1,h2,h3,h4{
  overflow-wrap:normal!important;
  word-break:normal!important;
  hyphens:none!important;
  text-wrap:balance;
}

.card,
.step,
.trust-card,
.tip-card,
.schedule-box,
.service-box,
.contact-card,
.mini-card,
.stat-card,
.contact-item{
  height:auto!important;
  max-height:none!important;
}

.form,
.form input,
.form select,
.form textarea,
.form button,
.button,
.whatsapp-mini{
  min-width:0!important;
  max-width:100%!important;
}

/* Densidade visual: evita seções excessivamente altas em telas grandes. */
.section{
  padding-top:clamp(48px,5vw,64px)!important;
  padding-bottom:clamp(48px,5vw,64px)!important;
}
.internal + .section{padding-top:clamp(30px,3.2vw,44px)!important}
.section-head{margin-bottom:clamp(20px,2.3vw,28px)!important}

/*
 * Avaliações: mantém a apresentação horizontal definida em layout.css.
 * A largura é calculada para mostrar cartões inteiros: 3 no desktop,
 * 2 no tablet e 1 no celular. Nada de grid forçado.
 */
.reviews-section{overflow:hidden!important}
.reviews-section .google-score{max-width:100%!important;flex-wrap:wrap!important}
.review-carousel{
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
.review-card{
  box-sizing:border-box!important;
  height:auto!important;
  max-height:none!important;
  min-height:190px!important;
  padding:21px!important;
}
.review-card p{line-height:1.55!important;font-size:.95rem!important}
.review-top{margin-bottom:13px!important}
.review-card .stars{margin-bottom:11px!important}

/*
 * Marcas: o marquee é um componente intencional. Mantemos movimento,
 * controle de pausa, swipe e logos com dimensões previsíveis.
 */
.brands-section{overflow:hidden!important}
.logo-carousel-tools{display:flex!important}
.logo-marquee-shell{
  width:100%!important;
  max-width:100%!important;
  overflow:hidden!important;
}
.logo-marquee{
  width:100%!important;
  max-width:100%!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
}
.logo-track{display:flex!important;width:max-content!important;max-width:none!important}
.logo-set{display:flex!important;width:max-content!important;max-width:none!important}
.logo-set[aria-hidden="true"]{display:flex!important}
.brand-logo{
  flex:0 0 180px!important;
  width:180px!important;
  max-width:180px!important;
  height:102px!important;
}

/* Sobre: quatro valores compactos no desktop; leitura progressiva nas menores telas. */
.values{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:16px!important;
}
.values .card{padding:22px!important}

/* Rodapé: preserva hierarquia sem criar um bloco escuro desproporcional. */
.footer{
  margin-top:0!important;
  padding-top:32px!important;
  padding-bottom:24px!important;
}
.footer-grid{gap:18px!important}
.footer img{height:68px!important;margin-bottom:8px!important}
.footer-bottom{margin-top:18px!important;padding-top:15px!important}
.footer > .footer-bottom:first-child{
  margin-top:0!important;
  padding-top:0!important;
  border-top:0!important;
}

.content-grid{
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)!important;
  gap:clamp(30px,4vw,48px)!important;
}

/* Em telas muito largas o layout deixa de parecer pequeno no centro. */
@media(min-width:1600px){
  .container{
    width:min(1280px,calc(100% - 64px))!important;
    max-width:1280px!important;
  }
  .hero-media{max-width:585px!important}
  .hero-copy h1{max-width:700px!important}
  .review-card{min-height:180px!important}
}

@media(max-width:1050px){
  .content-grid{grid-template-columns:1fr!important;gap:28px!important}
  .values{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

@media(max-width:760px){
  .section{
    padding-top:clamp(40px,8vw,52px)!important;
    padding-bottom:clamp(40px,8vw,52px)!important;
  }
  .section-head{align-items:flex-start!important}
  .review-card{min-height:0!important;padding:20px!important}
  .brand-logo{
    flex-basis:min(164px,44vw)!important;
    width:min(164px,44vw)!important;
    max-width:min(164px,44vw)!important;
    height:96px!important;
  }
}

@media(max-width:560px){
  .values{grid-template-columns:1fr!important;gap:12px!important}
  .values .card{padding:19px!important}
  .footer{padding-top:26px!important;padding-bottom:20px!important}
}

html.a11y-large-text .values,
html.a11y-larger-text .values{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}

@media(max-width:760px){
  html.a11y-large-text .values,
  html.a11y-larger-text .values{grid-template-columns:1fr!important}
}

@media(prefers-reduced-motion:reduce){
  .review-carousel,
  .logo-track,
  .brand-logo{
    scroll-behavior:auto!important;
    animation:none!important;
    transition:none!important;
  }
}
/* conversion-enhancements.css */
@import url('home-ux.css');

:root{
  /* Contraste AA com texto branco (aprox. 4,9:1). */
  --success:#12823a;
}

.service-breadcrumb{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin:0 0 16px;
  color:var(--muted);
  font-size:.86rem;
}
.service-breadcrumb a{color:var(--primary);font-weight:700}
.service-breadcrumb a:hover{text-decoration:underline}
.service-breadcrumb .separator{color:#9aabc0}

.related-services{
  padding:clamp(46px,6vw,72px) 0;
  background:#fff;
  border-top:1px solid var(--line);
}
.related-services-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
  margin-bottom:24px;
}
.related-services-head h2{
  margin:7px 0 0;
  color:var(--dark);
  font-size:clamp(1.6rem,2.7vw,2.35rem);
  line-height:1.12;
  letter-spacing:-.03em;
}
.related-services-head>a{color:var(--primary);font-weight:800}
.related-service-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.related-service-card{
  min-width:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:20px;
  background:#fff;
  box-shadow:0 14px 34px rgba(13,59,142,.08);
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.related-service-card:hover,
.related-service-card:focus-visible{
  transform:translateY(-3px);
  border-color:#b9cfe3;
  box-shadow:0 18px 38px rgba(13,59,142,.13);
}
.related-service-card picture{
  display:grid;
  place-items:center;
  width:100%;
  aspect-ratio:4/3;
  padding:10px;
  background:linear-gradient(180deg,#f4f9ff,#fff);
}
.related-service-card img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
}
.related-service-copy{padding:17px 19px 20px}
.related-service-copy strong{display:block;color:var(--dark);font-size:1.04rem}
.related-service-copy span{display:block;margin-top:5px;color:var(--primary);font-size:.88rem;font-weight:800}

@media(max-width:900px){
  .related-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .related-services{padding-block:42px}
  .related-service-grid{grid-template-columns:1fr}
  .related-services-head{align-items:flex-start;flex-direction:column}
  .related-service-card picture{aspect-ratio:16/10}
}

@media(prefers-reduced-motion:reduce){
  .related-service-card{transition:none}
}
/* privacy.css */
.cookie-banner{
  position:fixed;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  z-index:980;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:20px;
  align-items:center;
  width:min(920px,calc(100% - 32px));
  padding:18px 20px;
  border:1px solid #c8d9ea;
  border-radius:18px;
  background:rgba(255,255,255,.98);
  color:#223042;
  box-shadow:0 20px 54px rgba(16,32,55,.24);
  backdrop-filter:blur(10px);
}
.cookie-copy{min-width:0}
.cookie-copy strong{display:block;color:#102037;font-size:1rem}
.cookie-copy p{margin:4px 0 5px;color:#596f86;font-size:.9rem;line-height:1.45}
.cookie-copy a{color:#0d3b8e;font-size:.86rem;font-weight:800;text-decoration:underline;text-underline-offset:3px}
.cookie-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.cookie-actions button{
  min-height:44px;
  padding:10px 15px;
  border-radius:999px;
  font-weight:800;
  cursor:pointer;
}
.cookie-essential{border:1px solid #bfd1e3;background:#fff;color:#173b66}
.cookie-accept{border:1px solid #12823a;background:#12823a;color:#fff}
.cookie-settings-link{
  border:0;
  padding:0;
  background:transparent;
  color:inherit;
  font:inherit;
  text-decoration:underline;
  text-underline-offset:3px;
  cursor:pointer;
}

@media(max-width:760px){
  .cookie-banner{grid-template-columns:1fr;gap:14px;bottom:10px;width:calc(100% - 20px);padding:16px}
  .cookie-actions{justify-content:stretch}
  .cookie-actions button{flex:1 1 160px}
}

@media(max-width:420px){
  .cookie-actions{display:grid;grid-template-columns:1fr}
  .cookie-actions button{width:100%}
}

@media(prefers-reduced-motion:reduce){.cookie-banner{backdrop-filter:none}}
/* ui-final.css */
/* Camada final de interface — bugs encontrados em QA */

html,body{max-width:100%;overflow-x:clip}
*,*::before,*::after{box-sizing:border-box;min-width:0}
img,picture,figure,video,iframe{max-width:100%}
figure{margin:0}

.container{
  width:min(1120px,calc(100% - 32px))!important;
  max-width:1120px!important;
  margin-inline:auto!important;
  padding-inline:0!important;
}

/* Home: primeira dobra equilibrada e sem corte */
.hero{
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
  padding:clamp(34px,4vw,56px) 0 clamp(40px,4vw,56px)!important;
}
.hero-grid{
  display:grid!important;
  grid-template-columns:minmax(0,.94fr) minmax(420px,1.06fr)!important;
  gap:clamp(28px,4vw,50px)!important;
  align-items:center!important;
}
.hero-copy{width:100%;max-width:590px!important}
.hero-copy h1{
  max-width:12.5ch!important;
  margin:10px 0 14px!important;
  font-size:clamp(2.55rem,3.55vw,3.45rem)!important;
  line-height:1.04!important;
  letter-spacing:-.04em!important;
  text-wrap:balance;
}
.hero-copy>p{
  max-width:58ch!important;
  margin:0!important;
  font-size:1rem!important;
  line-height:1.55!important;
}
.hero-copy .actions{margin-top:20px!important}
.hero-points{margin-top:22px!important}

.hero-media{
  position:relative!important;
  display:block!important;
  width:100%!important;
  max-width:590px!important;
  justify-self:center!important;
  margin-inline:auto!important;
  padding:10px!important;
  overflow:hidden!important;
  border-radius:24px!important;
}
.hero-media picture{
  display:block!important;
  width:100%!important;
  aspect-ratio:1693/929!important;
  overflow:hidden!important;
  border-radius:17px!important;
}
.hero-media picture>img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  margin:0 auto!important;
  object-fit:contain!important;
  object-position:center!important;
  transform:none!important;
  border-radius:17px!important;
}
.hero-media figcaption{
  position:absolute!important;
  top:16px!important;
  left:16px!important;
  width:min(300px,calc(100% - 32px))!important;
  max-width:calc(100% - 32px)!important;
}

/* Notebook com pouca altura: não deixar título empurrar o restante da dobra */
@media (min-width:1180px) and (max-height:820px){
  .hero{padding:30px 0 38px!important}
  .hero-grid{gap:32px!important}
  .hero-copy h1{font-size:clamp(2.35rem,3.2vw,3rem)!important;max-width:13.5ch!important}
  .hero-copy>p{font-size:.96rem!important;line-height:1.45!important}
  .hero-copy .actions{margin-top:16px!important}
  .hero-points{margin-top:16px!important}
  .hero-points div{padding:10px 12px!important}
  .hero-media{max-width:540px!important}
}

@media(max-width:1179px){
  .hero-grid{grid-template-columns:1fr!important;gap:28px!important}
  .hero-copy{max-width:780px!important;margin-inline:auto!important}
  .hero-copy h1{max-width:16ch!important}
  .hero-media{max-width:760px!important}
}

@media(max-width:900px){
  .hero{padding:36px 0 44px!important}
  .hero-copy h1{font-size:clamp(2.2rem,7.6vw,3.15rem)!important;max-width:none!important}
  .hero-media{max-width:620px!important;padding:8px!important}
  .hero-media picture{aspect-ratio:1/1!important}
  .hero-media picture>img{object-fit:contain!important;object-position:center!important}
  .hero-media figcaption{
    position:static!important;
    width:100%!important;
    max-width:none!important;
    margin-top:8px!important;
    padding:12px 14px!important;
  }
}

@media(max-width:520px){
  .container{width:calc(100% - 24px)!important}
  .hero{padding:28px 0 36px!important}
  .hero-copy h1{font-size:clamp(1.95rem,9.2vw,2.35rem)!important;line-height:1.08!important;letter-spacing:-.03em!important}
  .hero-copy>p{font-size:.96rem!important}
  .hero-points{grid-template-columns:1fr!important;gap:8px!important}
  .hero-media{max-width:100%!important}
}

/* Avaliações: permanecer dentro da seção e sem cards estreitos */
.reviews-section{position:relative!important;overflow:hidden!important}
.review-carousel{
  display:flex!important;
  width:100%!important;
  gap:16px!important;
  overflow-x:auto!important;
  overflow-y:visible!important;
  scroll-snap-type:x mandatory!important;
  padding:6px 0 16px!important;
  scrollbar-width:none;
}
.review-carousel::-webkit-scrollbar{display:none}
.review-card{
  box-sizing:border-box!important;
  width:auto!important;
  max-width:none!important;
  min-width:0!important;
  scroll-snap-align:start!important;
}
@media(min-width:1200px){.review-card{flex:0 0 calc((100% - 32px)/3)!important}}
@media(min-width:701px) and (max-width:1199px){.review-card{flex:0 0 calc((100% - 16px)/2)!important}}
@media(max-width:700px){
  .review-carousel{gap:12px!important}
  .review-card{flex:0 0 100%!important;width:100%!important;min-height:0!important}
  .reviews-section .carousel-controls{display:none!important}
}

/* Detalhes dos serviços: produto menor e centralizado */
.internal.service-detail-hero{overflow:visible!important}
.internal .service-hero-grid{
  grid-template-columns:minmax(0,1fr) minmax(260px,360px)!important;
  gap:clamp(24px,4vw,44px)!important;
  align-items:center!important;
}
.service-hero-media{
  display:grid!important;
  place-items:center!important;
  width:min(100%,350px)!important;
  max-width:350px!important;
  justify-self:center!important;
  margin-inline:auto!important;
  padding:12px!important;
  overflow:hidden!important;
}
.service-hero-media picture{display:grid!important;place-items:center!important;width:100%!important}
.service-hero-media img{
  display:block!important;
  width:min(100%,305px)!important;
  max-width:305px!important;
  height:auto!important;
  aspect-ratio:1/1!important;
  margin-inline:auto!important;
  object-fit:contain!important;
  object-position:center!important;
}
@media(max-width:900px){
  .internal .service-hero-grid{grid-template-columns:1fr!important}
  .service-hero-media{max-width:310px!important}
  .service-hero-media img{max-width:272px!important}
}
@media(max-width:480px){
  .service-hero-media{max-width:275px!important;padding:8px!important}
  .service-hero-media img{max-width:240px!important}
}

/* Página Serviços: imagens completas, centralizadas e cards equilibrados */
.service-grid{align-items:stretch!important}
.service-card{height:100%!important;overflow:hidden!important}
.service-card-media{
  display:grid!important;
  place-items:center!important;
  width:100%!important;
  aspect-ratio:16/10!important;
  padding:14px!important;
  overflow:hidden!important;
}
.service-card-media img{
  display:block!important;
  width:auto!important;
  max-width:82%!important;
  height:100%!important;
  max-height:100%!important;
  margin:auto!important;
  object-fit:contain!important;
  object-position:center!important;
}
@media(max-width:980px){.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:680px){
  .service-grid{grid-template-columns:1fr!important}
  .service-card-media{aspect-ratio:4/3!important}
  .service-card-media img{max-width:76%!important}
}

/* Fale conosco e Agendamento: quebrar cedo antes do conteúdo apertar */
.contact-grid{
  grid-template-columns:minmax(250px,.78fr) minmax(0,1.22fr)!important;
  gap:clamp(22px,4vw,42px)!important;
  align-items:start!important;
}
.contact-list,.contact-item,.contact-grid .form{min-width:0;max-width:100%}
.contact-item strong{display:block;overflow-wrap:anywhere}
.contact-grid .form{width:100%!important;max-width:760px!important}

.schedule-layout{
  grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr)!important;
  gap:clamp(20px,3vw,30px)!important;
  align-items:start!important;
}
.schedule-form,.schedule-sidebar,.schedule-box{min-width:0;max-width:100%}
.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.form input,.form select,.form textarea{width:100%!important;min-width:0!important;max-width:100%!important}
.row-line{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
.row-line strong{text-align:right;overflow-wrap:anywhere}

@media(max-width:1020px){
  .contact-grid,.schedule-layout{grid-template-columns:1fr!important}
  .contact-list,.contact-grid .form,.schedule-form,.schedule-sidebar{width:100%!important;max-width:780px!important;margin-inline:auto!important}
  .schedule-sidebar{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:760px){
  .form-grid,.schedule-sidebar{grid-template-columns:1fr!important}
  .schedule-form{padding:22px 18px!important}
}
@media(max-width:520px){
  .row-line{grid-template-columns:1fr!important;gap:2px!important}
  .row-line strong{text-align:left!important}
}

/* Conteúdo interno nunca deve ser recortado por altura fixa */
.internal,.internal .container,.section,.section .container{
  min-height:0!important;
  max-height:none!important;
  overflow:visible;
}
.internal h1,.internal p,.section h2,.section p{
  overflow:visible!important;
  text-overflow:clip!important;
}
.internal{padding-top:clamp(30px,4vw,50px)!important;padding-bottom:clamp(16px,2vw,26px)!important}
.internal + .section{padding-top:clamp(24px,3vw,42px)!important}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
/* compact-pages.css */
/* Compactação das páginas internas com muito espaço vertical.
   Mantém a Home e os detalhes individuais dos serviços inalterados. */

:where(
  body:has(.service-grid),
  body:has(.tips),
  body:has(.schedule-layout),
  body:has(.contact-grid)
) .internal{
  padding:22px 0 12px!important;
}

:where(
  body:has(.service-grid),
  body:has(.tips),
  body:has(.schedule-layout),
  body:has(.contact-grid)
) .internal h1{
  max-width:900px!important;
  margin:6px 0 8px!important;
  font-size:clamp(2rem,3vw,2.65rem)!important;
  line-height:1.06!important;
  letter-spacing:-.025em!important;
}

:where(
  body:has(.service-grid),
  body:has(.tips),
  body:has(.schedule-layout),
  body:has(.contact-grid)
) .internal p{
  max-width:790px!important;
  margin:0!important;
  font-size:.96rem!important;
  line-height:1.48!important;
}

:where(
  body:has(.service-grid),
  body:has(.tips),
  body:has(.schedule-layout),
  body:has(.contact-grid)
) .internal + .section{
  padding-top:16px!important;
  padding-bottom:34px!important;
}

/* Serviços */
body:has(.service-grid) .service-grid{
  gap:16px!important;
}
body:has(.service-grid) .service-card-media{
  aspect-ratio:16/8.6!important;
  padding:10px!important;
}
body:has(.service-grid) .service-card-media img{
  max-width:72%!important;
}
body:has(.service-grid) .service-card-body,
body:has(.service-grid) .service-grid > .card:not(.service-card){
  padding:16px 18px!important;
}
body:has(.service-grid) .service-card-body h2,
body:has(.service-grid) .service-grid > .card h2{
  margin-bottom:6px!important;
  font-size:1.12rem!important;
}
body:has(.service-grid) .service-card-body p,
body:has(.service-grid) .service-grid > .card p{
  margin-bottom:10px!important;
  line-height:1.45!important;
}
body:has(.service-grid) .section-soft{
  padding-top:28px!important;
  padding-bottom:28px!important;
}

/* Curiosidades */
body:has(.tips) .tips{
  gap:16px!important;
}
body:has(.tips) .tips .card{
  padding:18px 20px!important;
}
body:has(.tips) .tips h2{
  margin:6px 0 7px!important;
  font-size:1.18rem!important;
  line-height:1.18!important;
}
body:has(.tips) .tips p{
  margin:0!important;
  line-height:1.45!important;
}

/* Agendamento */
body:has(.schedule-layout) .schedule-layout{
  gap:20px!important;
}
body:has(.schedule-layout) .schedule-form{
  padding:24px!important;
}
body:has(.schedule-layout) .form-heading{
  margin-bottom:16px!important;
}
body:has(.schedule-layout) .form-heading h2{
  margin:5px 0 6px!important;
  font-size:1.75rem!important;
}
body:has(.schedule-layout) .form-grid{
  gap:12px 14px!important;
}
body:has(.schedule-layout) .form label{
  gap:5px!important;
}
body:has(.schedule-layout) .form input,
body:has(.schedule-layout) .form select{
  min-height:44px!important;
  padding:9px 11px!important;
}
body:has(.schedule-layout) .form textarea{
  min-height:88px!important;
  padding:10px 11px!important;
}
body:has(.schedule-layout) .schedule-sidebar{
  gap:16px!important;
}
body:has(.schedule-layout) .schedule-box{
  padding:20px!important;
}
body:has(.schedule-layout) .schedule-box h2{
  margin:6px 0 12px!important;
  font-size:1.65rem!important;
  line-height:1.1!important;
}
body:has(.schedule-layout) .schedule-steps{
  gap:10px!important;
}
body:has(.schedule-layout) .schedule-disclaimer{
  margin-top:12px!important;
}

/* Fale conosco */
body:has(.contact-grid) .contact-grid{
  gap:24px!important;
}
body:has(.contact-grid) .contact-list{
  gap:12px!important;
}
body:has(.contact-grid) .contact-item{
  padding:15px 17px!important;
}
body:has(.contact-grid) .contact-grid .form{
  padding:24px!important;
}
body:has(.contact-grid) .contact-grid .form h2{
  margin:5px 0 5px!important;
  font-size:1.75rem!important;
}
body:has(.contact-grid) .contact-grid .form input,
body:has(.contact-grid) .contact-grid .form select{
  min-height:44px!important;
  padding:9px 11px!important;
}
body:has(.contact-grid) .contact-grid .form textarea{
  min-height:96px!important;
  padding:10px 11px!important;
}

@media(max-width:760px){
  :where(
    body:has(.service-grid),
    body:has(.tips),
    body:has(.schedule-layout),
    body:has(.contact-grid)
  ) .internal{
    padding:18px 0 10px!important;
  }

  :where(
    body:has(.service-grid),
    body:has(.tips),
    body:has(.schedule-layout),
    body:has(.contact-grid)
  ) .internal h1{
    margin:5px 0 7px!important;
    font-size:clamp(1.75rem,7.8vw,2.1rem)!important;
    line-height:1.08!important;
  }

  :where(
    body:has(.service-grid),
    body:has(.tips),
    body:has(.schedule-layout),
    body:has(.contact-grid)
  ) .internal p{
    font-size:.94rem!important;
  }

  :where(
    body:has(.service-grid),
    body:has(.tips),
    body:has(.schedule-layout),
    body:has(.contact-grid)
  ) .internal + .section{
    padding-top:12px!important;
    padding-bottom:28px!important;
  }

  body:has(.service-grid) .service-grid{gap:12px!important}
  body:has(.service-grid) .service-card-media{aspect-ratio:16/9!important;padding:8px!important}
  body:has(.service-grid) .service-card-media img{max-width:68%!important}
  body:has(.service-grid) .service-card-body,
  body:has(.service-grid) .service-grid > .card:not(.service-card){padding:14px 16px!important}

  body:has(.tips) .tips{gap:12px!important}
  body:has(.tips) .tips .card{padding:16px 17px!important}

  body:has(.schedule-layout) .schedule-form{padding:18px 15px!important}
  body:has(.schedule-layout) .schedule-box{padding:18px!important}
  body:has(.schedule-layout) .schedule-box h2{font-size:1.5rem!important}

  body:has(.contact-grid) .contact-grid{gap:16px!important}
  body:has(.contact-grid) .contact-grid .form{padding:18px!important}
  body:has(.contact-grid) .contact-item{padding:14px 15px!important}
}

/* Mantido separado para facilitar QA e futura consolidação. */
/* home-ux.css */
/* D’orus — composição da primeira dobra da Home
 * Regra de severidade HIGH: em desktop o hero deve apresentar título,
 * imagem, CTAs e indicadores sem aparência comprimida ou corte na dobra.
 */

@media (min-width:1180px){
  .hero > .container.hero-grid{
    width:min(1320px,calc(100% - 64px))!important;
    max-width:1320px!important;
    grid-template-columns:minmax(0,1.12fr) minmax(440px,.88fr)!important;
    gap:clamp(42px,4vw,68px)!important;
    align-items:center!important;
  }

  .hero{
    padding:clamp(26px,2.7vw,38px) 0 clamp(28px,2.8vw,40px)!important;
  }

  .hero-copy{
    max-width:720px!important;
    align-self:center!important;
  }

  .hero-copy h1{
    max-width:700px!important;
    font-size:clamp(2.7rem,3.25vw,3.55rem)!important;
    line-height:1.015!important;
    letter-spacing:-.045em!important;
    margin:9px 0 13px!important;
    text-wrap:balance!important;
  }

  .hero-copy > p{
    max-width:670px!important;
    font-size:clamp(.96rem,1vw,1.04rem)!important;
    line-height:1.5!important;
  }

  .hero-copy .actions{
    margin-top:16px!important;
    gap:12px!important;
  }

  .hero-points{
    margin-top:15px!important;
    gap:10px!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }

  .hero-points > div{
    padding:10px 12px!important;
    min-height:68px!important;
  }

  .hero-points strong{
    font-size:1rem!important;
    line-height:1.15!important;
  }

  .hero-points span{
    font-size:.78rem!important;
    line-height:1.25!important;
  }

  .hero-media{
    width:min(100%,540px)!important;
    max-width:540px!important;
    justify-self:end!important;
    margin:0!important;
  }
}

@media (min-width:1180px) and (max-height:820px){
  .hero{
    padding:20px 0 24px!important;
  }

  .hero-copy h1{
    font-size:clamp(2.45rem,3vw,3.15rem)!important;
    margin:7px 0 10px!important;
  }

  .hero-copy > p{
    font-size:.94rem!important;
    line-height:1.43!important;
  }

  .hero-copy .actions{
    margin-top:12px!important;
  }

  .hero-points{
    margin-top:11px!important;
  }

  .hero-points > div{
    min-height:60px!important;
    padding:8px 10px!important;
  }

  .hero-media{
    width:min(100%,500px)!important;
    max-width:500px!important;
  }
}

@media (min-width:1600px){
  .hero > .container.hero-grid{
    width:min(1360px,calc(100% - 80px))!important;
    max-width:1360px!important;
  }

  .hero-copy h1{
    max-width:740px!important;
  }

  .hero-media{
    width:min(100%,560px)!important;
    max-width:560px!important;
  }
}

@media (max-width:1179px){
  .hero > .container.hero-grid{
    width:min(900px,calc(100% - 40px))!important;
    max-width:900px!important;
  }

  .hero-copy h1{
    max-width:800px!important;
    text-wrap:balance!important;
  }
}

@media (max-width:700px){
  .hero > .container.hero-grid{
    width:calc(100% - 28px)!important;
    max-width:none!important;
  }

  .hero{
    padding:24px 0 30px!important;
  }

  .hero-copy h1{
    font-size:clamp(2rem,9.2vw,2.48rem)!important;
    line-height:1.055!important;
    margin:9px 0 12px!important;
  }

  .hero-copy .actions{
    margin-top:16px!important;
  }
}

/* CTAs finais — compactação e alinhamento consistente em todas as páginas */
.section:has(> .cta-panel){
  padding-top:clamp(36px,4vw,50px)!important;
  padding-bottom:clamp(36px,4vw,50px)!important;
}

.section > .cta-panel{
  width:min(1320px,calc(100% - 64px))!important;
  max-width:1320px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:clamp(28px,4vw,54px)!important;
  padding:clamp(26px,3vw,36px) clamp(28px,3.5vw,44px)!important;
  min-height:0!important;
}

.section > .cta-panel > div:first-child{
  max-width:820px!important;
}

.section > .cta-panel h2{
  max-width:760px!important;
  margin:8px 0 10px!important;
  font-size:clamp(2rem,3vw,3rem)!important;
  line-height:1.06!important;
  letter-spacing:-.04em!important;
  text-wrap:balance!important;
}

.section > .cta-panel p{
  margin:0!important;
  max-width:760px!important;
  line-height:1.5!important;
}

.section > .cta-panel .actions{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-end!important;
  flex-wrap:wrap!important;
  gap:12px!important;
  width:auto!important;
  margin:0!important;
}

.section > .cta-panel .actions .button,
.section > .cta-panel > .button{
  width:auto!important;
  min-width:170px!important;
  justify-content:center!important;
  white-space:nowrap!important;
}

@media (max-width:900px){
  .section > .cta-panel{
    width:min(900px,calc(100% - 40px))!important;
    max-width:900px!important;
    grid-template-columns:1fr!important;
    gap:22px!important;
    padding:28px!important;
  }

  .section > .cta-panel .actions{
    justify-content:flex-start!important;
  }
}

@media (max-width:560px){
  .section:has(> .cta-panel){
    padding-top:30px!important;
    padding-bottom:30px!important;
  }

  .section > .cta-panel{
    width:calc(100% - 28px)!important;
    padding:22px 18px!important;
    gap:18px!important;
  }

  .section > .cta-panel h2{
    font-size:clamp(1.75rem,8vw,2.15rem)!important;
    line-height:1.08!important;
  }

  .section > .cta-panel .actions{
    display:grid!important;
    grid-template-columns:1fr!important;
    width:100%!important;
  }

  .section > .cta-panel .actions .button,
  .section > .cta-panel > .button{
    width:100%!important;
    min-width:0!important;
  }
}
/* accessibility-contrast.css */
/* Correcoes de alto contraste — preserva navegacao, painel e foco. */
html.a11y-high-contrast body,
html.a11y-high-contrast .topbar,
html.a11y-high-contrast .header,
html.a11y-high-contrast .header .container,
html.a11y-high-contrast .nav,
html.a11y-high-contrast .mobile-nav,
html.a11y-high-contrast .mobile-nav summary,
html.a11y-high-contrast .mobile-nav div,
html.a11y-high-contrast .hero,
html.a11y-high-contrast .internal,
html.a11y-high-contrast .section,
html.a11y-high-contrast .section-soft,
html.a11y-high-contrast .section-blue,
html.a11y-high-contrast .card,
html.a11y-high-contrast .trust-card,
html.a11y-high-contrast .service-card,
html.a11y-high-contrast .review-card,
html.a11y-high-contrast .form,
html.a11y-high-contrast .contact-item,
html.a11y-high-contrast .schedule-box,
html.a11y-high-contrast .cta-panel,
html.a11y-high-contrast .footer,
html.a11y-high-contrast .a11y-panel,
html.a11y-high-contrast .a11y-launcher{
  background:#000!important;
  color:#fff!important;
  border-color:#fff!important;
  box-shadow:none!important;
}
html.a11y-high-contrast .nav a,
html.a11y-high-contrast .mobile-nav a,
html.a11y-high-contrast .mobile-nav summary,
html.a11y-high-contrast .footer a,
html.a11y-high-contrast h1,
html.a11y-high-contrast h2,
html.a11y-high-contrast h3,
html.a11y-high-contrast h4,
html.a11y-high-contrast p,
html.a11y-high-contrast span,
html.a11y-high-contrast strong,
html.a11y-high-contrast small,
html.a11y-high-contrast label,
html.a11y-high-contrast .eyebrow,
html.a11y-high-contrast .kicker,
html.a11y-high-contrast .text-link{
  color:#fff!important;
}
html.a11y-high-contrast .nav a,
html.a11y-high-contrast .mobile-nav a{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  background:#000!important;
}
html.a11y-high-contrast .mobile-nav div{
  border:1px solid #fff!important;
}
html.a11y-high-contrast input,
html.a11y-high-contrast select,
html.a11y-high-contrast textarea,
html.a11y-high-contrast button,
html.a11y-high-contrast .button,
html.a11y-high-contrast .whatsapp-mini,
html.a11y-high-contrast .a11y-action,
html.a11y-high-contrast .a11y-reset{
  background:#000!important;
  color:#fff!important;
  border-color:#fff!important;
}
html.a11y-high-contrast a{text-decoration:underline!important;text-decoration-thickness:2px!important}
html.a11y-high-contrast a:focus-visible,
html.a11y-high-contrast button:focus-visible,
html.a11y-high-contrast input:focus-visible,
html.a11y-high-contrast select:focus-visible,
html.a11y-high-contrast textarea:focus-visible,
html.a11y-high-contrast summary:focus-visible{
  outline:3px solid #ff0!important;
  outline-offset:3px!important;
}
html.a11y-high-contrast .hero-media,
html.a11y-high-contrast .service-hero-media,
html.a11y-high-contrast .service-card-media{background:#000!important;border-color:#fff!important}
html.a11y-high-contrast .hero-media figcaption{background:#000!important;color:#fff!important;border-color:#fff!important}
