/* Shared visual refinement. All content and service data remain in the HTML. */
:root {
  --surface: #ffffff;
  --surface-container: #edf2ee;
  --surface-container-low: #f4f7f5;
  --surface-gray: #f4f7f5;
  --on-surface: #102b1a;
  --on-surface-variant: #4b5d51;
  --outline: #617167;
  --outline-variant: #dce5df;
  --radius: .75rem;
  --radius-lg: 1rem;
  --radius-xl: 1.5rem;
  --container-max: 1320px;
}
body { background: var(--surface); }
::selection { background: var(--secondary-container); color: var(--primary); }
html { scrollbar-color: #6d8976 #edf2ee; scroll-padding-top: 100px; }
input, textarea { caret-color: var(--primary-container); }
a { text-underline-offset: .25em; }
button, input, select, textarea { font: inherit; }
a:focus-visible, button:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid #548900;
  outline-offset: 5px;
}
.container { padding-inline: clamp(20px, 4.5vw, 64px); }
.section { padding-block: clamp(60px, 7vw, 104px); }
.section-title, .plan-section-header h2 {
  font-size: clamp(1.9rem, 3.1vw, 2.8rem);
  line-height: 1.12;
  letter-spacing: -.035em;
  font-weight: 800;
  text-wrap: balance;
}
.section-subtitle { font-size: 1rem; line-height: 1.75; max-width: 65ch; }
.section-header.center .section-subtitle { margin-inline: auto; }
.headline-lg { font-size: clamp(1.7rem, 2.8vw, 2.25rem); line-height: 1.2; letter-spacing: -.025em; }
.headline-md { font-size: 1.6rem; line-height: 1.25; letter-spacing: -.02em; }
.navbar { border-bottom-color: var(--outline-variant); }
.navbar-bar { min-height: 80px; height: auto; padding-block: 12px; gap: 40px; }
.navbar-logo { min-width: 170px; }
.navbar-nav { justify-content: center; gap: 32px; }
.navbar-nav a { font-size: 1rem; font-weight: 600; padding-block: 12px; display: block; }
.navbar-nav a.active::after { background: #70a614; bottom: 5px; height: 3px; }
.btn { min-height: 48px; padding: 14px 23px; font-size: 1rem; line-height: 1.2; justify-content: center; border-width: 1px; transition: background 180ms, color 180ms, border-color 180ms; }
.btn-sm { min-height: 44px; font-size: .875rem; padding: 11px 18px; }
.btn-lg { min-height: 54px; padding: 16px 26px; }
.btn-secondary { border-color: #c4d3c9; background: white; }
.btn-secondary:hover { background: #edf4ed; border-color: var(--primary-container); }
.btn-primary { background: var(--primary); }
.btn-primary:hover { background: #1d5328; }
.btn-lime:hover { background: #ceff79; }
.hamburger { width: 44px; height: 44px; padding: 10px; border: 1px solid var(--outline-variant); border-radius: 12px; background: #fff; justify-content: center; align-items: center; }
.hero-slider-bar { padding-block: 20px; }
.hero-slider-actions { justify-content: center; }
.page-hero { background: var(--primary); padding-block: clamp(52px, 6vw, 88px); color: #fff; }
.page-hero .hero-title { color: #fff; font-size: clamp(2.2rem, 4.5vw, 3.8rem); line-height: 1.08; letter-spacing: -.035em; text-wrap: balance; }
.page-hero .hero-desc { color: #d4e5d7; font-size: 1.0625rem; line-height: 1.75; }
.page-hero .hero-content { gap: 24px; }
.page-hero .hero-content .hero-title, .page-hero .hero-content .hero-desc { margin-top: 0 !important; }
.page-hero .chip { font-size: .875rem; letter-spacing: .025em; text-transform: none; padding: 7px 14px; border-radius: 100px; background: #b4f73d; }
.page-hero .btn-primary { background: var(--secondary-container); border-color: var(--secondary-container); color: var(--primary); }
.page-hero .btn-primary:hover { background: #ceff79; }
.page-hero .btn-secondary { background: transparent; border-color: #7da587; color: white; }
.page-hero .btn-secondary:hover { background: #234b2b; }
.page-hero-grid { grid-template-columns: 1.12fr .88fr; gap: clamp(32px, 5vw, 72px); }
.page-hero-image { border-radius: 24px; aspect-ratio: 1.05; background: #183f23; }
.page-hero-image img { display: block; }
.page-ajuda .page-hero-image img { object-position: center 25%; }
.home-benefits .container { display: grid; grid-template-columns: .9fr 1.35fr; gap: 72px; align-items: start; }
.home-benefits .section-header { text-align: left; margin: 0; }
.home-benefits .section-subtitle { margin-inline: 0; }
.home-benefits .feature-grid { grid-template-columns: 1fr; gap: 0; }
.home-benefits .card { display: grid; grid-template-columns: 38px 1fr; column-gap: 20px; padding: 25px 0; border: 0; border-bottom: 1px solid var(--outline-variant); border-radius: 0; }
.home-benefits .card:first-child { padding-top: 0; }
.home-benefits .card:last-child { border-bottom: 0; padding-bottom: 0; }
.home-benefits .feature-icon { grid-row: span 2; width: 38px; height: 38px; margin: 0; background: none; }
.home-benefits .feature-title { font-size: 1.4rem; margin-bottom: 6px; letter-spacing: -.02em; }
.card:hover { transform: none; box-shadow: none; }
.home-plans .plans-overview-heading { align-items: end !important; gap: 28px !important; margin-bottom: 44px !important; }
.home-plans .section-subtitle { max-width: 560px !important; }
.plan-toggle { border: 1px solid #d0dfd4; padding: 5px; background: #e5ede7; }
.plan-toggle-btn { min-height: 44px; font-size: .9375rem; padding: 10px 24px; }
.plan-toggle-btn.active { background: var(--primary); color: white; box-shadow: none; }
.plans-grid { gap: 24px; max-width: none; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.plan-card { border-radius: 22px; padding: 38px 30px 30px; gap: 26px; border-color: #d8e3dc; box-shadow: 0 5px 18px rgba(16, 31, 21, .025); }
.plan-card:hover { box-shadow: 0 12px 30px rgba(16, 31, 21, .08); }
.plan-card.featured { transform: none; background: var(--primary); border-color: var(--primary); }
.plan-card.featured .plan-tier { opacity: 1 !important; color: #d7e6da; }
.plan-card.featured [style*="opacity:0.6"] { opacity: 1 !important; color: #d7e6da; }
.plan-badge { top: -14px; font-size: .8125rem; letter-spacing: .02em; padding: 6px 18px; white-space: nowrap; }
.plan-tier { font-size: .875rem; font-weight: 700; opacity: 1; color: #4b5d51; letter-spacing: .025em; }
.plan-speed { font-size: clamp(3rem, 4vw, 4.25rem); line-height: 1.05; letter-spacing: -.035em; }
.plan-speed span { font-size: 1.25rem; margin-left: 6px; letter-spacing: 0; }
.plan-price { border-top: 1px solid var(--outline-variant); padding-top: 22px; flex-wrap: wrap; font-variant-numeric: tabular-nums; }
.plan-card.featured .plan-price { border-color: #41604a; }
.plan-price .amount { font-size: 2.4rem; letter-spacing: -.025em; line-height: 1.1; }
.plan-price .currency, .plan-price .period { font-size: .9375rem; opacity: 1; }
.plan-features { gap: 12px; }
.plan-features li { font-size: .9375rem; line-height: 1.55; align-items: baseline; }
.plan-card .btn { width: 100%; margin-top: auto; }
.plan-section-header { text-align: left; max-width: 780px; }
.plan-section-header .section-subtitle { font-size: 1rem; }
.page-planos .feature-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
.page-planos .feature-grid > div { text-align: left !important; padding: 16px 0 !important; }
.page-planos .feature-grid .feature-icon { margin: 0 0 16px !important; background: transparent; width: 32px; height: 32px; justify-content: start; }
.page-planos .feature-grid .feature-title { font-size: 1.2rem; }
.page-planos .feature-grid p { font-size: 1rem !important; line-height: 1.7; }
.rural-features-grid > div { background: transparent !important; border: 0 !important; border-radius: 0 !important; padding: 24px 0 !important; }
.rural-features-grid > div + div { padding-left: 24px !important; border-left: 1px solid var(--outline-variant) !important; }
.rural-features-grid .feature-icon { background: none; }
.rural-features-grid [style*="font-size:13px"] { font-size: .9375rem !important; line-height: 1.65; }
.cta-banner { background: var(--primary); padding-block: clamp(64px, 7vw, 100px); }
.cta-banner h2 { font-size: clamp(2rem, 3.5vw, 3.2rem); line-height: 1.12; letter-spacing: -.03em; max-width: 820px; margin-inline: auto; text-wrap: balance; }
.cta-banner p { font-size: 1rem; color: #d4e5d7; line-height: 1.75; max-width: 680px; margin-inline: auto; }
.cta-banner .avail-form { max-width: 620px; margin-inline: auto; }
.cta-banner .form-input { max-width: none !important; }
.avail-section { background: #eaf2eb; padding-block: clamp(64px, 7vw, 96px); }
.avail-inner { max-width: 760px; }
.avail-inner .section-subtitle { margin-inline: auto; }
.avail-form { align-items: stretch; }
.avail-form .form-input { min-width: 0; }
.form-input, .form-select, .form-textarea { border: 1px solid #cbd9cf; background: #fff; border-radius: 12px; font-size: 1rem; min-height: 52px; padding: 14px 16px; }
.form-input::placeholder, .form-textarea::placeholder { color: #617167; }
.form-input:focus, .form-select:focus, .form-textarea:focus { border-color: #497c52; outline: 3px solid #d9edc6; outline-offset: 1px; }
.form-textarea { min-height: 160px; }
.contact-grid { gap: 80px !important; grid-template-columns: 1.15fr 1fr !important; }
.contact-form-panel { background: var(--surface-container-low); padding: 36px; border: 1px solid var(--outline-variant); border-radius: 24px; }
.contact-form-panel .headline-lg { margin-bottom: 28px !important; }
.contact-form-panel .btn { width: 100%; }
.contact-card { padding: 32px; border-radius: 20px; background: var(--primary); gap: 16px; }
.contact-card-text strong { font-size: 1.4rem; color: #fff; }
.contact-card-text span { color: #d4e5d7; font-size: .9375rem; opacity: 1; }
.contact-card-number { font-size: clamp(1.5rem, 2.6vw, 2.2rem); color: var(--secondary-container); margin-top: 18px; letter-spacing: -.025em; }
.contact-card-icon { background: #284b31; color: var(--secondary-container); border-radius: 100px; }
.contact-channel { padding-block: 20px; gap: 16px; }
.contact-channel-icon { background: transparent; }
.contact-channel-info { min-width: 0; }
.contact-channel-info strong { font-size: 1rem; margin-bottom: 3px; }
.contact-channel-info span { font-size: .9375rem; overflow-wrap: anywhere; }
.map-container { border: 1px solid var(--outline-variant); border-radius: 24px !important; }
.faq-item { padding: 25px 0; }
.faq-question { font-size: 1.125rem; }
.faq-answer { font-size: 1rem; line-height: 1.75; max-width: 65ch; }
.about-story { grid-template-columns: 1.55fr 1fr; gap: 64px; align-items: start; }
.about-story > .card { padding: 0 !important; border: 0; box-shadow: none; }
.about-story > .card p, .about-purpose p { font-size: 1rem !important; line-height: 1.8 !important; }
.about-story > .card p + p { margin-top: 20px !important; }
.about-story .feature-icon, .about-purpose .feature-icon { background: none; width: 32px; }
.values-card { border-radius: 24px; padding: 36px; background: var(--primary); }
.values-card::before { display: none; }
.values-card h3 { font-size: 1.75rem; letter-spacing: -.025em; margin-bottom: 32px; }
.value-item { padding-block: 22px; border-bottom: 1px solid #3c5b45; gap: 18px; margin-bottom: 0; }
.value-item:first-of-type { padding-top: 0; }
.value-item:last-child { border: 0; padding-bottom: 0; }
.value-icon { background: transparent; width: 24px; }
.value-item strong { font-size: 1.125rem; margin-bottom: 5px; }
.value-item p { font-size: .9375rem; opacity: 1; color: #d4e5d7; line-height: 1.65; }
.about-purpose { gap: 64px; margin-top: 64px !important; padding-top: 40px; border-top: 1px solid var(--outline-variant); }
.about-purpose > .card { padding: 0 !important; border: 0; }
.stats-banner { background: #eaf2eb; padding-block: 56px; }
.stats-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; text-align: left; }
.stats-grid > div { padding-inline: 32px; border-right: 1px solid #cbdccc; }
.stats-grid > div:first-child { padding-left: 0; }
.stats-grid > div:last-child { border: 0; }
.stat-value { font-size: clamp(2.5rem, 4vw, 3.5rem); color: var(--primary); font-variant-numeric: tabular-nums; }
.stat-label { color: #4b5d51; font-size: 1rem; }
.footer { background: #081e11; padding-top: 64px; color: #c0d4c5; }
.footer-grid { grid-template-columns: 2fr repeat(3, 1fr); gap: 48px; }
.footer-grid:has(> div:nth-child(2):last-child) { grid-template-columns: 2fr 1fr; }
.footer-brand-name { font-size: 1.6rem; letter-spacing: -.025em; }
.footer-brand-desc { font-size: .9375rem; line-height: 1.8; max-width: 36ch; }
.footer-col-title { font-size: .875rem; letter-spacing: .04em; margin-bottom: 20px; }
.footer-links { gap: 14px; }
.footer-links a { color: #c0d4c5; font-size: .9375rem; }
.footer-social-btn { width: 44px; height: 44px; color: #d5e7da; border-radius: 100px; }
.footer-bottom { padding-block: 26px 8px; }
.footer-bottom span { font-size: .875rem; }
@media (min-width: 769px) and (max-width: 1100px) {
  .navbar-bar { gap: 20px; }
  .navbar-logo { min-width: 145px; }
  .navbar-nav { gap: 18px; }
  .navbar-actions { gap: 8px; }
  .navbar-actions .btn { padding-inline: 12px; }
  .home-benefits .container { gap: 36px; }
  .plans-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .plans-grid .plan-card.featured { grid-column: auto; max-width: none; margin: 0; }
  .plan-card { padding: 30px 20px 24px; }
  .contact-grid { gap: 32px !important; }
  .contact-form-panel { padding: 24px; }
  .contact-card { padding: 24px; }
  .rural-features-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .about-story, .about-purpose { gap: 32px; }
  .values-card { padding: 28px; }
  .footer-grid { grid-template-columns: 1.5fr repeat(3, 1fr); gap: 28px; }
}
@media (max-width: 900px) {
  .page-hero-grid { grid-template-columns: 1fr; }
  .page-hero-image { aspect-ratio: 16/7; }
  .hero-desc { max-width: 65ch; }
}
@media (max-width: 768px) {
  html { scroll-padding-top: 80px; }
  .navbar-bar { min-height: 68px; padding-block: 10px; gap: 12px; }
  .navbar-logo { min-width: 0; }
  .mobile-nav a { font-weight: 600; padding: 14px 12px; }
  .navbar.open .mobile-menu { padding: 12px 20px 24px; }
  .page-hero { padding-block: 44px; }
  .page-hero .hero-title { font-size: clamp(2.2rem, 7vw, 3rem); line-height: 1.12; }
  .page-hero .hero-desc { font-size: 1rem; }
  .page-hero-image { display: block; aspect-ratio: 16/9; border-radius: 18px; }
  .page-hero-grid { gap: 32px; }
  .hero-actions { gap: 12px; }
  .home-benefits .container { grid-template-columns: 1fr; gap: 36px; }
  .home-benefits .feature-title { font-size: 1.25rem; }
  .home-benefits .card { column-gap: 14px; }
  .plans-grid { grid-template-columns: 1fr; gap: 28px; }
  .plan-card { padding: 32px 26px 26px; gap: 22px; }
  .plan-speed { font-size: 3.75rem; }
  .home-plans .plans-overview-heading { margin-bottom: 32px !important; }
  .plan-toggle { width: 100%; }
  .plan-toggle-btn { flex: 1; }
  .page-planos .feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
  .rural-features-grid > div + div { padding-left: 0 !important; border-left: 0 !important; border-top: 1px solid var(--outline-variant) !important; }
  .cta-banner .avail-form { width: 100%; }
  .cta-banner .avail-form .btn, .avail-form .btn { white-space: normal; }
  .cta-banner p { font-size: 1rem; }
  .contact-grid { grid-template-columns: 1fr !important; gap: 32px !important; }
  .contact-form-panel { padding: 26px 20px; border-radius: 20px; }
  .contact-card { padding: 26px; }
  .location-section { padding-bottom: 60px !important; }
  .map-container { height: 300px !important; }
  .about-story, .about-purpose { grid-template-columns: 1fr; gap: 32px; }
  .about-purpose { margin-top: 40px !important; padding-top: 32px; }
  .values-card { padding: 30px 26px; }
  .stats-grid { grid-template-columns: 1fr; gap: 24px; }
  .stats-grid > div { padding: 0 0 24px; border-right: 0; border-bottom: 1px solid #cbdccc; display: flex; gap: 20px; align-items: baseline; justify-content: space-between; }
  .stats-grid > div:last-child { padding-bottom: 0; }
  .stat-value { font-size: 2.6rem; margin-bottom: 0; }
  .stat-label { text-align: right; }
  .footer { padding-block: 48px 24px; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 32px 24px; }
  .footer-grid > div:first-child { grid-column: 1 / -1; }
  .footer-grid:has(> div:nth-child(2):last-child) { grid-template-columns: 1fr; }
  .footer-bottom { gap: 12px; }
}
@media (max-width: 380px) {
  .page-planos .feature-grid { grid-template-columns: 1fr; }
  .hero-slider-actions .btn { width: 100%; flex-basis: 100%; }
  .contact-card { padding: 22px 18px; }
  .contact-card-number { font-size: 1.4rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .btn, .card, .plan-card, .hamburger span { transition: none; }
}
