/* Shared public design system. See /AGENTS.md before adding UI variants. */
/* Local coverage: a compact service introduction and accessible locality links. */
.ev-local-coverage { padding: clamp(24px, 4vw, 56px) 0; background: #f6f8fb; }
.ev-local-coverage .ev-coverage-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); max-width: 1320px; margin: 0 auto; overflow: hidden; border: 1px solid #dfe6ef; border-radius: 24px; background: #fff; box-shadow: 0 8px 28px #102f4d08; }
.ev-local-coverage .ev-coverage-intro { min-width: 0; padding: clamp(24px, 3vw, 40px); align-self: center; }
.ev-local-coverage .ev-coverage-eyebrow { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; color: #52677d; font-size: 12px; font-weight: 700; line-height: 1.4; letter-spacing: .08em; text-transform: uppercase; }
.ev-local-coverage .ev-coverage-eyebrow i { color: #d7510a; font-size: 16px; }
.ev-local-coverage h2 { max-width: 24ch; margin: 0 0 14px; color: #102f4d; font-size: clamp(25px, 2.2vw, 34px); font-weight: 750; line-height: 1.16; letter-spacing: -.025em; text-wrap: balance; }
.ev-local-coverage .ev-coverage-description { margin: 0; color: #526277; font-size: 15px; line-height: 1.65; }
.ev-local-coverage .ev-coverage-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 20px; margin-top: 22px; }
.ev-local-coverage .ev-coverage-actions a { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 46px; text-decoration: none; font-size: 14px; font-weight: 700; line-height: 1.35; }
.ev-local-coverage .ev-coverage-call { padding: 12px 19px; border-radius: 12px; background: #df252b; color: #fff; transition: background .15s ease; }
.ev-local-coverage .ev-coverage-call:hover { background: #bd171e; color: #fff; }
.ev-local-coverage .ev-coverage-details { color: #173e64; }
.ev-local-coverage .ev-coverage-details:hover { color: #225bd6; text-decoration: underline; text-underline-offset: 4px; }
.ev-local-coverage .ev-coverage-region { display: flex; flex-direction: column; justify-content: center; min-width: 0; margin: 8px; padding: clamp(22px, 2.6vw, 34px); border-radius: 18px; background: linear-gradient(125deg, #102f4d, #163c5f); color: #fff; }
.ev-local-coverage .ev-coverage-region-heading { display: flex; align-items: center; gap: 12px; }
.ev-local-coverage .ev-coverage-region-icon { display: grid; place-items: center; width: 40px; height: 40px; flex: 0 0 40px; border: 1px solid #ffffff24; border-radius: 12px; background: #ffffff0d; color: #ffb381; font-size: 21px; }
.ev-local-coverage h3 { margin: 0; color: #fff; font-size: clamp(18px, 1.6vw, 21px); font-weight: 650; line-height: 1.3; letter-spacing: -.01em; }
.ev-local-coverage .ev-coverage-region p { margin: 12px 0 20px; color: #c8d6e4; font-size: 14px; line-height: 1.6; }
.ev-local-coverage .ev-coverage-places { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.ev-local-coverage .ev-coverage-places li { min-width: 0; }
.ev-local-coverage .ev-coverage-places a { display: flex; align-items: center; justify-content: space-between; gap: 5px; height: 100%; min-height: 46px; padding: 10px; border: 1px solid #ffffff26; border-radius: 10px; background: #ffffff08; color: #f1f6fb; text-decoration: none; font-size: 13px; font-weight: 550; line-height: 1.35; transition: background .15s ease, border-color .15s ease; }
.ev-local-coverage .ev-coverage-places i { flex-shrink: 0; color: #a6bdd2; font-size: 10px; }
.ev-local-coverage .ev-coverage-places a:hover { background: #ffffff18; border-color: #ffffff70; color: #fff; }
.ev-local-coverage .ev-coverage-all a { background: #fff; border-color: #fff; color: #102f4d; }
.ev-local-coverage .ev-coverage-all i { color: inherit; }
.ev-local-coverage .ev-coverage-all a:hover { background: #e4edf6; color: #102f4d; }
.ev-local-coverage a:focus-visible { outline: 3px solid #f68b44; outline-offset: 3px; }
@media (min-width: 768px) and (max-width: 1199.98px) {
  .ev-local-coverage .ev-coverage-layout { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); }
  .ev-local-coverage .ev-coverage-places { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ev-local-coverage .ev-coverage-intro { padding: 24px; }
  .ev-local-coverage .ev-coverage-region { padding: 22px; }
}
@media (max-width: 767.98px) {
  .ev-local-coverage .ev-coverage-layout { grid-template-columns: minmax(0, 1fr); border-radius: 20px; }
  .ev-local-coverage .ev-coverage-intro { padding: 24px 22px; }
  .ev-local-coverage .ev-coverage-eyebrow { margin-bottom: 12px; font-size: 11px; }
  .ev-local-coverage h2 { max-width: 28ch; font-size: clamp(24px, 4.5vw, 30px); }
  .ev-local-coverage .ev-coverage-description { font-size: 14px; line-height: 1.6; }
  .ev-local-coverage .ev-coverage-actions { display: grid; grid-template-columns: auto minmax(0, 1fr); margin-top: 18px; gap: 14px; }
  .ev-local-coverage .ev-coverage-actions .ev-coverage-details { justify-content: flex-start; font-size: 13px; }
  .ev-local-coverage .ev-coverage-region { margin-top: 0; padding: 22px; border-radius: 14px; }
  .ev-local-coverage .ev-coverage-region p { margin-bottom: 16px; }
}
@media (max-width: 575.98px) {
  .ev-local-coverage .ev-coverage-places { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ev-local-coverage .ev-coverage-places a { padding: 10px 12px; font-size: 14px; }
}
@media (max-width: 359.98px) {
  .ev-local-coverage .ev-coverage-intro, .ev-local-coverage .ev-coverage-region { padding: 18px; }
  .ev-local-coverage .ev-coverage-actions { gap: 4px 12px; }
  .ev-local-coverage .ev-coverage-actions a { font-size: 13px; }
  .ev-local-coverage .ev-coverage-call { padding: 10px 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .ev-local-coverage a { transition: none !important; }
}


/* Corporate service catalogue, scoped away from the service detail pages. */
.ev-services-page { color: #102f4d; background: #f6f8fb; }
.ev-services-page .container { max-width: 1320px; }
.ev-services-page .ev-services-contact-actions { display: flex; align-items: center; gap: 8px; flex-wrap: nowrap; }
.ev-services-page .ev-services-rates { background: #fff; border-bottom: 1px solid #e2e8f0; }
.ev-services-page .ev-services-rates-grid { display: grid; grid-template-columns: 1fr 1fr 1.5fr; padding-top: 23px; padding-bottom: 23px; }
.ev-services-page .ev-services-rates-grid > * { display: flex; align-items: center; gap: 14px; padding: 0 28px; min-width: 0; color: #102f4d; text-decoration: none; }
.ev-services-page .ev-services-rates-grid > :first-child { padding-left: 0; }
.ev-services-page .ev-services-rates-grid > * + * { border-left: 1px solid #dfe6ef; }
.ev-services-page .ev-services-rates-grid > * > i { color: #3963c4; font-size: 24px; }
.ev-services-page .ev-services-rates-grid small { display: flex; align-items: center; gap: 8px; color: #617389; font-size: 12px; line-height: 1.5; }
.ev-services-page .ev-services-rates-grid strong { display: block; font-size: 19px; font-weight: 700; line-height: 1.6; }
.ev-services-page .ev-services-rates-grid a strong { font-size: 14px; }
.ev-services-page .ev-services-rates-grid a:hover small { color: #225bd6; }
.ev-services-page .ev-services-catalog { padding: clamp(36px, 5vw, 64px) 0; scroll-margin-top: 110px; }
.ev-services-page .ev-services-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.ev-services-page .ev-services-kicker { display: block; margin-bottom: 10px; color: #3963c4; font-size: 11px; line-height: 1.4; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.ev-services-page h2 { margin: 0; color: #102f4d; font-size: clamp(25px, 2.5vw, 34px); font-weight: 750; line-height: 1.2; letter-spacing: -.025em; text-wrap: balance; }
.ev-services-page .ev-services-section-heading > p { max-width: 330px; margin: 0; color: #617389; font-size: 14px; line-height: 1.65; }
.ev-services-page .ev-services-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.ev-services-page .ev-services-card-reveal { display: flex; min-width: 0; }
.ev-services-page .ev-services-card-reveal > * { width: 100%; }
.ev-services-page .ev-services-card, .ev-services-page .ev-services-help { display: flex; flex-direction: column; min-width: 0; padding: 28px; border: 1px solid #dde5ef; border-radius: 18px; background: #fff; color: #102f4d; text-decoration: none; }
.ev-services-page .ev-services-card { position: relative; }
.ev-services-page .ev-services-card-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; }
.ev-services-page .ev-services-card-icon { display: grid; place-items: center; width: 52px; height: 52px; flex: 0 0 52px; border: 1px solid #dce6f4; border-radius: 15px; background: #f0f5fd; color: #2856a4; font-size: 27px; }
.ev-services-page .ev-services-card-number { color: #718499; font-size: 12px; font-weight: 600; font-variant-numeric: tabular-nums; }
.ev-services-page h3 { margin: 0 0 12px; color: #102f4d; font-size: 21px; line-height: 1.25; letter-spacing: -.015em; font-weight: 700; }
.ev-services-page .ev-services-card > p, .ev-services-page .ev-services-help > p { margin: 0 0 26px; color: #617389; font-size: 14px; line-height: 1.65; }
.ev-services-page .ev-services-card-link { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: auto; padding-top: 18px; border-top: 1px solid #edf0f5; color: #234d87; font-size: 13px; font-weight: 700; }
.ev-services-page .ev-services-card-link > span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #f0f5fd; }
.ev-services-page .ev-services-help { background: linear-gradient(130deg, #102f4d, #173e62); border-color: #173e62; }
.ev-services-page .ev-services-help > .ev-services-card-icon { margin-bottom: 24px; color: #ffb381; background: #ffffff0c; border-color: #ffffff28; }
.ev-services-page .ev-services-help h3 { color: #fff; }
.ev-services-page .ev-services-help > p { color: #cbd9e6; }
.ev-services-page .ev-services-help .ev-services-contact-actions { margin-top: auto; }
.ev-services-page .ev-services-process { padding: 44px 0 52px; border-top: 1px solid #e0e7f0; background: #fff; }
.ev-services-page .ev-services-text-link { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; color: #234d87; text-decoration: none; font-size: 14px; font-weight: 650; }
.ev-services-page .ev-services-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; margin: 0; padding: 0; list-style: none; }
.ev-services-page .ev-services-steps li { display: flex; gap: 14px; padding-top: 20px; border-top: 1px solid #dce5ef; }
.ev-services-page .ev-services-step-number { color: #cb510d; font-size: 13px; font-weight: 750; line-height: 24px; }
.ev-services-page .ev-services-steps h3 { margin-bottom: 8px; font-size: 17px; }
.ev-services-page .ev-services-steps p { margin: 0; color: #617389; font-size: 13px; line-height: 1.65; }
.ev-services-page a:focus-visible { outline: 3px solid #f28a4b; outline-offset: 4px; }
@media (max-width: 1199.98px) {
 .ev-services-page .ev-services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .ev-services-page .ev-services-card, .ev-services-page .ev-services-help { padding: 24px; }
}
@media (max-width: 767.98px) {
 .ev-services-page .ev-services-rates-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 0; padding-top: 20px; padding-bottom: 20px; }
 .ev-services-page .ev-services-rates-grid > * { padding: 0 16px; gap: 10px; }
 .ev-services-page .ev-services-rates-grid > a { grid-column: 1 / -1; border-left: 0; border-top: 1px solid #e4eaf2; padding: 14px 0 0; }
 .ev-services-page .ev-services-section-heading { flex-direction: column; align-items: flex-start; gap: 14px; margin-bottom: 22px; }
 .ev-services-page .ev-services-section-heading > p { max-width: 100%; }
 .ev-services-page .ev-services-grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
 .ev-services-page .ev-services-steps { grid-template-columns: minmax(0, 1fr); gap: 18px; }
 .ev-services-page .ev-services-process { padding: 32px 0; }
}
@media (max-width: 575.98px) {
 .ev-services-page .container { padding-left: 20px; padding-right: 20px; }
 .ev-services-page .ev-services-grid { grid-template-columns: minmax(0, 1fr); }
 .ev-services-page .ev-services-card, .ev-services-page .ev-services-help { padding: 22px; }
 .ev-services-page .ev-services-card-top { margin-bottom: 18px; }
 .ev-services-page .ev-services-card > p { margin-bottom: 20px; }
 .ev-services-page .ev-services-rates-grid strong { font-size: 17px; }
 .ev-services-page .ev-services-rates-grid a strong { font-size: 13px; }
}
@media (max-width: 359.98px) {
 .ev-services-page .container { padding-left: 16px; padding-right: 16px; }
 .ev-services-page .ev-services-card, .ev-services-page .ev-services-help { padding: 18px; }
}

/* Shared page entrance: the existing fade-up effect with a shorter travel. */
body.ev-mobile-app [data-aos="fade-up"] { transform: translate3d(0, 22px, 0); }
body.ev-mobile-app [data-aos="fade-up"].aos-animate { transform: translate3d(0, 0, 0); }

/* Original service-card interaction, shared by the catalogue and region links. */
body.ev-mobile-app .service-card,
body.ev-mobile-app .ev-services-card,
body.ev-mobile-app .ev-coverage-places a {
 transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease, background-color .3s ease;
}
@media (hover: hover) and (pointer: fine) {
 body.ev-mobile-app .service-card:hover,
 body.ev-mobile-app .ev-services-card:hover,
 body.ev-mobile-app .ev-coverage-places a:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, .08);
  border-color: var(--ev-accent, #4169e1);
 }
}
@media (prefers-reduced-motion: reduce) {
 body.ev-mobile-app .service-card,
 body.ev-mobile-app .ev-services-card,
 body.ev-mobile-app .ev-coverage-places a,
 body.ev-mobile-app [data-aos] {
  transition: none !important;
  transform: none !important;
 }
 body.ev-mobile-app [data-aos] { opacity: 1 !important; }
}

/* Contact actions: a single component for every page and screen width. */
:root {
 --ev-contact-red: #df3043;
 --ev-contact-red-hover: #c82235;
 --ev-contact-green: #12803d;
 --ev-contact-purple: #7360f2;
 --ev-contact-max-width: 560px;
}
.ev-contact-actions {
 container-type: inline-size;
 --ev-contact-size: 44px;
 --ev-contact-radius: 12px;
 --ev-contact-gap: clamp(6px, 1vw, 12px);
 display: grid;
 grid-template-columns: minmax(0, 1fr) auto;
 align-items: center;
 gap: var(--ev-contact-gap);
 width: 100%;
 max-width: var(--ev-contact-max-width);
 min-width: 0;
 flex: 1 1 100%;
 margin-inline: auto;
}
@supports (width: 1cqw) {
 .ev-contact-actions { --ev-contact-size: clamp(44px, 14cqw, 64px); --ev-contact-radius: clamp(12px, 4cqw, 20px); }
}
.ev-contact-actions > .ev-contact-call,
.ev-contact-actions .ev-messenger-button {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 box-sizing: border-box;
 height: var(--ev-contact-size);
 min-height: var(--ev-contact-size);
 min-width: 0;
 margin: 0;
 border: 0;
 border-radius: var(--ev-contact-radius);
 color: #fff;
 text-decoration: none;
 box-shadow: none;
 line-height: 1;
 touch-action: manipulation;
 transition: background-color .2s ease, filter .2s ease;
}
.ev-contact-actions > .ev-contact-call {
 gap: 6px;
 gap: clamp(6px, 2cqw, 10px);
 padding: 0 8px;
 padding: 0 clamp(6px, 2.5cqw, 16px);
 background: var(--ev-contact-red);
 font-size: 14px;
 font-size: clamp(13px, 4.2cqw, 22px);
 font-weight: 750;
 white-space: nowrap;
}
.ev-contact-actions > .ev-contact-call > i { flex: 0 0 auto; font-size: 18px; font-size: clamp(16px, 5cqw, 24px); }
.ev-contact-actions > .ev-contact-call:hover { color: #fff; background: var(--ev-contact-red-hover); }
.ev-contact-actions > .ev-messenger-buttons { display: inline-flex; align-items: center; gap: var(--ev-contact-gap); margin: 0; }
.ev-contact-actions .ev-messenger-button { width: var(--ev-contact-size); flex: 0 0 var(--ev-contact-size); padding: 0; font-size: calc(var(--ev-contact-size) * .52); }
.ev-contact-actions .ev-messenger-button svg { width: calc(var(--ev-contact-size) * .54); height: calc(var(--ev-contact-size) * .54); }
.ev-contact-actions .ev-messenger-whatsapp { background: var(--ev-contact-green); }
.ev-contact-actions .ev-messenger-viber { background: var(--ev-contact-purple); }
.ev-contact-actions .ev-messenger-button:hover { filter: brightness(.9); }
.ev-contact-actions a:focus-visible { outline: 3px solid #fbbf24; outline-offset: 3px; }
body.ev-mobile-app .mobile-sticky-cta { grid-template-columns: minmax(0, 1fr); }
body.ev-mobile-app .mobile-sticky-cta .ev-contact-actions .ev-messenger-button { width: var(--ev-contact-size); height: var(--ev-contact-size); flex-basis: var(--ev-contact-size); border-radius: var(--ev-contact-radius); }
.ev-footer-contact-grid > .ev-contact-actions,
.ev-mobile-menu-tools > .ev-contact-actions,
.ev-mobile-menu-tools > .is-quote { grid-column: 1 / -1; }
@media (prefers-reduced-motion: reduce) { .ev-contact-actions a { transition: none; } }

/* Compact installation invitation, immediately before the hero contact actions. */
.ev-install-promo { display: grid; grid-template-columns: minmax(0, 1fr) auto 32px; align-items: center; gap: 6px; grid-column: 1 / -1; width: 100%; max-width: 560px; margin: 0 auto 10px; padding: 8px 6px 8px 10px; border: 1px solid #ffffff38; border-radius: 14px; background: #ffffff10; color: #fff; text-align: left; animation: ev-install-nudge 2.2s ease-in-out 2; }
.page-hero .ev-install-promo { margin-top: 18px; }
.ev-install-promo-copy { display: flex; align-items: center; gap: 9px; min-width: 0; }
.ev-install-promo-copy img { width: 32px; height: 32px; flex: 0 0 32px; border-radius: 9px; background: #fff; }
.ev-install-promo-copy > div { min-width: 0; }
.ev-install-promo h2 { margin: 0 0 3px; font-size: 12px; line-height: 1.3; font-weight: 750; color: #fff; letter-spacing: 0; }
.ev-install-promo-copy p { margin: 0; font-size: 10px; line-height: 1.3; color: #d6e2ef; }
.ev-install-promo-button { display: grid; place-items: center; min-height: 44px; padding: 8px 10px; border: 1px solid #ffffff7a; border-radius: 10px; background: #fff; color: #102f4d; font: 700 11px system-ui; white-space: nowrap; }
.ev-install-promo-button:hover { background: #e7eff8; }
.ev-install-promo-button:disabled { opacity: .65; cursor: wait; }
.ev-install-promo-close { display: grid; place-items: center; width: 32px; height: 44px; padding: 0; border: 0; border-radius: 9px; background: transparent; color: #c0d0e0; font-size: 12px; }
.ev-install-promo-close:hover { background: #ffffff12; }
.ev-install-promo-feedback { grid-column: 1 / -1; margin: 0; padding: 3px; font-size: 11px; color: #d6e2ef; }
.ev-install-promo-feedback:empty, .ev-installed .ev-install-promo { display: none !important; }
.ev-install-guide { width: min(440px, calc(100% - 24px)); max-height: calc(100vh - 40px); max-height: calc(100dvh - 40px); padding: 22px; overflow: auto; border: 1px solid #dbe4ee; border-radius: 24px; background: #fff; color: #102f4d; }
.ev-install-guide::backdrop { background: #10273ed1; -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.ev-install-guide h2 { font-size: 21px; line-height: 1.25; margin: 0; font-weight: 750; }
.ev-install-guide p, .ev-install-guide li { font-size: 13px; line-height: 1.6; }
.ev-install-guide ol { padding-left: 24px; margin: 20px 0 0; }
.ev-install-guide ol li { padding-left: 5px; margin-bottom: 14px; }
.ev-install-guide ol li::marker { color: #bd5a18; font-weight: 750; }
.ev-install-guide-benefits { display: grid; gap: 8px; padding: 14px; margin: 0; border-radius: 14px; background: #edf3f9; list-style: none; }
.ev-install-guide-benefits li { display: flex; align-items: baseline; gap: 8px; }
.ev-install-guide-benefits i { color: #457455; }
.ev-install-guide input { width: 100%; padding: 10px; border: 1px solid #dbe4ee; border-radius: 10px; background: #f3f6fa; color: #102f4d; font-size: 16px; }
.ev-install-guide-copy { width: 100%; min-height: 44px; margin-top: 8px; border: 0; border-radius: 10px; background: #102f4d; color: white; font-size: 13px; }
.ev-install-guide [role="status"]:empty { display: none; }
.ev-install-guide [hidden] { display: none !important; }
.ev-install-consent > p { margin: 14px 0; color: #526a80; }
.ev-install-terms-links { display: flex; flex-wrap: wrap; gap: 10px 18px; margin: 18px 0; }
.ev-install-terms-links a { font-size: 13px; color: #194d7c; text-underline-offset: 3px; }
.ev-install-accept { display: flex; align-items: flex-start; gap: 11px; min-height: 44px; padding: 14px; border: 1px solid #dbe4ee; border-radius: 12px; background: #f4f7fb; color: #102f4d; font-size: 13px; line-height: 1.5; cursor: pointer; }
.ev-install-guide .ev-install-accept input { appearance: auto; -webkit-appearance: checkbox; flex: 0 0 20px; width: 20px; height: 20px; padding: 0; margin: 1px 0 0; accent-color: #102f4d; }
.ev-install-consent-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.ev-install-consent-actions button { flex: 1; min-height: 46px; padding: 11px 12px; border: 1px solid #dbe4ee; border-radius: 12px; background: #fff; color: #102f4d; font: 600 13px system-ui; }
.ev-install-consent-actions .ev-install-consent-next { flex: 2; background: #102f4d; border-color: #102f4d; color: #fff; }
.ev-install-consent-actions button:disabled { opacity: .45; cursor: not-allowed; }
.ev-install-guide h2:focus { outline: none; }
.ev-legal-page #app-terms { scroll-margin-top: 110px; }
.ev-install-promo button:focus-visible, .ev-install-guide :focus-visible { outline: 3px solid #f56611; outline-offset: 3px; }
@keyframes ev-install-nudge { 0%, 100% { box-shadow: 0 0 0 0 #ff9b5200; } 50% { box-shadow: 0 0 0 3px #ff9b522b; border-color: #ffbe8d8c; } }
@media (max-width: 360px) { .ev-install-promo-copy img { display: none; } }
@media (prefers-reduced-motion: reduce) { .ev-install-promo { animation: none; } }


/* Road utilities: shared components, available in the installed app shell. */
.ev-road-tools { padding: 20px; border: 1px solid #d5dfeb; border-radius: 24px; background: linear-gradient(135deg, #fff, #eaf0f7); box-shadow: 0 10px 24px #102f4d06; }
.ev-road-tools h2 { margin-bottom: 18px; }
.ev-road-tools-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.ev-road-tools-grid button { display: flex; flex-direction: column; align-items: flex-start; text-align: left; gap: 8px; padding: 16px 12px; min-width: 0; border: 1px solid #d9e3ed; border-radius: 17px; background: #fff; color: #102f4d; }
.ev-road-tools-grid i { display: grid; place-items: center; width: 40px; height: 40px; margin-bottom: 6px; border: 1px solid #e8d7c7; border-radius: 12px; background: #fff4e9; color: #d5651b; font-size: 21px; }
.ev-road-tools-grid button:nth-child(2) i { background: #eaf1fa; color: #315b81; border-color: #d6e3f1; }
.ev-road-tools-grid strong { font-size: 13px; line-height: 1.4; }
.ev-road-tools-grid small { font-size: 11px; line-height: 1.5; color: #607386; }
.ev-road-tools-grid button:hover { border-color: #9eb4c9; background: #f9fbfd; }
.ev-road-tools-grid button:active { background: #edf3f9; }
.ev-road-feedback { font-size: 12px; line-height: 1.6; color: #4d647a; margin: 12px 0 0; }
.ev-road-feedback:empty { display: none; }
.ev-location-dialog { width: min(440px, calc(100% - 24px)); max-height: calc(100dvh - 32px); overflow: auto; padding: 22px; border: 1px solid #dbe4ee; border-radius: 24px; background: #fff; color: #102f4d; }
.ev-location-dialog::backdrop { background: #10273ed1; backdrop-filter: blur(4px); }
.ev-location-dialog h2 { font-size: 22px; font-weight: 750; margin: 0; }
.ev-location-dialog > p { font-size: 13px; line-height: 1.6; color: #607386; }
.ev-location-dialog > p:empty { display: none; }
.ev-road-primary, .ev-road-dialog-actions button { min-height: 46px; padding: 12px 14px; border: 1px solid #dbe4ee; border-radius: 12px; font: 600 13px system-ui; }
.ev-road-primary { width: 100%; color: #fff; background: #102f4d; margin: 10px 0 16px; }
.ev-road-primary:disabled { opacity: .65; cursor: wait; }
.ev-location-dialog textarea { width: 100%; padding: 12px; border: 1px solid #dbe4ee; border-radius: 12px; color: #102f4d; background: #f2f6fa; font: 14px/1.5 system-ui; resize: vertical; }
.ev-road-dialog-actions { display: flex; gap: 8px; margin-top: 12px; }
.ev-road-dialog-actions button { flex: 1; min-width: 0; color: #102f4d; background: #edf2f8; }
.ev-location-dialog [hidden] { display: none !important; }
.ev-road-tools :focus-visible, .ev-location-dialog :focus-visible { outline: 3px solid #f56611; outline-offset: 3px; }

/* Mobile contact placement: primary hero and persistent bottom actions only. */
@media (max-width: 991.98px) {
  body.ev-mobile-app .ev-review-contact-actions,
  body.ev-mobile-app .tariff-cta-panel .col-lg-4 { display: none; }
  body.ev-mobile-app .ev-contact-actions { display: none; }
  body.ev-mobile-app .hero-enterprise .ev-contact-actions,
  body.ev-mobile-app .mobile-sticky-cta .ev-contact-actions,
  body.ev-mobile-app .ev-installed-home .ev-contact-actions { display: grid; }
  body.ev-mobile-app a[href^="tel:"]:is(.btn, .cta-btn, .btn-buy, .ev-coverage-call, .ev-footer-contact-item, .ev-mobile-menu-action):not(.hero-enterprise a):not(.mobile-sticky-cta a):not(.ev-installed-home a),
  body.ev-mobile-app a[href^="viber:"]:not(.hero-enterprise a):not(.mobile-sticky-cta a):not(.ev-installed-home a),
  body.ev-mobile-app a[href*="wa.me/"]:not(.hero-enterprise a):not(.mobile-sticky-cta a):not(.ev-installed-home a),
  body.ev-mobile-app a[href*="whatsapp.com/"]:not(.hero-enterprise a):not(.mobile-sticky-cta a):not(.ev-installed-home a) { display: none !important; }
}
