/* ===== site-v3-core.css ===== */
:root {
  --av-blue: #0f579b;
  --av-blue-700: #0b477f;
  --av-navy: #082b4b;
  --av-navy-900: #051d33;
  --av-orange: #e97824;
  --av-orange-700: #c95d12;
  --av-ink: #152536;
  --av-slate: #566575;
  --av-muted: #718091;
  --av-line: #d9e1e7;
  --av-line-strong: #b9c6d0;
  --av-mist: #f3f6f8;
  --av-mist-blue: #eaf2f8;
  --av-white: #ffffff;
  --av-success: #16734a;
  --av-danger: #b42318;
  --av-shell: 1240px;
  --av-reading: 790px;
  --av-header: 78px;
  --av-radius: 4px;
  --av-shadow-sm: 0 8px 24px rgba(5, 29, 51, 0.08);
  --av-shadow-md: 0 20px 55px rgba(5, 29, 51, 0.13);
  --av-font: "Segoe UI Variable", Aptos, "Segoe UI", Helvetica, Arial, sans-serif;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  text-size-adjust: 100%;
}

body {
  margin: 0;
  overflow-x: hidden;
  background: var(--av-white);
  color: var(--av-ink);
  font-family: var(--av-font);
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

body.av-menu-open {
  overflow: hidden;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  color: var(--av-blue);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

a:hover {
  color: var(--av-navy);
}

p,
ul,
ol,
figure,
blockquote {
  margin-top: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0 0 0.7em;
  color: var(--av-navy);
  font-family: var(--av-font);
  font-weight: 760;
  letter-spacing: -0.025em;
  line-height: 1.12;
  text-wrap: balance;
}

h1 {
  font-size: clamp(2.65rem, 4.4vw, 4.6rem);
}

h2 {
  font-size: clamp(2rem, 3.25vw, 3.35rem);
}

h3 {
  font-size: clamp(1.22rem, 1.75vw, 1.65rem);
}

button,
input,
select,
textarea {
  font: inherit;
}

:focus-visible {
  outline: 3px solid rgba(15, 87, 155, 0.35);
  outline-offset: 3px;
}

.av-shell {
  width: min(calc(100% - 48px), var(--av-shell));
  margin-inline: auto;
}

.av-shell--reading {
  width: min(calc(100% - 48px), var(--av-reading));
}

.alignwide {
  width: min(calc(100vw - 48px), var(--av-shell));
  max-width: none;
  margin-inline: calc((100% - min(calc(100vw - 48px), var(--av-shell))) / 2);
}

.alignfull {
  width: 100vw;
  max-width: none;
  margin-left: calc(50% - 50vw);
}

.av-skip-link {
  position: fixed;
  z-index: 99999;
  top: 12px;
  left: 12px;
  padding: 11px 15px;
  transform: translateY(-160%);
  background: var(--av-white);
  border: 2px solid var(--av-navy);
  color: var(--av-navy);
  font-weight: 750;
}

.av-skip-link:focus {
  transform: translateY(0);
}

/* Trust bar and header */
.av-trustbar {
  min-height: 32px;
  background: var(--av-navy-900);
  color: rgba(255, 255, 255, 0.86);
  font-size: 0.78rem;
  letter-spacing: 0.01em;
}

.av-trustbar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 32px;
  gap: 24px;
}

.av-trustbar p {
  margin: 0;
}

.av-trustbar strong {
  color: var(--av-white);
  font-weight: 680;
}

.av-trustbar span {
  margin-inline: 8px;
  color: rgba(255, 255, 255, 0.36);
}

.av-site-header {
  position: sticky;
  z-index: 1000;
  top: 0;
  background: rgba(255, 255, 255, 0.98);
  border-bottom: 1px solid var(--av-line);
  transition: box-shadow 180ms ease;
}

.admin-bar .av-site-header {
  top: 32px;
}

.av-site-header.is-scrolled {
  box-shadow: 0 8px 24px rgba(5, 29, 51, 0.1);
}

.av-site-header__inner {
  display: grid;
  grid-template-columns: 168px minmax(0, 1fr) auto;
  align-items: center;
  min-height: var(--av-header);
  gap: 30px;
}

.av-brand,
.av-brand a,
.av-brand .custom-logo-link {
  display: block;
}

.av-brand img,
.av-brand .custom-logo {
  width: auto;
  max-width: 158px;
  max-height: 52px;
}

.av-primary-nav {
  justify-self: end;
}

.av-primary-menu,
.av-primary-menu ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.av-primary-menu {
  display: flex;
  align-items: stretch;
  gap: 22px;
}

.av-primary-menu > li {
  position: relative;
  display: flex;
  align-items: center;
  min-height: var(--av-header);
}

.av-primary-menu > li > a {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--av-ink);
  font-size: 0.84rem;
  font-weight: 680;
  text-decoration: none;
  white-space: nowrap;
}

.av-primary-menu > li > a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 5px;
  left: 0;
  height: 2px;
  transform: scaleX(0);
  transform-origin: left;
  background: var(--av-orange);
  transition: transform 180ms ease;
}

.av-primary-menu > li:hover > a::after,
.av-primary-menu > li:focus-within > a::after,
.av-primary-menu > .current-menu-item > a::after,
.av-primary-menu > .current-menu-ancestor > a::after {
  transform: scaleX(1);
}

.av-primary-menu .sub-menu {
  position: absolute;
  z-index: 10;
  top: calc(100% - 1px);
  left: -20px;
  display: none;
  width: 250px;
  padding: 10px;
  background: var(--av-white);
  border: 1px solid var(--av-line);
  border-top: 3px solid var(--av-orange);
  box-shadow: var(--av-shadow-md);
}

.av-primary-menu li:hover > .sub-menu,
.av-primary-menu li:focus-within > .sub-menu,
.av-primary-menu .sub-menu.is-open {
  display: block;
}

.av-primary-menu .sub-menu a {
  display: block;
  padding: 11px 12px;
  color: var(--av-ink);
  font-size: 0.88rem;
  font-weight: 620;
  line-height: 1.35;
  text-decoration: none;
}

.av-primary-menu .sub-menu a:hover,
.av-primary-menu .sub-menu a:focus {
  background: var(--av-mist);
  color: var(--av-blue);
}

.av-header-actions {
  display: flex;
  align-items: center;
  gap: 18px;
}

.av-header-phone {
  display: grid;
  color: var(--av-navy);
  line-height: 1.15;
  text-align: right;
  text-decoration: none;
}

.av-header-phone span {
  color: var(--av-muted);
  font-size: 0.7rem;
  font-weight: 650;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.av-header-phone strong {
  margin-top: 3px;
  font-size: 0.94rem;
  font-weight: 760;
}

.av-menu-toggle {
  display: none;
}

/* Buttons: one system, three purposeful variants. */
.av-button,
button.av-button,
.wp-block-button .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 22px;
  border: 1px solid transparent;
  border-radius: var(--av-radius);
  box-shadow: none;
  font-size: 0.88rem;
  font-weight: 750;
  letter-spacing: 0.005em;
  line-height: 1.15;
  text-align: center;
  text-decoration: none;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.av-button:hover,
.wp-block-button .wp-block-button__link:hover {
  transform: translateY(-1px);
}

.av-button--header {
  min-height: 44px;
  padding-inline: 18px;
  background: var(--av-orange);
  color: var(--av-white);
}

.av-button--header:hover {
  background: var(--av-orange-700);
  color: var(--av-white);
}

.av-button--cut,
.wp-block-button.av-button--cut .wp-block-button__link {
  background: var(--av-orange);
  border-color: var(--av-orange);
  color: var(--av-white);
}

.av-button--cut:hover,
.wp-block-button.av-button--cut .wp-block-button__link:hover {
  background: var(--av-orange-700);
  border-color: var(--av-orange-700);
  color: var(--av-white);
}

.av-button--line,
.wp-block-button.av-button--line .wp-block-button__link {
  background: transparent;
  border-color: var(--av-navy);
  color: var(--av-navy);
}

.av-button--line:hover,
.wp-block-button.av-button--line .wp-block-button__link:hover {
  background: var(--av-navy);
  border-color: var(--av-navy);
  color: var(--av-white);
}

.av-button--soft,
.wp-block-button.av-button--soft .wp-block-button__link {
  background: var(--av-mist-blue);
  border-color: var(--av-mist-blue);
  color: var(--av-navy);
}

.av-button--soft:hover,
.wp-block-button.av-button--soft .wp-block-button__link:hover {
  background: #dceaf4;
  color: var(--av-navy);
}

.av-actions,
.wp-block-buttons.av-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 30px;
}

/* Hero */
.av-hero {
  position: relative;
  overflow: hidden;
  background: var(--av-mist);
  border-bottom: 1px solid var(--av-line);
}

.av-hero--navy,
.av-hero--blue {
  background: var(--av-navy);
}

.av-hero__inner,
.av-hero--home .av-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(460px, 1.1fr);
  min-height: 570px;
}

.av-hero--home .av-hero__inner {
  min-height: 620px;
}

.av-hero__copy {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: 72px 64px 72px 0;
}

.av-hero__eyebrow,
.av-kicker {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 20px;
  color: var(--av-blue);
  font-size: 0.78rem;
  font-weight: 780;
  letter-spacing: 0.1em;
  line-height: 1.35;
  text-transform: uppercase;
}

.av-hero__eyebrow::before,
.av-kicker::before {
  content: "";
  flex: 0 0 28px;
  width: 28px;
  height: 2px;
  background: var(--av-orange);
}

.av-hero h1 {
  max-width: 690px;
  margin-bottom: 22px;
  font-size: clamp(2.75rem, 4.25vw, 4.55rem);
}

.av-hero--home h1 {
  font-size: clamp(3rem, 4.55vw, 4.85rem);
}

.av-hero__lead {
  max-width: 650px;
  margin: 0;
  color: var(--av-slate);
  font-size: clamp(1.05rem, 1.35vw, 1.22rem);
  line-height: 1.55;
}

.av-hero--navy h1,
.av-hero--blue h1,
.av-hero--navy .av-hero__eyebrow,
.av-hero--blue .av-hero__eyebrow {
  color: var(--av-white);
}

.av-hero--navy .av-hero__lead,
.av-hero--blue .av-hero__lead {
  color: rgba(255, 255, 255, 0.76);
}

.av-hero__actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 22px;
  margin-top: 31px;
}

.av-hero__call {
  display: grid;
  color: var(--av-navy);
  line-height: 1.2;
  text-decoration: none;
}

.av-hero__call small {
  color: var(--av-muted);
  font-size: 0.74rem;
  font-weight: 650;
}

.av-hero__call strong {
  margin-top: 4px;
  font-size: 1.03rem;
}

.av-hero--navy .av-hero__call,
.av-hero--blue .av-hero__call {
  color: var(--av-white);
}

.av-hero--navy .av-hero__call small,
.av-hero--blue .av-hero__call small {
  color: rgba(255, 255, 255, 0.64);
}

.av-hero__proof {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-width: 610px;
  margin-top: 42px;
  padding-top: 22px;
  border-top: 1px solid var(--av-line-strong);
}

.av-hero__proof span {
  display: grid;
  min-width: 0;
  padding: 0 18px;
  border-right: 1px solid var(--av-line);
}

.av-hero__proof span:first-child {
  padding-left: 0;
}

.av-hero__proof span:last-child {
  padding-right: 0;
  border-right: 0;
}

.av-hero__proof strong {
  color: var(--av-navy);
  font-size: 0.85rem;
  font-weight: 780;
}

.av-hero__proof small {
  margin-top: 4px;
  color: var(--av-muted);
  font-size: 0.76rem;
  line-height: 1.35;
}

.av-hero--navy .av-hero__proof,
.av-hero--blue .av-hero__proof {
  border-top-color: rgba(255, 255, 255, 0.24);
}

.av-hero--navy .av-hero__proof span,
.av-hero--blue .av-hero__proof span {
  border-right-color: rgba(255, 255, 255, 0.2);
}

.av-hero--navy .av-hero__proof strong,
.av-hero--blue .av-hero__proof strong {
  color: var(--av-white);
}

.av-hero--navy .av-hero__proof small,
.av-hero--blue .av-hero__proof small {
  color: rgba(255, 255, 255, 0.62);
}

.av-hero__visual {
  position: relative;
  min-width: 0;
  min-height: 570px;
  background: #dfe7ed;
}

.av-hero--home .av-hero__visual {
  min-height: 620px;
}

.av-hero__image-wrap {
  position: absolute;
  inset: 0 calc((100vw - min(100vw, var(--av-shell))) / -2) 0 0;
  overflow: hidden;
  background: #dfe7ed;
}

.av-hero__image-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(5, 29, 51, 0.14), transparent 32%);
  pointer-events: none;
}

.av-hero__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.av-hero__visual--product .av-hero__image-wrap {
  display: grid;
  place-items: center;
  padding: clamp(48px, 6vw, 88px);
  background: var(--av-mist-blue);
}

.av-hero__visual--product .av-hero__image-wrap::after {
  display: none;
}

.av-hero__visual--product .av-hero__image {
  width: min(100%, 660px);
  height: auto;
  max-height: 390px;
  object-fit: contain;
  filter: drop-shadow(0 24px 30px rgba(5, 29, 51, 0.15));
}

.av-hero__signal {
  position: absolute;
  z-index: 3;
  right: 0;
  bottom: 0;
  width: min(330px, 82%);
  padding: 20px 24px 19px;
  background: var(--av-navy-900);
  border-top: 3px solid var(--av-orange);
  color: var(--av-white);
}

.av-hero__signal strong,
.av-hero__signal span {
  display: block;
}

.av-hero__signal strong {
  font-size: 0.84rem;
  font-weight: 760;
}

.av-hero__signal span {
  margin-top: 3px;
  color: rgba(255, 255, 255, 0.66);
  font-size: 0.76rem;
  line-height: 1.4;
}

.av-breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 24px;
  color: var(--av-muted);
  font-size: 0.78rem;
}

.av-breadcrumbs a {
  color: inherit;
  text-decoration: none;
}

.av-hero--navy .av-breadcrumbs,
.av-hero--blue .av-breadcrumbs {
  color: rgba(255, 255, 255, 0.6);
}

/* Main page rhythm */
.av-entry-content {
  overflow: clip;
}

.av-entry-content > :where(p, h2, h3, h4, ul, ol, blockquote, figure, table),
.av-article-content > * {
  width: min(calc(100% - 48px), var(--av-reading));
  margin-inline: auto;
}

.av-section {
  width: min(calc(100% - 48px), var(--av-shell));
  margin: 0 auto;
  padding-block: clamp(76px, 8.5vw, 116px);
}

.av-section + .av-section {
  border-top: 1px solid var(--av-line);
}

.av-section.alignwide {
  width: min(calc(100% - 48px), var(--av-shell));
  margin-inline: auto;
}

.av-section--mist,
.av-section--ink,
.av-section--warning,
.av-section--comparison,
.av-section--pricing-detail,
.av-section--contact-grid,
.av-form-section,
.av-operations,
.av-rate-sheet,
.av-cta-panel {
  position: relative;
}

.av-section--mist::before,
.av-section--ink::before,
.av-section--warning::before,
.av-section--comparison::before,
.av-section--pricing-detail::before,
.av-section--contact-grid::before,
.av-form-section::before,
.av-rate-sheet::before,
.av-cta-panel::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0 calc((100vw - 100%) / -2);
  background: var(--av-mist);
}

.av-section--ink::before,
.av-cta-panel::before {
  background: var(--av-navy);
}

.av-section--warning::before {
  background: #fff6ed;
}

.av-section-title {
  max-width: 820px;
  margin-bottom: 22px;
}

.av-section-lead {
  max-width: 760px;
  margin-bottom: 0;
  color: var(--av-slate);
  font-size: clamp(1.05rem, 1.3vw, 1.2rem);
  line-height: 1.65;
}

.av-section--ink,
.av-cta-panel {
  color: rgba(255, 255, 255, 0.78);
}

.av-section--ink h2,
.av-section--ink h3,
.av-section--ink .av-section-title,
.av-cta-panel h2,
.av-cta-panel h3,
.av-kicker--light {
  color: var(--av-white);
}

.av-section--ink .av-section-lead,
.av-cta-panel .av-section-lead {
  color: rgba(255, 255, 255, 0.68);
}

.av-kicker--light::before {
  background: var(--av-orange);
}

.av-keypoints {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 36px;
  max-width: 980px;
  margin: 42px 0 0;
  padding: 0;
  list-style: none;
}

.av-keypoints li {
  position: relative;
  margin: 0;
  padding: 18px 0 18px 30px;
  border-top: 1px solid var(--av-line);
  color: var(--av-ink);
}

.av-keypoints li::before {
  content: "";
  position: absolute;
  top: 26px;
  left: 3px;
  width: 8px;
  height: 8px;
  background: var(--av-orange);
}

/* Homepage: restrained company proof. */
.av-home-opener {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(360px, 0.9fr);
  gap: clamp(58px, 8vw, 120px);
  align-items: start;
}

.av-home-opener .av-section {
  width: auto;
  margin: 0;
  padding: 0;
}

.av-home-opener__facts {
  border-top: 2px solid var(--av-navy);
}

.av-home-fact {
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 6px 16px;
  padding: 22px 0;
  border-bottom: 1px solid var(--av-line);
}

.av-home-fact p,
.av-home-fact h3 {
  margin: 0;
}

.av-home-fact h3 {
  font-size: 1.08rem;
}

.av-home-fact > p:last-child {
  grid-column: 2;
  color: var(--av-slate);
  font-size: 0.94rem;
}

.av-home-fact__number {
  color: var(--av-orange-700);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}

/* Homepage services use one repeatable editorial module. */
.av-service-ledger {
  margin-top: 56px;
  border-top: 2px solid var(--av-navy);
}

.av-service-card {
  display: grid;
  grid-template-columns: 42px minmax(320px, 0.92fr) minmax(0, 1.08fr);
  grid-template-areas: "number image copy";
  align-items: center;
  gap: clamp(28px, 4.5vw, 64px);
  padding: 42px 0;
  border-bottom: 1px solid var(--av-line);
}

.av-service-number {
  grid-area: number;
  align-self: start;
  margin: 8px 0 0;
  color: var(--av-orange-700);
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.09em;
}

.av-service-image {
  grid-area: image;
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 10;
  margin: 0;
  background: #dfe7ed;
  border-radius: var(--av-radius);
}

.av-service-image::after {
  content: "";
  position: absolute;
  inset: 0;
  box-shadow: inset 0 0 0 1px rgba(5, 29, 51, 0.09);
  pointer-events: none;
}

.av-service-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 350ms ease;
}

.av-service-card:hover .av-service-image img {
  transform: scale(1.025);
}

.av-service-card--1 .av-service-image img {
  object-fit: contain;
  padding: 34px;
  background: var(--av-mist-blue);
}

.av-service-row__copy {
  grid-area: copy;
  max-width: 500px;
}

.av-service-row__copy h3 {
  margin-bottom: 15px;
  font-size: clamp(1.8rem, 3vw, 2.8rem);
}

.av-service-row__copy > p:not(.av-service-row__meta) {
  color: var(--av-slate);
}

.av-service-row__meta {
  margin-bottom: 13px;
  color: var(--av-blue);
  font-size: 0.77rem;
  font-weight: 780;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.av-text-link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-top: 7px;
  color: var(--av-navy);
  font-size: 0.9rem;
  font-weight: 760;
  text-decoration: none;
  border-bottom: 2px solid var(--av-orange);
}

.av-text-link:hover {
  color: var(--av-blue);
}

/* Generic feature cards */
.av-grid {
  display: grid;
  gap: 20px;
}

.av-grid--3,
.av-feature-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.av-feature-grid {
  margin-top: 52px;
}

.av-card {
  min-width: 0;
  padding: 30px;
  background: var(--av-white);
  border: 1px solid var(--av-line);
  border-radius: var(--av-radius);
}

.av-card-index {
  margin-bottom: 28px;
  color: var(--av-orange-700);
  font-size: 0.73rem;
  font-weight: 800;
  letter-spacing: 0.09em;
}

.av-card-title {
  margin-bottom: 14px;
  font-size: 1.32rem;
}

.av-card-copy {
  margin-bottom: 0;
  color: var(--av-slate);
  font-size: 0.96rem;
}

.av-card-copy a {
  font-weight: 700;
}

/* CRA / operations */
.av-operations {
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(0, 0.96fr);
  align-items: stretch;
  width: min(calc(100% - 48px), var(--av-shell));
  padding: 0;
  background: var(--av-navy);
}

.av-operations__media {
  min-height: 650px;
  margin: 0;
  overflow: hidden;
}

.av-operations__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.av-operations__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(50px, 6vw, 82px);
  color: rgba(255, 255, 255, 0.76);
}

.av-operations__copy h2,
.av-operations__copy h3,
.av-operations__copy .av-kicker {
  color: var(--av-white);
}

.av-operations__copy .av-section-lead {
  color: rgba(255, 255, 255, 0.68);
}

.av-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 52px;
  border-top: 1px solid rgba(255, 255, 255, 0.22);
}

.av-stat {
  min-width: 0;
  padding: 25px 20px 6px 0;
  border-right: 1px solid rgba(255, 255, 255, 0.2);
}

.av-stat:last-child {
  padding-right: 0;
  border-right: 0;
}

.av-stat p {
  margin: 0;
}

.av-stat-value {
  color: var(--av-white);
  font-size: clamp(1.45rem, 2.4vw, 2.25rem);
  font-weight: 780;
  letter-spacing: -0.03em;
  line-height: 1.05;
}

.av-stat-label {
  margin-top: 9px !important;
  color: rgba(255, 255, 255, 0.62);
  font-size: 0.78rem;
  line-height: 1.4;
}

.av-operations .av-stat-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 24px;
}

.av-operations .av-stat {
  border-right: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
}

/* Process */
.av-home-flow {
  padding-top: clamp(82px, 9vw, 120px);
}

.av-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(28px, 4vw, 56px);
  margin-top: 52px;
}

.av-step {
  position: relative;
  padding-top: 24px;
  border-top: 2px solid var(--av-navy);
}

.av-step::before {
  content: "";
  position: absolute;
  top: -2px;
  left: 0;
  width: 62px;
  height: 2px;
  background: var(--av-orange);
}

.av-step-number {
  margin-bottom: 31px;
  color: var(--av-orange-700);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.1em;
}

.av-step h3 {
  margin-bottom: 13px;
}

.av-step > p:last-child {
  margin-bottom: 0;
  color: var(--av-slate);
  font-size: 0.96rem;
}

.av-section--ink .av-step {
  border-top-color: rgba(255, 255, 255, 0.34);
}

.av-section--ink .av-step > p:last-child {
  color: rgba(255, 255, 255, 0.66);
}

/* Pricing */
.av-rate-sheet {
  padding-block: clamp(76px, 8vw, 108px);
}

.av-rate-sheet__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 60px;
  align-items: end;
  margin-bottom: 42px;
}

.av-rate-sheet__head > .av-section {
  width: auto;
  margin: 0;
  padding: 0;
}

.av-rate-sheet__price {
  padding: 24px 0 4px 30px;
  border-left: 3px solid var(--av-orange);
}

.av-rate-sheet__price p {
  margin-bottom: 8px;
  color: var(--av-slate);
  font-size: 0.8rem;
  font-weight: 700;
}

.av-rate-sheet__amount strong {
  color: var(--av-navy);
  font-size: 3.1rem;
  font-weight: 780;
  letter-spacing: -0.05em;
  line-height: 1;
}

.av-rate-sheet__amount span {
  margin-left: 6px;
  color: var(--av-muted);
  font-size: 0.9rem;
}

.av-data-table {
  margin: 0;
  overflow-x: auto;
  border: 1px solid var(--av-line-strong);
  border-radius: var(--av-radius);
}

.av-data-table table {
  width: 100%;
  min-width: 720px;
  border-collapse: collapse;
  background: var(--av-white);
}

.av-data-table th,
.av-data-table td {
  padding: 18px 20px;
  border: 0;
  border-bottom: 1px solid var(--av-line);
  text-align: left;
  vertical-align: top;
}

.av-data-table th {
  background: var(--av-navy);
  color: var(--av-white);
  font-size: 0.76rem;
  font-weight: 760;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.av-data-table td {
  color: var(--av-slate);
  font-size: 0.9rem;
}

.av-data-table td strong {
  color: var(--av-ink);
}

.av-data-table tr:last-child td {
  border-bottom: 0;
}

/* Links and coverage */
.av-directory {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 42px;
  border-top: 2px solid var(--av-navy);
}

.av-directory-link {
  margin: 0;
  border-bottom: 1px solid var(--av-line);
}

.av-directory-link:nth-child(odd) {
  border-right: 1px solid var(--av-line);
}

.av-directory-link a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 64px;
  gap: 18px;
  padding: 14px 20px;
  color: var(--av-ink);
  font-weight: 690;
  text-decoration: none;
}

.av-directory-link a:hover {
  background: var(--av-mist);
  color: var(--av-blue);
}

.av-directory-link span {
  color: var(--av-orange-700);
}

.av-town-list {
  margin-top: 35px;
  padding: 24px;
  background: var(--av-white);
  border-left: 3px solid var(--av-orange);
  color: var(--av-slate);
}

/* FAQ: deliberately visible controls. */
.av-section--faq {
  display: grid;
  grid-template-columns: minmax(260px, 0.72fr) minmax(0, 1.28fr);
  gap: clamp(52px, 8vw, 112px);
  align-items: start;
}

/* .av-faqs spans 4 rows to line up with a column 1 that can hold kicker + title +
   lead, but most pages only fill 2 of those rows, so the shorthand gap above (also
   used as row-gap) was stacking 2 unused row-gaps as dead space under the section. */
.av-section--faq {
  row-gap: 24px;
}

.av-section--faq > .av-kicker,
.av-section--faq > .av-section-title,
.av-section--faq > .av-section-lead {
  grid-column: 1;
}

.av-section--faq > .av-section-title {
  margin-bottom: 0;
}

.av-section--faq > .av-section-lead {
  margin-top: -34px;
}

.av-faqs {
  grid-column: 2;
  grid-row: 1 / span 4;
  border-top: 2px solid var(--av-navy);
}

.av-faq-item {
  margin: 0;
  border-bottom: 1px solid var(--av-line);
}

.av-faq-item summary {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 78px;
  padding: 20px 58px 20px 0;
  color: var(--av-navy);
  cursor: pointer;
  font-size: 1.03rem;
  font-weight: 720;
  line-height: 1.4;
  list-style: none;
}

.av-faq-item summary::-webkit-details-marker {
  display: none;
}

.av-faq-item summary::after {
  content: "+";
  position: absolute;
  top: 50%;
  right: 0;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  transform: translateY(-50%);
  background: var(--av-white);
  border: 1px solid var(--av-line-strong);
  border-radius: 50%;
  color: var(--av-navy);
  font-family: Arial, sans-serif;
  font-size: 24px;
  font-weight: 400;
  line-height: 1;
}

.av-faq-item[open] summary::after {
  content: "−";
  background: var(--av-navy);
  border-color: var(--av-navy);
  color: var(--av-white);
}

.av-faq-item > p {
  max-width: 700px;
  margin: -2px 0 0;
  padding: 0 58px 25px 0;
  color: var(--av-slate);
}

/* CTA panel */
.av-cta-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 50px;
  align-items: end;
  padding-block: clamp(68px, 7vw, 92px);
}

.av-cta-panel > :not(.av-actions) {
  grid-column: 1;
}

.av-cta-panel .av-actions {
  grid-column: 2;
  grid-row: 1 / span 4;
  align-self: center;
  flex-direction: column;
  align-items: stretch;
  min-width: 255px;
  margin: 0;
}

.av-cta-panel .av-button--line .wp-block-button__link,
.av-cta-panel .av-button--line {
  border-color: rgba(255, 255, 255, 0.55);
  color: var(--av-white);
}

.av-cta-panel .av-button--line .wp-block-button__link:hover,
.av-cta-panel .av-button--line:hover {
  background: var(--av-white);
  color: var(--av-navy);
}

/* Forms */
.av-lead-form-wrap {
  max-width: 920px;
  margin-top: 38px;
  padding: clamp(28px, 4vw, 46px);
  background: var(--av-white);
  border: 1px solid var(--av-line);
  border-radius: var(--av-radius);
  box-shadow: var(--av-shadow-sm);
}

.av-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}

.av-form-wide,
.av-form-consent,
.av-form-help,
.av-form-notice {
  grid-column: 1 / -1;
}

.av-lead-form label {
  display: grid;
  gap: 8px;
  color: var(--av-ink);
  font-size: 0.86rem;
  font-weight: 700;
}

.av-lead-form input,
.av-lead-form select,
.av-lead-form textarea {
  width: 100%;
  min-height: 50px;
  padding: 11px 13px;
  background: var(--av-white);
  border: 1px solid var(--av-line-strong);
  border-radius: 3px;
  color: var(--av-ink);
}

.av-lead-form textarea {
  min-height: 145px;
  resize: vertical;
}

.av-lead-form input:focus,
.av-lead-form select:focus,
.av-lead-form textarea:focus {
  outline: 0;
  border-color: var(--av-blue);
  box-shadow: 0 0 0 3px rgba(15, 87, 155, 0.14);
}

.av-form-consent label {
  display: flex;
  grid-template-columns: none;
  align-items: flex-start;
  gap: 10px;
  font-weight: 500;
}

.av-form-consent input {
  flex: 0 0 auto;
  width: 18px;
  min-height: 18px;
  margin-top: 4px;
}

.av-lead-form button[type="submit"] {
  min-height: 50px;
  padding: 0 24px;
  background: var(--av-orange);
  border: 1px solid var(--av-orange);
  border-radius: var(--av-radius);
  color: var(--av-white);
  cursor: pointer;
  font-weight: 750;
}

.av-lead-form button[type="submit"]:hover {
  background: var(--av-orange-700);
  border-color: var(--av-orange-700);
}

.av-lead-form button[disabled] {
  cursor: wait;
  opacity: 0.7;
}

.av-form-help {
  color: var(--av-muted);
  font-size: 0.82rem;
}

.av-form-notice {
  padding: 14px 16px;
  border-left: 3px solid var(--av-blue);
  background: var(--av-mist-blue);
}

.av-form-notice--success {
  border-left-color: var(--av-success);
}

.av-form-notice--error {
  border-left-color: var(--av-danger);
  background: #fff0ee;
}

.av-honeypot {
  position: absolute !important;
  left: -9999px !important;
}

/* Article, archive and shop */
.av-archive,
.av-shop {
  padding-block: 72px 110px;
}

.av-archive-header,
.av-article-header {
  margin-bottom: 48px;
}

.av-article-header {
  padding-top: 72px;
}

.av-article-lead {
  max-width: 700px;
  color: var(--av-slate);
  font-size: 1.16rem;
}

.av-article-image {
  margin-bottom: 55px;
}

.av-article-image img {
  width: 100%;
  max-height: 650px;
  object-fit: cover;
}

.av-article-content {
  padding-bottom: 100px;
}

.av-article-content h2,
.av-article-content h3 {
  margin-top: 1.7em;
}

.av-post-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.av-post-card {
  overflow: hidden;
  background: var(--av-white);
  border: 1px solid var(--av-line);
  border-radius: var(--av-radius);
}

.av-post-card__image {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--av-mist);
}

.av-post-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.av-post-card__body {
  padding: 25px;
}

.av-post-card__date {
  color: var(--av-muted);
  font-size: 0.78rem;
}

.av-pagination {
  margin-top: 45px;
}

.av-error-page {
  padding-block: 110px;
  text-align: center;
}

.av-error-code {
  margin-bottom: 10px;
  color: var(--av-orange-700);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.woocommerce .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
  min-height: 46px;
  padding: 0 20px;
  background: var(--av-orange);
  border-radius: var(--av-radius);
  color: var(--av-white);
}

.woocommerce ul.products li.product,
.woocommerce div.product {
  border-radius: var(--av-radius);
}

/* Prefooter and footer */
.av-prefooter {
  background: var(--av-orange);
  color: var(--av-white);
}

.av-prefooter__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 50px;
  min-height: 250px;
  padding-block: 48px;
}

.av-prefooter h2 {
  margin-bottom: 10px;
  color: var(--av-white);
}

.av-prefooter p {
  margin-bottom: 0;
}

.av-prefooter .av-kicker {
  color: rgba(255, 255, 255, 0.9);
}

.av-prefooter .av-kicker::before {
  background: var(--av-white);
}

.av-prefooter .av-button {
  background: var(--av-navy);
  border-color: var(--av-navy);
  color: var(--av-white);
}

.av-prefooter .av-button:hover {
  background: var(--av-navy-900);
  border-color: var(--av-navy-900);
  color: var(--av-white);
}

.av-site-footer {
  padding-top: 72px;
  background: var(--av-navy-900);
  color: rgba(255, 255, 255, 0.67);
  font-size: 0.88rem;
}

.av-footer-grid {
  display: grid;
  grid-template-columns: minmax(250px, 1.6fr) repeat(3, minmax(120px, 0.75fr)) minmax(190px, 1fr);
  gap: 36px;
  padding-bottom: 60px;
}

.av-footer-brand img {
  width: auto;
  max-width: 175px;
  max-height: 58px;
  margin-bottom: 25px;
  filter: brightness(0) invert(1);
}

.av-footer-brand p {
  max-width: 330px;
}

.av-footer-brand address {
  max-width: 320px;
  font-style: normal;
}

.av-site-footer h2 {
  margin: 7px 0 20px;
  color: var(--av-white);
  font-size: 0.78rem;
  font-weight: 760;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.av-footer-menu,
.av-legal-menu {
  margin: 0;
  padding: 0;
  list-style: none;
}

.av-footer-menu li + li {
  margin-top: 10px;
}

.av-site-footer a {
  color: rgba(255, 255, 255, 0.76);
  text-decoration: none;
}

.av-site-footer a:hover {
  color: var(--av-white);
}

.av-footer-contact {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}

.av-footer-contact > a:first-of-type {
  color: var(--av-white);
  font-size: 1.18rem;
  font-weight: 760;
}

.av-footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 78px;
  padding-block: 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.13);
  font-size: 0.78rem;
}

.av-footer-bottom p {
  margin: 0;
}

.av-legal-menu {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
}

.av-mobile-actions {
  display: none;
}

/* WordPress block defaults */
.wp-block-image.av-media {
  overflow: hidden;
  margin-block: 36px;
  border-radius: var(--av-radius);
}

.wp-block-image.av-media img {
  width: 100%;
  max-height: 620px;
  object-fit: cover;
}

.wp-block-quote {
  padding: 22px 26px;
  border-left: 3px solid var(--av-orange);
  background: var(--av-mist);
}

.wp-block-separator {
  border-color: var(--av-line);
}

@media (max-width: 1180px) {
  .av-site-header__inner {
    grid-template-columns: 150px minmax(0, 1fr) auto;
    gap: 18px;
  }

  .av-primary-menu {
    gap: 14px;
  }

  .av-primary-menu > li > a {
    font-size: 0.78rem;
  }

  .av-header-phone {
    display: none;
  }

  .av-hero__inner,
  .av-hero--home .av-hero__inner {
    grid-template-columns: minmax(0, 0.92fr) minmax(400px, 1.08fr);
  }

  .av-hero__copy {
    padding-right: 42px;
  }

  .av-service-card {
    grid-template-columns: 34px minmax(290px, 0.9fr) minmax(0, 1.1fr);
    gap: 32px;
  }

  .av-footer-grid {
    grid-template-columns: 1.5fr repeat(3, 0.7fr);
  }

  .av-footer-contact {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding-top: 28px;
    border-top: 1px solid rgba(255, 255, 255, 0.13);
  }

  .av-footer-contact h2 {
    grid-column: 1 / -1;
  }
}

@media (max-width: 980px) {
  :root {
    --av-header: 70px;
  }

  .av-trustbar__inner p:last-child {
    display: none;
  }

  .av-site-header__inner {
    position: relative;
    grid-template-columns: 1fr auto;
  }

  .av-brand img,
  .av-brand .custom-logo {
    max-height: 46px;
  }

  .av-menu-toggle {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 42px;
    padding: 0;
    background: transparent;
    border: 0;
    color: var(--av-navy);
    cursor: pointer;
    font-weight: 720;
  }

  .av-menu-toggle__label {
    font-size: 0.82rem;
  }

  .av-menu-toggle__icon {
    display: grid;
    gap: 6px;
    width: 25px;
  }

  .av-menu-toggle__icon i {
    display: block;
    width: 25px;
    height: 2px;
    background: currentColor;
    transition: transform 160ms ease;
  }

  .av-menu-toggle[aria-expanded="true"] .av-menu-toggle__icon i:first-child {
    transform: translateY(4px) rotate(45deg);
  }

  .av-menu-toggle[aria-expanded="true"] .av-menu-toggle__icon i:last-child {
    transform: translateY(-4px) rotate(-45deg);
  }

  .av-primary-nav {
    position: absolute;
    top: 100%;
    right: -24px;
    left: -24px;
    display: none;
    max-height: calc(100vh - 102px);
    overflow-y: auto;
    background: var(--av-white);
    border-top: 1px solid var(--av-line);
    border-bottom: 1px solid var(--av-line);
    box-shadow: var(--av-shadow-md);
  }

  .av-primary-nav.is-open {
    display: block;
  }

  .av-primary-menu {
    display: block;
    padding: 12px 24px 22px;
  }

  .av-primary-menu > li {
    display: block;
    min-height: 0;
    border-bottom: 1px solid var(--av-line);
  }

  .av-primary-menu > li > a {
    display: flex;
    min-height: 52px;
    font-size: 0.94rem;
  }

  .av-primary-menu > li > a::after {
    display: none;
  }

  .av-primary-menu .sub-menu {
    position: static;
    display: block;
    width: auto;
    padding: 0 0 12px 14px;
    border: 0;
    box-shadow: none;
  }

  .av-primary-menu .sub-menu a {
    padding: 8px 10px;
    color: var(--av-slate);
  }

  .av-header-actions {
    display: none;
  }

  .av-hero__inner,
  .av-hero--home .av-hero__inner {
    grid-template-columns: 1fr;
  }

  .av-hero__copy {
    padding: 62px 0 56px;
  }

  .av-hero__visual,
  .av-hero--home .av-hero__visual {
    min-height: 470px;
  }

  .av-hero__image-wrap {
    right: 0;
    left: 0;
  }

  .av-home-opener {
    grid-template-columns: 1fr;
  }

  .av-service-card {
    grid-template-columns: 34px minmax(0, 1fr);
    grid-template-areas:
      "number copy"
      "image image";
    gap: 22px 24px;
  }

  .av-service-image {
    margin-top: 10px;
  }

  .av-operations {
    grid-template-columns: 1fr;
  }

  .av-operations__media {
    min-height: 480px;
  }

  .av-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .av-stat:nth-child(2) {
    border-right: 0;
  }

  .av-grid--3,
  .av-feature-grid,
  .av-post-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .av-section--faq {
    display: block;
  }

  .av-section--faq > .av-section-lead {
    margin-top: 0;
  }

  .av-faqs {
    margin-top: 42px;
  }

  .av-cta-panel {
    grid-template-columns: 1fr;
  }

  .av-cta-panel .av-actions {
    grid-column: 1;
    grid-row: auto;
    align-items: flex-start;
    min-width: 0;
    margin-top: 8px;
  }

  .av-footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .av-footer-brand {
    grid-column: 1 / -1;
  }
}

@media (max-width: 720px) {
  body {
    padding-bottom: 64px;
    font-size: 16px;
  }

  .av-shell,
  .av-shell--reading,
  .av-section,
  .av-section.alignwide,
  .alignwide {
    width: min(calc(100% - 36px), var(--av-shell));
  }

  .alignwide {
    margin-inline: calc((100% - min(calc(100vw - 36px), var(--av-shell))) / 2);
  }

  .admin-bar .av-site-header {
    top: 46px;
  }

  .av-trustbar {
    min-height: 30px;
  }

  .av-trustbar__inner {
    justify-content: center;
    min-height: 30px;
    text-align: center;
  }

  .av-site-header__inner {
    min-height: 66px;
  }

  .av-brand img,
  .av-brand .custom-logo {
    max-width: 138px;
    max-height: 43px;
  }

  .av-primary-nav {
    right: -18px;
    left: -18px;
  }

  .av-hero__copy {
    padding: 46px 0 43px;
  }

  .av-hero h1,
  .av-hero--home h1 {
    margin-bottom: 18px;
    font-size: clamp(2.35rem, 11.3vw, 3.45rem);
  }

  .av-hero__lead {
    font-size: 1rem;
  }

  .av-hero__actions {
    align-items: flex-start;
    flex-direction: column;
    gap: 18px;
    margin-top: 27px;
  }

  .av-hero__proof {
    margin-top: 34px;
    padding-top: 18px;
  }

  .av-hero__proof span {
    padding-inline: 10px;
  }

  .av-hero__proof strong {
    font-size: 0.72rem;
  }

  .av-hero__proof small {
    font-size: 0.67rem;
  }

  .av-hero__visual,
  .av-hero--home .av-hero__visual {
    min-height: 340px;
  }

  .av-hero__visual--product .av-hero__image-wrap {
    padding: 38px 24px 68px;
  }

  .av-hero__signal {
    width: min(300px, 90%);
    padding: 16px 18px;
  }

  .av-section {
    padding-block: 68px;
  }

  .av-keypoints {
    grid-template-columns: 1fr;
  }

  .av-home-opener {
    gap: 44px;
  }

  .av-service-ledger {
    margin-top: 40px;
  }

  .av-service-card {
    grid-template-columns: 28px minmax(0, 1fr);
    padding: 32px 0;
  }

  .av-service-row__copy h3 {
    font-size: 2rem;
  }

  .av-service-image {
    aspect-ratio: 4 / 3;
  }

  .av-service-card--1 .av-service-image img {
    padding: 25px;
  }

  .av-grid--3,
  .av-feature-grid,
  .av-post-grid {
    grid-template-columns: 1fr;
  }

  .av-card {
    padding: 25px;
  }

  .av-operations__media {
    min-height: 340px;
  }

  .av-operations__copy {
    padding: 44px 24px;
  }

  .av-stat-grid,
  .av-operations .av-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .av-steps {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .av-step-number {
    margin-bottom: 17px;
  }

  .av-rate-sheet__head {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .av-rate-sheet__price {
    padding-left: 20px;
  }

  .av-directory {
    grid-template-columns: 1fr;
  }

  .av-directory-link:nth-child(odd) {
    border-right: 0;
  }

  .av-faq-item summary {
    min-height: 72px;
    padding-right: 50px;
    font-size: 0.98rem;
  }

  .av-faq-item summary::after {
    width: 32px;
    height: 32px;
    font-size: 22px;
  }

  .av-faq-item > p {
    padding-right: 45px;
  }

  .av-form-grid {
    grid-template-columns: 1fr;
  }

  .av-prefooter__inner {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .av-prefooter .av-button {
    justify-self: start;
  }

  .av-footer-grid,
  .av-footer-contact {
    grid-template-columns: 1fr;
  }

  .av-footer-contact > * {
    grid-column: 1;
  }

  .av-footer-bottom {
    align-items: flex-start;
    flex-direction: column;
  }

  .av-mobile-actions {
    position: fixed;
    z-index: 1200;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    min-height: 64px;
    background: var(--av-navy-900);
    border-top: 1px solid rgba(255, 255, 255, 0.16);
    box-shadow: 0 -8px 24px rgba(5, 29, 51, 0.2);
  }

  .av-mobile-actions a {
    display: grid;
    place-items: center;
    color: var(--av-white);
    font-size: 0.76rem;
    font-weight: 700;
    text-decoration: none;
  }

  .av-mobile-actions a + a {
    border-left: 1px solid rgba(255, 255, 255, 0.16);
  }

  .av-mobile-actions a:last-child {
    background: var(--av-orange);
  }
}

@media (max-width: 430px) {
  .av-hero__proof {
    gap: 12px 0;
  }

  .av-hero__proof span {
    padding-inline: 7px;
  }

  .av-stat-value {
    font-size: 1.55rem;
  }

  .av-button,
  .wp-block-button .wp-block-button__link {
    width: 100%;
  }

  .av-actions,
  .wp-block-buttons.av-actions {
    align-items: stretch;
    flex-direction: column;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

@media print {
  .av-trustbar,
  .av-site-header,
  .av-prefooter,
  .av-site-footer,
  .av-mobile-actions,
  .av-hero__actions {
    display: none !important;
  }

  body {
    color: #000;
    font-size: 11pt;
  }

  .av-hero,
  .av-hero--navy,
  .av-hero--blue {
    background: #fff;
  }

  .av-hero__inner {
    display: block;
    min-height: 0;
  }

  .av-hero__copy {
    padding: 30px 0;
  }

  .av-hero__visual {
    display: none;
  }
}

/* ===== site-v3.css ===== */
/* Media proportions are kept explicit so WordPress image dimensions cannot
   stretch the composition on narrow screens. */
.av-operations__media {
  height: 650px;
  min-height: 0;
}

@media (max-width: 980px) {
  .av-operations__media {
    height: 480px;
  }
}

@media (max-width: 720px) {
  .av-operations__media {
    height: 360px;
  }
}

/* ===== site-v4-core.css ===== */
/*
 * Avanza Seguridad v4
 * A more deliberate conversion hierarchy inspired by mature security sites:
 * clear page routes, scenario-led modules and distinct page families.
 */

:root {
  --av-blue: #105a9f;
  --av-navy: #072b4b;
  --av-orange: #e56f1a;
  --av-mist: #f2f5f7;
  --av-radius: 3px;
  --av-section-nav-height: 54px;
}

/* A calm, compact secondary route through long commercial pages. */
.av-section-nav {
  position: sticky;
  z-index: 900;
  top: var(--av-header);
  min-height: var(--av-section-nav-height);
  background: rgba(255, 255, 255, 0.97);
  border-bottom: 1px solid var(--av-line);
  box-shadow: 0 7px 18px rgba(5, 29, 51, 0.045);
  backdrop-filter: blur(9px);
}

.admin-bar .av-section-nav {
  top: calc(var(--av-header) + 32px);
}

.av-section-nav__inner {
  display: flex;
  align-items: stretch;
  min-height: var(--av-section-nav-height);
}

.av-section-nav__label {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  margin-right: 26px;
  color: var(--av-muted);
  font-size: 0.7rem;
  font-weight: 760;
  letter-spacing: 0.085em;
  text-transform: uppercase;
}

.av-section-nav__label::after {
  content: "";
  width: 1px;
  height: 18px;
  margin-left: 25px;
  background: var(--av-line);
}

.av-section-nav__track {
  display: flex;
  min-width: 0;
  overflow-x: auto;
  scrollbar-width: none;
}

.av-section-nav__track::-webkit-scrollbar {
  display: none;
}

.av-section-nav a {
  position: relative;
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  min-height: var(--av-section-nav-height);
  padding: 0 18px;
  color: var(--av-slate);
  font-size: 0.79rem;
  font-weight: 690;
  text-decoration: none;
  white-space: nowrap;
}

.av-section-nav a::after {
  content: "";
  position: absolute;
  right: 18px;
  bottom: -1px;
  left: 18px;
  height: 3px;
  transform: scaleX(0);
  transform-origin: left;
  background: var(--av-orange);
  transition: transform 180ms ease;
}

.av-section-nav a:hover,
.av-section-nav a.is-active {
  color: var(--av-navy);
}

.av-section-nav a.is-active::after {
  transform: scaleX(1);
}

.av-observed-section {
  scroll-margin-top: calc(var(--av-header) + var(--av-section-nav-height) + 20px);
}

/* More confident proportions: less oversized copy, more product/context. */
@media (min-width: 981px) {
  .av-entry--page .av-hero__inner {
    grid-template-columns: minmax(0, 1fr) minmax(450px, 0.96fr);
    min-height: 520px;
  }

  .av-entry--page .av-hero__visual {
    min-height: 520px;
  }

  .av-entry--page .av-hero__copy {
    padding-block: 60px;
    padding-right: clamp(46px, 5.2vw, 74px);
  }

  .av-entry--page .av-hero h1 {
    font-size: clamp(2.7rem, 3.7vw, 4.05rem);
  }

  .home .av-hero__inner,
  .home .av-hero__visual {
    min-height: 610px;
  }

  .home .av-hero__inner {
    grid-template-columns: minmax(0, 1.02fr) minmax(500px, 0.98fr);
  }

  .home .av-hero__copy {
    padding-right: clamp(50px, 5.8vw, 82px);
  }

  .home .av-hero h1 {
    max-width: 660px;
    font-size: clamp(3rem, 4.2vw, 4.45rem);
  }
}

.av-hero__image-wrap::after {
  background: linear-gradient(90deg, rgba(5, 29, 51, 0.18), transparent 36%);
}

.av-hero__signal {
  width: min(350px, 82%);
  padding: 19px 23px 18px;
  background: rgba(5, 29, 51, 0.94);
  border-top: 3px solid var(--av-orange);
  backdrop-filter: blur(8px);
}

.av-hero__proof {
  margin-top: 36px;
}

/* The introduction now behaves as an editorial overview, not a card dump. */
body:not(.home) .av-section--intro {
  display: grid;
  grid-template-columns: minmax(280px, 0.8fr) minmax(0, 1.2fr);
  column-gap: clamp(54px, 8vw, 118px);
  align-items: start;
}

body:not(.home) .av-section--intro > .av-kicker {
  grid-column: 1 / -1;
}

body:not(.home) .av-section--intro > .av-section-title {
  grid-column: 1;
  grid-row: 2 / span 2;
  margin-bottom: 0;
  font-size: clamp(2rem, 3vw, 3.05rem);
}

body:not(.home) .av-section--intro > .av-section-lead,
body:not(.home) .av-section--intro > .av-keypoints {
  grid-column: 2;
}

body:not(.home) .av-section--intro > .av-keypoints {
  grid-template-columns: 1fr;
  margin-top: 30px;
}

body:not(.home) .av-section--intro > .av-keypoints li {
  padding-block: 14px;
}

body:not(.home) .av-section--intro > .av-keypoints li::before {
  top: 22px;
}

/* Homepage: clear choices presented as substantial solution modules. */
.home .av-home-opener {
  gap: clamp(66px, 9vw, 126px);
}

.home .av-home-opener__statement .av-section-title {
  max-width: 650px;
}

.home .av-home-opener__facts {
  border-top-width: 3px;
}

.home .av-home-fact {
  grid-template-columns: 38px 1fr;
  padding-block: 24px;
}

.home .av-home-fact__number {
  padding-top: 2px;
}

.home .av-section--services {
  position: relative;
}

.home .av-section--services::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0 calc((100vw - 100%) / -2);
  background: #eef2f4;
}

.home .av-service-ledger {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
  margin-top: 48px;
  border-top: 0;
}

.home .av-service-card {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-areas:
    "image"
    "copy";
  gap: 0;
  align-content: start;
  overflow: hidden;
  min-height: 100%;
  padding: 0;
  background: var(--av-white);
  border: 1px solid #d2dce3;
}

.home .av-service-number {
  position: absolute;
  z-index: 3;
  top: 18px;
  left: 18px;
  min-width: 42px;
  margin: 0;
  padding: 8px 9px 7px;
  background: var(--av-navy);
  border-bottom: 2px solid var(--av-orange);
  color: var(--av-white);
  text-align: center;
}

.home .av-service-image {
  aspect-ratio: 16 / 8.4;
  margin: 0;
  border-radius: 0;
}

.home .av-service-card--1 .av-service-image img {
  padding: 42px;
}

.home .av-service-row__copy {
  display: flex;
  flex-direction: column;
  max-width: none;
  min-height: 285px;
  padding: clamp(29px, 3vw, 39px);
}

.home .av-service-row__copy h3 {
  margin-bottom: 14px;
  font-size: clamp(1.8rem, 2.35vw, 2.45rem);
}

.home .av-service-row__copy > p:last-child {
  margin-top: auto;
}

.home .av-text-link {
  padding-bottom: 2px;
}

/* Residential pages read like a requirements list rather than six clones. */
.av-family-residential .av-feature-grid,
.av-family-guide .av-feature-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  border-top: 2px solid var(--av-navy);
}

.av-family-residential .av-feature-grid .av-card,
.av-family-guide .av-feature-grid .av-card {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  align-content: start;
  padding: 28px 28px 30px 0;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--av-line-strong);
  border-radius: 0;
}

.av-family-residential .av-feature-grid .av-card:nth-child(odd),
.av-family-guide .av-feature-grid .av-card:nth-child(odd) {
  padding-right: 38px;
  border-right: 1px solid var(--av-line-strong);
}

.av-family-residential .av-feature-grid .av-card:nth-child(even),
.av-family-guide .av-feature-grid .av-card:nth-child(even) {
  padding-left: 38px;
}

.av-family-residential .av-card-index,
.av-family-guide .av-card-index {
  grid-row: 1 / span 2;
  margin: 3px 0 0;
}

.av-family-residential .av-card-title,
.av-family-residential .av-card-copy,
.av-family-guide .av-card-title,
.av-family-guide .av-card-copy {
  grid-column: 2;
}

/* Business/technical pages carry a denser operational tone. */
.av-family-business .av-section--mist::before,
.av-family-technical .av-section--mist::before {
  background: #edf1f3;
}

.av-family-business .av-feature-grid,
.av-family-technical .av-feature-grid {
  gap: 1px;
  padding: 1px;
  background: #cdd8df;
}

.av-family-business .av-feature-grid .av-card,
.av-family-technical .av-feature-grid .av-card {
  position: relative;
  min-height: 240px;
  padding: 33px;
  border: 0;
  border-radius: 0;
}

.av-family-business .av-feature-grid .av-card::before,
.av-family-technical .av-feature-grid .av-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 33px;
  width: 54px;
  height: 3px;
  background: var(--av-blue);
}

.av-family-business .av-card-index,
.av-family-technical .av-card-index {
  margin-bottom: 42px;
}

/* Local pages prioritise coverage and verifiable proximity. */
.av-family-local .av-entry--page .av-hero__inner,
.av-family-local .av-entry--page .av-hero__visual {
  min-height: 470px;
}

.av-family-local .av-section--links .av-directory,
.av-family-local .av-section--coverage .av-directory {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.av-family-local .av-directory-link:nth-child(odd) {
  border-right: 0;
}

.av-family-local .av-directory-link:not(:nth-child(3n)) {
  border-right: 1px solid var(--av-line);
}

.av-family-local .av-town-list {
  padding: 30px;
  background: #edf3f7;
  border-left-width: 4px;
}

/* Pricing/comparison pages put figures and conditions first. */
.av-family-pricing .av-hero__visual--product .av-hero__image-wrap {
  background: #e5eef5;
}

.av-family-pricing .av-rate-sheet,
.av-family-pricing .av-section--comparison,
.av-family-pricing .av-section--pricing-detail {
  border-top: 3px solid var(--av-navy);
}

.av-family-pricing .av-data-table {
  box-shadow: 0 16px 34px rgba(5, 29, 51, 0.08);
}

/* Controls: one dependable geometry across hero, forms and Gutenberg. */
.av-button,
button.av-button,
.wp-block-button .wp-block-button__link,
.av-lead-form button[type="submit"] {
  border-radius: 2px;
}

.av-hero__actions .av-button,
.av-cta-panel .wp-block-button__link,
.av-lead-form button[type="submit"] {
  min-height: 50px;
  padding-inline: 24px;
}

/* FAQ controls stay optically centred at every font size. */
.av-faq-item summary::after {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 0 2px;
  border-radius: 2px;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 22px;
  font-weight: 400;
  line-height: 32px;
}

.av-faq-item[open] summary::after {
  padding-bottom: 3px;
}

@media (max-width: 1100px) {
  .av-section-nav__label {
    display: none;
  }

  .av-section-nav a:first-child {
    padding-left: 0;
  }

  .home .av-service-row__copy {
    min-height: 310px;
  }

  .av-family-local .av-section--links .av-directory,
  .av-family-local .av-section--coverage .av-directory {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .av-family-local .av-directory-link:not(:nth-child(3n)) {
    border-right: 0;
  }

  .av-family-local .av-directory-link:nth-child(odd) {
    border-right: 1px solid var(--av-line);
  }
}

@media (max-width: 980px) {
  .admin-bar .av-section-nav {
    top: calc(var(--av-header) + 46px);
  }

  body:not(.home) .av-section--intro {
    display: block;
  }

  body:not(.home) .av-section--intro > .av-section-title {
    margin-bottom: 22px;
  }

  body:not(.home) .av-section--intro > .av-keypoints {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home .av-service-ledger {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home .av-service-card {
    grid-template-columns: 1fr;
    grid-template-areas: "image" "copy";
  }

  .home .av-service-image {
    margin-top: 0;
  }

  .av-family-business .av-feature-grid .av-card,
  .av-family-technical .av-feature-grid .av-card {
    min-height: 220px;
  }
}

@media (max-width: 720px) {
  :root {
    --av-section-nav-height: 50px;
  }

  .av-section-nav__inner {
    width: 100%;
  }

  .av-section-nav__track {
    padding-inline: 18px;
  }

  .av-section-nav a {
    min-height: 50px;
    padding-inline: 14px;
    font-size: 0.75rem;
  }

  .av-section-nav a:first-child {
    padding-left: 0;
  }

  .av-section-nav a::after {
    right: 14px;
    left: 14px;
  }

  .av-section-nav a:first-child::after {
    left: 0;
  }

  .home .av-service-ledger,
  .av-family-residential .av-feature-grid,
  .av-family-guide .av-feature-grid,
  .av-family-local .av-section--links .av-directory,
  .av-family-local .av-section--coverage .av-directory {
    grid-template-columns: 1fr;
  }

  .home .av-service-row__copy {
    min-height: 0;
    padding: 27px 24px 30px;
  }

  .home .av-service-image {
    aspect-ratio: 16 / 9.4;
  }

  .home .av-service-card--1 .av-service-image img {
    padding: 28px;
  }

  .av-family-residential .av-feature-grid .av-card,
  .av-family-guide .av-feature-grid .av-card,
  .av-family-residential .av-feature-grid .av-card:nth-child(odd),
  .av-family-guide .av-feature-grid .av-card:nth-child(odd),
  .av-family-residential .av-feature-grid .av-card:nth-child(even),
  .av-family-guide .av-feature-grid .av-card:nth-child(even) {
    padding: 24px 4px 25px 0;
    border-right: 0;
  }

  .av-family-local .av-directory-link:nth-child(odd),
  .av-family-local .av-directory-link:not(:nth-child(3n)) {
    border-right: 0;
  }

  body:not(.home) .av-section--intro > .av-keypoints {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .av-section-nav a::after {
    transition: none;
  }
}

/* ===== site-v4.css ===== */
/* Final optical corrections after desktop and 390 px visual QA. */
.av-button > span,
.wp-block-button__link > span {
  margin-left: 10px;
}

@media (max-width: 720px) {
  .av-hero__actions .av-button {
    width: 100%;
  }
}

/* ===== site-v5-core.css ===== */
/*
 * Avanza Seguridad v5 — alignment and media pass.
 * Loaded after the v3 foundation and v4 page-family layer.
 */

:root {
  --av-radius: 5px;
  --av-shadow-card: 0 18px 44px rgba(5, 29, 51, 0.09);
}

/* Prevent Gutenberg's constrained-layout margins from shifting grid children. */
.av-service-ledger > .av-service-card,
.av-service-card > *,
.av-service-row__copy > *,
.av-operations > *,
.av-operations__copy > *,
.av-rate-sheet__head > *,
.av-directory > .av-directory-link {
  max-width: none;
  margin-block-start: 0 !important;
  margin-block-end: 0;
  margin-inline: 0 !important;
}

/* Hero caption: a useful full-width information rail, aligned to the image. */
.av-hero__signal {
  right: calc((100vw - min(100vw, var(--av-shell))) / -2);
  left: 0;
  width: auto;
  min-height: 78px;
  padding: 17px clamp(22px, 3vw, 34px);
  display: grid;
  grid-template-columns: minmax(125px, 0.45fr) minmax(0, 1fr);
  align-items: center;
  column-gap: 28px;
  background: rgba(5, 29, 51, 0.95);
  border-top: 3px solid var(--av-orange);
}

.av-hero__signal strong,
.av-hero__signal span {
  margin: 0;
}

.av-hero__signal strong {
  position: relative;
  padding-right: 28px;
  font-size: 0.88rem;
}

.av-hero__signal strong::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  width: 1px;
  height: 30px;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.2);
}

.av-hero__signal span {
  font-size: 0.8rem;
}

/* Standard editable captions receive enough space and visual hierarchy. */
.av-entry-content .wp-block-image:not(.av-service-image):not(.av-operations__media) figcaption {
  width: 100%;
  margin: 0;
  padding: 13px 16px 14px;
  background: #edf2f5;
  border-left: 3px solid var(--av-orange);
  color: var(--av-slate);
  font-size: 0.82rem;
  line-height: 1.45;
  text-align: left;
}

/* Homepage solution grid: equal starts, deliberate image crops and compact copy. */
.home .av-service-ledger {
  align-items: stretch;
  grid-auto-rows: 1fr;
  gap: 24px;
}

.home .av-service-card {
  align-items: stretch;
  grid-template-rows: clamp(235px, 22vw, 300px) minmax(0, 1fr);
  height: 100%;
  margin: 0 !important;
  overflow: hidden;
  background: var(--av-white);
  border: 1px solid #ccd8e0;
  border-radius: var(--av-radius);
  box-shadow: 0 0 0 rgba(5, 29, 51, 0);
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.home .av-service-card:hover {
  transform: translateY(-3px);
  border-color: #aebfca;
  box-shadow: var(--av-shadow-card);
}

.home .av-service-image {
  position: relative;
  width: 100% !important;
  height: 100% !important;
  min-height: 0;
  aspect-ratio: auto;
  overflow: hidden;
  background: #dfe7ed;
  border-radius: 0;
}

.home .av-service-image > img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100% !important;
  max-width: none;
  height: 100% !important;
  object-fit: cover;
}

.home .av-service-card--1 .av-service-image > img {
  padding: clamp(30px, 3.2vw, 48px);
  object-fit: contain;
}

.home .av-service-card--2 .av-service-image > img {
  object-position: center 66%;
}

.home .av-service-card--3 .av-service-image > img {
  object-position: center 52%;
}

.home .av-service-card--4 .av-service-image > img {
  object-position: center 58%;
}

.home .av-service-number {
  top: 17px;
  left: 17px;
  min-width: 46px;
  padding: 9px 10px 8px;
  border-radius: 2px 2px 0 0;
  box-shadow: 0 8px 20px rgba(5, 29, 51, 0.13);
}

.home .av-service-row__copy {
  align-items: flex-start;
  justify-content: flex-start;
  width: 100%;
  min-height: 0;
  padding: clamp(28px, 3vw, 38px);
  text-align: left;
}

.home .av-service-row__copy > * {
  width: 100%;
  text-align: left;
}

.home .av-service-row__copy h3 {
  margin-top: 0;
  margin-bottom: 13px;
}

.home .av-service-row__copy > p:not(.av-service-row__meta):not(:last-child) {
  margin-bottom: 24px;
}

.home .av-service-row__copy > p:last-child {
  margin-top: auto !important;
  padding-top: 8px;
}

.home .av-text-link {
  width: auto;
}

/* CRA feature: the photo always fills the entire left column. */
.av-operations {
  align-items: stretch;
  overflow: hidden;
  border-radius: var(--av-radius);
}

.av-operations__media {
  position: relative;
  align-self: stretch;
  width: 100% !important;
  height: auto;
  min-height: 620px;
  margin: 0 !important;
  overflow: hidden;
  background: #0a3458;
}

.av-operations__media > img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100% !important;
  max-width: none;
  height: 100% !important;
  object-fit: cover;
  object-position: center 55%;
}

.av-operations__copy {
  min-height: 620px;
}

/* Pricing header: explicit placement instead of browser auto-flow. */
.av-rate-sheet__head {
  grid-template-columns: minmax(0, 1fr) minmax(250px, 310px);
  grid-template-rows: auto auto auto;
  align-items: center;
  gap: 0 clamp(54px, 8vw, 104px);
}

.av-rate-sheet__head > .av-kicker {
  grid-column: 1;
  grid-row: 1;
  margin-bottom: 18px !important;
}

.av-rate-sheet__head > .av-section-title {
  grid-column: 1;
  grid-row: 2;
  max-width: 690px;
  margin-bottom: 20px;
}

.av-rate-sheet__head > .av-section-lead {
  grid-column: 1;
  grid-row: 3;
}

.av-rate-sheet__head > .av-section {
  grid-column: 1;
  grid-row: 1 / span 3;
}

.av-rate-sheet__head > .av-rate-sheet__price {
  grid-column: 2;
  grid-row: 1 / span 3;
  align-self: center;
  width: 100%;
  padding: 28px 28px 27px;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid #d4dfe6;
  border-left: 4px solid var(--av-orange);
}

.av-rate-sheet__price p:last-child {
  margin-bottom: 0;
}

.av-data-table {
  border-radius: var(--av-radius);
  box-shadow: 0 14px 34px rgba(5, 29, 51, 0.07);
}

/* Directories: force each Gutenberg paragraph to own its whole grid cell. */
.av-directory {
  align-items: stretch;
}

.av-directory > .av-directory-link {
  width: 100% !important;
  max-width: none !important;
  min-width: 0;
}

.av-directory-link > a {
  width: 100%;
}

.home .av-section--coverage .av-directory {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  background: var(--av-line);
  border: 1px solid var(--av-line);
  border-top: 3px solid var(--av-navy);
  border-radius: var(--av-radius);
}

.home .av-section--coverage .av-directory-link,
.home .av-section--coverage .av-directory-link:nth-child(odd) {
  background: var(--av-white);
  border: 0;
}

.home .av-section--coverage .av-directory-link a {
  min-height: 78px;
  padding: 18px 20px;
}

.home .av-section--coverage .av-directory-link a:hover {
  background: #eaf1f6;
}

/* Slightly more current section rhythm without turning everything into cards. */
.home .av-section--services::before {
  background: #edf2f5;
}

.av-rate-sheet::before {
  background: #eef3f6;
}

@media (max-width: 1100px) {
  .home .av-service-card {
    grid-template-rows: 235px minmax(0, 1fr);
  }

  .home .av-section--coverage .av-directory {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .av-operations__media,
  .av-operations__copy {
    min-height: 580px;
  }
}

@media (max-width: 980px) {
  .av-hero__signal {
    right: 0;
  }

  .home .av-service-card {
    grid-template-rows: 220px minmax(0, 1fr);
  }

  .home .av-service-row__copy {
    padding: 27px;
  }

  .av-operations__media {
    height: 500px;
    min-height: 500px;
  }

  .av-operations__copy {
    min-height: 0;
  }
}

@media (max-width: 720px) {
  .av-hero__signal {
    min-height: 72px;
    grid-template-columns: 1fr;
    gap: 3px;
    padding: 15px 18px 16px;
  }

  .av-hero__signal strong {
    padding-right: 0;
  }

  .av-hero__signal strong::after {
    display: none;
  }

  .home .av-service-card {
    grid-template-rows: clamp(210px, 62vw, 260px) minmax(0, 1fr);
  }

  .home .av-service-row__copy {
    padding: 26px 23px 29px;
  }

  .home .av-service-card--1 .av-service-image > img {
    padding: 28px;
  }

  .av-operations__media {
    height: 360px;
    min-height: 360px;
  }

  .av-rate-sheet__head {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    gap: 0;
  }

  .av-rate-sheet__head > .av-kicker,
  .av-rate-sheet__head > .av-section-title,
  .av-rate-sheet__head > .av-section-lead,
  .av-rate-sheet__head > .av-section,
  .av-rate-sheet__head > .av-rate-sheet__price {
    grid-column: 1;
    grid-row: auto;
  }

  .av-rate-sheet__head > .av-rate-sheet__price {
    margin-top: 28px !important;
    padding: 23px 22px 22px;
  }

  .home .av-section--coverage .av-directory {
    grid-template-columns: 1fr;
  }

  .home .av-section--coverage .av-directory-link a {
    min-height: 66px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home .av-service-card {
    transition: none;
  }
}

/* ===== site-v5.css ===== */
/* Seven provinces resolve as 4 + 3, with the final item balancing the row. */
.home .av-section--coverage .av-directory-link:last-child:nth-child(4n + 3) {
  grid-column: span 2;
}

@media (max-width: 720px) {
  .home .av-section--coverage .av-directory-link:last-child:nth-child(4n + 3) {
    grid-column: span 1;
  }
}

/* ===== site-v6-core.css ===== */
/*
 * Avanza Seguridad v6 — brighter corporate colour system.
 * Inspired by the clarity of modern telecom product pages without borrowing
 * their identity: Avanza blue, navy and orange remain the core palette.
 */

:root {
  --av-blue: #0d5aa6;
  --av-blue-bright: #0872c9;
  --av-cyan: #16a4c4;
  --av-sky: #e0f2fa;
  --av-sky-strong: #b9e4f3;
  --av-peach: #fff0e4;
  --av-peach-strong: #ffd8ba;
  --av-orange: #ef741b;
  --av-orange-700: #d45f0d;
}

/* Actions are recognisable everywhere; content containers keep their shape. */
.av-button,
button.av-button,
.wp-block-button .wp-block-button__link,
.av-lead-form button[type="submit"] {
  min-height: 50px;
  padding-inline: 26px;
  border-radius: 999px;
  font-weight: 760;
}

.av-button--header {
  min-height: 44px;
  box-shadow: 0 7px 18px rgba(229, 111, 26, 0.2);
}

.av-button--cut,
.wp-block-button.av-button--cut .wp-block-button__link {
  box-shadow: 0 9px 22px rgba(229, 111, 26, 0.2);
}

.av-button--line,
.wp-block-button.av-button--line .wp-block-button__link {
  background: rgba(255, 255, 255, 0.58);
}

.av-text-link {
  gap: 10px;
  padding-bottom: 0;
  border-bottom: 0;
  color: var(--av-blue);
}

.av-text-link::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -3px;
  left: 0;
  height: 2px;
  transform: scaleX(0.22);
  transform-origin: left;
  background: var(--av-orange);
  transition: transform 180ms ease;
}

.av-text-link:hover::after {
  transform: scaleX(1);
}

.av-section-nav a.is-active {
  color: var(--av-blue);
}

/* Homepage hero: saturated Avanza blue with a curved photographic transition. */
.home .av-hero,
.home .av-hero--light,
.home .av-hero--navy,
.home .av-hero--blue {
  background:
    radial-gradient(circle at 37% 118%, rgba(22, 164, 196, 0.54) 0 17%, transparent 17.4%),
    linear-gradient(135deg, #084f98 0%, #0b67b7 100%);
}

.home .av-hero h1,
.home .av-hero__eyebrow,
.home .av-hero__call,
.home .av-hero__proof strong {
  color: var(--av-white);
}

.home .av-hero__lead {
  color: rgba(255, 255, 255, 0.84);
}

.home .av-hero__call small,
.home .av-hero__proof small {
  color: rgba(255, 255, 255, 0.68);
}

.home .av-hero__proof {
  border-top-color: rgba(255, 255, 255, 0.28);
}

.home .av-hero__proof span {
  border-right-color: rgba(255, 255, 255, 0.23);
}

.home .av-hero__visual {
  isolation: isolate;
  background: #0b67b7;
}

.home .av-hero__visual::before {
  content: "";
  position: absolute;
  z-index: 2;
  top: -9%;
  bottom: -9%;
  left: -74px;
  width: 132px;
  background: #0b67b7;
  border-radius: 0 55% 55% 0;
  pointer-events: none;
}

.home .av-hero__image-wrap {
  z-index: 1;
}

.home .av-hero__image-wrap::after {
  background: linear-gradient(90deg, rgba(8, 79, 152, 0.16), transparent 35%);
}

.home .av-hero__actions .av-button--cut {
  background: var(--av-orange);
  border-color: var(--av-orange);
}

.home .av-hero__signal {
  background: rgba(5, 29, 51, 0.92);
}

/* Small labels make the secondary palette useful rather than decorative. */
.home .av-service-row__meta {
  display: inline-flex;
  width: auto !important;
  margin-bottom: 18px !important;
  padding: 6px 11px 5px;
  background: var(--av-sky);
  border-radius: 999px;
  color: var(--av-blue);
  font-size: 0.71rem;
}

.home .av-service-card:nth-child(even) .av-service-row__meta {
  background: var(--av-peach);
  color: #a94a0a;
}

/* Company proof: a restrained blue wash connects hero and content. */
.home .av-home-opener {
  position: relative;
}

.home .av-home-fact__number {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  padding: 0;
  background: var(--av-peach);
  border-radius: 50%;
  color: var(--av-orange-700);
}

.home .av-home-opener__facts {
  border-top-color: var(--av-blue);
}

/* Solution cards keep the v5 alignment but gain clearer product colour. */
.home .av-section--services::before {
  background: var(--av-sky);
}

.home .av-service-card {
  border-color: #bdd7e5;
  border-radius: 14px;
  box-shadow: 0 8px 24px rgba(5, 49, 88, 0.06);
}

.home .av-service-card:hover {
  border-color: #8fbfd4;
  box-shadow: 0 20px 45px rgba(5, 49, 88, 0.13);
}

.home .av-service-card--1 .av-service-image {
  background: #edf7fb;
}

.home .av-service-card--2 .av-service-image,
.home .av-service-card--4 .av-service-image {
  background: var(--av-navy);
}

.home .av-service-number {
  background: var(--av-orange);
  border-bottom-color: var(--av-navy);
  border-radius: 7px 7px 2px 2px;
}

/* Operations becomes the high-confidence blue block. */
.home .av-operations {
  background: linear-gradient(145deg, #075296 0%, #0872c9 100%);
  border-radius: 16px;
  box-shadow: 0 24px 58px rgba(5, 43, 75, 0.16);
}

.home .av-operations__copy {
  position: relative;
  overflow: hidden;
}

.home .av-operations__copy::after {
  content: "";
  position: absolute;
  right: -105px;
  bottom: -120px;
  width: 270px;
  height: 270px;
  border: 52px solid rgba(185, 228, 243, 0.15);
  border-radius: 50%;
  pointer-events: none;
}

.home .av-operations .av-stat-grid {
  position: relative;
  z-index: 1;
}

/* The three-stage protocol uses three secondary colour roles. */
.home .av-home-flow .av-steps {
  gap: 18px;
}

.home .av-home-flow .av-step {
  min-height: 255px;
  padding: 30px;
  background: var(--av-sky);
  border-top: 0;
  border-radius: 12px;
}

.home .av-home-flow .av-step:nth-child(2) {
  background: var(--av-peach);
}

.home .av-home-flow .av-step:nth-child(3) {
  background: var(--av-navy);
}

.home .av-home-flow .av-step::before {
  top: 0;
  left: 30px;
  width: 56px;
  height: 4px;
  background: var(--av-cyan);
}

.home .av-home-flow .av-step:nth-child(2)::before,
.home .av-home-flow .av-step:nth-child(3)::before {
  background: var(--av-orange);
}

.home .av-home-flow .av-step:nth-child(3) h3,
.home .av-home-flow .av-step:nth-child(3) .av-step-number {
  color: var(--av-white);
}

.home .av-home-flow .av-step:nth-child(3) > p:last-child {
  color: rgba(255, 255, 255, 0.7);
}

/* Pricing and coverage use colour as information hierarchy. */
.av-rate-sheet::before {
  background: #f1f6f9;
}

.av-rate-sheet__head > .av-rate-sheet__price {
  background: var(--av-peach);
  border-color: var(--av-peach-strong);
  border-left-color: var(--av-orange);
  border-radius: 12px;
}

.av-data-table {
  border-color: #bfd1dc;
  border-radius: 10px;
}

.av-data-table th {
  background: var(--av-blue);
}

.home .av-section--coverage .av-directory {
  border-color: #bdd7e5;
  border-top-color: var(--av-blue);
  border-radius: 12px;
}

.home .av-section--coverage .av-directory-link a:hover {
  background: var(--av-sky);
}

.home .av-section--coverage .av-directory-link:nth-child(2n) a:hover {
  background: var(--av-peach);
}

/* Dark evidence bands use a brighter, more modern blue transition. */
.av-section--ink::before {
  background: linear-gradient(135deg, var(--av-navy) 0%, #0b5799 100%);
}

/* Page families get distinct secondary colour roles. */
.av-family-residential .av-section--mist::before,
.av-family-guide .av-section--mist::before {
  background: var(--av-sky);
}

.av-family-residential .av-card-index,
.av-family-guide .av-card-index {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  background: var(--av-white);
  border-radius: 50%;
  color: var(--av-blue);
}

.av-family-business .av-feature-grid .av-card:nth-child(3n + 1)::before,
.av-family-technical .av-feature-grid .av-card:nth-child(3n + 1)::before {
  background: var(--av-blue-bright);
}

.av-family-business .av-feature-grid .av-card:nth-child(3n + 2)::before,
.av-family-technical .av-feature-grid .av-card:nth-child(3n + 2)::before {
  background: var(--av-orange);
}

.av-family-business .av-feature-grid .av-card:nth-child(3n)::before,
.av-family-technical .av-feature-grid .av-card:nth-child(3n)::before {
  background: var(--av-cyan);
}

.av-family-local .av-town-list {
  background: var(--av-sky);
  border-left-color: var(--av-orange);
  border-radius: 0 10px 10px 0;
}

.av-family-pricing .av-section--comparison::before,
.av-family-pricing .av-section--pricing-detail::before {
  background: #f1f6f9;
}

/* FAQ controls echo the action colour without competing with the text. */
.av-faq-item summary::after {
  border-color: #9ec8dc;
  border-radius: 8px;
  color: var(--av-blue);
}

.av-faq-item[open] summary::after {
  background: var(--av-blue);
  border-color: var(--av-blue);
}

@media (max-width: 1100px) {
  .home .av-hero__visual::before {
    left: -58px;
    width: 104px;
  }
}

@media (max-width: 980px) {
  .home .av-hero__visual::before {
    display: none;
  }

  .home .av-home-flow .av-step {
    min-height: 230px;
  }
}

@media (max-width: 720px) {
  .home .av-hero,
  .home .av-hero--light,
  .home .av-hero--navy,
  .home .av-hero--blue {
    background:
      radial-gradient(circle at 80% 34%, rgba(22, 164, 196, 0.34) 0 18%, transparent 18.5%),
      linear-gradient(145deg, #084f98 0%, #0b67b7 100%);
  }

  .home .av-service-card {
    border-radius: 12px;
  }

  .home .av-home-flow .av-steps {
    gap: 14px;
  }

  .home .av-home-flow .av-step {
    min-height: 0;
    padding: 28px 24px;
  }

  .home .av-home-flow .av-step::before {
    left: 24px;
  }

  .av-rate-sheet__head > .av-rate-sheet__price {
    border-radius: 10px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .av-text-link::after {
    transition: none;
  }
}

/* ===== site-v6.css ===== */
/* The animated underline is anchored to each editable text link. */
.av-text-link {
  position: relative;
}

/* ===== site-v7.css ===== */
/*
 * Avanza Seguridad v7 — measured layout and interface correction.
 *
 * This layer fixes WordPress constrained-layout rules that were reducing
 * 1240px components to the 760px reading measure. It also refines consent,
 * FAQ controls and floating utilities without changing editable content.
 */

:root {
  --av-radius-control: 999px;
  --av-radius-panel: 16px;
  --av-radius-card: 12px;
  --av-focus: 0 0 0 4px rgba(13, 90, 166, 0.2);
}

/* Gutenberg should constrain prose, not grids, tables or product modules. */
.av-entry-content > .av-section > :where(
  .av-service-ledger,
  .av-feature-grid,
  .av-stat-grid,
  .av-steps,
  .av-rate-sheet__head,
  .av-data-table,
  .av-directory,
  .av-town-list,
  .av-post-grid,
  .av-contact-grid
) {
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
}

.av-entry-content > .av-section--intro > *,
.av-entry-content > .av-home-opener > *,
.av-entry-content > .av-section--faq > *,
.av-entry-content > .av-cta-panel > *,
.av-entry-content > .av-operations > * {
  margin-inline: 0 !important;
}

.av-entry-content > .av-section--faq > .av-faqs {
  width: 100% !important;
  max-width: none !important;
}

.av-entry-content > .av-form-section > .av-lead-form-wrap {
  width: 100% !important;
  max-width: 980px !important;
  margin-inline: 0 !important;
}

/* Full-width modules now have enough breathing room and consistent edges. */
.home .av-service-ledger {
  gap: clamp(22px, 2.4vw, 32px);
}

.home .av-service-card {
  border-radius: var(--av-radius-panel);
}

.home .av-service-image {
  min-height: 290px;
}

.home .av-service-row__copy {
  min-height: 300px;
}

.av-feature-grid {
  gap: clamp(16px, 1.8vw, 24px);
}

.av-family-business .av-feature-grid,
.av-family-technical .av-feature-grid {
  gap: 2px;
  padding: 2px;
  border-radius: var(--av-radius-card);
  overflow: hidden;
}

.av-family-business .av-feature-grid .av-card,
.av-family-technical .av-feature-grid .av-card {
  min-height: 255px;
}

.av-family-residential .av-feature-grid,
.av-family-guide .av-feature-grid {
  column-gap: clamp(32px, 4vw, 58px);
}

.av-family-residential .av-feature-grid .av-card:nth-child(odd),
.av-family-guide .av-feature-grid .av-card:nth-child(odd) {
  padding-right: clamp(28px, 3vw, 46px);
}

.av-family-residential .av-feature-grid .av-card:nth-child(even),
.av-family-guide .av-feature-grid .av-card:nth-child(even) {
  padding-left: 0;
}

.av-stat-grid,
.av-steps,
.av-directory {
  min-width: 0;
}

/* Price information should read as one composition, not a narrow insert. */
.av-rate-sheet__head {
  grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
}

.av-rate-sheet__head > .av-section-title {
  max-width: 760px;
}

.av-rate-sheet__head > .av-section-lead {
  max-width: 700px;
}

.av-data-table table {
  min-width: 820px;
}

.av-data-table th,
.av-data-table td {
  padding-inline: clamp(16px, 2vw, 25px);
}

.av-directory {
  border-radius: var(--av-radius-card);
  overflow: hidden;
}

/* Optically centred FAQ symbol drawn in CSS; no font glyph inconsistencies. */
.av-faq-item summary {
  padding-right: 64px;
}

.av-faq-item summary::after {
  content: "";
  width: 38px;
  height: 38px;
  padding: 0;
  background:
    linear-gradient(currentColor, currentColor) center / 14px 2px no-repeat,
    linear-gradient(currentColor, currentColor) center / 2px 14px no-repeat,
    var(--av-sky);
  border: 1px solid #a9cfdf;
  border-radius: 50%;
  color: var(--av-blue);
  font-size: 0;
  line-height: 0;
}

.av-faq-item[open] summary::after {
  content: "";
  padding: 0;
  background:
    linear-gradient(currentColor, currentColor) center / 14px 2px no-repeat,
    var(--av-blue);
  border-color: var(--av-blue);
  color: var(--av-white);
}

.av-faq-item summary:hover::after {
  border-color: var(--av-blue);
}

/* Clear keyboard focus across native and theme controls. */
:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 2px solid transparent;
  box-shadow: var(--av-focus);
}

/* Complianz: compact lower-corner panel instead of a page-obscuring modal. */
body .cmplz-cookiebanner.banner-1 {
  top: auto !important;
  right: auto !important;
  bottom: clamp(14px, 2vw, 28px) !important;
  left: clamp(14px, 2vw, 28px) !important;
  width: min(620px, calc(100vw - 28px)) !important;
  min-width: 0 !important;
  max-width: 620px !important;
  max-height: calc(100dvh - 28px) !important;
  padding: 21px 22px 22px !important;
  transform: none !important;
  gap: 12px !important;
  background: rgba(255, 255, 255, 0.98) !important;
  border: 1px solid rgba(5, 29, 51, 0.14) !important;
  border-radius: var(--av-radius-panel) !important;
  box-shadow: 0 24px 70px rgba(5, 29, 51, 0.24) !important;
  font-family: inherit !important;
  animation-duration: 240ms !important;
  backdrop-filter: blur(16px);
}

body .cmplz-cookiebanner .cmplz-header {
  grid-template-columns: 92px minmax(0, 1fr) 28px !important;
  min-height: 38px;
  gap: 15px;
}

body .cmplz-cookiebanner .cmplz-logo img {
  width: 88px !important;
  max-width: 88px !important;
  max-height: 32px !important;
  object-fit: contain;
}

body .cmplz-cookiebanner .cmplz-title {
  justify-self: start !important;
  color: var(--av-navy) !important;
  font-size: 1rem !important;
  font-weight: 780 !important;
}

body .cmplz-cookiebanner .cmplz-close {
  display: grid;
  place-items: center;
  width: 28px !important;
  height: 28px !important;
  color: var(--av-slate) !important;
}

body .cmplz-cookiebanner .cmplz-close svg {
  width: 14px !important;
  height: 14px !important;
}

body .cmplz-cookiebanner .cmplz-body {
  max-height: min(45vh, 360px) !important;
}

body .cmplz-cookiebanner .cmplz-message {
  width: 100% !important;
  margin: 0 !important;
  color: var(--av-slate) !important;
  font-size: 0.82rem !important;
  line-height: 1.5 !important;
}

body .cmplz-cookiebanner .cmplz-message p {
  margin: 0;
}

body .cmplz-cookiebanner .cmplz-buttons {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px !important;
}

body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn {
  min-height: 44px !important;
  height: auto !important;
  padding: 10px 12px !important;
  border-radius: 8px !important;
  font-family: inherit !important;
  font-size: 0.8rem !important;
  font-weight: 750 !important;
  line-height: 1.2 !important;
}

body .cmplz-cookiebanner .cmplz-buttons .cmplz-accept {
  background: var(--av-orange) !important;
  border-color: var(--av-orange) !important;
  color: var(--av-white) !important;
}

body .cmplz-cookiebanner .cmplz-buttons .cmplz-accept:hover {
  background: var(--av-orange-700) !important;
  border-color: var(--av-orange-700) !important;
}

body .cmplz-cookiebanner .cmplz-buttons .cmplz-deny,
body .cmplz-cookiebanner .cmplz-buttons .cmplz-view-preferences,
body .cmplz-cookiebanner .cmplz-buttons .cmplz-save-preferences {
  background: var(--av-white) !important;
  border-color: #bdcbd5 !important;
  color: var(--av-navy) !important;
}

body .cmplz-cookiebanner .cmplz-categories .cmplz-category {
  border-radius: 8px;
}

/* Keep the language switcher clear of the mobile contact rail. */
body .gt_float_switcher {
  border-radius: 10px !important;
  box-shadow: 0 12px 32px rgba(5, 29, 51, 0.18) !important;
}

@media (max-width: 980px) {
  .av-family-business .av-feature-grid,
  .av-family-technical .av-feature-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .av-rate-sheet__head {
    grid-template-columns: minmax(0, 1fr) minmax(250px, 300px);
  }
}

@media (max-width: 720px) {
  .av-entry-content > .av-section > :where(
    .av-service-ledger,
    .av-feature-grid,
    .av-stat-grid,
    .av-steps,
    .av-rate-sheet__head,
    .av-data-table,
    .av-directory,
    .av-town-list,
    .av-post-grid,
    .av-contact-grid
  ) {
    width: 100% !important;
  }

  .home .av-service-image {
    min-height: 0;
  }

  .home .av-service-row__copy {
    min-height: 0;
  }

  .av-family-business .av-feature-grid,
  .av-family-technical .av-feature-grid {
    grid-template-columns: 1fr;
  }

  .av-family-business .av-feature-grid .av-card,
  .av-family-technical .av-feature-grid .av-card {
    min-height: 0;
  }

  .av-family-residential .av-feature-grid,
  .av-family-guide .av-feature-grid {
    column-gap: 0;
  }

  .av-faq-item summary {
    padding-right: 52px;
  }

  .av-faq-item summary::after {
    width: 34px;
    height: 34px;
  }

  body .cmplz-cookiebanner.banner-1 {
    right: 10px !important;
    bottom: 76px !important;
    left: 10px !important;
    width: auto !important;
    max-width: none !important;
    max-height: calc(100dvh - 88px) !important;
    padding: 16px !important;
    border-radius: 14px !important;
  }

  body .cmplz-cookiebanner .cmplz-header {
    grid-template-columns: 1fr 28px !important;
  }

  body .cmplz-cookiebanner .cmplz-logo {
    display: none !important;
  }

  body .cmplz-cookiebanner .cmplz-title {
    display: block !important;
    grid-column: 1 !important;
  }

  body .cmplz-cookiebanner .cmplz-close {
    grid-column: 2 !important;
  }

  body .cmplz-cookiebanner .cmplz-buttons {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body .cmplz-cookiebanner .cmplz-buttons .cmplz-accept {
    grid-column: 1 / -1;
  }

  body .gt_float_switcher {
    right: 10px !important;
    bottom: 74px !important;
  }
}

@media (max-width: 430px) {
  body .cmplz-cookiebanner .cmplz-message {
    font-size: 0.76rem !important;
  }

  body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn {
    white-space: normal !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body .cmplz-cookiebanner.banner-1 {
    animation: none !important;
  }
}

/* ===== site-v7-fixes.css ===== */
/* Post-QA fixes measured at a true 390px Chrome viewport. */
@media (max-width: 720px) {
  .av-rate-sheet__head {
    grid-template-columns: 1fr;
  }
}

/* ===== site-v8.css ===== */
/*
 * Avanza Seguridad v8 — hero focal point and contemporary captions.
 * Keeps the photograph editable as the WordPress featured image.
 */

/* The homepage photograph now continues behind the curved transition. */
.home .av-hero__image-wrap {
  left: -30px;
}

.home .av-hero__image {
  object-position: 64% 48%;
}

/* Hero caption: inset glass panel, aligned to the actual visible photograph. */
.av-hero__signal {
  right: calc((100vw - min(100vw, var(--av-shell))) / -2 + 24px);
  bottom: 22px;
  left: 24px;
  width: auto;
  min-height: 74px;
  padding: 16px 20px;
  grid-template-columns: minmax(160px, 0.52fr) minmax(0, 1fr);
  column-gap: clamp(22px, 3vw, 40px);
  background: linear-gradient(110deg, rgba(5, 29, 51, 0.93), rgba(7, 43, 75, 0.82));
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-left: 4px solid var(--av-orange);
  border-radius: 14px;
  box-shadow: 0 18px 46px rgba(5, 29, 51, 0.24);
  backdrop-filter: blur(14px) saturate(1.12);
}

.home .av-hero__signal {
  background: linear-gradient(110deg, rgba(5, 29, 51, 0.94), rgba(8, 58, 101, 0.84));
}

.av-hero__signal strong,
.av-hero__signal span {
  align-self: center;
}

.av-hero__signal strong {
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr);
  gap: 11px;
  align-items: center;
  padding-right: 0;
  color: var(--av-white);
  font-size: 0.8rem;
  letter-spacing: 0.025em;
}

.av-hero__signal strong::before {
  content: "";
  width: 10px;
  height: 10px;
  background: var(--av-orange);
  border: 3px solid rgba(255, 255, 255, 0.18);
  border-radius: 50%;
  box-shadow: 0 0 0 4px rgba(239, 116, 27, 0.14);
}

.av-hero__signal strong::after {
  display: none;
}

.av-hero__signal span {
  position: relative;
  margin: 0;
  padding-left: clamp(22px, 3vw, 38px);
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.8rem;
  line-height: 1.45;
}

.av-hero__signal span::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 1px;
  height: 30px;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.22);
}

/* Gutenberg image captions become lightweight information cards. */
.av-entry-content .wp-block-image:not(.av-service-image):not(.av-operations__media) figcaption {
  display: grid;
  grid-template-columns: 9px minmax(0, 1fr);
  gap: 11px;
  align-items: start;
  width: 100%;
  margin: 10px 0 0;
  padding: 12px 14px 13px;
  background: linear-gradient(135deg, #f2f8fb 0%, #e7f3f8 100%);
  border: 1px solid #c8dde7;
  border-left: 0;
  border-radius: 10px;
  box-shadow: 0 8px 22px rgba(5, 29, 51, 0.06);
  color: #3f5669;
  font-size: 0.78rem;
  font-weight: 560;
  line-height: 1.5;
  text-align: left;
}

.av-entry-content .wp-block-image:not(.av-service-image):not(.av-operations__media) figcaption::before {
  content: "";
  width: 8px;
  height: 8px;
  margin-top: 0.42em;
  background: var(--av-orange);
  border-radius: 50%;
  box-shadow: 0 0 0 4px rgba(239, 116, 27, 0.12);
}

.av-entry-content .wp-block-image:not(.av-service-image):not(.av-operations__media) figcaption a {
  color: var(--av-blue);
  font-weight: 700;
}

@media (min-width: 1500px) {
  .home .av-hero__image {
    object-position: 61% 48%;
  }
}

@media (min-width: 981px) and (max-width: 1250px) {
  .home .av-hero__image {
    object-position: 69% 48%;
  }
}

@media (max-width: 980px) {
  .home .av-hero__image-wrap {
    left: 0;
  }

  .home .av-hero__image {
    object-position: 66% 48%;
  }

  .av-hero__signal {
    right: 20px;
    bottom: 20px;
    left: 20px;
  }
}

@media (max-width: 720px) {
  .home .av-hero__image {
    object-position: 68% 48%;
  }

  .av-hero__signal {
    right: 14px;
    bottom: 14px;
    left: 14px;
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 5px;
    padding: 14px 15px 15px;
    border-left-width: 3px;
    border-radius: 11px;
  }

  .av-hero__signal strong {
    padding: 0;
  }

  .av-hero__signal span {
    padding-left: 21px;
    font-size: 0.75rem;
  }

  .av-hero__signal span::before {
    display: none;
  }

  .av-entry-content .wp-block-image:not(.av-service-image):not(.av-operations__media) figcaption {
    margin-top: 8px;
    padding: 11px 12px 12px;
    border-radius: 8px;
  }
}

@media (prefers-reduced-transparency: reduce) {
  .av-hero__signal {
    background: var(--av-navy);
    backdrop-filter: none;
  }
}

/* ===== site-v9.css ===== */
/*
 * Avanza Seguridad v9 — reliable section navigation.
 * Mobile uses a touch-friendly horizontal rail with an always-visible state.
 */

.av-section-nav__track {
  scroll-behavior: smooth;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

.av-section-nav a.is-active {
  color: var(--av-blue);
  font-weight: 780;
}

@media (max-width: 720px) {
  :root {
    --av-header: 66px;
    --av-section-nav-height: 60px;
  }

  .av-section-nav {
    min-height: var(--av-section-nav-height);
    overflow: hidden;
    background: rgba(247, 250, 252, 0.96);
    border-top: 1px solid rgba(5, 29, 51, 0.05);
    box-shadow: 0 8px 24px rgba(5, 29, 51, 0.08);
    backdrop-filter: blur(14px) saturate(1.08);
  }

  .av-section-nav__inner {
    width: 100%;
    max-width: none;
    min-height: var(--av-section-nav-height);
    margin: 0;
    padding: 0;
  }

  .av-section-nav__track {
    width: 100%;
    gap: 8px;
    padding: 9px 18px;
    scroll-padding-inline: 18px;
    scroll-snap-type: x proximity;
    touch-action: pan-x;
  }

  .av-section-nav__track::after {
    content: "";
    flex: 0 0 10px;
  }

  .av-section-nav a,
  .av-section-nav a:first-child {
    min-height: 42px;
    max-width: calc(100vw - 56px);
    padding: 0 16px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid #d3dfe6;
    border-radius: 999px;
    color: #526477;
    box-shadow: 0 3px 10px rgba(5, 29, 51, 0.04);
    font-size: 0.76rem;
    font-weight: 690;
    text-overflow: ellipsis;
    scroll-snap-align: center;
  }

  .av-section-nav a::after,
  .av-section-nav a:first-child::after {
    display: none;
  }

  .av-section-nav a:hover {
    background: var(--av-white);
    border-color: #aac7d8;
    color: var(--av-navy);
  }

  .av-section-nav a.is-active,
  .av-section-nav a.is-active:hover {
    background: var(--av-blue);
    border-color: var(--av-blue);
    color: var(--av-white);
    box-shadow: 0 8px 20px rgba(13, 90, 166, 0.22);
  }

  .av-observed-section {
    scroll-margin-top: calc(var(--av-header) + var(--av-section-nav-height) + 16px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .av-section-nav__track {
    scroll-behavior: auto;
  }
}

/* ===== site-v10.css ===== */
/*
 * Avanza Seguridad v10 — editorial split hero and scroll-drawn kickers.
 * The reference is translated into Avanza's own blue/orange identity.
 */

/* Neutral editorial canvas with restrained technical linework. */
.av-hero,
.av-hero.av-hero--navy,
.av-hero.av-hero--blue,
.av-hero.av-hero--light,
.home .av-hero,
.home .av-hero--navy,
.home .av-hero--blue,
.home .av-hero--light {
  background: #f1eee8;
  border-bottom-color: #ded8ce;
}

.av-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-radial-gradient(
    circle at 87% 58%,
    transparent 0 31px,
    rgba(13, 90, 166, 0.055) 32px 33px
  );
  opacity: 0.72;
  mask-image: linear-gradient(90deg, transparent 47%, #000 76%);
  pointer-events: none;
}

.av-hero__inner,
.av-hero--home .av-hero__inner,
.home .av-hero__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: none;
  min-height: 690px;
  margin: 0;
  display: grid;
  grid-template-columns: minmax(0, 63fr) minmax(430px, 37fr);
  grid-template-areas: "visual copy";
}

.av-hero__copy,
.home .av-hero__copy,
.av-entry--page .av-hero__copy {
  grid-area: copy;
  justify-content: center;
  max-width: 720px;
  padding: clamp(64px, 6vw, 112px) clamp(42px, 5.2vw, 94px);
  color: var(--av-ink);
}

.av-hero h1,
.av-hero--home h1,
.home .av-hero h1,
.av-hero.av-hero--navy h1,
.av-hero.av-hero--blue h1 {
  max-width: 590px;
  margin-bottom: 25px;
  color: var(--av-navy);
  font-size: clamp(2.7rem, 3.25vw, 3.85rem);
  font-weight: 680;
  letter-spacing: -0.045em;
  line-height: 1.02;
}

.av-hero__eyebrow,
.home .av-hero__eyebrow,
.av-hero.av-hero--navy .av-hero__eyebrow,
.av-hero.av-hero--blue .av-hero__eyebrow {
  color: var(--av-blue);
}

.av-hero__lead,
.home .av-hero__lead,
.av-hero.av-hero--navy .av-hero__lead,
.av-hero.av-hero--blue .av-hero__lead {
  max-width: 590px;
  color: #42596b;
  font-size: clamp(1.02rem, 1.15vw, 1.16rem);
  line-height: 1.68;
}

.av-hero__actions,
.home .av-hero__actions {
  gap: 20px;
  margin-top: 30px;
}

.av-hero__actions .av-button {
  min-height: 48px;
  padding-inline: 23px;
  box-shadow: 0 9px 22px rgba(239, 116, 27, 0.18);
}

.av-hero__call,
.home .av-hero__call,
.av-hero.av-hero--navy .av-hero__call,
.av-hero.av-hero--blue .av-hero__call {
  color: var(--av-navy);
}

.av-hero__call small,
.home .av-hero__call small,
.av-hero.av-hero--navy .av-hero__call small,
.av-hero.av-hero--blue .av-hero__call small {
  color: #708191;
}

.av-hero__proof,
.home .av-hero__proof {
  max-width: 590px;
  margin-top: 38px;
  padding-top: 20px;
  border-top-color: #cfc8bd;
}

.av-hero__proof span,
.home .av-hero__proof span,
.av-hero.av-hero--navy .av-hero__proof span,
.av-hero.av-hero--blue .av-hero__proof span {
  border-right-color: #d7d0c6;
}

.av-hero__proof strong,
.home .av-hero__proof strong,
.av-hero.av-hero--navy .av-hero__proof strong,
.av-hero.av-hero--blue .av-hero__proof strong {
  color: var(--av-navy);
}

.av-hero__proof small,
.home .av-hero__proof small,
.av-hero.av-hero--navy .av-hero__proof small,
.av-hero.av-hero--blue .av-hero__proof small {
  color: #6c7b88;
}

.av-breadcrumbs,
.av-hero--navy .av-breadcrumbs,
.av-hero--blue .av-breadcrumbs {
  color: #71818f;
}

/* Large contextual photograph, visually independent from the text column. */
.av-hero__visual,
.av-hero--home .av-hero__visual,
.home .av-hero__visual,
.av-entry--page .av-hero__visual {
  grid-area: visual;
  align-self: stretch;
  min-height: 626px;
  margin: 32px 0;
  overflow: hidden;
  background: #d9dfe1;
  border-radius: 0 38px 38px 0;
  box-shadow: 0 20px 52px rgba(5, 29, 51, 0.12);
}

.home .av-hero__visual::before {
  content: none;
}

.av-hero__image-wrap,
.home .av-hero__image-wrap {
  inset: 0;
  overflow: hidden;
  border-radius: inherit;
}

.av-hero__image-wrap::after,
.home .av-hero__image-wrap::after {
  background: linear-gradient(180deg, transparent 56%, rgba(5, 29, 51, 0.18) 100%);
}

.home .av-hero__image {
  object-position: 62% 50%;
}

.av-hero__visual--product .av-hero__image-wrap {
  background: linear-gradient(145deg, #e7f2f7, #d7e7ef);
}

/* The caption works like an editorial credit rail within the photograph. */
.av-hero__signal,
.home .av-hero__signal {
  right: 24px;
  bottom: 24px;
  left: 24px;
  width: auto;
  background: linear-gradient(110deg, rgba(4, 25, 44, 0.92), rgba(7, 43, 75, 0.78));
  border-color: rgba(255, 255, 255, 0.15);
  border-left-color: var(--av-orange);
}

/* Scroll progress draws the orange line into a complete capsule. */
.av-entry-content .av-kicker {
  --av-kicker-progress: 0;
  --av-kicker-reveal: 0%;
  position: relative;
  isolation: isolate;
  width: fit-content !important;
  max-width: 100%;
  min-height: 34px;
  margin-left: -12px !important;
  padding: 7px 14px 7px 12px;
  border-radius: 999px;
}

.av-entry-content .av-kicker::before {
  position: relative;
  z-index: 1;
  transform: scaleX(calc(0.58 + (var(--av-kicker-progress) * 0.42)));
  transform-origin: left;
}

.av-entry-content .av-kicker::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: rgba(239, 116, 27, 0.065);
  border: 1.5px solid var(--av-orange);
  border-radius: inherit;
  clip-path: inset(0 calc(100% - var(--av-kicker-reveal)) 0 0 round 999px);
  box-shadow: 0 7px 18px rgba(239, 116, 27, 0.08);
  will-change: clip-path;
}

.av-section--ink .av-kicker::after,
.av-cta-panel .av-kicker::after {
  background: rgba(239, 116, 27, 0.12);
  border-color: #ff9b55;
}

@media (max-width: 1200px) and (min-width: 981px) {
  .av-hero__inner,
  .av-hero--home .av-hero__inner,
  .home .av-hero__inner {
    grid-template-columns: minmax(0, 57fr) minmax(420px, 43fr);
  }

  .av-hero__copy,
  .home .av-hero__copy,
  .av-entry--page .av-hero__copy {
    padding-inline: clamp(38px, 4vw, 58px);
  }
}

@media (max-width: 980px) {
  .av-hero__inner,
  .av-hero--home .av-hero__inner,
  .home .av-hero__inner {
    min-height: 0;
    grid-template-columns: 1fr;
    grid-template-areas:
      "copy"
      "visual";
  }

  .av-hero__copy,
  .home .av-hero__copy,
  .av-entry--page .av-hero__copy {
    max-width: 760px;
    padding: 54px 24px 44px;
  }

  .av-hero h1,
  .av-hero--home h1,
  .home .av-hero h1 {
    max-width: 680px;
    font-size: clamp(2.6rem, 7vw, 3.7rem);
  }

  .av-hero__visual,
  .av-hero--home .av-hero__visual,
  .home .av-hero__visual,
  .av-entry--page .av-hero__visual {
    width: calc(100% - 36px);
    min-height: min(62vw, 500px);
    margin: 0 18px 28px;
    border-radius: 24px;
  }
}

@media (max-width: 720px) {
  .av-hero::before {
    opacity: 0.5;
    mask-image: linear-gradient(180deg, #000 0, transparent 62%);
  }

  .av-hero__copy,
  .home .av-hero__copy,
  .av-entry--page .av-hero__copy {
    padding: 43px 18px 38px;
  }

  .av-hero h1,
  .av-hero--home h1,
  .home .av-hero h1 {
    font-size: clamp(2.35rem, 11vw, 3.15rem);
    line-height: 1.04;
  }

  .av-hero__lead,
  .home .av-hero__lead {
    font-size: 1rem;
    line-height: 1.62;
  }

  .av-hero__visual,
  .av-hero--home .av-hero__visual,
  .home .av-hero__visual,
  .av-entry--page .av-hero__visual {
    min-height: 360px;
    margin-bottom: 18px;
    border-radius: 18px;
  }

  .home .av-hero__image {
    object-position: 68% 50%;
  }

  .av-hero__signal,
  .home .av-hero__signal {
    right: 14px;
    bottom: 14px;
    left: 14px;
  }

  .av-entry-content .av-kicker {
    min-height: 32px;
    margin-left: -9px !important;
    padding: 6px 11px 6px 9px;
    font-size: 0.7rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .av-entry-content .av-kicker {
    --av-kicker-progress: 1;
    --av-kicker-reveal: 100%;
  }
}

/* ===== site-v10-fixes.css ===== */
/* Avanza Seguridad v10 — browser compatibility and final interaction polish. */

.av-hero::before {
  -webkit-mask-image: linear-gradient(90deg, transparent 47%, #000 76%);
}

.av-entry-content .av-kicker::before {
  transform: scaleX(var(--av-kicker-line-scale, 0.58));
}

.av-entry-content .av-kicker.is-pill-complete::after {
  box-shadow: 0 8px 22px rgba(239, 116, 27, 0.12);
}

@media (max-width: 720px) {
  .av-hero::before {
    -webkit-mask-image: linear-gradient(180deg, #000 0, transparent 62%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .av-entry-content .av-kicker::before {
    transform: scaleX(1);
  }
}

/* ===== site-v10-layout.css ===== */
/* Avanza Seguridad v10 — enforce the editorial hero across every page family. */

@media (min-width: 1201px) {
  .av-entry--page .av-hero__inner {
    grid-template-columns: minmax(0, 63fr) minmax(430px, 37fr);
    min-height: 690px;
  }
}

@media (max-width: 1200px) and (min-width: 981px) {
  .av-entry--page .av-hero__inner {
    grid-template-columns: minmax(0, 57fr) minmax(420px, 43fr);
    min-height: 690px;
  }
}

@media (min-width: 981px) {
  .av-entry--page .av-hero h1 {
    max-width: 590px;
    font-size: clamp(2.7rem, 3.25vw, 3.85rem);
  }

  .av-family-local .av-entry--page .av-hero__inner,
  .av-family-local .av-entry--page .av-hero__visual {
    min-height: 626px;
  }
}

/* ===== site-v11.css ===== */
/*
 * Avanza Seguridad v11 — trust-led hero.
 * A clear, structured composition inspired by accredited security brands,
 * translated into Avanza's own visual language and editable content system.
 */

.av-hero,
.av-hero.av-hero--navy,
.av-hero.av-hero--blue,
.av-hero.av-hero--light,
.home .av-hero {
  background: #f8f7f3;
  border-top: 3px solid var(--av-orange);
  border-bottom: 1px solid #dedbd3;
}

.av-hero::before {
  inset: 0;
  background:
    linear-gradient(135deg, transparent 0 68%, rgba(15, 87, 155, 0.035) 68% 68.2%, transparent 68.2%),
    radial-gradient(circle at 92% 4%, rgba(233, 120, 36, 0.11), transparent 24%);
  opacity: 1;
  -webkit-mask-image: none;
  mask-image: none;
}

.av-hero__brand-mark {
  display: none;
}

.av-hero__pillars {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  width: 100%;
  margin-top: 30px;
}

.av-hero-pillar {
  min-width: 0;
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  align-items: center;
  gap: 13px;
  padding: 13px 15px;
  text-align: left;
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid #d8e1e8;
  border-top: 3px solid var(--av-blue);
  border-radius: 16px 6px 16px 6px;
  box-shadow: 0 9px 24px rgba(8, 43, 75, 0.055);
}

.av-hero-pillar:nth-child(even) {
  border-top-color: var(--av-orange);
}

.av-hero-pillar__icon {
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
  padding: 6px;
  background: #edf5fb;
  border-radius: 15px;
}

.av-hero-pillar__icon img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.av-hero-pillar strong,
.av-hero-pillar small {
  display: block;
}

.av-hero-pillar strong {
  color: var(--av-navy);
  font-size: 0.86rem;
  line-height: 1.18;
}

.av-hero-pillar small {
  margin-top: 4px;
  color: #627386;
  font-size: 0.73rem;
  line-height: 1.32;
}

/* Homepage: centered brand, promise and four confidence guarantees. */
.home .av-hero__inner,
.home .av-hero--home .av-hero__inner {
  width: min(100%, 1280px);
  min-height: 0;
  margin-inline: auto;
  display: block;
  padding: clamp(40px, 4vw, 66px) 30px clamp(44px, 5vw, 72px);
}

.home .av-hero__copy,
.home .av-entry--page .av-hero__copy {
  width: 100%;
  max-width: 1080px;
  margin-inline: auto;
  padding: 0;
  display: flex;
  align-items: center;
  text-align: center;
}

.home .av-hero__brand-mark {
  width: clamp(230px, 21vw, 320px);
  display: block;
  margin: 0 auto 25px;
}

.home .av-hero__brand-mark img {
  display: block;
  width: 100%;
  height: auto;
}

.home .av-hero__eyebrow {
  justify-content: center;
  margin-bottom: 15px;
}

.home .av-hero h1,
.home .av-hero--home h1 {
  max-width: 850px;
  margin: 0 auto 18px;
  color: var(--av-navy);
  font-size: clamp(2.55rem, 4vw, 4.25rem);
  line-height: 1.01;
  letter-spacing: -0.048em;
}

.home .av-hero__lead {
  max-width: 760px;
  margin-inline: auto;
  color: #4c5f70;
  font-size: clamp(1.03rem, 1.35vw, 1.22rem);
  line-height: 1.58;
}

.home .av-hero__pillars {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(12px, 1.5vw, 20px);
  max-width: 980px;
  margin: clamp(30px, 3.3vw, 48px) auto 0;
}

.home .av-hero-pillar {
  min-height: 176px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 12px;
  padding: 20px 16px 18px;
  text-align: center;
  border: 1.5px solid #c6d7e4;
  border-top: 5px solid var(--av-blue);
  border-radius: 28px 10px 28px 10px;
  box-shadow: 0 14px 34px rgba(8, 43, 75, 0.075);
}

.home .av-hero-pillar:nth-child(even) {
  border-top-color: var(--av-orange);
}

.home .av-hero-pillar__icon {
  width: 70px;
  height: 70px;
  padding: 8px;
}

.home .av-hero-pillar strong {
  font-size: 0.98rem;
  letter-spacing: -0.01em;
}

.home .av-hero-pillar small {
  font-size: 0.78rem;
}

.home .av-hero__actions {
  justify-content: center;
  margin-top: 30px;
}

.home .av-hero__actions .av-button {
  min-height: auto;
  padding: 8px 3px 7px;
  color: var(--av-blue);
  background: transparent;
  border: 0;
  border-bottom: 2px solid var(--av-orange);
  border-radius: 0;
  box-shadow: none;
}

.home .av-hero__actions .av-button:hover {
  color: var(--av-navy);
  background: transparent;
  transform: translateX(3px);
}

.home .av-hero__proof {
  width: min(100%, 820px);
  margin: 28px auto 0;
  padding: 18px 22px 0;
  justify-content: center;
  border-top: 1px solid #d7d4cc;
}

.home .av-hero__visual {
  display: none;
}

/* Inner pages: the same trust system with a contextual photograph. */
body:not(.home) .av-hero__inner,
body:not(.home) .av-entry--page .av-hero__inner {
  width: min(100%, 1480px);
  max-width: 1480px;
  min-height: 650px;
  margin-inline: auto;
  padding: 36px;
  display: grid;
  grid-template-columns: minmax(520px, 56fr) minmax(430px, 44fr);
  grid-template-areas: "copy visual";
  gap: clamp(34px, 4vw, 68px);
}

body:not(.home) .av-hero__copy,
body:not(.home) .av-entry--page .av-hero__copy {
  grid-area: copy;
  align-self: center;
  width: 100%;
  max-width: 720px;
  margin-left: auto;
  padding: 34px 0 34px 34px;
}

body:not(.home) .av-hero h1,
body:not(.home) .av-entry--page .av-hero h1 {
  max-width: 680px;
  font-size: clamp(2.7rem, 3.7vw, 4.3rem);
  line-height: 1.01;
}

body:not(.home) .av-hero__lead {
  max-width: 660px;
}

body:not(.home) .av-hero__visual,
body:not(.home) .av-entry--page .av-hero__visual,
.av-family-local .av-entry--page .av-hero__visual {
  grid-area: visual;
  align-self: stretch;
  width: 100%;
  min-height: 578px;
  margin: 0;
  border-radius: 34px 12px 34px 12px;
  box-shadow: 0 22px 52px rgba(8, 43, 75, 0.14);
}

body:not(.home) .av-hero__image-wrap,
body:not(.home) .av-hero__image {
  border-radius: inherit;
}

body:not(.home) .av-hero__signal {
  right: 18px;
  bottom: 18px;
  left: 18px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 18px;
  padding: 16px 18px;
  border-radius: 15px 5px 15px 5px;
}

body:not(.home) .av-hero__actions {
  margin-top: 27px;
}

body:not(.home) .av-hero__proof {
  margin-top: 27px;
}

@media (max-width: 1180px) and (min-width: 981px) {
  body:not(.home) .av-hero__inner,
  body:not(.home) .av-entry--page .av-hero__inner {
    grid-template-columns: minmax(480px, 54fr) minmax(390px, 46fr);
    gap: 30px;
    padding: 28px;
  }

  body:not(.home) .av-hero__copy,
  body:not(.home) .av-entry--page .av-hero__copy {
    padding-left: 14px;
  }

  .av-hero-pillar {
    grid-template-columns: 48px minmax(0, 1fr);
    padding: 11px 12px;
  }

  .av-hero-pillar__icon {
    width: 48px;
    height: 48px;
  }
}

@media (max-width: 980px) {
  body:not(.home) .av-hero__inner,
  body:not(.home) .av-entry--page .av-hero__inner {
    width: 100%;
    min-height: 0;
    padding: 0 18px 28px;
    grid-template-columns: 1fr;
    grid-template-areas:
      "copy"
      "visual";
    gap: 0;
  }

  body:not(.home) .av-hero__copy,
  body:not(.home) .av-entry--page .av-hero__copy {
    max-width: 760px;
    margin-inline: auto;
    padding: 50px 6px 38px;
  }

  body:not(.home) .av-hero__visual,
  body:not(.home) .av-entry--page .av-hero__visual,
  .av-family-local .av-entry--page .av-hero__visual {
    width: 100%;
    min-height: min(68vw, 500px);
    margin: 0;
    border-radius: 28px 10px 28px 10px;
  }
}

@media (max-width: 720px) {
  .home .av-hero__inner,
  .home .av-hero--home .av-hero__inner {
    padding: 34px 16px 46px;
  }

  .home .av-hero__brand-mark {
    width: min(210px, 64vw);
    margin-bottom: 21px;
  }

  .home .av-hero h1,
  .home .av-hero--home h1 {
    font-size: clamp(2.28rem, 10.7vw, 3.05rem);
    line-height: 1.03;
  }

  .home .av-hero__pillars {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 11px;
    margin-top: 29px;
  }

  .home .av-hero-pillar {
    min-height: 162px;
    gap: 9px;
    padding: 15px 10px;
    border-radius: 21px 7px 21px 7px;
  }

  .home .av-hero-pillar__icon {
    width: 59px;
    height: 59px;
  }

  .home .av-hero-pillar strong {
    font-size: 0.84rem;
  }

  .home .av-hero-pillar small {
    font-size: 0.7rem;
  }

  .home .av-hero__actions {
    flex-direction: column;
    gap: 16px;
  }

  .home .av-hero__proof {
    padding-inline: 0;
  }

  body:not(.home) .av-hero__copy,
  body:not(.home) .av-entry--page .av-hero__copy {
    padding-top: 40px;
  }

  body:not(.home) .av-hero h1,
  body:not(.home) .av-entry--page .av-hero h1 {
    font-size: clamp(2.25rem, 10vw, 3rem);
  }

  body:not(.home) .av-hero__pillars {
    gap: 9px;
    margin-top: 24px;
  }

  body:not(.home) .av-hero-pillar {
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 9px;
    padding: 10px;
  }

  body:not(.home) .av-hero-pillar__icon {
    width: 42px;
    height: 42px;
    padding: 4px;
  }

  body:not(.home) .av-hero-pillar strong {
    font-size: 0.76rem;
  }

  body:not(.home) .av-hero-pillar small {
    display: none;
  }

  body:not(.home) .av-hero__visual,
  body:not(.home) .av-entry--page .av-hero__visual,
  .av-family-local .av-entry--page .av-hero__visual {
    min-height: 350px;
    border-radius: 22px 7px 22px 7px;
  }

  body:not(.home) .av-hero__signal {
    right: 12px;
    bottom: 12px;
    left: 12px;
    grid-template-columns: 1fr;
    gap: 4px;
    padding: 13px 14px;
  }
}

/* ===== site-v12.css ===== */
/* Avanza Seguridad v12 — generated premium raster illustrations. */

.av-hero-pillar {
  overflow: hidden;
}

.av-hero-pillar__icon {
  width: 64px;
  height: 64px;
  padding: 0;
  overflow: visible;
  background: radial-gradient(circle, rgba(234, 244, 251, 0.96) 0 54%, transparent 55%);
  border-radius: 0;
}

.av-hero-pillar__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transform: scale(1.16);
  filter: drop-shadow(0 7px 8px rgba(8, 43, 75, 0.15));
}

body:not(.home) .av-hero-pillar {
  min-height: 96px;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 15px;
  padding: 12px 16px;
}

.home .av-hero-pillar {
  min-height: 190px;
  padding-top: 16px;
}

.home .av-hero-pillar__icon {
  width: 86px;
  height: 86px;
}

.home .av-hero-pillar__icon img {
  transform: scale(1.18);
  filter: drop-shadow(0 9px 10px rgba(8, 43, 75, 0.17));
}

@media (max-width: 1180px) and (min-width: 981px) {
  body:not(.home) .av-hero-pillar {
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 11px;
    padding-inline: 11px;
  }

  body:not(.home) .av-hero-pillar__icon {
    width: 56px;
    height: 56px;
  }
}

@media (max-width: 720px) {
  .home .av-hero-pillar {
    min-height: 176px;
  }

  .home .av-hero-pillar__icon {
    width: 73px;
    height: 73px;
  }

  body:not(.home) .av-hero-pillar {
    min-height: 72px;
    grid-template-columns: 50px minmax(0, 1fr);
    gap: 10px;
  }

  body:not(.home) .av-hero-pillar__icon {
    width: 50px;
    height: 50px;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .av-hero-pillar__icon img {
    transition: transform 240ms ease, filter 240ms ease;
  }

  .av-hero-pillar:hover .av-hero-pillar__icon img {
    transform: scale(1.22) translateY(-1px);
    filter: drop-shadow(0 10px 13px rgba(8, 43, 75, 0.2));
  }
}

/* ===== site-v13.css ===== */
/* Avanza Seguridad v13 — cleaner homepage hero. */

.home .av-hero__eyebrow {
  display: none !important;
}

.home .av-hero__brand-mark {
  margin-bottom: clamp(25px, 2.4vw, 34px);
}


/* ===== site-v14.css ===== */

/* Avanza Seguridad v14 — contextual interior heroes. */

body:not(.home) .av-hero__pillars {
  display: none !important;
}

.av-hero__highlights {
  width: 100%;
  max-width: 680px;
  margin: clamp(24px, 3vw, 34px) 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid rgba(255, 255, 255, 0.42);
}

.av-hero--light .av-hero__highlights {
  border-top-color: rgba(8, 43, 75, 0.28);
}

.av-hero__highlight {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: start;
  gap: 14px;
  padding: 13px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  font-size: clamp(0.82rem, 0.76rem + 0.18vw, 0.94rem);
  line-height: 1.42;
  color: rgba(255, 255, 255, 0.88);
}

.av-hero--light .av-hero__highlight {
  border-bottom-color: rgba(8, 43, 75, 0.14);
  color: #264b6c;
}

.av-hero__highlight-index {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding-top: 2px;
  color: #ff7418;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.1em;
}

.av-hero__highlight-index::after {
  width: 13px;
  height: 2px;
  background: currentColor;
  content: '';
}

.av-hero__highlight-text {
  max-width: 60ch;
}

@media (max-width: 767px) {
  .av-hero__highlights {
    margin-top: 22px;
  }

  .av-hero__highlight {
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 10px;
    padding: 11px 0;
  }
}

/* ===== site-v15.css ===== */

/*
 * Avanza Seguridad v15
 * Image-led editorial system informed by Yale Home's clarity and scale,
 * expressed with Avanza blue, navy, orange and warm neutral surfaces.
 */

@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("../fonts/manrope-latin.woff2") format("woff2");
}

:root {
  --av-v15-navy: #082b4b;
  --av-v15-blue: #0d5da8;
  --av-v15-blue-bright: #1674c5;
  --av-v15-orange: #f27622;
  --av-v15-ink: #1e2933;
  --av-v15-muted: #5d6a75;
  --av-v15-sky: #eaf4fb;
  --av-v15-warm: #fff1dc;
  --av-v15-sand: #f4f1eb;
  --av-v15-line: #dce3e7;
  --av-v15-radius-lg: 30px;
  --av-v15-radius-md: 20px;
  --av-v15-shadow: 0 24px 70px rgba(8, 43, 75, 0.13);
}

html {
  scroll-padding-top: 104px;
}

body,
button,
input,
select,
textarea {
  font-family: "Manrope", "Segoe UI Variable", Aptos, "Segoe UI", sans-serif;
}

body {
  color: var(--av-v15-ink);
  background: #fff;
}

body p {
  text-wrap: pretty;
}

/* Header: one calm navigation row, with trust moved into the content. */
.av-trustbar {
  display: none;
}

.av-site-header {
  top: 0;
  z-index: 1000;
  background: rgba(255, 255, 255, 0.96);
  border: 0;
  border-bottom: 1px solid rgba(8, 43, 75, 0.09);
  box-shadow: 0 8px 30px rgba(8, 43, 75, 0.045);
  backdrop-filter: blur(15px);
}

.admin-bar .av-site-header {
  top: 32px;
}

.av-site-header__inner {
  width: min(100%, 1440px);
  min-height: 78px;
  gap: clamp(18px, 2.4vw, 38px);
  padding: 10px 22px;
}

.av-brand,
.av-brand img,
.av-brand .custom-logo-link {
  display: block;
}

.av-brand img {
  width: clamp(142px, 11vw, 174px);
  max-height: 54px;
  object-fit: contain;
}

.av-primary-menu {
  gap: clamp(14px, 1.4vw, 25px);
}

.av-primary-menu > li > a {
  position: relative;
  padding: 27px 0 25px;
  color: #23374a;
  font-size: 0.78rem;
  font-weight: 650;
  letter-spacing: -0.01em;
}

.av-primary-menu > li > a::after {
  position: absolute;
  right: 0;
  bottom: 16px;
  left: 0;
  height: 2px;
  background: var(--av-v15-orange);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 180ms ease;
  content: "";
}

.av-primary-menu > li > a:hover::after,
.av-primary-menu > .current-menu-item > a::after,
.av-primary-menu > .current-menu-ancestor > a::after {
  transform: scaleX(1);
}

.av-primary-menu > .current-menu-item > a,
.av-primary-menu > .current-menu-ancestor > a {
  color: var(--av-v15-blue);
}

.av-header-actions {
  gap: 17px;
}

.av-header-phone {
  color: var(--av-v15-navy);
}

.av-header-phone span {
  color: #71808e;
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.av-header-phone strong {
  font-size: 0.88rem;
}

.av-button,
button.av-button,
.wp-block-button .wp-block-button__link {
  min-height: 48px;
  padding: 12px 24px;
  border-radius: 999px;
  font-size: 0.83rem;
  font-weight: 750;
  letter-spacing: -0.01em;
  box-shadow: none;
}

.av-button--header {
  min-height: 44px;
  padding: 11px 22px;
  color: #fff;
  background: var(--av-v15-orange);
}

.av-button--header:hover {
  color: #fff;
  background: #dd6415;
  transform: translateY(-1px);
}

.av-button--line,
.wp-block-button.av-button--line .wp-block-button__link {
  min-height: 0;
  padding: 10px 0 8px;
  color: var(--av-v15-navy);
  background: transparent;
  border: 0;
  border-bottom: 2px solid currentColor;
  border-radius: 0;
}

.av-button--soft,
.wp-block-button.av-button--soft .wp-block-button__link {
  color: var(--av-v15-navy);
  background: var(--av-v15-sky);
  border-radius: 14px;
}

/* Image-led hero. */
.av-hero,
.av-hero.av-hero--navy,
.av-hero.av-hero--blue,
.av-hero.av-hero--light,
.home .av-hero {
  padding: 18px 0 28px;
  overflow: visible;
  background: #fff;
  border: 0;
}

.av-hero::before {
  display: none;
}

body .av-hero__inner,
body.home .av-hero__inner,
body:not(.home) .av-entry--page .av-hero__inner {
  display: block;
  width: min(100%, 1440px);
  max-width: 1440px;
  min-height: 0;
  margin-inline: auto;
  padding: 0 18px;
}

.av-hero__stage {
  position: relative;
  min-height: clamp(555px, 42vw, 620px);
  overflow: hidden;
  background: var(--av-v15-navy);
  border-radius: var(--av-v15-radius-lg);
  isolation: isolate;
}

.av-hero__stage::after {
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(8, 43, 75, 0.16), transparent 58%);
  content: "";
}

body .av-hero__copy,
body.home .av-hero__copy,
body:not(.home) .av-entry--page .av-hero__copy {
  position: absolute;
  top: 34px;
  bottom: 34px;
  left: 34px;
  z-index: 3;
  display: flex;
  width: min(455px, calc(100% - 68px));
  max-width: 455px;
  margin: 0;
  padding: clamp(31px, 3.1vw, 46px);
  align-items: flex-start;
  justify-content: center;
  flex-direction: column;
  color: var(--av-v15-ink);
  text-align: left;
  background: rgba(255, 255, 255, 0.965);
  border: 1px solid rgba(255, 255, 255, 0.7);
  border-radius: 21px;
  box-shadow: var(--av-v15-shadow);
  backdrop-filter: blur(12px);
}

.av-breadcrumbs {
  max-width: 100%;
  margin: 0 0 20px;
  overflow: hidden;
  color: #6d7b87;
  font-size: 0.7rem;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.av-breadcrumbs a {
  color: var(--av-v15-blue);
}

.av-hero__eyebrow {
  margin: 0 0 13px;
  color: var(--av-v15-blue);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.av-hero__eyebrow::before {
  width: 24px;
  background: var(--av-v15-orange);
}

body .av-hero h1,
body.home .av-hero h1,
body:not(.home) .av-entry--page .av-hero h1 {
  max-width: 100%;
  margin: 0;
  color: var(--av-v15-ink);
  font-size: clamp(2.25rem, 3.1vw, 3.25rem);
  font-weight: 750;
  line-height: 1.04;
  letter-spacing: -0.048em;
  text-wrap: balance;
}

body.home .av-hero h1 {
  font-size: clamp(2.35rem, 3.2vw, 3.45rem);
}

body .av-hero__lead,
body.home .av-hero__lead,
body:not(.home) .av-hero__lead {
  max-width: 41ch;
  margin: 18px 0 0;
  color: var(--av-v15-muted);
  font-size: clamp(0.93rem, 0.88rem + 0.18vw, 1.04rem);
  line-height: 1.58;
}

.av-hero__actions,
body.home .av-hero__actions,
body:not(.home) .av-hero__actions {
  width: 100%;
  margin: clamp(23px, 2.5vw, 30px) 0 0;
  justify-content: flex-start;
  gap: 18px;
}

.av-hero__actions .av-button,
body.home .av-hero__actions .av-button,
body:not(.home) .av-hero__actions .av-button {
  min-height: 49px;
  padding: 13px 23px;
  color: #fff;
  background: var(--av-v15-orange);
  border: 0;
  border-radius: 999px;
  box-shadow: none;
}

.av-hero__actions .av-button:hover,
body.home .av-hero__actions .av-button:hover {
  color: #fff;
  background: #dd6415;
  transform: translateY(-2px);
}

.av-hero__call {
  color: var(--av-v15-navy);
  text-align: left;
}

.av-hero__call small {
  color: #73808c;
  font-size: 0.64rem;
  line-height: 1.2;
}

.av-hero__call strong {
  margin-top: 3px;
  font-size: 0.88rem;
}

body .av-hero__proof,
body.home .av-hero__proof,
body:not(.home) .av-hero__proof {
  width: 100%;
  margin: 26px 0 0;
  padding: 15px 0 0;
  justify-content: flex-start;
  border-top: 1px solid var(--av-v15-line);
}

.av-hero__proof span {
  flex: 1 1 0;
  padding: 0 12px;
  border-left: 1px solid var(--av-v15-line);
}

.av-hero__proof span:first-child {
  padding-left: 0;
  border-left: 0;
}

.av-hero__proof strong {
  color: var(--av-v15-navy);
  font-size: 0.72rem;
}

.av-hero__proof small {
  margin-top: 3px;
  color: #77838e;
  font-size: 0.59rem;
}

body .av-hero__visual,
body.home .av-hero__visual,
body:not(.home) .av-entry--page .av-hero__visual,
.av-family-local .av-entry--page .av-hero__visual {
  position: absolute;
  inset: 0;
  z-index: -2;
  display: block;
  width: 100%;
  max-width: none;
  min-height: 0;
  height: 100%;
  margin: 0;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

body .av-hero__image-wrap,
body .av-hero__image {
  width: 100%;
  height: 100%;
  border-radius: 0;
}

body .av-hero__image {
  display: block;
  object-fit: cover;
  object-position: center;
}

body.home .av-hero__image {
  object-position: 56% center;
}

.av-hero__visual--product .av-hero__image {
  padding: clamp(55px, 7vw, 95px) clamp(35px, 5vw, 78px);
  object-fit: contain;
  background: #dceaf3;
}

body .av-hero__signal,
body:not(.home) .av-hero__signal {
  right: 24px;
  bottom: 24px;
  left: auto;
  display: grid;
  width: min(390px, calc(100% - 520px));
  min-width: 330px;
  grid-template-columns: 1fr;
  gap: 5px;
  padding: 18px 22px 19px;
  color: #fff;
  background: rgba(8, 43, 75, 0.9);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-top: 3px solid var(--av-v15-orange);
  border-radius: 16px;
  box-shadow: 0 18px 45px rgba(8, 43, 75, 0.22);
  backdrop-filter: blur(12px);
}

.av-hero__signal strong {
  font-size: 0.85rem;
}

.av-hero__signal span {
  color: rgba(255, 255, 255, 0.75);
  font-size: 0.76rem;
}

/* Homepage guarantees: one supporting rail, not four competing cards. */
body.home .av-hero__pillars {
  display: grid;
  width: 100%;
  max-width: none;
  margin: 16px 0 0;
  padding: 20px 26px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  background: var(--av-v15-sky);
  border: 0;
  border-radius: 22px;
}

body.home .av-hero-pillar {
  display: grid;
  min-height: 70px;
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 0 20px;
  text-align: left;
  background: transparent;
  border: 0;
  border-left: 1px solid rgba(8, 43, 75, 0.12);
  border-radius: 0;
  box-shadow: none;
}

body.home .av-hero-pillar:first-child {
  padding-left: 0;
  border-left: 0;
}

body.home .av-hero-pillar__icon {
  width: 56px;
  height: 56px;
  padding: 0;
  background: transparent;
}

body.home .av-hero-pillar__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transform: none;
  filter: drop-shadow(0 7px 9px rgba(8, 43, 75, 0.12));
}

body.home .av-hero-pillar strong {
  color: var(--av-v15-navy);
  font-size: 0.82rem;
  line-height: 1.22;
}

body.home .av-hero-pillar small {
  margin-top: 3px;
  color: #667683;
  font-size: 0.67rem;
}

/* Interior pages get their own content-derived highlights. */
body:not(.home) .av-hero__highlights {
  display: grid;
  width: 100%;
  max-width: none;
  margin: 16px 0 0;
  padding: 0 20px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  background: var(--av-v15-warm);
  border: 0;
  border-radius: 22px;
}

body:not(.home) .av-hero__highlight {
  display: grid;
  min-height: 88px;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 18px 20px;
  color: #364553;
  border: 0;
  border-left: 1px solid rgba(8, 43, 75, 0.12);
  font-size: 0.82rem;
  line-height: 1.4;
}

body:not(.home) .av-hero__highlight:first-child {
  border-left: 0;
}

.av-hero__highlight-index {
  display: inline-flex;
  width: 34px;
  height: 34px;
  padding: 0;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: var(--av-v15-blue);
  border-radius: 50%;
  font-size: 0.63rem;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.av-hero__highlight-index::after {
  display: none;
}

.av-hero__highlight-text {
  max-width: 34ch;
  font-weight: 650;
}

/* Section rhythm and surfaces. */
.av-entry-content {
  overflow: clip;
}

.av-entry-content > .av-section,
.av-entry-content > .wp-block-group.av-section,
.av-entry-content > .av-operations,
.av-entry-content > .av-rate-sheet {
  width: min(1320px, calc(100% - 36px));
  max-width: 1320px;
  margin: clamp(58px, 7vw, 106px) auto;
}

.av-section--mist::before,
.av-section--ink::before,
.av-section--warning::before,
.av-section--comparison::before,
.av-section--pricing-detail::before,
.av-section--contact-grid::before,
.av-rate-sheet::before,
.av-section--services::before {
  display: none;
}

.av-kicker {
  color: var(--av-v15-blue);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.av-section-title,
.av-section h2,
.av-operations h2,
.av-rate-sheet h2 {
  color: var(--av-v15-ink);
  font-size: clamp(2rem, 3.5vw, 3.55rem);
  font-weight: 730;
  line-height: 1.06;
  letter-spacing: -0.046em;
  text-wrap: balance;
}

.av-section-lead {
  max-width: 68ch;
  color: var(--av-v15-muted);
  font-size: clamp(1rem, 0.95rem + 0.2vw, 1.14rem);
  line-height: 1.7;
}

.av-section--mist,
.av-section--warning,
.av-section--comparison,
.av-section--pricing-detail,
.av-section--contact-grid,
.av-form-section,
.av-section--local-detail {
  padding: clamp(38px, 5vw, 72px);
  background: var(--av-v15-sky);
  border: 0;
  border-radius: var(--av-v15-radius-lg);
}

.av-section--warning,
.av-section--pricing-detail {
  background: var(--av-v15-warm);
}

.av-section--ink {
  padding: clamp(42px, 5vw, 74px);
  color: #fff;
  background: var(--av-v15-navy);
  border: 0;
  border-radius: var(--av-v15-radius-lg);
}

.av-section--ink h2,
.av-section--ink h3,
.av-section--ink .av-section-title,
.av-section--ink .av-kicker {
  color: #fff;
}

.av-section--ink .av-section-lead {
  color: rgba(255, 255, 255, 0.72);
}

/* Yale-like warm introduction: confident, large and uncluttered. */
body.home .av-home-opener {
  display: grid;
  padding: clamp(42px, 5.4vw, 78px);
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(45px, 7vw, 105px);
  align-items: start;
  background: var(--av-v15-warm);
  border-radius: var(--av-v15-radius-lg);
}

body.home .av-home-opener__statement .av-section-title {
  max-width: 12ch;
  margin-top: 14px;
  font-size: clamp(2.35rem, 4vw, 4.1rem);
}

body.home .av-home-opener__facts {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}

body.home .av-home-fact {
  display: grid;
  padding: 22px 0;
  grid-template-columns: 54px minmax(150px, 0.52fr) minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  background: transparent;
  border: 0;
  border-top: 1px solid rgba(8, 43, 75, 0.16);
  border-radius: 0;
}

body.home .av-home-fact:first-child {
  border-top: 0;
}

body.home .av-home-fact__number {
  display: grid;
  width: 42px;
  height: 42px;
  margin: 0;
  place-items: center;
  color: #fff;
  background: var(--av-v15-blue);
  border-radius: 50%;
  font-size: 0.65rem;
}

body.home .av-home-fact h3 {
  margin: 7px 0 0;
  color: var(--av-v15-navy);
  font-size: 1rem;
}

body.home .av-home-fact > p:last-child {
  margin: 2px 0 0;
  color: #5e6b76;
  font-size: 0.86rem;
  line-height: 1.58;
}

/* Large product/solution tiles. */
body.home .av-section--services {
  padding: 0;
  background: transparent;
  border: 0;
}

body.home .av-section--services > .av-section-title {
  max-width: 17ch;
}

body.home .av-section--services > .av-section-lead {
  max-width: 70ch;
}

body.home .av-service-ledger {
  display: grid;
  margin-top: clamp(32px, 4vw, 54px);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

body.home .av-service-card {
  position: relative;
  display: grid;
  min-height: 590px;
  padding: 0;
  grid-template-columns: 1fr;
  grid-template-rows: 330px minmax(0, 1fr);
  gap: 0;
  overflow: hidden;
  background: #f3f5f5;
  border: 0;
  border-radius: 28px;
  box-shadow: none;
  transition: transform 220ms ease, box-shadow 220ms ease;
}

body.home .av-service-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 22px 55px rgba(8, 43, 75, 0.12);
}

body.home .av-service-number {
  display: none;
}

body.home .av-service-image {
  width: 100%;
  height: 330px;
  margin: 0;
  overflow: hidden;
  background: #dce9f1;
  border: 0;
}

body.home .av-service-image > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 360ms ease;
}

body.home .av-service-card:hover .av-service-image > img {
  transform: scale(1.035);
}

body.home .av-service-card--1 .av-service-image > img {
  padding: 30px;
  object-fit: contain;
  background: var(--av-v15-sky);
}

body.home .av-service-card--2 .av-service-image > img,
body.home .av-service-card--4 .av-service-image > img {
  object-position: center 38%;
}

body.home .av-service-row__copy {
  display: flex;
  min-height: 0;
  padding: clamp(28px, 3vw, 42px);
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  background: #fff;
}

body.home .av-service-row__meta {
  margin: 0 0 13px;
  color: var(--av-v15-blue);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

body.home .av-service-row__copy h3 {
  margin: 0;
  color: var(--av-v15-ink);
  font-size: clamp(1.75rem, 2.5vw, 2.55rem);
  line-height: 1.08;
  letter-spacing: -0.04em;
}

body.home .av-service-row__copy > p:not(.av-service-row__meta) {
  max-width: 54ch;
  color: #60707d;
  font-size: 0.94rem;
  line-height: 1.65;
}

.av-text-link {
  display: inline-flex;
  gap: 18px;
  align-items: center;
  margin-top: 5px;
  padding-bottom: 5px;
  color: var(--av-v15-navy);
  border-bottom: 2px solid var(--av-v15-orange);
  font-weight: 750;
}

/* CRA story: cinematic image plus solid operational proof. */
body.home .av-operations,
.av-operations {
  display: grid;
  min-height: 620px;
  padding: 0;
  grid-template-columns: minmax(0, 1.08fr) minmax(380px, 0.92fr);
  gap: 0;
  overflow: hidden;
  color: #fff;
  background: var(--av-v15-navy);
  border: 0;
  border-radius: var(--av-v15-radius-lg);
  box-shadow: none;
}

.av-operations__media {
  width: 100%;
  min-height: 620px;
  margin: 0;
  overflow: hidden;
  border: 0;
}

.av-operations__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 34%;
}

body.home .av-operations__copy,
.av-operations__copy {
  position: relative;
  display: flex;
  padding: clamp(42px, 5vw, 72px);
  flex-direction: column;
  justify-content: center;
  background: transparent;
}

.av-operations__copy::after {
  display: none;
}

.av-operations__copy .av-kicker,
.av-operations__copy .av-section-title,
.av-operations__copy h2 {
  color: #fff;
}

.av-operations__copy .av-section-lead {
  color: rgba(255, 255, 255, 0.72);
}

.av-operations .av-stat-grid {
  display: grid;
  margin-top: 30px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.av-operations .av-stat {
  min-height: 102px;
  padding: 20px 18px 16px 0;
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 0;
}

.av-operations .av-stat:nth-child(even) {
  padding-left: 18px;
  border-left: 1px solid rgba(255, 255, 255, 0.16);
}

/* Process: one warm canvas, three clear steps. */
body.home .av-home-flow {
  padding: clamp(42px, 5.3vw, 74px);
  background: var(--av-v15-sand);
  border-radius: var(--av-v15-radius-lg);
}

body.home .av-home-flow .av-steps,
.av-steps {
  display: grid;
  margin-top: clamp(34px, 4vw, 54px);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
}

body.home .av-home-flow .av-step,
.av-step {
  min-height: 0;
  padding: 0 clamp(24px, 3vw, 42px);
  color: var(--av-v15-ink);
  background: transparent;
  border: 0;
  border-left: 1px solid rgba(8, 43, 75, 0.15);
  border-radius: 0;
}

.av-step:first-child {
  padding-left: 0;
  border-left: 0;
}

.av-step::before {
  display: none;
}

.av-step-number {
  display: grid;
  width: 48px;
  height: 48px;
  margin-bottom: 24px;
  place-items: center;
  color: #fff;
  background: var(--av-v15-blue);
  border-radius: 50%;
  font-size: 0.69rem;
}

.av-step:nth-child(2) .av-step-number {
  background: var(--av-v15-orange);
}

.av-step h3 {
  color: var(--av-v15-navy);
  font-size: 1.35rem;
}

.av-step > p:last-child {
  color: #65727e;
  font-size: 0.91rem;
  line-height: 1.66;
}

/* Pricing and comparison. */
.av-rate-sheet {
  position: relative;
  padding: clamp(42px, 5vw, 72px);
  overflow: hidden;
  background: var(--av-v15-sky);
  border: 0;
  border-radius: var(--av-v15-radius-lg);
}

.av-rate-sheet__head {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(250px, 0.55fr);
  gap: clamp(34px, 6vw, 90px);
  align-items: end;
}

.av-rate-sheet__head > .av-section,
.av-rate-sheet__head > .av-rate-sheet__price {
  margin: 0;
  padding: 0;
}

.av-rate-sheet__price {
  align-self: end;
  padding: 24px 0 4px 28px;
  border-left: 3px solid var(--av-v15-orange);
}

.av-rate-sheet__amount strong {
  color: var(--av-v15-navy);
  font-size: clamp(2.8rem, 4.7vw, 4.5rem);
  letter-spacing: -0.055em;
}

.av-table-wrap {
  margin-top: 36px;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(8, 43, 75, 0.12);
  border-radius: 17px;
}

.av-table-wrap table {
  margin: 0;
}

.av-table-wrap th {
  color: #fff;
  background: var(--av-v15-navy);
}

.av-table-wrap th,
.av-table-wrap td {
  padding: 15px 17px;
  border-color: #dfe6e9;
  font-size: 0.78rem;
}

.av-rate-sheet .wp-block-buttons {
  margin-top: 28px;
}

/* Coverage is a directory, not a wall of cards. */
body.home .av-section--coverage,
.av-section--coverage {
  padding: clamp(42px, 5.4vw, 76px);
  background: var(--av-v15-warm);
  border-radius: var(--av-v15-radius-lg);
}

.av-directory,
body.home .av-section--coverage .av-directory {
  display: grid;
  margin-top: 38px;
  padding: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid rgba(8, 43, 75, 0.18);
}

.av-directory-link,
.av-directory-link:nth-child(odd),
body.home .av-section--coverage .av-directory-link,
body.home .av-section--coverage .av-directory-link:nth-child(odd) {
  min-width: 0;
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(8, 43, 75, 0.15);
}

.av-directory-link a,
body.home .av-section--coverage .av-directory-link a {
  display: flex;
  min-height: 68px;
  padding: 18px 15px;
  align-items: center;
  justify-content: space-between;
  color: var(--av-v15-navy);
  font-weight: 700;
  transition: color 180ms ease, padding 180ms ease;
}

.av-directory-link a:hover,
body.home .av-section--coverage .av-directory-link a:hover {
  padding-left: 21px;
  color: var(--av-v15-orange);
  background: transparent;
}

/* Interior cards stay editorial and gain distinct surfaces. */
.av-feature-grid {
  display: grid;
  margin-top: 34px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.av-card,
.av-family-residential .av-feature-grid .av-card,
.av-family-guide .av-feature-grid .av-card,
.av-family-business .av-feature-grid .av-card,
.av-family-technical .av-feature-grid .av-card {
  position: relative;
  min-height: 270px;
  padding: clamp(26px, 3vw, 40px);
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(8, 43, 75, 0.1);
  border-radius: 22px;
  box-shadow: none;
}

.av-card:nth-child(3n + 2),
.av-family-residential .av-feature-grid .av-card:nth-child(even),
.av-family-guide .av-feature-grid .av-card:nth-child(even) {
  background: var(--av-v15-warm);
}

.av-card:nth-child(3n) {
  background: var(--av-v15-sky);
}

.av-card::before,
.av-family-business .av-feature-grid .av-card::before,
.av-family-technical .av-feature-grid .av-card::before {
  display: none;
}

.av-card-index {
  color: var(--av-v15-blue);
  font-size: 0.67rem;
  font-weight: 800;
  letter-spacing: 0.1em;
}

.av-card-title {
  margin-top: 42px;
  color: var(--av-v15-navy);
  font-size: 1.35rem;
  line-height: 1.18;
}

.av-card-copy {
  color: #66737e;
  font-size: 0.9rem;
  line-height: 1.64;
}

.av-keypoints {
  display: grid;
  margin-top: 32px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 34px;
}

.av-keypoints li {
  padding: 14px 0 14px 24px;
  color: #415260;
  border-bottom: 1px solid var(--av-v15-line);
}

.av-keypoints li::before {
  width: 9px;
  height: 9px;
  background: var(--av-v15-orange);
  border-radius: 50%;
}

/* FAQ: stronger type, reliable plus/minus and more breathing room. */
.av-section--faq {
  max-width: 1060px;
  padding-inline: 0;
}

.av-faqs {
  margin-top: 34px;
  border-top: 1px solid var(--av-v15-line);
}

.av-faq-item {
  margin: 0;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--av-v15-line);
  border-radius: 0;
}

.av-faq-item summary {
  min-height: 78px;
  padding: 22px 66px 22px 0;
  color: var(--av-v15-navy);
  font-size: clamp(0.98rem, 0.94rem + 0.15vw, 1.1rem);
  font-weight: 700;
}

.av-faq-item summary::after {
  right: 0;
  top: 50%;
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  color: var(--av-v15-navy);
  background: var(--av-v15-sky);
  border: 0;
  border-radius: 50%;
  transform: translateY(-50%);
  content: "+";
  font-family: Arial, sans-serif;
  font-size: 1.45rem;
  font-weight: 400;
  line-height: 1;
}

.av-faq-item[open] summary::after {
  color: #fff;
  background: var(--av-v15-orange);
  transform: translateY(-50%);
  content: "−";
}

.av-faq-item > p {
  max-width: 74ch;
  margin: 0;
  padding: 0 66px 26px 0;
  color: #5f6d78;
  font-size: 0.93rem;
  line-height: 1.72;
}

/* Section navigation remains compact and accurate on small screens. */
.av-section-nav {
  top: 78px;
  background: rgba(255, 255, 255, 0.94);
  border-color: rgba(8, 43, 75, 0.1);
  backdrop-filter: blur(14px);
}

.admin-bar .av-section-nav {
  top: 110px;
}

.av-section-nav__inner {
  min-height: 58px;
}

.av-section-nav__label {
  color: #75818b;
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.11em;
}

.av-section-nav__track a {
  color: #66737f;
  font-size: 0.76rem;
  font-weight: 650;
}

.av-section-nav__track a.is-active,
.av-section-nav__track a[aria-current="true"] {
  color: var(--av-v15-blue);
}

/* Captions are proper visual components, never narrow labels. */
.av-entry-content .wp-block-image:not(.av-service-image):not(.av-operations__media) figcaption {
  width: min(100% - 28px, 620px);
  min-height: 64px;
  margin: -32px auto 0;
  padding: 17px 22px;
  color: #fff;
  background: rgba(8, 43, 75, 0.94);
  border-top: 3px solid var(--av-v15-orange);
  border-radius: 15px;
  box-shadow: 0 15px 35px rgba(8, 43, 75, 0.16);
  font-size: 0.82rem;
  line-height: 1.45;
}

.av-entry-content .wp-block-image:not(.av-service-image):not(.av-operations__media) figcaption::before {
  display: none;
}

/* CTA and footer. */
.av-prefooter {
  margin: 18px;
  overflow: hidden;
  color: var(--av-v15-navy);
  background: var(--av-v15-orange);
  border-radius: var(--av-v15-radius-lg);
}

.av-prefooter__inner {
  min-height: 275px;
  padding-block: 52px;
}

.av-prefooter h2,
.av-prefooter p,
.av-prefooter .av-kicker {
  color: var(--av-v15-navy);
}

.av-prefooter .av-button {
  color: var(--av-v15-navy);
  background: #fff;
}

.av-site-footer {
  padding-top: clamp(60px, 7vw, 96px);
  background: #061f36;
}

.av-footer-grid {
  gap: clamp(30px, 4vw, 70px);
}

.av-footer-brand img {
  width: 180px;
  padding: 10px;
  background: #fff;
  border-radius: 12px;
}

.av-site-footer h2 {
  color: #fff;
  font-size: 0.74rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.av-site-footer a,
.av-site-footer p,
.av-site-footer address,
.av-site-footer span {
  color: rgba(255, 255, 255, 0.68);
}

.av-site-footer a:hover {
  color: #fff;
}

@media (max-width: 1180px) {
  .av-primary-menu {
    gap: 15px;
  }

  .av-primary-menu > li > a {
    font-size: 0.72rem;
  }

  body.home .av-hero-pillar {
    padding-inline: 14px;
  }

  body.home .av-hero-pillar small {
    display: none;
  }

  .av-directory,
  body.home .av-section--coverage .av-directory {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 980px) {
  .admin-bar .av-site-header {
    top: 46px;
  }

  .av-site-header__inner {
    min-height: 70px;
  }

  .av-menu-toggle {
    border-radius: 999px;
  }

  .av-hero {
    padding-top: 12px;
  }

  .av-hero__stage {
    min-height: 560px;
  }

  body .av-hero__copy,
  body.home .av-hero__copy,
  body:not(.home) .av-entry--page .av-hero__copy {
    top: 24px;
    bottom: 24px;
    left: 24px;
    width: min(430px, calc(100% - 48px));
    padding: 32px;
  }

  body .av-hero__signal,
  body:not(.home) .av-hero__signal {
    right: 18px;
    bottom: 18px;
    min-width: 0;
    width: min(340px, calc(100% - 500px));
  }

  body.home .av-hero__pillars {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 0;
  }

  body.home .av-hero-pillar:nth-child(3) {
    padding-left: 0;
    border-left: 0;
  }

  body:not(.home) .av-hero__highlights {
    grid-template-columns: 1fr;
    padding-block: 7px;
  }

  body:not(.home) .av-hero__highlight,
  body:not(.home) .av-hero__highlight:first-child {
    min-height: 66px;
    padding: 12px 5px;
    border-left: 0;
    border-top: 1px solid rgba(8, 43, 75, 0.12);
  }

  body:not(.home) .av-hero__highlight:first-child {
    border-top: 0;
  }

  body.home .av-home-opener {
    grid-template-columns: 1fr;
  }

  body.home .av-home-opener__statement .av-section-title {
    max-width: 16ch;
  }

  body.home .av-service-card {
    min-height: 540px;
    grid-template-rows: 290px minmax(0, 1fr);
  }

  body.home .av-service-image {
    height: 290px;
  }

  body.home .av-operations,
  .av-operations {
    min-height: 0;
    grid-template-columns: 1fr;
  }

  .av-operations__media {
    min-height: 520px;
  }

  .av-rate-sheet__head {
    grid-template-columns: 1fr;
  }

  .av-feature-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  :root {
    --av-v15-radius-lg: 22px;
  }

  html {
    scroll-padding-top: 82px;
  }

  .av-site-header__inner {
    min-height: 66px;
    padding: 8px 15px;
  }

  .av-brand img {
    width: 136px;
    max-height: 47px;
  }

  body .av-hero__inner,
  body.home .av-hero__inner,
  body:not(.home) .av-entry--page .av-hero__inner {
    padding-inline: 10px;
  }

  .av-hero__stage {
    display: flex;
    min-height: 0;
    flex-direction: column;
    overflow: hidden;
    background: var(--av-v15-sky);
    border-radius: 22px;
  }

  body .av-hero__visual,
  body.home .av-hero__visual,
  body:not(.home) .av-entry--page .av-hero__visual,
  .av-family-local .av-entry--page .av-hero__visual {
    position: relative;
    inset: auto;
    z-index: 0;
    order: 1;
    height: 310px;
    min-height: 310px;
    border-radius: 0;
  }

  body.home .av-hero__image {
    object-position: 58% center;
  }

  body .av-hero__copy,
  body.home .av-hero__copy,
  body:not(.home) .av-entry--page .av-hero__copy {
    position: relative;
    inset: auto;
    z-index: 3;
    order: 2;
    width: auto;
    max-width: none;
    margin: -28px 12px 13px;
    padding: 27px 24px 25px;
    border-radius: 18px;
  }

  body .av-hero h1,
  body.home .av-hero h1,
  body:not(.home) .av-entry--page .av-hero h1 {
    font-size: clamp(2rem, 9.4vw, 2.65rem);
    line-height: 1.03;
  }

  body .av-hero__lead,
  body.home .av-hero__lead,
  body:not(.home) .av-hero__lead {
    margin-top: 14px;
    font-size: 0.9rem;
    line-height: 1.55;
  }

  .av-breadcrumbs {
    margin-bottom: 14px;
    font-size: 0.65rem;
  }

  .av-hero__eyebrow {
    margin-bottom: 10px;
  }

  .av-hero__actions,
  body.home .av-hero__actions,
  body:not(.home) .av-hero__actions {
    margin-top: 21px;
    align-items: flex-start;
    flex-direction: column;
    gap: 13px;
  }

  .av-hero__actions .av-button,
  body.home .av-hero__actions .av-button {
    width: 100%;
    justify-content: space-between;
  }

  body .av-hero__proof,
  body.home .av-hero__proof,
  body:not(.home) .av-hero__proof {
    margin-top: 20px;
    padding-top: 13px;
  }

  .av-hero__proof span {
    padding-inline: 8px;
  }

  .av-hero__proof small {
    display: none;
  }

  body .av-hero__signal,
  body:not(.home) .av-hero__signal {
    right: 10px;
    bottom: 40px;
    left: 10px;
    z-index: 2;
    width: auto;
    min-width: 0;
    padding: 13px 16px;
    border-radius: 13px;
  }

  body.home .av-hero__pillars {
    margin-top: 10px;
    padding: 15px 13px;
    gap: 0;
    border-radius: 18px;
  }

  body.home .av-hero-pillar,
  body.home .av-hero-pillar:nth-child(3) {
    min-height: 76px;
    grid-template-columns: 45px minmax(0, 1fr);
    gap: 8px;
    padding: 9px 8px;
    border: 0;
    border-top: 1px solid rgba(8, 43, 75, 0.1);
  }

  body.home .av-hero-pillar:nth-child(-n + 2) {
    border-top: 0;
  }

  body.home .av-hero-pillar:nth-child(even) {
    border-left: 1px solid rgba(8, 43, 75, 0.1);
  }

  body.home .av-hero-pillar__icon {
    width: 44px;
    height: 44px;
  }

  body.home .av-hero-pillar strong {
    font-size: 0.72rem;
  }

  body.home .av-hero-pillar small {
    display: none;
  }

  body:not(.home) .av-hero__highlights {
    margin-top: 10px;
    padding: 6px 14px;
    border-radius: 18px;
  }

  .av-entry-content > .av-section,
  .av-entry-content > .wp-block-group.av-section,
  .av-entry-content > .av-operations,
  .av-entry-content > .av-rate-sheet {
    width: calc(100% - 20px);
    margin: 48px auto;
  }

  .av-section--mist,
  .av-section--warning,
  .av-section--comparison,
  .av-section--pricing-detail,
  .av-section--contact-grid,
  .av-form-section,
  .av-section--local-detail,
  .av-section--ink,
  body.home .av-home-opener,
  body.home .av-home-flow,
  .av-rate-sheet,
  body.home .av-section--coverage,
  .av-section--coverage {
    padding: 30px 23px;
  }

  .av-section-title,
  .av-section h2,
  .av-operations h2,
  .av-rate-sheet h2 {
    font-size: clamp(1.85rem, 8.7vw, 2.6rem);
  }

  body.home .av-home-opener {
    gap: 28px;
  }

  body.home .av-home-fact {
    padding: 18px 0;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 12px;
  }

  body.home .av-home-fact > p:last-child {
    grid-column: 2;
  }

  body.home .av-service-ledger {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  body.home .av-service-card {
    min-height: 0;
    grid-template-rows: 235px auto;
    border-radius: 22px;
  }

  body.home .av-service-image {
    height: 235px;
  }

  body.home .av-service-row__copy {
    padding: 25px 23px 28px;
  }

  .av-operations__media {
    min-height: 390px;
  }

  body.home .av-operations__copy,
  .av-operations__copy {
    padding: 32px 24px;
  }

  .av-operations .av-stat-grid {
    grid-template-columns: 1fr;
  }

  .av-operations .av-stat,
  .av-operations .av-stat:nth-child(even) {
    min-height: 0;
    padding: 15px 0;
    border-left: 0;
  }

  body.home .av-home-flow .av-steps,
  .av-steps {
    grid-template-columns: 1fr;
  }

  body.home .av-home-flow .av-step,
  .av-step,
  .av-step:first-child {
    padding: 25px 0;
    border: 0;
    border-top: 1px solid rgba(8, 43, 75, 0.14);
  }

  .av-step:first-child {
    border-top: 0;
  }

  .av-step-number {
    margin-bottom: 16px;
  }

  .av-rate-sheet__price {
    padding-left: 20px;
  }

  .av-table-wrap {
    overflow-x: auto;
    border-radius: 14px;
  }

  .av-directory,
  body.home .av-section--coverage .av-directory {
    grid-template-columns: 1fr;
  }

  .av-feature-grid {
    grid-template-columns: 1fr;
  }

  .av-card,
  .av-family-residential .av-feature-grid .av-card,
  .av-family-guide .av-feature-grid .av-card,
  .av-family-business .av-feature-grid .av-card,
  .av-family-technical .av-feature-grid .av-card {
    min-height: 225px;
    padding: 26px 23px;
  }

  .av-keypoints {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .av-faq-item summary {
    min-height: 72px;
    padding: 20px 55px 20px 0;
  }

  .av-faq-item summary::after {
    width: 34px;
    height: 34px;
  }

  .av-faq-item > p {
    padding: 0 0 24px;
  }

  .av-section-nav {
    top: 66px;
  }

  .admin-bar .av-section-nav {
    top: 112px;
  }

  .av-section-nav__inner {
    display: block;
    min-height: 56px;
    padding: 8px 0 7px 10px;
  }

  .av-section-nav__label {
    display: none;
  }

  .av-section-nav__track {
    display: flex;
    width: 100%;
    padding-right: 10px;
    gap: 8px;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .av-section-nav__track::-webkit-scrollbar {
    display: none;
  }

  .av-section-nav__track a {
    flex: 0 0 auto;
    padding: 10px 14px;
    background: #f0f4f6;
    border-radius: 999px;
    scroll-snap-align: center;
  }

  .av-section-nav__track a.is-active,
  .av-section-nav__track a[aria-current="true"] {
    color: #fff;
    background: var(--av-v15-blue);
  }

  .av-entry-content .wp-block-image:not(.av-service-image):not(.av-operations__media) figcaption {
    width: calc(100% - 20px);
    min-height: 58px;
    margin-top: -24px;
    padding: 14px 17px;
  }

  .av-prefooter {
    margin: 10px;
    border-radius: 22px;
  }

  .av-prefooter__inner {
    min-height: 0;
    padding: 40px 20px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .av-service-card,
  .av-service-image > img,
  .av-primary-menu > li > a::after {
    transition: none;
  }
}

/* ===== site-v16.css ===== */

/* Avanza Seguridad v16 — focused hero correction. */

.av-hero__stage {
  height: clamp(500px, 38vw, 540px);
  min-height: 0;
}

body .av-hero__copy,
body.home .av-hero__copy,
body:not(.home) .av-entry--page .av-hero__copy {
  box-sizing: border-box;
  top: 50%;
  bottom: auto;
  left: clamp(24px, 3vw, 42px);
  width: min(410px, calc(100% - 48px));
  max-width: 410px;
  height: auto;
  max-height: calc(100% - 48px);
  padding: clamp(28px, 2.7vw, 38px);
  overflow: auto;
  justify-content: flex-start;
  transform: translateY(-50%);
}

body.home .av-hero h1 {
  font-size: clamp(2.2rem, 2.75vw, 2.75rem);
  line-height: 1.045;
  letter-spacing: -0.045em;
}

body:not(.home) .av-entry--page .av-hero h1 {
  font-size: clamp(2.05rem, 2.6vw, 2.7rem);
}

body .av-hero__lead,
body.home .av-hero__lead,
body:not(.home) .av-hero__lead {
  margin-top: 15px;
  font-size: 0.93rem;
  line-height: 1.55;
}

body.home .av-hero__actions {
  margin-top: 23px;
}

body.home .av-hero__actions .av-button {
  width: auto;
  min-height: 47px;
  padding: 12px 21px;
}

.av-hero__proof,
body .av-hero__proof,
body.home .av-hero__proof,
body:not(.home) .av-hero__proof {
  display: none !important;
}

body.home .av-hero__signal {
  display: none !important;
}

body.home .av-hero__image {
  object-position: 59% center;
}

body:not(.home) .av-hero__signal {
  box-sizing: border-box;
  right: 20px;
  bottom: 20px;
  left: auto;
  width: min(320px, calc(100% - 500px));
  min-width: 270px;
  padding: 14px 17px;
}

@media (max-width: 980px) and (min-width: 721px) {
  .av-hero__stage {
    height: 520px;
  }

  body .av-hero__copy,
  body.home .av-hero__copy,
  body:not(.home) .av-entry--page .av-hero__copy {
    left: 24px;
    width: min(390px, calc(100% - 48px));
    max-width: 390px;
    padding: 29px;
  }

  body:not(.home) .av-hero__signal {
    display: none;
  }
}

@media (max-width: 720px) {
  .av-hero__stage {
    height: auto;
  }

  body .av-hero__copy,
  body.home .av-hero__copy,
  body:not(.home) .av-entry--page .av-hero__copy {
    top: auto;
    bottom: auto;
    left: auto;
    width: auto;
    max-width: none;
    max-height: none;
    padding: 25px 22px 26px;
    overflow: visible;
    transform: none;
  }

  body.home .av-hero h1,
  body:not(.home) .av-entry--page .av-hero h1 {
    font-size: clamp(1.92rem, 9vw, 2.38rem);
  }

  body .av-hero__visual,
  body.home .av-hero__visual,
  body:not(.home) .av-entry--page .av-hero__visual,
  .av-family-local .av-entry--page .av-hero__visual {
    height: 285px;
    min-height: 285px;
  }

  body:not(.home) .av-hero__signal {
    right: 10px;
    bottom: 35px;
    left: 10px;
    width: auto;
    min-width: 0;
    padding: 12px 14px;
  }
}

/* ===== site-v17.css ===== */

/* Avanza Seguridad v17 — full-width editorial fact lists. */

body.home .av-home-fact {
  grid-template-columns: 54px minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 18px;
  row-gap: 7px;
}

body.home .av-home-fact__number {
  grid-row: 1 / span 2;
}

body.home .av-home-fact h3 {
  grid-column: 2;
  margin: 5px 0 0;
}

body.home .av-home-fact > p:last-child {
  width: 100%;
  max-width: 62ch;
  margin: 0;
  grid-column: 2;
  grid-row: 2;
}

@media (max-width: 720px) {
  body.home .av-home-fact {
    grid-template-columns: 44px minmax(0, 1fr);
    column-gap: 12px;
    row-gap: 5px;
  }
}


/* Source: site-v18.css */
/* Avanza Seguridad v18 — refined editorial section capsules. */

/* The capsule remains, but the inner orange rule is removed. */
.av-entry-content .av-kicker {
  gap: 0;
  padding: 7px 15px;
}

.av-entry-content .av-kicker::before {
  content: none !important;
  display: none !important;
  transform: none !important;
}

/* Strong coloured fields use a clean white capsule for readable contrast. */
.av-section--ink .av-kicker,
.av-operations .av-kicker,
.av-cta-panel .av-kicker,
.av-prefooter .av-kicker {
  color: var(--av-v15-navy) !important;
}

.av-section--ink .av-kicker::after,
.av-operations .av-kicker::after,
.av-cta-panel .av-kicker::after,
.av-prefooter .av-kicker::after {
  background: #fff;
  border-color: #fff;
  box-shadow: 0 8px 20px rgba(4, 25, 44, 0.14);
}


/* Source: site-v19.css */
/* Avanza Seguridad v19 — disciplined grids for process, evidence and coverage. */

/* One continuous baseline for the three-stage process. */
body.home .av-home-flow .av-steps {
  align-items: stretch;
  grid-auto-rows: minmax(270px, auto);
  gap: 0;
}

body.home .av-home-flow .av-step,
body.home .av-home-flow .av-step:first-child,
body.home .av-home-flow .av-step:nth-child(2),
body.home .av-home-flow .av-step:nth-child(3) {
  display: flex;
  min-height: 270px;
  margin: 0;
  padding: 30px clamp(24px, 3vw, 42px) 32px;
  flex-direction: column;
  align-items: flex-start;
  background: transparent;
  border: 0;
  border-left: 1px solid rgba(8, 43, 75, 0.15);
  border-radius: 0;
  transform: none;
}

body.home .av-home-flow .av-step:first-child {
  padding-left: 0;
  border-left: 0;
}

body.home .av-home-flow .av-step::before {
  display: none;
}

body.home .av-home-flow .av-step:nth-child(3) h3 {
  color: var(--av-v15-navy);
}

body.home .av-home-flow .av-step:nth-child(3) .av-step-number {
  color: #fff;
  background: var(--av-v15-blue);
}

body.home .av-home-flow .av-step:nth-child(3) > p:last-child {
  color: #65727e;
}

/* Evidence is a single true two-by-two grid, with shared dividers. */
.av-operations .av-stat-grid {
  grid-auto-rows: minmax(132px, auto);
  gap: 0;
  margin-top: 34px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.2);
}

.av-operations .av-stat,
.av-operations .av-stat:nth-child(even) {
  display: flex;
  min-height: 132px;
  margin: 0;
  padding: 23px 24px;
  flex-direction: column;
  justify-content: center;
  background: transparent;
  border: 0;
  border-radius: 0;
}

.av-operations .av-stat:nth-child(even) {
  border-left: 1px solid rgba(255, 255, 255, 0.2);
}

.av-operations .av-stat:nth-child(n + 3) {
  border-top: 1px solid rgba(255, 255, 255, 0.2);
}

/* Seven provinces are balanced as 4 + 3 rather than leaving a dead cell. */
.av-section--coverage .av-directory,
body.home .av-section--coverage .av-directory {
  display: grid;
  grid-template-columns: repeat(24, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid rgba(8, 43, 75, 0.18);
  border-radius: 14px;
  background: rgba(207, 221, 231, 0.62);
}

.av-section--coverage .av-directory-link,
.av-section--coverage .av-directory-link:nth-child(odd),
body.home .av-section--coverage .av-directory-link,
body.home .av-section--coverage .av-directory-link:nth-child(odd) {
  grid-column: span 6;
  border: 0;
  background: transparent;
}

.av-section--coverage .av-directory-link:nth-child(5),
body.home .av-section--coverage .av-directory-link:nth-child(5) {
  grid-column: 4 / span 6;
}

.av-section--coverage .av-directory-link a,
body.home .av-section--coverage .av-directory-link a {
  min-height: 68px;
  padding: 18px 15px;
  border-bottom: 1px solid rgba(8, 43, 75, 0.14);
}

@media (max-width: 1099px) and (min-width: 721px) {
  .av-section--coverage .av-directory,
  body.home .av-section--coverage .av-directory {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }

  .av-section--coverage .av-directory-link,
  .av-section--coverage .av-directory-link:nth-child(odd),
  body.home .av-section--coverage .av-directory-link,
  body.home .av-section--coverage .av-directory-link:nth-child(odd) {
    grid-column: span 2;
  }

  .av-section--coverage .av-directory-link:nth-child(5),
  body.home .av-section--coverage .av-directory-link:nth-child(5) {
    grid-column: 2 / span 2;
  }
}

@media (max-width: 980px) {
  body.home .av-home-flow .av-steps {
    grid-auto-rows: auto;
  }

  body.home .av-home-flow .av-step,
  body.home .av-home-flow .av-step:first-child,
  body.home .av-home-flow .av-step:nth-child(2),
  body.home .av-home-flow .av-step:nth-child(3) {
    min-height: 0;
    padding: 25px 0;
    border-top: 1px solid rgba(8, 43, 75, 0.14);
    border-left: 0;
  }

  body.home .av-home-flow .av-step:first-child {
    border-top: 0;
  }

  .av-operations .av-stat-grid {
    grid-auto-rows: auto;
  }

  .av-operations .av-stat,
  .av-operations .av-stat:nth-child(even) {
    min-height: 0;
    padding: 20px;
    border-left: 0;
  }

  .av-operations .av-stat:not(:first-child) {
    border-top: 1px solid rgba(255, 255, 255, 0.2);
  }
}

@media (max-width: 720px) {
  .av-section--coverage .av-directory,
  body.home .av-section--coverage .av-directory {
    grid-template-columns: 1fr;
  }

  .av-section--coverage .av-directory-link,
  .av-section--coverage .av-directory-link:nth-child(odd),
  .av-section--coverage .av-directory-link:nth-child(5),
  body.home .av-section--coverage .av-directory-link,
  body.home .av-section--coverage .av-directory-link:nth-child(odd),
  body.home .av-section--coverage .av-directory-link:nth-child(5) {
    grid-column: auto;
  }
}


/* Source: site-v20.css */
/* Avanza Seguridad v20 — editorial rate sheet and coherent actions. */

/* A compact price briefing, not a stack of oversized blocks. */
.av-rate-sheet {
  padding: clamp(38px, 4.8vw, 68px);
  background: #edf5fa;
}

.av-rate-sheet__head {
  grid-template-columns: minmax(0, 1fr) minmax(230px, 310px);
  grid-template-rows: auto auto auto;
  column-gap: clamp(34px, 6vw, 88px);
  row-gap: 12px;
  align-items: end;
}

.av-rate-sheet__head > .av-kicker {
  grid-column: 1;
  grid-row: 1;
  margin: 0 !important;
}

.av-rate-sheet__head > .av-section-title,
.av-rate-sheet__head > h2 {
  grid-column: 1;
  grid-row: 2;
  max-width: 15ch;
  margin: 0 !important;
  font-size: clamp(2.2rem, 3.3vw, 3.4rem);
}

.av-rate-sheet__head > .av-section-lead {
  grid-column: 1;
  grid-row: 3;
  max-width: 58ch;
  margin: 4px 0 0 !important;
}

/* The rate is an integrated editorial reference, not a floating card. */
.av-rate-sheet__head > .av-rate-sheet__price,
.av-rate-sheet__price {
  grid-column: 2;
  grid-row: 1 / span 3;
  align-self: end;
  width: 100%;
  margin: 0 !important;
  padding: 18px 0 3px !important;
  background: transparent !important;
  border: 0 !important;
  border-top: 2px solid var(--av-v15-orange) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.av-rate-sheet__price > p:first-child {
  margin: 0 0 7px;
  color: #50697e;
  font-size: 0.7rem;
  font-weight: 760;
  letter-spacing: 0.08em;
  line-height: 1.35;
  text-transform: uppercase;
}

.av-rate-sheet__amount {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin: 0 !important;
}

.av-rate-sheet__amount strong {
  color: var(--av-v15-navy);
  font-size: clamp(3rem, 4.2vw, 4.45rem);
  font-weight: 760;
  letter-spacing: -0.065em;
  line-height: 0.94;
}

.av-rate-sheet__amount span {
  color: #50697e;
  font-size: 0.85rem;
  font-weight: 700;
}

.av-rate-sheet .av-table-wrap {
  margin-top: clamp(30px, 3.2vw, 42px);
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid #c6d5df;
  border-radius: 10px;
  box-shadow: none;
}

.av-rate-sheet .av-table-wrap table {
  table-layout: fixed;
}

.av-rate-sheet .av-table-wrap th {
  padding: 13px 15px;
  color: #fff;
  background: var(--av-v15-navy);
  border-color: rgba(255, 255, 255, 0.24);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.av-rate-sheet .av-table-wrap td {
  padding: 14px 15px;
  color: #465d70;
  border-color: #d7e1e8;
  font-size: 0.84rem;
  line-height: 1.45;
}

.av-rate-sheet .av-table-wrap tbody tr:nth-child(even) {
  background: rgba(237, 245, 250, 0.72);
}

.av-rate-sheet .av-table-wrap td strong {
  color: var(--av-v15-navy);
}

.av-rate-sheet .av-table-wrap th:nth-child(1),
.av-rate-sheet .av-table-wrap td:nth-child(1) {
  width: 18%;
}

.av-rate-sheet .av-table-wrap th:nth-child(2),
.av-rate-sheet .av-table-wrap td:nth-child(2),
.av-rate-sheet .av-table-wrap th:nth-child(3),
.av-rate-sheet .av-table-wrap td:nth-child(3) {
  width: 16%;
}

/* The two tariff actions now use one measured visual language. */
.av-rate-sheet .wp-block-buttons.av-actions {
  gap: 10px;
  margin-top: 24px;
}

.av-rate-sheet .wp-block-button {
  margin: 0;
}

.av-rate-sheet .wp-block-button .wp-block-button__link {
  display: inline-flex;
  min-height: 46px;
  padding: 11px 17px;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  box-shadow: none;
  font-size: 0.78rem;
  font-weight: 760;
  line-height: 1;
}

.av-rate-sheet .wp-block-button.av-button--cut .wp-block-button__link {
  gap: 14px;
  color: #fff;
  background: var(--av-v15-navy);
  border: 1px solid var(--av-v15-navy);
}

.av-rate-sheet .wp-block-button.av-button--cut .wp-block-button__link::after {
  content: "→";
  color: #fff;
  font-size: 1.1rem;
  font-weight: 400;
}

.av-rate-sheet .wp-block-button.av-button--cut .wp-block-button__link:hover {
  color: #fff;
  background: #0d497b;
  border-color: #0d497b;
}

.av-rate-sheet .wp-block-button.av-button--line .wp-block-button__link {
  gap: 14px;
  color: var(--av-v15-navy);
  background: transparent;
  border: 1px solid #9fb4c3;
  border-radius: 8px;
}

.av-rate-sheet .wp-block-button.av-button--line .wp-block-button__link::after {
  content: "→";
  color: var(--av-v15-orange);
  font-size: 1.1rem;
  font-weight: 400;
}

.av-rate-sheet .wp-block-button.av-button--line .wp-block-button__link:hover {
  color: var(--av-v15-navy);
  background: #fff;
  border-color: var(--av-v15-navy);
}

@media (max-width: 980px) {
  .av-rate-sheet__head {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    row-gap: 14px;
  }

  .av-rate-sheet__head > .av-kicker,
  .av-rate-sheet__head > .av-section-title,
  .av-rate-sheet__head > h2,
  .av-rate-sheet__head > .av-section-lead,
  .av-rate-sheet__head > .av-rate-sheet__price {
    grid-column: 1;
    grid-row: auto;
  }

  .av-rate-sheet__head > .av-rate-sheet__price {
    max-width: 310px;
    margin-top: 12px !important;
  }
}

@media (max-width: 720px) {
  .av-rate-sheet .av-table-wrap th,
  .av-rate-sheet .av-table-wrap td {
    padding: 12px 13px;
    font-size: 0.78rem;
  }

  .av-rate-sheet .wp-block-buttons.av-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .av-rate-sheet .wp-block-button,
  .av-rate-sheet .wp-block-button .wp-block-button__link {
    width: 100%;
  }
}


/* Source: site-v21.css */
/* Avanza Seguridad v21 — footer logo contrast correction. */

.av-footer-brand > a {
  display: inline-block;
  margin-bottom: 24px;
}

.av-footer-brand img {
  display: block;
  width: min(180px, 100%);
  max-width: 100%;
  height: auto;
  max-height: none;
  margin: 0;
  padding: 0;
  background: transparent;
  border-radius: 0;
  filter: brightness(0) invert(1);
}


/* Source: site-v22.css */
/* Avanza Seguridad v22 — neutral mobile divider for hero guarantees. */

@media (max-width: 720px) {
  body.home .av-hero-pillar:nth-child(even) {
    border-top-color: rgba(8, 43, 75, 0.1);
  }
}


/* Source: site-v23.css */
/* Avanza Seguridad v23 — white prefooter capsule without an inner rule. */

.av-prefooter .av-kicker,
.av-prefooter .av-kicker.av-kicker--light {
  display: inline-flex;
  width: fit-content;
  min-height: 34px;
  margin: 0 0 18px;
  padding: 7px 14px;
  align-items: center;
  color: var(--av-v15-navy) !important;
  background: #fff;
  border: 0;
  border-radius: 999px;
  box-shadow: none;
}

.av-prefooter .av-kicker::before,
.av-prefooter .av-kicker::after,
.av-prefooter .av-kicker.av-kicker--light::before,
.av-prefooter .av-kicker.av-kicker--light::after {
  content: none !important;
  display: none !important;
}


/* Source: site-v24.css */
/* Avanza Seguridad v24 — fixed alignment for homepage fact markers. */

body.home .av-home-opener__facts {
  display: grid;
  width: 100%;
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
}

body.home .av-home-fact {
  display: grid !important;
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box;
  grid-template-columns: 54px minmax(0, 1fr) !important;
  grid-template-areas:
    "number title"
    "number copy";
  column-gap: 18px !important;
  row-gap: 7px !important;
  justify-self: stretch !important;
  align-items: start;
}

body.home .av-home-fact__number {
  grid-area: number !important;
  margin: 0 !important;
  justify-self: start !important;
  align-self: start !important;
}

body.home .av-home-fact h3 {
  grid-area: title !important;
  width: 100%;
  margin: 5px 0 0 !important;
  justify-self: start !important;
}

body.home .av-home-fact > p:last-child {
  grid-area: copy !important;
  width: 100%;
  max-width: 62ch;
  margin: 0 !important;
  justify-self: start !important;
}

@media (max-width: 720px) {
  body.home .av-home-fact {
    grid-template-columns: 44px minmax(0, 1fr) !important;
    column-gap: 12px !important;
    row-gap: 5px !important;
  }
}


/* Source: site-v25.css */
/* Avanza Seguridad v25 — locked metric grid for the operations panel. */

body.home .av-operations .av-stat-grid {
  display: grid !important;
  width: 100% !important;
  max-width: none !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  grid-template-rows: repeat(2, minmax(132px, auto)) !important;
  grid-template-areas:
    "metric-one metric-two"
    "metric-three metric-four";
  gap: 0 !important;
  box-sizing: border-box;
}

body.home .av-operations .av-stat {
  width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box;
  justify-self: stretch !important;
  align-self: stretch !important;
}

body.home .av-operations .av-stat:nth-child(1) { grid-area: metric-one; }
body.home .av-operations .av-stat:nth-child(2) { grid-area: metric-two; }
body.home .av-operations .av-stat:nth-child(3) { grid-area: metric-three; }
body.home .av-operations .av-stat:nth-child(4) { grid-area: metric-four; }

@media (max-width: 520px) {
  body.home .av-operations .av-stat-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: none !important;
    grid-template-areas: none;
  }

  body.home .av-operations .av-stat:nth-child(n) {
    grid-area: auto;
  }
}


/* Source: site-v26.css */
/* Avanza Seguridad v26 — clean interior heroes without scrollbars or photo callouts. */

/* Hero eyebrows are pills, never orange rules. */
.av-hero__eyebrow {
  display: inline-flex;
  width: fit-content;
  min-height: 32px;
  margin: 0 0 14px;
  padding: 6px 12px;
  align-items: center;
  color: var(--av-v15-blue);
  background: #edf5fa;
  border: 1px solid #d4e1e9;
  border-radius: 999px;
}

.av-hero__eyebrow::before,
.av-hero__eyebrow::after {
  content: none !important;
  display: none !important;
}

/* An editorial card must grow with its content, never become its own scroll area. */
body:not(.home) .av-hero__stage {
  height: clamp(590px, 43vw, 660px);
}

body:not(.home) .av-entry--page .av-hero__copy,
body:not(.home) .av-hero__copy {
  top: 50% !important;
  bottom: auto !important;
  width: min(430px, calc(100% - 48px));
  max-width: 430px;
  height: auto !important;
  max-height: none !important;
  padding: clamp(28px, 2.6vw, 34px);
  overflow: visible !important;
  transform: translateY(-50%) !important;
}

body:not(.home) .av-breadcrumbs {
  display: none;
}

body:not(.home) .av-entry--page .av-hero h1,
body:not(.home) .av-hero h1 {
  font-size: clamp(2rem, 2.45vw, 2.6rem);
  line-height: 1.06;
}

body:not(.home) .av-hero__lead {
  margin-top: 13px;
  font-size: 0.91rem;
  line-height: 1.52;
}

/* The photo is allowed to stand on its own: no synthetic comment badge. */
body:not(.home) .av-hero__signal,
body:not(.home) .av-hero__visual .av-hero__signal {
  display: none !important;
}

@media (max-width: 720px) {
  body:not(.home) .av-hero__stage {
    height: auto;
  }

  body:not(.home) .av-entry--page .av-hero__copy,
  body:not(.home) .av-hero__copy {
    top: auto !important;
    left: auto;
    width: auto;
    max-width: none;
    padding: 25px 22px 26px;
    transform: none !important;
  }
}


/* Source: site-v27.css */
/* Avanza Seguridad v27 — clear, single-system closing CTA actions. */

.av-cta-panel {
  grid-template-columns: minmax(0, 1fr) minmax(280px, 320px);
  column-gap: clamp(38px, 6vw, 92px);
  row-gap: 22px;
  align-items: center;
  padding: clamp(52px, 6vw, 86px);
}

.av-cta-panel h2,
.av-cta-panel .av-section-title {
  max-width: 16ch;
  margin: 0 !important;
  color: #fff !important;
  font-size: clamp(2.05rem, 3.3vw, 3.45rem);
}

.av-cta-panel .av-section-lead {
  max-width: 62ch;
  margin: 0 !important;
  color: rgba(255, 255, 255, 0.76) !important;
}

.av-cta-panel .av-actions,
.av-cta-panel .wp-block-buttons.av-actions {
  display: grid;
  width: 100%;
  min-width: 0;
  grid-column: 2;
  grid-row: 1 / span 4;
  grid-template-columns: 1fr;
  gap: 12px;
  align-self: center;
  margin: 0;
}

.av-cta-panel .wp-block-button {
  width: 100%;
  margin: 0;
}

.av-cta-panel .wp-block-button .wp-block-button__link,
.av-cta-panel .av-button {
  display: flex;
  width: 100%;
  min-height: 52px;
  padding: 14px 18px;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  box-shadow: none !important;
  font-size: 0.84rem;
  font-weight: 760;
  line-height: 1;
  text-decoration: none;
  transform: none !important;
}

.av-cta-panel .wp-block-button.av-button--cut .wp-block-button__link,
.av-cta-panel .av-button--cut {
  color: var(--av-v15-navy);
  background: #fff;
  border: 1px solid #fff;
}

.av-cta-panel .wp-block-button.av-button--cut .wp-block-button__link:hover,
.av-cta-panel .av-button--cut:hover {
  color: var(--av-v15-navy);
  background: #eef5f8;
  border-color: #eef5f8;
}

.av-cta-panel .wp-block-button.av-button--line .wp-block-button__link,
.av-cta-panel .av-button--line {
  color: #fff;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.52) !important;
  border-radius: 8px;
}

.av-cta-panel .wp-block-button.av-button--line .wp-block-button__link:hover,
.av-cta-panel .av-button--line:hover {
  color: var(--av-v15-navy);
  background: #fff;
  border-color: #fff !important;
}

@media (max-width: 800px) {
  .av-cta-panel {
    grid-template-columns: 1fr;
    padding: 38px 24px;
  }

  .av-cta-panel .av-actions,
  .av-cta-panel .wp-block-buttons.av-actions {
    grid-column: 1;
    grid-row: auto;
    max-width: 380px;
  }
}


/* Source: site-v28.css */
/* Avanza Seguridad v28 — three-column related-information directory. */

.av-section--links .av-directory {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.av-section--links .av-directory-link,
.av-section--links .av-directory-link:nth-child(odd) {
  grid-column: auto !important;
  width: 100% !important;
  max-width: none !important;
}

@media (max-width: 720px) {
  .av-section--links .av-directory {
    grid-template-columns: 1fr !important;
  }
}


/* Source: site-v29.css */
/* Avanza Seguridad v29 — shared visual system across every page. */

/* Every section label uses the same capsule, without decorative rules. */
.av-kicker,
.av-hero__eyebrow {
  display: inline-flex;
  width: fit-content;
  min-height: 32px;
  margin: 0 0 16px;
  padding: 6px 12px;
  align-items: center;
  gap: 0;
  color: var(--av-v15-blue);
  background: #edf5fa;
  border: 1px solid #d4e1e9;
  border-radius: 999px;
  box-shadow: none;
}

.av-kicker::before,
.av-kicker::after,
.av-hero__eyebrow::before,
.av-hero__eyebrow::after {
  content: none !important;
  display: none !important;
}

.av-section--ink .av-kicker,
.av-operations .av-kicker,
.av-cta-panel .av-kicker,
.av-prefooter .av-kicker {
  color: var(--av-v15-navy) !important;
  background: #fff;
  border-color: #fff;
}

/* There is never a scrollbar inside a hero text panel. */
body .av-hero__copy,
body.home .av-hero__copy,
body:not(.home) .av-entry--page .av-hero__copy {
  max-height: none !important;
  overflow: visible !important;
}

body .av-hero__signal {
  display: none !important;
}

/* One button geometry and elevation model across the site. */
.av-button,
button.av-button,
.wp-block-button .wp-block-button__link {
  display: inline-flex;
  min-height: 48px;
  padding: 12px 18px;
  align-items: center;
  justify-content: center;
  border-radius: 8px !important;
  box-shadow: none !important;
  font-size: 0.82rem;
  font-weight: 760;
  line-height: 1;
  text-decoration: none;
  transform: none !important;
}

.av-button--header,
.av-button--cut,
.wp-block-button.av-button--cut .wp-block-button__link {
  color: #fff;
  background: var(--av-v15-orange);
  border: 1px solid var(--av-v15-orange);
}

.av-button--header:hover,
.av-button--cut:hover,
.wp-block-button.av-button--cut .wp-block-button__link:hover {
  color: #fff;
  background: #dd6415;
  border-color: #dd6415;
}

.av-button--line,
.wp-block-button.av-button--line .wp-block-button__link {
  min-height: 48px !important;
  padding: 12px 18px !important;
  color: var(--av-v15-navy);
  background: transparent;
  border: 1px solid #9fb4c3 !important;
  border-radius: 8px !important;
}

.av-button--line:hover,
.wp-block-button.av-button--line .wp-block-button__link:hover {
  color: var(--av-v15-navy);
  background: #fff;
  border-color: var(--av-v15-navy) !important;
}

.av-button--soft,
.wp-block-button.av-button--soft .wp-block-button__link {
  color: var(--av-v15-navy);
  background: var(--av-v15-sky);
  border: 1px solid transparent;
  border-radius: 8px !important;
}

/* Coloured closing blocks retain their intentional contrast after the global button reset. */
.av-prefooter .av-button,
.av-prefooter .av-button--cut {
  color: var(--av-v15-navy);
  background: #fff;
  border-color: #fff;
}

.av-cta-panel .wp-block-button.av-button--cut .wp-block-button__link {
  color: var(--av-v15-navy);
  background: #fff;
  border-color: #fff;
}

.av-cta-panel .wp-block-button.av-button--line .wp-block-button__link {
  color: #fff;
  background: transparent;
  border-color: rgba(255, 255, 255, 0.52) !important;
}

/* Avanza Seguridad v30 - cleaner Gutenberg button wrappers and closing CTA. */

/* Gutenberg stores the visual class on the wrapper and on the link. Only the link
   should look like a button; the wrapper must stay invisible. */
.wp-block-buttons .wp-block-button.av-button--cut,
.wp-block-buttons .wp-block-button.av-button--line,
.wp-block-buttons .wp-block-button.av-button--soft {
  display: block !important;
  min-height: 0 !important;
  padding: 0 !important;
  color: inherit !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
  transform: none !important;
}

.wp-block-buttons .wp-block-button.av-button--cut::before,
.wp-block-buttons .wp-block-button.av-button--cut::after,
.wp-block-buttons .wp-block-button.av-button--line::before,
.wp-block-buttons .wp-block-button.av-button--line::after,
.wp-block-buttons .wp-block-button.av-button--soft::before,
.wp-block-buttons .wp-block-button.av-button--soft::after {
  content: none !important;
  display: none !important;
}

.av-cta-panel .av-actions,
.av-cta-panel .wp-block-buttons.av-actions {
  width: min(100%, 360px);
  justify-self: end;
  gap: 10px;
}

.av-cta-panel .wp-block-button .wp-block-button__link,
.av-cta-panel .av-button {
  min-height: 52px !important;
  border-radius: 10px !important;
  font-size: 0.84rem;
  letter-spacing: 0;
  box-shadow: none !important;
}

.av-cta-panel .wp-block-button.av-button--cut .wp-block-button__link,
.av-cta-panel .av-button--cut:not(.wp-block-button) {
  color: #fff !important;
  background: var(--av-v15-orange) !important;
  border: 1px solid var(--av-v15-orange) !important;
}

.av-cta-panel .wp-block-button.av-button--cut .wp-block-button__link:hover,
.av-cta-panel .av-button--cut:not(.wp-block-button):hover {
  color: #fff !important;
  background: #df6417 !important;
  border-color: #df6417 !important;
}

.av-cta-panel .wp-block-button.av-button--line .wp-block-button__link,
.av-cta-panel .av-button--line:not(.wp-block-button) {
  color: #fff !important;
  background: rgba(255, 255, 255, 0.07) !important;
  border: 1px solid rgba(255, 255, 255, 0.28) !important;
}

.av-cta-panel .wp-block-button.av-button--line .wp-block-button__link:hover,
.av-cta-panel .av-button--line:not(.wp-block-button):hover {
  color: #fff !important;
  background: rgba(255, 255, 255, 0.12) !important;
  border-color: rgba(255, 255, 255, 0.48) !important;
}

@media (max-width: 800px) {
  .av-cta-panel .av-actions,
  .av-cta-panel .wp-block-buttons.av-actions {
    width: 100%;
    max-width: 380px;
    justify-self: start;
  }
}


/* Avanza Seguridad v31 - wider section headings on desktop. */

@media (min-width: 1024px) {
  .av-section > .av-section-title,
  .av-section > h2:not(.av-card-title),
  .av-section__head > .av-section-title,
  .av-section__head > h2,
  .av-contact .av-section-title,
  .av-contact h2 {
    width: min(100%, 1160px);
    max-width: 1160px !important;
    text-wrap: normal;
  }

  .av-section > .av-section-lead,
  .av-section__head > .av-section-lead,
  .av-contact .av-section-lead {
    width: min(100%, 1040px);
    max-width: 1040px !important;
  }
}

@media (min-width: 1280px) {
  .av-section > .av-section-title,
  .av-section > h2:not(.av-card-title),
  .av-contact .av-section-title,
  .av-contact h2 {
    white-space: nowrap;
  }
}

@media (max-width: 1023px) {
  .av-section > .av-section-title,
  .av-section > h2:not(.av-card-title),
  .av-contact .av-section-title,
  .av-contact h2 {
    white-space: normal;
  }
}


/* Avanza Seguridad v32 - button wrappers are never visual buttons. */

.wp-block-buttons > .wp-block-button,
.wp-block-buttons .wp-block-button[class*="av-button--"],
.av-actions > .wp-block-button,
.av-rate-sheet .wp-block-button {
  display: inline-flex !important;
  width: auto;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  color: inherit !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
  overflow: visible !important;
  transform: none !important;
}

.wp-block-buttons > .wp-block-button::before,
.wp-block-buttons > .wp-block-button::after,
.wp-block-buttons .wp-block-button[class*="av-button--"]::before,
.wp-block-buttons .wp-block-button[class*="av-button--"]::after {
  content: none !important;
  display: none !important;
}

.av-rate-sheet .wp-block-buttons.av-actions {
  gap: 12px !important;
  align-items: center;
}

.av-rate-sheet .wp-block-button .wp-block-button__link {
  min-height: 50px !important;
  padding: 13px 20px !important;
  border-radius: 8px !important;
  box-shadow: none !important;
  font-size: 0.86rem;
  font-weight: 760;
}

.av-rate-sheet .wp-block-button.av-button--cut .wp-block-button__link {
  color: #fff !important;
  background: var(--av-v15-navy) !important;
  border: 1px solid var(--av-v15-navy) !important;
}

.av-rate-sheet .wp-block-button.av-button--cut .wp-block-button__link:hover {
  color: #fff !important;
  background: #0d497b !important;
  border-color: #0d497b !important;
}

.av-rate-sheet .wp-block-button.av-button--line .wp-block-button__link {
  color: var(--av-v15-navy) !important;
  background: #fff !important;
  border: 1px solid #b9c9d6 !important;
}

.av-rate-sheet .wp-block-button.av-button--line .wp-block-button__link:hover {
  color: var(--av-v15-navy) !important;
  background: #f4f8fb !important;
  border-color: var(--av-v15-navy) !important;
}

@media (max-width: 800px) {
  .wp-block-buttons > .wp-block-button,
  .wp-block-buttons .wp-block-button[class*="av-button--"],
  .av-actions > .wp-block-button,
  .av-rate-sheet .wp-block-button {
    width: 100%;
  }

  .av-rate-sheet .wp-block-button .wp-block-button__link {
    width: 100%;
  }
}


/* Avanza Seguridad v33 - aligned process steps across every page. */

@media (min-width: 981px) {
  .av-steps {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 0 !important;
    align-items: stretch !important;
    grid-auto-rows: minmax(230px, auto);
  }

  .av-step,
  .av-step:first-child,
  .av-step:nth-child(2),
  .av-step:nth-child(3),
  body.home .av-home-flow .av-step,
  body.home .av-home-flow .av-step:first-child,
  body.home .av-home-flow .av-step:nth-child(2),
  body.home .av-home-flow .av-step:nth-child(3) {
    display: grid !important;
    min-height: 230px !important;
    padding: 0 clamp(26px, 3vw, 44px) !important;
    grid-template-rows: 72px minmax(58px, auto) 1fr;
    align-items: start !important;
    background: transparent !important;
    border: 0 !important;
    border-left: 1px solid rgba(8, 43, 75, 0.16) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .av-step:first-child,
  body.home .av-home-flow .av-step:first-child {
    padding-left: 0 !important;
    border-left: 0 !important;
  }

  .av-step::before,
  body.home .av-home-flow .av-step::before {
    content: none !important;
    display: none !important;
  }

  .av-step-number,
  body.home .av-home-flow .av-step-number {
    align-self: start !important;
    justify-self: center !important;
    margin: 0 !important;
  }

  .av-step h3,
  body.home .av-home-flow .av-step h3 {
    align-self: end !important;
    min-height: 38px;
    margin: 0 0 14px !important;
    color: var(--av-v15-navy) !important;
    font-size: clamp(1.14rem, 1.35vw, 1.42rem) !important;
    line-height: 1.18 !important;
  }

  .av-step > p:last-child,
  body.home .av-home-flow .av-step > p:last-child {
    max-width: 34em;
    margin: 0 !important;
    color: #65727e !important;
    font-size: 0.94rem !important;
    line-height: 1.62 !important;
  }
}

@media (max-width: 980px) {
  .av-steps {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
  }

  .av-step,
  .av-step:first-child,
  .av-step:nth-child(2),
  .av-step:nth-child(3),
  body.home .av-home-flow .av-step,
  body.home .av-home-flow .av-step:first-child,
  body.home .av-home-flow .av-step:nth-child(2),
  body.home .av-home-flow .av-step:nth-child(3) {
    display: block !important;
    min-height: 0 !important;
    padding: 24px 0 !important;
    border: 0 !important;
    border-top: 1px solid rgba(8, 43, 75, 0.14) !important;
  }

  .av-step:first-child,
  body.home .av-home-flow .av-step:first-child {
    border-top: 0 !important;
  }

  .av-step-number,
  body.home .av-home-flow .av-step-number {
    margin: 0 0 16px !important;
  }
}


/* Avanza Seguridad v34 - stronger price split in tariff section. */

@media (min-width: 981px) {
  .av-rate-sheet__head {
    position: relative;
    display: grid !important;
    grid-template-columns: minmax(0, 0.95fr) minmax(360px, 0.55fr) !important;
    min-height: 360px;
    column-gap: clamp(70px, 9vw, 140px) !important;
    align-items: center !important;
    padding-block: clamp(18px, 3vw, 38px) !important;
  }

  .av-rate-sheet__head > .av-kicker {
    grid-column: 1 !important;
    grid-row: 1 !important;
    align-self: end;
  }

  .av-rate-sheet__head > .av-section-title,
  .av-rate-sheet__head > h2 {
    grid-column: 1 !important;
    grid-row: 2 !important;
    max-width: 13ch !important;
    margin: 18px 0 24px !important;
    font-size: clamp(3.1rem, 5.3vw, 5.35rem) !important;
    line-height: 0.98 !important;
    white-space: normal !important;
  }

  .av-rate-sheet__head > .av-section-lead {
    grid-column: 1 !important;
    grid-row: 3 !important;
    max-width: 58ch !important;
    margin: 0 !important;
    font-size: clamp(1.05rem, 1.25vw, 1.24rem) !important;
    line-height: 1.58 !important;
  }

  .av-rate-sheet__head > .av-rate-sheet__price,
  .av-rate-sheet__price {
    grid-column: 2 !important;
    grid-row: 1 / span 3 !important;
    align-self: center !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: clamp(36px, 4vw, 54px) 0 clamp(34px, 4vw, 48px) clamp(42px, 5vw, 76px) !important;
    background: transparent !important;
    border: 0 !important;
    border-left: 1px solid rgba(8, 43, 75, 0.18) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .av-rate-sheet__price::before {
    content: "";
    display: block;
    width: min(100%, 360px);
    height: 3px;
    margin: 0 0 24px;
    background: var(--av-v15-orange);
  }

  .av-rate-sheet__price > p:first-child {
    max-width: 32ch;
    margin: 0 0 12px !important;
    color: #50697e !important;
    font-size: 0.78rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.1em !important;
    line-height: 1.35 !important;
    text-transform: uppercase;
  }

  .av-rate-sheet__amount {
    display: flex !important;
    align-items: flex-end !important;
    gap: 14px !important;
    margin: 0 !important;
  }

  .av-rate-sheet__amount strong {
    color: var(--av-v15-navy) !important;
    font-size: clamp(6.2rem, 10vw, 9.2rem) !important;
    font-weight: 780 !important;
    line-height: 0.78 !important;
    letter-spacing: -0.06em !important;
  }

  .av-rate-sheet__amount span {
    margin: 0 0 12px !important;
    color: #50697e !important;
    font-size: 1.05rem !important;
    font-weight: 760 !important;
  }
}

@media (max-width: 980px) {
  .av-rate-sheet__head {
    grid-template-columns: 1fr !important;
    min-height: 0;
  }

  .av-rate-sheet__head > .av-section-title,
  .av-rate-sheet__head > h2 {
    max-width: 100% !important;
    white-space: normal !important;
  }

  .av-rate-sheet__head > .av-rate-sheet__price,
  .av-rate-sheet__price {
    max-width: none !important;
    margin-top: 24px !important;
    padding: 26px 0 0 !important;
    border: 0 !important;
    border-top: 1px solid rgba(8, 43, 75, 0.16) !important;
  }

  .av-rate-sheet__price::before {
    content: "";
    display: block;
    width: 180px;
    height: 3px;
    margin: 0 0 18px;
    background: var(--av-v15-orange);
  }

  .av-rate-sheet__amount strong {
    font-size: clamp(4.2rem, 18vw, 6.4rem) !important;
    line-height: 0.82 !important;
  }
}


/* Avanza Seguridad v35 - contact cards aligned and contained. */

.av-section--contact-grid {
  overflow: hidden;
}

.av-section--contact-grid .av-feature-grid {
  width: 100% !important;
  max-width: none !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(16px, 2vw, 28px) !important;
  align-items: stretch !important;
  margin-top: clamp(28px, 4vw, 46px) !important;
}

.av-section--contact-grid .av-card {
  display: grid !important;
  min-width: 0 !important;
  min-height: 250px !important;
  padding: clamp(28px, 3.2vw, 42px) !important;
  grid-template-rows: 34px minmax(52px, auto) auto;
  align-content: start !important;
  background: #fff;
  border: 1px solid rgba(8, 43, 75, 0.1);
  border-radius: 18px;
  overflow: hidden !important;
}

.av-section--contact-grid .av-card:nth-child(2) {
  background: var(--av-v15-warm);
}

.av-section--contact-grid .av-card:nth-child(3) {
  background: var(--av-v15-sky);
}

.av-section--contact-grid .av-card-index {
  align-self: start !important;
  margin: 0 !important;
}

.av-section--contact-grid .av-card h3 {
  align-self: end !important;
  margin: 0 0 18px !important;
  color: var(--av-v15-navy);
  font-size: clamp(1.25rem, 1.45vw, 1.58rem) !important;
  line-height: 1.16 !important;
}

.av-section--contact-grid .av-card p {
  min-width: 0;
  margin: 0 !important;
  color: #65727e;
  font-size: clamp(0.96rem, 1.05vw, 1.08rem) !important;
  line-height: 1.45 !important;
}

.av-section--contact-grid .av-card a {
  overflow-wrap: anywhere;
  word-break: normal;
  color: var(--av-v15-blue);
  font-weight: 760;
}

@media (max-width: 1100px) {
  .av-section--contact-grid .av-feature-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .av-section--contact-grid .av-card:nth-child(3) {
    grid-column: 1 / -1;
    min-height: 190px !important;
  }
}

@media (max-width: 720px) {
  .av-section--contact-grid .av-feature-grid {
    grid-template-columns: 1fr !important;
  }

  .av-section--contact-grid .av-card,
  .av-section--contact-grid .av-card:nth-child(3) {
    grid-column: auto;
    min-height: 0 !important;
    padding: 26px 23px !important;
    grid-template-rows: auto;
  }

  .av-section--contact-grid .av-card-index {
    margin-bottom: 18px !important;
  }
}


/* Avanza Seguridad v36 - consistent feature card alignment. */

@media (min-width: 721px) {
  .av-feature-grid .av-card,
  .av-family-business .av-feature-grid .av-card,
  .av-family-technical .av-feature-grid .av-card,
  .av-family-residential .av-feature-grid .av-card,
  .av-family-guide .av-feature-grid .av-card {
    display: grid !important;
    min-width: 0 !important;
    min-height: 255px !important;
    grid-template-rows: 36px minmax(64px, auto) 1fr !important;
    align-content: start !important;
    align-items: start !important;
  }

  .av-feature-grid .av-card-index,
  .av-family-business .av-feature-grid .av-card-index,
  .av-family-technical .av-feature-grid .av-card-index,
  .av-family-residential .av-feature-grid .av-card-index,
  .av-family-guide .av-feature-grid .av-card-index {
    grid-row: 1 !important;
    align-self: start !important;
    margin: 0 !important;
  }

  .av-feature-grid .av-card h3,
  .av-family-business .av-feature-grid .av-card h3,
  .av-family-technical .av-feature-grid .av-card h3,
  .av-family-residential .av-feature-grid .av-card h3,
  .av-family-guide .av-feature-grid .av-card h3 {
    grid-row: 2 !important;
    align-self: end !important;
    margin: 0 0 16px !important;
    color: var(--av-v15-navy) !important;
    line-height: 1.16 !important;
  }

  .av-feature-grid .av-card p,
  .av-family-business .av-feature-grid .av-card p,
  .av-family-technical .av-feature-grid .av-card p,
  .av-family-residential .av-feature-grid .av-card p,
  .av-family-guide .av-feature-grid .av-card p {
    grid-row: 3 !important;
    align-self: start !important;
    max-width: 34em;
    margin: 0 !important;
    line-height: 1.58 !important;
  }

  .av-feature-grid .av-card > :last-child,
  .av-family-business .av-feature-grid .av-card > :last-child,
  .av-family-technical .av-feature-grid .av-card > :last-child,
  .av-family-residential .av-feature-grid .av-card > :last-child,
  .av-family-guide .av-feature-grid .av-card > :last-child {
    margin-bottom: 0 !important;
  }
}

@media (max-width: 720px) {
  .av-feature-grid .av-card,
  .av-family-business .av-feature-grid .av-card,
  .av-family-technical .av-feature-grid .av-card,
  .av-family-residential .av-feature-grid .av-card,
  .av-family-guide .av-feature-grid .av-card {
    display: block !important;
    min-height: 0 !important;
  }
}


/* Avanza Seguridad v37 - clean metric dividers on dark sections. */

.av-section--ink .av-stat-grid:not(.av-operations .av-stat-grid) {
  display: grid !important;
  width: 100% !important;
  max-width: none !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 0 !important;
  margin-top: clamp(34px, 4vw, 54px) !important;
  border-top: 1px solid rgba(255, 255, 255, 0.22) !important;
  border-right: 0 !important;
  border-bottom: 0 !important;
  border-left: 0 !important;
}

.av-section--ink .av-stat-grid:not(.av-operations .av-stat-grid) .av-stat {
  position: relative !important;
  display: flex !important;
  min-height: 146px !important;
  padding: 34px clamp(24px, 3vw, 42px) 28px !important;
  flex-direction: column;
  justify-content: center !important;
  align-items: flex-start !important;
  border: 0 !important;
  background: transparent !important;
}

.av-section--ink .av-stat-grid:not(.av-operations .av-stat-grid) .av-stat::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 1px;
  background: rgba(255, 255, 255, 0.2);
}

.av-section--ink .av-stat-grid:not(.av-operations .av-stat-grid) .av-stat:first-child::before {
  display: none;
}

.av-section--ink .av-stat-grid:not(.av-operations .av-stat-grid) .av-stat-value {
  display: block;
  margin: 0 !important;
  color: #fff !important;
  font-size: clamp(2rem, 3.1vw, 3.35rem) !important;
  line-height: 0.95 !important;
}

.av-section--ink .av-stat-grid:not(.av-operations .av-stat-grid) .av-stat-label {
  margin: 12px 0 0 !important;
  color: rgba(255, 255, 255, 0.68) !important;
  font-size: 0.92rem !important;
  line-height: 1.35 !important;
}

@media (max-width: 980px) {
  .av-section--ink .av-stat-grid:not(.av-operations .av-stat-grid) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .av-section--ink .av-stat-grid:not(.av-operations .av-stat-grid) .av-stat:nth-child(odd)::before {
    display: none;
  }

  .av-section--ink .av-stat-grid:not(.av-operations .av-stat-grid) .av-stat:nth-child(n + 3) {
    border-top: 1px solid rgba(255, 255, 255, 0.2) !important;
  }
}

@media (max-width: 560px) {
  .av-section--ink .av-stat-grid:not(.av-operations .av-stat-grid) {
    grid-template-columns: 1fr !important;
  }

  .av-section--ink .av-stat-grid:not(.av-operations .av-stat-grid) .av-stat {
    min-height: 0 !important;
    padding: 22px 0 !important;
  }

  .av-section--ink .av-stat-grid:not(.av-operations .av-stat-grid) .av-stat::before {
    display: none !important;
  }

  .av-section--ink .av-stat-grid:not(.av-operations .av-stat-grid) .av-stat:not(:first-child) {
    border-top: 1px solid rgba(255, 255, 255, 0.2) !important;
  }
}


/* Avanza Seguridad v38 - wider section headings, stronger feature sections and wider home hero. */

@media (min-width: 981px) {
  .av-entry-content > .av-section,
  .av-entry-content > .wp-block-group.av-section,
  .av-entry-content > .av-rate-sheet,
  .av-entry-content > .av-operations,
  body.home .av-entry-content > .av-section {
    padding-block: clamp(56px, 6vw, 88px) !important;
  }

  .av-entry-content .av-section > .av-kicker,
  .av-entry-content .av-section > .av-section-title,
  .av-entry-content .av-section > h2,
  .av-entry-content .av-section > .av-section-lead,
  .av-entry-content .av-section__head,
  body.home .av-section--services > .av-kicker,
  body.home .av-section--services > .av-section-title,
  body.home .av-section--services > .av-section-lead {
    margin-left: 0 !important;
    margin-right: auto !important;
    text-align: left !important;
  }

  .av-entry-content .av-section > .av-section-title,
  .av-entry-content .av-section > h2:not(.av-card-title),
  .av-entry-content .av-section__head > .av-section-title,
  .av-entry-content .av-section__head > h2,
  body.home .av-home-opener__statement .av-section-title,
  body.home .av-section--services > .av-section-title,
  .av-rate-sheet__head > .av-section-title,
  .av-rate-sheet__head > h2,
  .av-cta-panel .av-section-title,
  .av-cta-panel h2,
  .av-operations .av-section-title,
  .av-operations h2 {
    width: min(100%, 1320px) !important;
    max-width: min(100%, 1320px) !important;
    white-space: normal !important;
    text-wrap: balance;
  }

  .av-entry-content .av-section > .av-section-lead,
  .av-entry-content .av-section__head > .av-section-lead,
  body.home .av-section--services > .av-section-lead {
    width: min(100%, 1080px) !important;
    max-width: min(100%, 1080px) !important;
    text-align: left !important;
  }

  body.home .av-section--services > .av-section-title,
  body.home .av-home-opener__statement .av-section-title {
    font-size: clamp(2.8rem, 4.2vw, 4.55rem) !important;
    line-height: 1.02 !important;
  }
}

/* Feature sections: less vertical drag, more deliberate card composition. */
.av-entry-content .av-section--mist .av-feature-grid,
.av-entry-content .av-section--services .av-feature-grid,
.av-entry-content .av-section--pricing-detail .av-feature-grid {
  position: relative;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: clamp(16px, 2vw, 24px) !important;
  margin-top: clamp(28px, 4vw, 44px) !important;
  padding-top: clamp(18px, 2vw, 26px) !important;
  border-top: 2px solid rgba(8, 43, 75, 0.88);
}

.av-entry-content .av-section--mist .av-feature-grid .av-card,
.av-entry-content .av-section--services .av-feature-grid .av-card,
.av-entry-content .av-section--pricing-detail .av-feature-grid .av-card {
  min-height: clamp(210px, 18vw, 285px) !important;
  padding: clamp(28px, 3vw, 44px) !important;
  border-radius: 14px !important;
  box-shadow: none !important;
}

.av-entry-content .av-section--mist .av-feature-grid .av-card h3,
.av-entry-content .av-section--services .av-feature-grid .av-card h3,
.av-entry-content .av-section--pricing-detail .av-feature-grid .av-card h3 {
  max-width: 22ch;
}

.av-entry-content .av-section--mist .av-feature-grid .av-card p,
.av-entry-content .av-section--services .av-feature-grid .av-card p,
.av-entry-content .av-section--pricing-detail .av-feature-grid .av-card p {
  max-width: 48ch;
  font-size: clamp(0.98rem, 1.05vw, 1.08rem) !important;
}

@supports (animation-timeline: view()) {
  .av-entry-content .av-feature-grid .av-card {
    animation: av-card-reveal both ease-out;
    animation-timeline: view();
    animation-range: entry 6% cover 28%;
  }

  .av-entry-content .av-feature-grid .av-card:nth-child(2n) {
    animation-range: entry 12% cover 34%;
  }
}

@keyframes av-card-reveal {
  from {
    opacity: 0.01;
    transform: translateY(22px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .av-entry-content .av-feature-grid .av-card {
    animation: none !important;
    transform: none !important;
  }
}

/* Home hero should carry the same width and presence as the rest of the page. */
@media (min-width: 981px) {
  body.home .av-hero {
    width: min(calc(100% - 32px), 1760px) !important;
    margin: 18px auto 0 !important;
    border-radius: 28px !important;
    border: 1px solid rgba(8, 43, 75, 0.12) !important;
  }

  body.home .av-hero__inner {
    width: 100% !important;
    max-width: none !important;
    grid-template-columns: minmax(470px, 0.42fr) minmax(0, 0.58fr) !important;
    min-height: clamp(610px, 68vh, 780px) !important;
  }

  body.home .av-hero__copy {
    max-width: none !important;
    padding-left: clamp(48px, 6vw, 96px) !important;
    padding-right: clamp(36px, 4vw, 72px) !important;
  }

  body.home .av-hero h1 {
    max-width: 720px !important;
  }

  body.home .av-hero__lead {
    max-width: 680px !important;
  }
}

@media (max-width: 980px) {
  .av-entry-content .av-section--mist .av-feature-grid,
  .av-entry-content .av-section--services .av-feature-grid,
  .av-entry-content .av-section--pricing-detail .av-feature-grid {
    grid-template-columns: 1fr !important;
  }

  body.home .av-hero {
    width: calc(100% - 20px) !important;
    margin-inline: auto !important;
    border-radius: 22px !important;
    overflow: hidden;
  }
}


/* Avanza Seguridad v39 - polished tariff CTAs. */

.av-rate-sheet .wp-block-buttons.av-actions {
  display: flex !important;
  gap: 14px !important;
  align-items: center !important;
  margin-top: 30px !important;
  padding: 0 !important;
  background: transparent !important;
}

.av-rate-sheet .wp-block-buttons.av-actions > .wp-block-button,
.av-rate-sheet .wp-block-button.av-button--cut,
.av-rate-sheet .wp-block-button.av-button--line {
  display: inline-flex !important;
  width: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  color: inherit !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
  overflow: visible !important;
}

.av-rate-sheet .wp-block-buttons.av-actions > .wp-block-button::before,
.av-rate-sheet .wp-block-buttons.av-actions > .wp-block-button::after,
.av-rate-sheet .wp-block-button.av-button--cut::before,
.av-rate-sheet .wp-block-button.av-button--cut::after,
.av-rate-sheet .wp-block-button.av-button--line::before,
.av-rate-sheet .wp-block-button.av-button--line::after {
  content: none !important;
  display: none !important;
}

.av-rate-sheet .wp-block-button .wp-block-button__link {
  position: relative !important;
  display: inline-flex !important;
  min-height: 54px !important;
  min-width: 0 !important;
  padding: 8px 9px 8px 22px !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 16px !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  font-size: 0.9rem !important;
  font-weight: 780 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  text-decoration: none !important;
  transform: none !important;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}

.av-rate-sheet .wp-block-button .wp-block-button__link::before {
  content: none !important;
  display: none !important;
}

.av-rate-sheet .wp-block-button .wp-block-button__link::after {
  display: grid !important;
  width: 34px !important;
  height: 34px !important;
  flex: 0 0 34px !important;
  place-items: center !important;
  border-radius: 999px !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  line-height: 1 !important;
}

.av-rate-sheet .wp-block-button.av-button--cut .wp-block-button__link {
  color: #fff !important;
  background: var(--av-v15-navy) !important;
  border: 1px solid var(--av-v15-navy) !important;
}

.av-rate-sheet .wp-block-button.av-button--cut .wp-block-button__link::after {
  content: "→" !important;
  color: var(--av-v15-navy) !important;
  background: #fff !important;
}

.av-rate-sheet .wp-block-button.av-button--cut .wp-block-button__link:hover {
  color: #fff !important;
  background: #0d497b !important;
  border-color: #0d497b !important;
}

.av-rate-sheet .wp-block-button.av-button--line .wp-block-button__link {
  color: var(--av-v15-navy) !important;
  background: rgba(255, 255, 255, 0.74) !important;
  border: 1px solid rgba(8, 43, 75, 0.22) !important;
}

.av-rate-sheet .wp-block-button.av-button--line .wp-block-button__link::after {
  content: "→" !important;
  color: #fff !important;
  background: var(--av-v15-orange) !important;
}

.av-rate-sheet .wp-block-button.av-button--line .wp-block-button__link:hover {
  color: var(--av-v15-navy) !important;
  background: #fff !important;
  border-color: rgba(8, 43, 75, 0.34) !important;
}

@media (max-width: 800px) {
  .av-rate-sheet .wp-block-buttons.av-actions {
    align-items: stretch !important;
    flex-direction: column !important;
  }

  .av-rate-sheet .wp-block-buttons.av-actions > .wp-block-button,
  .av-rate-sheet .wp-block-button .wp-block-button__link {
    width: 100% !important;
  }

  .av-rate-sheet .wp-block-button .wp-block-button__link {
    justify-content: space-between !important;
  }
}

/* Avanza Seguridad v40 - reliable in-page section navigation. */

:root {
  --av-section-nav-height: 56px;
}

.av-section-nav {
  scroll-margin-top: 0;
}

.av-section-nav__inner {
  min-height: var(--av-section-nav-height);
}

.av-section-nav__track {
  flex: 1 1 auto;
  align-items: stretch;
  min-height: var(--av-section-nav-height);
}

.av-section-nav__track a {
  min-height: var(--av-section-nav-height);
  height: auto;
  align-items: center;
  justify-content: center;
  padding: 0 clamp(16px, 1.8vw, 28px);
  text-align: center;
  line-height: 1.1;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.av-section-nav__track a::after {
  right: clamp(16px, 1.8vw, 28px);
  left: clamp(16px, 1.8vw, 28px);
}

.av-section-nav__track a:focus-visible {
  outline: 2px solid rgba(229, 111, 26, 0.7);
  outline-offset: -5px;
}

.av-section-nav__track a[aria-current="true"] {
  color: var(--av-v15-blue, var(--av-blue));
}

.av-observed-section {
  scroll-margin-top: calc(var(--av-header, 78px) + var(--av-section-nav-height) + 28px);
}

@media (min-width: 1101px) {
  .av-section-nav__track a {
    flex: 1 1 0;
    min-width: max-content;
  }
}

@media (max-width: 1100px) {
  .av-section-nav__track {
    flex: 1 1 auto;
    overflow-x: auto;
    scroll-snap-type: x proximity;
  }

  .av-section-nav__track a {
    flex: 0 0 auto;
    min-width: max-content;
    scroll-snap-align: center;
  }
}

/* Avanza Seguridad v41 - stable desktop header layout. */

@media (min-width: 981px) {
  .av-site-header__inner {
    grid-template-columns: minmax(148px, 184px) minmax(0, 1fr) auto;
    gap: clamp(14px, 1.6vw, 28px);
    overflow: visible;
  }

  .av-brand {
    position: relative;
    z-index: 2;
    min-width: 0;
  }

  .av-brand a,
  .av-brand .custom-logo-link {
    width: fit-content;
    max-width: 100%;
  }

  .av-brand img,
  .av-brand .custom-logo {
    width: clamp(138px, 9.6vw, 166px);
    max-width: 100%;
    max-height: 50px;
    object-fit: contain;
  }

  .av-primary-nav {
    width: 100%;
    min-width: 0;
    justify-self: stretch;
    overflow: visible;
  }

  .av-primary-menu {
    width: 100%;
    min-width: 0;
    justify-content: flex-end;
    gap: clamp(10px, 1.05vw, 18px);
  }

  .av-primary-menu > li {
    flex: 0 1 auto;
    min-width: 0;
  }

  .av-primary-menu > li.av-menu-duplicate,
  .av-primary-menu > li[hidden] {
    display: none !important;
  }

  .av-primary-menu > li > a {
    min-width: 0;
    font-size: clamp(0.72rem, 0.72vw, 0.78rem);
    letter-spacing: -0.015em;
  }

  .av-header-actions {
    position: relative;
    z-index: 2;
    flex: 0 0 auto;
    gap: 14px;
    white-space: nowrap;
  }

  .av-header-phone strong {
    white-space: nowrap;
  }

  .av-site-header.av-header-is-compact .av-primary-menu {
    gap: 9px;
  }

  .av-site-header.av-header-is-compact .av-primary-menu > li > a {
    font-size: 0.7rem;
  }

  .av-site-header.av-header-needs-menu .av-primary-menu > li.av-menu-low-priority {
    display: none;
  }
}

@media (min-width: 981px) and (max-width: 1220px) {
  .av-site-header__inner {
    grid-template-columns: minmax(132px, 154px) minmax(0, 1fr) auto;
    gap: 12px;
    padding-inline: 16px;
  }

  .av-brand img,
  .av-brand .custom-logo {
    width: clamp(126px, 11vw, 146px);
  }

  .av-header-phone {
    display: none;
  }

  .av-button--header {
    min-width: 0;
    padding-inline: 18px;
  }
}

/* Avanza Seguridad v42 - remove artificial vertical gaps in CRA operations panel. */

body.home .av-operations,
.av-operations {
  align-items: stretch !important;
  min-height: 0 !important;
}

.av-operations__media {
  display: block !important;
  align-self: stretch !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 !important;
}

.av-operations__media img {
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  object-fit: cover !important;
}

body.home .av-operations__copy,
.av-operations__copy {
  align-self: stretch !important;
  justify-content: center !important;
  padding-block: clamp(34px, 4vw, 56px) !important;
}

@media (min-width: 981px) {
  body.home .av-operations,
  .av-operations {
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.92fr) !important;
  }

  .av-operations__media {
    min-height: 0 !important;
  }
}

@media (min-width: 981px) and (max-width: 1180px) {
  body.home .av-operations__copy,
  .av-operations__copy {
    padding: 36px clamp(30px, 4vw, 46px) !important;
  }

  .av-operations .av-section-title,
  .av-operations h2 {
    font-size: clamp(2.15rem, 4.1vw, 3.05rem) !important;
  }

  .av-operations .av-stat-grid {
    margin-top: 22px !important;
  }
}

@media (max-width: 980px) {
  .av-operations__media {
    min-height: clamp(300px, 54vw, 460px) !important;
  }

  body.home .av-operations__copy,
  .av-operations__copy {
    padding-block: 32px !important;
  }
}

/* Avanza Seguridad v43 - editorial feature cards with stable scroll reveal. */

.av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid {
  display: grid !important;
  width: 100% !important;
  max-width: none !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: clamp(18px, 2.2vw, 30px) !important;
  margin-top: clamp(30px, 4vw, 50px) !important;
  padding-top: clamp(18px, 2vw, 28px) !important;
  border-top: 2px solid rgba(8, 43, 75, 0.9) !important;
}

.av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card {
  position: relative !important;
  display: grid !important;
  min-width: 0 !important;
  min-height: clamp(205px, 17vw, 255px) !important;
  padding: clamp(28px, 3.1vw, 40px) !important;
  grid-template-columns: 52px minmax(0, 1fr) !important;
  grid-template-rows: auto auto !important;
  gap: 10px clamp(18px, 2vw, 26px) !important;
  align-content: center !important;
  align-items: start !important;
  overflow: hidden !important;
  background: #fff !important;
  border: 1px solid rgba(8, 43, 75, 0.1) !important;
  border-radius: 24px !important;
  box-shadow: 0 18px 42px rgba(8, 43, 75, 0.055) !important;
  animation: none !important;
  animation-timeline: auto !important;
  transition:
    opacity 560ms ease,
    transform 560ms cubic-bezier(0.2, 0.78, 0.22, 1),
    border-color 180ms ease,
    box-shadow 180ms ease !important;
  transition-delay: var(--av-card-delay, 0ms) !important;
}

.av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card:nth-child(3n + 2) {
  background: var(--av-v15-warm) !important;
}

.av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card:nth-child(3n) {
  background: var(--av-v15-sky) !important;
}

.av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card::before {
  content: "" !important;
  position: absolute !important;
  top: 24px !important;
  bottom: 24px !important;
  left: 0 !important;
  display: block !important;
  width: 4px !important;
  background: var(--av-v15-blue, var(--av-blue)) !important;
  border-radius: 0 999px 999px 0 !important;
}

.av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card:nth-child(3n + 2)::before {
  background: var(--av-v15-orange, var(--av-orange)) !important;
}

.av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card::after {
  content: "" !important;
  position: absolute !important;
  right: -80px !important;
  bottom: -90px !important;
  display: block !important;
  width: 220px !important;
  height: 220px !important;
  background: radial-gradient(circle, rgba(16, 90, 159, 0.11), rgba(16, 90, 159, 0) 66%) !important;
  pointer-events: none !important;
}

.av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card-index {
  display: grid !important;
  width: 44px !important;
  height: 44px !important;
  margin: 0 !important;
  grid-column: 1 !important;
  grid-row: 1 / span 2 !important;
  place-items: center !important;
  align-self: start !important;
  color: #fff !important;
  background: var(--av-v15-blue, var(--av-blue)) !important;
  border-radius: 999px !important;
  font-size: 0.78rem !important;
  font-weight: 850 !important;
  letter-spacing: 0.03em !important;
  line-height: 1 !important;
  box-shadow: 0 10px 20px rgba(16, 90, 159, 0.16) !important;
}

.av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card:nth-child(3n + 2) .av-card-index {
  background: var(--av-v15-orange, var(--av-orange)) !important;
  box-shadow: 0 10px 20px rgba(229, 111, 26, 0.16) !important;
}

.av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card h3,
.av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card .av-card-title {
  grid-column: 2 !important;
  grid-row: 1 !important;
  align-self: end !important;
  max-width: none !important;
  margin: 0 !important;
  color: var(--av-v15-navy, var(--av-navy)) !important;
  font-size: clamp(1.22rem, 1.45vw, 1.55rem) !important;
  line-height: 1.12 !important;
  letter-spacing: -0.035em !important;
}

.av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card .av-card-copy {
  grid-column: 2 !important;
  grid-row: 2 !important;
  max-width: 58ch !important;
  margin: 0 !important;
  color: #65727e !important;
  font-size: clamp(0.98rem, 1.03vw, 1.08rem) !important;
  line-height: 1.58 !important;
}

.av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card > :last-child {
  margin-bottom: 0 !important;
}

body.av-card-reveal-ready .av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card {
  opacity: 0 !important;
  transform: translateY(30px) scale(0.985) !important;
}

body.av-card-reveal-ready .av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card.is-visible {
  opacity: 1 !important;
  transform: translateY(0) scale(1) !important;
}

body.av-card-reveal-ready .av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card.is-visible:hover {
  transform: translateY(-4px) scale(1) !important;
  border-color: rgba(8, 43, 75, 0.18) !important;
  box-shadow: 0 22px 48px rgba(8, 43, 75, 0.08) !important;
}

@media (max-width: 980px) {
  .av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 640px) {
  .av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card {
    min-height: 0 !important;
    padding: 26px 22px 28px !important;
    grid-template-columns: 46px minmax(0, 1fr) !important;
    border-radius: 20px !important;
  }

  .av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card-index {
    width: 38px !important;
    height: 38px !important;
    font-size: 0.72rem !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.av-card-reveal-ready .av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* Avanza Seguridad v44 - readable mobile section summary navigation. */

@media (max-width: 780px) {
  .av-section-nav {
    --av-section-nav-height: 58px;
  }

  .av-section-nav__inner {
    width: 100% !important;
    min-height: var(--av-section-nav-height) !important;
    padding-inline: 10px !important;
  }

  .av-section-nav__label {
    display: none !important;
  }

  .av-section-nav__track {
    gap: 10px !important;
    min-height: var(--av-section-nav-height) !important;
    padding-block: 8px !important;
    padding-inline: 2px !important;
    scroll-padding-inline: 12px !important;
  }

  .av-section-nav__track a {
    min-width: max-content !important;
    max-width: min(74vw, 320px) !important;
    min-height: 42px !important;
    padding: 0 18px !important;
    flex: 0 0 auto !important;
    overflow: hidden !important;
    color: #65727e !important;
    background: rgba(255, 255, 255, 0.72) !important;
    border: 1px solid rgba(8, 43, 75, 0.12) !important;
    border-radius: 999px !important;
    box-shadow: none !important;
    font-size: 0.82rem !important;
    font-weight: 760 !important;
    line-height: 1.1 !important;
    text-align: center !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  .av-section-nav__track a::after {
    content: none !important;
    display: none !important;
  }

  .av-section-nav__track a.is-active,
  .av-section-nav__track a[aria-current="true"] {
    min-width: max-content !important;
    color: #fff !important;
    background: var(--av-v15-blue, #105a9f) !important;
    border-color: var(--av-v15-blue, #105a9f) !important;
    box-shadow: 0 10px 24px rgba(16, 90, 159, 0.16) !important;
  }

  .av-section-nav__track a.is-active:visited,
  .av-section-nav__track a[aria-current="true"]:visited,
  .av-section-nav__track a.is-active:hover,
  .av-section-nav__track a[aria-current="true"]:hover,
  .av-section-nav__track a.is-active:focus,
  .av-section-nav__track a[aria-current="true"]:focus {
    color: #fff !important;
  }
}

/* Avanza Seguridad v45 - restore scroll-reactive section pills without orange inner lines. */

.av-entry-content .av-kicker {
  --av-kicker-progress: 0;
  --av-kicker-reveal: 0%;
  position: relative !important;
  isolation: isolate !important;
  display: inline-flex !important;
  width: fit-content !important;
  max-width: 100% !important;
  min-height: 34px !important;
  margin: 0 0 16px !important;
  padding: 7px 15px !important;
  align-items: center !important;
  overflow: hidden !important;
  color: var(--av-v15-blue, var(--av-blue)) !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  opacity: calc(0.42 + (var(--av-kicker-progress) * 0.58)) !important;
  transform: translateY(calc((1 - var(--av-kicker-progress)) * 10px)) !important;
  transition: color 180ms ease, opacity 120ms linear, transform 120ms linear !important;
}

.av-entry-content .av-kicker::before {
  content: "" !important;
  position: absolute !important;
  z-index: -2 !important;
  inset: 0 !important;
  display: block !important;
  background: rgba(237, 245, 250, 0.7) !important;
  border: 1px solid #d4e1e9 !important;
  border-radius: inherit !important;
  transform: none !important;
}

.av-entry-content .av-kicker::after {
  content: "" !important;
  position: absolute !important;
  z-index: -1 !important;
  inset: 0 !important;
  display: block !important;
  background: #edf5fa !important;
  border: 1px solid #d4e1e9 !important;
  border-radius: inherit !important;
  clip-path: inset(0 calc(100% - var(--av-kicker-reveal)) 0 0 round 999px) !important;
  box-shadow: 0 9px 22px rgba(16, 90, 159, 0.08) !important;
  transition: clip-path 120ms linear !important;
}

.av-entry-content .av-kicker.is-pill-complete {
  opacity: 1 !important;
  transform: translateY(0) !important;
}

.av-section--ink .av-kicker,
.av-operations .av-kicker,
.av-cta-panel .av-kicker,
.av-prefooter .av-kicker {
  color: var(--av-v15-navy, #082b4b) !important;
}

.av-section--ink .av-kicker::before,
.av-operations .av-kicker::before,
.av-cta-panel .av-kicker::before,
.av-prefooter .av-kicker::before {
  background: rgba(255, 255, 255, 0.42) !important;
  border-color: rgba(255, 255, 255, 0.52) !important;
}

.av-section--ink .av-kicker::after,
.av-operations .av-kicker::after,
.av-cta-panel .av-kicker::after,
.av-prefooter .av-kicker::after {
  background: #fff !important;
  border-color: #fff !important;
  box-shadow: 0 9px 22px rgba(4, 25, 44, 0.14) !important;
}

@media (prefers-reduced-motion: reduce) {
  .av-entry-content .av-kicker {
    opacity: 1 !important;
    transform: none !important;
  }

  .av-entry-content .av-kicker::after {
    clip-path: inset(0 0 0 0 round 999px) !important;
  }
}

/* Avanza Seguridad v46 - translucent navy header with white logo. */

.av-site-header {
  background: rgba(8, 43, 75, 0.82) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12) !important;
  box-shadow: 0 14px 34px rgba(4, 25, 44, 0.16) !important;
  backdrop-filter: blur(18px) saturate(130%) !important;
  -webkit-backdrop-filter: blur(18px) saturate(130%) !important;
}

.av-site-header.is-scrolled {
  background: rgba(8, 43, 75, 0.9) !important;
  box-shadow: 0 16px 38px rgba(4, 25, 44, 0.2) !important;
}

.av-site-header .av-brand img,
.av-site-header .av-brand .custom-logo {
  filter: brightness(0) invert(1) !important;
  opacity: 1 !important;
}

.av-site-header .av-primary-menu > li > a {
  color: rgba(255, 255, 255, 0.88) !important;
}

.av-site-header .av-primary-menu > li > a:hover,
.av-site-header .av-primary-menu > .current-menu-item > a,
.av-site-header .av-primary-menu > .current-menu-ancestor > a {
  color: #fff !important;
}

.av-site-header .av-primary-menu > li > a::after {
  background: var(--av-v15-orange, #e56f1a) !important;
}

.av-site-header .av-header-phone {
  color: #fff !important;
}

.av-site-header .av-header-phone span {
  color: rgba(255, 255, 255, 0.62) !important;
}

.av-site-header .av-header-phone strong {
  color: #fff !important;
}

.av-site-header .av-menu-toggle {
  color: #fff !important;
}

.av-site-header .av-button--header {
  color: #fff !important;
  background: var(--av-v15-orange, #e56f1a) !important;
  border-color: var(--av-v15-orange, #e56f1a) !important;
}

.av-site-header .av-button--header:hover {
  color: #fff !important;
  background: #dd6415 !important;
  border-color: #dd6415 !important;
}

@media (min-width: 981px) {
  .av-site-header .av-primary-menu .sub-menu {
    background: rgba(255, 255, 255, 0.98) !important;
    border-color: rgba(8, 43, 75, 0.1) !important;
  }

  .av-site-header .av-primary-menu .sub-menu a {
    color: var(--av-v15-navy, #082b4b) !important;
  }
}

@media (max-width: 980px) {
  .av-site-header .av-primary-nav {
    background: rgba(8, 43, 75, 0.96) !important;
    border-color: rgba(255, 255, 255, 0.12) !important;
  }

  .av-site-header .av-primary-menu > li {
    border-bottom-color: rgba(255, 255, 255, 0.12) !important;
  }

  .av-site-header .av-primary-menu .sub-menu a {
    color: rgba(255, 255, 255, 0.72) !important;
  }
}

/* Avanza Seguridad v47 - remove duplicated outer frame from homepage hero. */

body.home .av-hero {
  width: min(calc(100% - 32px), 1760px) !important;
  margin: 18px auto 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

body.home .av-hero__inner {
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
}

body.home .av-hero__stage {
  border-radius: 28px !important;
  box-shadow: none !important;
}

body.home .av-hero__pillars {
  width: 100% !important;
  margin: 14px 0 0 !important;
  border-radius: 22px !important;
}

@media (max-width: 980px) {
  body.home .av-hero {
    width: calc(100% - 20px) !important;
    margin-inline: auto !important;
    padding: 0 !important;
    border-radius: 0 !important;
  }

  body.home .av-hero__inner {
    padding: 0 !important;
  }

  body.home .av-hero__stage {
    border-radius: 22px !important;
  }
}

/* Avanza Seguridad v49 - CRA panel image flush with section edges. */

@media (min-width: 981px) {
  body.home .av-operations,
  .av-operations {
    display: grid !important;
    padding: 0 !important;
    gap: 0 !important;
    align-items: stretch !important;
    overflow: hidden !important;
    min-height: 0 !important;
    grid-template-columns: minmax(0, 1.1fr) minmax(360px, 0.9fr) !important;
  }

  .av-operations__media {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-height: clamp(500px, 34vw, 620px) !important;
    margin: 0 !important;
    align-self: stretch !important;
    overflow: hidden !important;
    border-radius: 0 !important;
  }

  .av-operations__media img {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  body.home .av-operations__copy,
  .av-operations__copy {
    min-height: clamp(500px, 34vw, 620px) !important;
    padding: clamp(34px, 4.2vw, 58px) clamp(34px, 4.8vw, 70px) !important;
    align-self: stretch !important;
    justify-content: center !important;
  }
}

@media (max-width: 980px) {
  .av-operations__media {
    position: relative !important;
    min-height: clamp(300px, 55vw, 460px) !important;
    margin: 0 !important;
    overflow: hidden !important;
  }

  .av-operations__media img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }
}

/* Avanza Seguridad v50 - align first process marker with the rest. */

@media (min-width: 981px) {
  .av-steps .av-step:first-child .av-step-number,
  body.home .av-home-flow .av-step:first-child .av-step-number {
    transform: translateY(24px) !important;
  }
}

@media (max-width: 980px) {
  .av-steps .av-step:first-child .av-step-number,
  body.home .av-home-flow .av-step:first-child .av-step-number {
    transform: none !important;
  }
}

/* Avanza Seguridad v51 - shared province directory design across pages. */

.av-section--coverage,
.av-section--mist:has(.av-directory) {
  padding: clamp(42px, 5.4vw, 76px) !important;
  background: #edf5fa !important;
  border: 1px solid rgba(8, 43, 75, 0.12) !important;
  border-radius: clamp(22px, 2.6vw, 34px) !important;
  overflow: hidden !important;
}

.av-section--coverage .av-section-title,
.av-section--mist:has(.av-directory) .av-section-title,
.av-section--coverage > h2,
.av-section--mist:has(.av-directory) > h2 {
  max-width: min(100%, 1180px) !important;
}

.av-section--coverage .av-section-lead,
.av-section--mist:has(.av-directory) .av-section-lead {
  max-width: min(100%, 1120px) !important;
}

.av-section--coverage .av-directory,
.av-section--mist .av-directory {
  display: grid !important;
  grid-template-columns: repeat(24, minmax(0, 1fr)) !important;
  gap: 1px !important;
  margin-top: clamp(28px, 3.6vw, 44px) !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 1px solid rgba(8, 43, 75, 0.16) !important;
  border-radius: 18px !important;
  background: rgba(8, 43, 75, 0.14) !important;
}

.av-section--coverage .av-directory-link,
.av-section--coverage .av-directory-link:nth-child(odd),
.av-section--mist .av-directory-link,
.av-section--mist .av-directory-link:nth-child(odd) {
  grid-column: span 6 !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  background: #f8fbfd !important;
}

.av-section--coverage .av-directory-link:nth-child(n+5),
.av-section--mist .av-directory-link:nth-child(n+5) {
  grid-column: span 8 !important;
}

.av-section--coverage .av-directory-link a,
.av-section--mist .av-directory-link a {
  min-height: 86px !important;
  padding: 24px 28px !important;
  border: 0 !important;
  color: var(--av-v15-navy) !important;
  background: transparent !important;
}

.av-section--coverage .av-directory-link a:hover,
.av-section--mist .av-directory-link a:hover {
  color: var(--av-v15-orange) !important;
  background: #ffffff !important;
}

@media (max-width: 1099px) and (min-width: 721px) {
  .av-section--coverage .av-directory,
  .av-section--mist .av-directory {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .av-section--coverage .av-directory-link,
  .av-section--coverage .av-directory-link:nth-child(odd),
  .av-section--coverage .av-directory-link:nth-child(n+5),
  .av-section--mist .av-directory-link,
  .av-section--mist .av-directory-link:nth-child(odd),
  .av-section--mist .av-directory-link:nth-child(n+5) {
    grid-column: auto !important;
  }
}

@media (max-width: 720px) {
  .av-section--coverage,
  .av-section--mist:has(.av-directory) {
    padding: 30px 22px !important;
    border-radius: 22px !important;
  }

  .av-section--coverage .av-directory,
  .av-section--mist .av-directory {
    grid-template-columns: 1fr !important;
  }

  .av-section--coverage .av-directory-link,
  .av-section--coverage .av-directory-link:nth-child(odd),
  .av-section--coverage .av-directory-link:nth-child(n+5),
  .av-section--mist .av-directory-link,
  .av-section--mist .av-directory-link:nth-child(odd),
  .av-section--mist .av-directory-link:nth-child(n+5) {
    grid-column: auto !important;
  }

  .av-section--coverage .av-directory-link a,
  .av-section--mist .av-directory-link a {
    min-height: 68px !important;
    padding: 18px 20px !important;
  }
}

/* Avanza Seguridad v52 - clean mobile header and navigation sheet. */

@media (max-width: 980px) {
  body.av-menu-open {
    overflow: hidden !important;
  }

  .av-site-header {
    background: rgba(8, 43, 75, 0.94) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14) !important;
    box-shadow: 0 12px 30px rgba(4, 25, 44, 0.22) !important;
  }

  .av-site-header__inner {
    min-height: 68px !important;
    padding-inline: 18px !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 14px !important;
  }

  .av-brand,
  .av-brand a,
  .av-brand .custom-logo-link {
    min-width: 0 !important;
  }

  .av-brand img,
  .av-brand .custom-logo {
    width: min(46vw, 148px) !important;
    max-width: 148px !important;
    max-height: 42px !important;
    object-fit: contain !important;
    filter: brightness(0) invert(1) !important;
  }

  .av-menu-toggle {
    display: inline-flex !important;
    min-height: 42px !important;
    padding: 0 14px !important;
    gap: 10px !important;
    color: #fff !important;
    background: rgba(255, 255, 255, 0.1) !important;
    border: 1px solid rgba(255, 255, 255, 0.22) !important;
    border-radius: 999px !important;
    box-shadow: none !important;
  }

  .av-menu-toggle__label {
    display: inline !important;
    font-size: 0.74rem !important;
    font-weight: 820 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
  }

  .av-menu-toggle__icon {
    width: 20px !important;
    gap: 5px !important;
  }

  .av-menu-toggle__icon i {
    width: 20px !important;
    height: 2px !important;
    border-radius: 99px !important;
    background: currentColor !important;
  }

  .av-menu-toggle[aria-expanded="true"] {
    background: #fff !important;
    color: var(--av-v15-navy, #082b4b) !important;
    border-color: #fff !important;
  }

  .av-primary-nav {
    position: absolute !important;
    top: calc(100% + 10px) !important;
    right: 18px !important;
    left: 18px !important;
    display: none !important;
    max-height: calc(100dvh - 96px) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    padding: 10px !important;
    background: rgba(8, 43, 75, 0.98) !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    border-radius: 22px !important;
    box-shadow: 0 24px 60px rgba(4, 25, 44, 0.34) !important;
    backdrop-filter: blur(18px) saturate(130%) !important;
    -webkit-backdrop-filter: blur(18px) saturate(130%) !important;
  }

  .av-primary-nav.is-open {
    display: block !important;
  }

  .av-primary-menu {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 7px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .av-primary-menu > li,
  .av-primary-menu > li:nth-child(n) {
    display: block !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
  }

  .av-primary-menu > li.av-menu-duplicate,
  .av-primary-menu > li[hidden] {
    display: none !important;
  }

  .av-primary-menu > li > a {
    display: flex !important;
    min-height: 52px !important;
    padding: 0 16px !important;
    align-items: center !important;
    justify-content: space-between !important;
    color: #fff !important;
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: 15px !important;
    font-size: 0.98rem !important;
    font-weight: 780 !important;
    line-height: 1.1 !important;
    text-decoration: none !important;
    white-space: normal !important;
  }

  .av-primary-menu > li > a::after {
    content: "→" !important;
    position: static !important;
    display: inline-flex !important;
    width: auto !important;
    height: auto !important;
    margin-left: 16px !important;
    transform: none !important;
    background: transparent !important;
    color: var(--av-v15-orange, #f97316) !important;
    font-size: 1rem !important;
    line-height: 1 !important;
  }

  .av-primary-menu > li > a:hover,
  .av-primary-menu > li > a:focus,
  .av-primary-menu > .current-menu-item > a,
  .av-primary-menu > .current-menu-ancestor > a {
    color: #fff !important;
    background: rgba(255, 255, 255, 0.14) !important;
    border-color: rgba(255, 255, 255, 0.22) !important;
  }

  .av-primary-menu .sub-menu {
    display: none !important;
  }

  .av-header-actions {
    display: none !important;
  }
}

/* Avanza Seguridad v53 - emergency recovery and mobile pricing cards. */

@media (max-width: 720px) {
  .av-rate-sheet .av-data-table,
  .av-section--pricing-detail .av-data-table {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    background: transparent !important;
  }

  .av-rate-sheet .av-data-table thead,
  .av-section--pricing-detail .av-data-table thead {
    display: none !important;
  }

  .av-rate-sheet .av-data-table tbody,
  .av-rate-sheet .av-data-table tr,
  .av-rate-sheet .av-data-table td,
  .av-section--pricing-detail .av-data-table tbody,
  .av-section--pricing-detail .av-data-table tr,
  .av-section--pricing-detail .av-data-table td {
    display: block !important;
    width: 100% !important;
  }

  .av-rate-sheet .av-data-table tr,
  .av-section--pricing-detail .av-data-table tr {
    margin: 0 0 14px !important;
    padding: 16px !important;
    background: #fff !important;
    border: 1px solid rgba(8, 43, 75, 0.14) !important;
    border-radius: 18px !important;
    box-shadow: 0 16px 34px rgba(8, 43, 75, 0.08) !important;
  }

  .av-rate-sheet .av-data-table td,
  .av-section--pricing-detail .av-data-table td {
    min-height: 0 !important;
    padding: 10px 0 !important;
    border: 0 !important;
    color: var(--av-v15-navy, #082b4b) !important;
    font-size: 0.98rem !important;
    line-height: 1.35 !important;
  }

  .av-rate-sheet .av-data-table td + td,
  .av-section--pricing-detail .av-data-table td + td {
    border-top: 1px solid rgba(8, 43, 75, 0.1) !important;
  }

  .av-rate-sheet .av-data-table td::before,
  .av-section--pricing-detail .av-data-table td::before {
    display: block !important;
    margin-bottom: 4px !important;
    color: #5f7182 !important;
    font-size: 0.68rem !important;
    font-weight: 840 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
  }

  .av-rate-sheet .av-data-table td:nth-child(1)::before { content: "Sistema"; }
  .av-rate-sheet .av-data-table td:nth-child(2)::before { content: "Con internet"; }
  .av-rate-sheet .av-data-table td:nth-child(3)::before { content: "Sin internet"; }
  .av-rate-sheet .av-data-table td:nth-child(4)::before { content: "Equipamiento base"; }

  .av-section--pricing-detail .av-data-table td:nth-child(1)::before { content: "Elemento"; }
  .av-section--pricing-detail .av-data-table td:nth-child(2)::before { content: "Precio"; }

  .av-rate-sheet .av-data-table td:first-child,
  .av-section--pricing-detail .av-data-table td:first-child {
    padding-top: 0 !important;
    font-size: 1.08rem !important;
    font-weight: 840 !important;
  }

  .av-rate-sheet .av-data-table td:first-child::before,
  .av-section--pricing-detail .av-data-table td:first-child::before {
    display: none !important;
  }

  .av-rate-sheet .av-data-table td:last-child,
  .av-section--pricing-detail .av-data-table td:last-child {
    padding-bottom: 0 !important;
  }
}

/* Avanza Seguridad v55 - product cards, updated pricing and no-scroll mobile rate sheet. */

.av-product-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)) !important;
  gap: clamp(16px, 2vw, 24px) !important;
  margin-top: clamp(28px, 3.5vw, 46px) !important;
}

.av-product-card {
  position: relative !important;
  display: flex !important;
  min-height: 100% !important;
  padding: clamp(22px, 2.8vw, 32px) !important;
  flex-direction: column !important;
  gap: 14px !important;
  overflow: hidden !important;
  background: #fff !important;
  border: 1px solid rgba(8, 43, 75, 0.14) !important;
  border-radius: 24px !important;
  box-shadow: 0 20px 48px rgba(8, 43, 75, 0.08) !important;
}

.av-product-card__badge {
  display: inline-flex !important;
  width: fit-content !important;
  margin: 0 !important;
  padding: 6px 11px !important;
  color: var(--av-v15-blue, #0f62ae) !important;
  background: #edf5fa !important;
  border: 1px solid rgba(15, 98, 174, 0.16) !important;
  border-radius: 999px !important;
  font-size: 0.68rem !important;
  font-weight: 850 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}

.av-product-card__media {
  display: grid !important;
  min-height: 132px !important;
  margin: 0 !important;
  place-items: center !important;
  background: linear-gradient(135deg, #edf5fa, #fff3df) !important;
  border-radius: 20px !important;
}

.av-product-card__media img {
  display: block !important;
  width: auto !important;
  max-width: 82% !important;
  max-height: 150px !important;
  object-fit: contain !important;
  filter: drop-shadow(0 16px 22px rgba(8, 43, 75, 0.16)) !important;
}

.av-product-card__title {
  margin: 0 !important;
  color: var(--av-v15-navy, #082b4b) !important;
  font-size: clamp(1.22rem, 1.6vw, 1.55rem) !important;
  line-height: 1.05 !important;
}

.av-product-card__price {
  margin: 0 !important;
  color: var(--av-v15-navy, #082b4b) !important;
  font-size: clamp(2rem, 3.1vw, 3.2rem) !important;
  font-weight: 900 !important;
  letter-spacing: -0.06em !important;
  line-height: 0.95 !important;
}

.av-product-card__copy {
  margin: 0 !important;
  color: #5f7182 !important;
  font-size: 0.98rem !important;
  line-height: 1.5 !important;
}

.av-product-card__cta {
  display: inline-flex !important;
  min-height: 46px !important;
  margin-top: auto !important;
  padding: 0 16px !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  color: #fff !important;
  background: var(--av-v15-orange, #f97316) !important;
  border-radius: 999px !important;
  font-weight: 820 !important;
  text-decoration: none !important;
}

.av-product-card__cta:hover {
  color: #fff !important;
  background: #dc6412 !important;
}

@media (max-width: 720px) {
  .av-rate-sheet,
  .av-section--pricing-detail {
    overflow: visible !important;
  }

  .av-rate-sheet .av-data-table,
  .av-section--pricing-detail .av-data-table {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    background: transparent !important;
  }

  .av-rate-sheet .av-data-table thead,
  .av-section--pricing-detail .av-data-table thead {
    display: none !important;
  }

  .av-rate-sheet .av-data-table tbody,
  .av-rate-sheet .av-data-table tr,
  .av-rate-sheet .av-data-table td,
  .av-section--pricing-detail .av-data-table tbody,
  .av-section--pricing-detail .av-data-table tr,
  .av-section--pricing-detail .av-data-table td {
    display: block !important;
    width: 100% !important;
  }

  .av-rate-sheet .av-data-table tr,
  .av-section--pricing-detail .av-data-table tr {
    margin: 0 0 14px !important;
    padding: 16px !important;
    background: #fff !important;
    border: 1px solid rgba(8, 43, 75, 0.14) !important;
    border-radius: 18px !important;
    box-shadow: 0 16px 34px rgba(8, 43, 75, 0.08) !important;
  }

  .av-rate-sheet .av-data-table td,
  .av-section--pricing-detail .av-data-table td {
    min-height: 0 !important;
    padding: 10px 0 !important;
    border: 0 !important;
    color: var(--av-v15-navy, #082b4b) !important;
    font-size: 0.98rem !important;
    line-height: 1.35 !important;
    white-space: normal !important;
  }

  .av-rate-sheet .av-data-table td + td,
  .av-section--pricing-detail .av-data-table td + td {
    border-top: 1px solid rgba(8, 43, 75, 0.1) !important;
  }

  .av-rate-sheet .av-data-table td::before,
  .av-section--pricing-detail .av-data-table td::before {
    display: block !important;
    margin-bottom: 4px !important;
    color: #5f7182 !important;
    font-size: 0.68rem !important;
    font-weight: 840 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
  }

  .av-rate-sheet .av-data-table td:nth-child(1)::before { content: "Producto" !important; }
  .av-rate-sheet .av-data-table td:nth-child(2)::before { content: "Precio" !important; }
  .av-rate-sheet .av-data-table td:nth-child(3)::before { content: "Modalidad" !important; }
  .av-rate-sheet .av-data-table td:nth-child(4)::before { content: "Incluye" !important; }
  .av-section--pricing-detail .av-data-table td:nth-child(1)::before { content: "Elemento" !important; }
  .av-section--pricing-detail .av-data-table td:nth-child(2)::before { content: "Precio" !important; }

  .av-rate-sheet .av-data-table td:first-child,
  .av-section--pricing-detail .av-data-table td:first-child {
    padding-top: 0 !important;
    font-size: 1.08rem !important;
    font-weight: 840 !important;
  }

  .av-rate-sheet .av-data-table td:first-child::before,
  .av-section--pricing-detail .av-data-table td:first-child::before {
    display: none !important;
  }

  .av-product-grid {
    grid-template-columns: 1fr !important;
  }
}

/* Avanza Seguridad v58 - clean footer lists and safer footer width. */
.av-footer-grid {
  grid-template-columns: minmax(220px, 1.35fr) repeat(5, minmax(0, 1fr));
  gap: clamp(24px, 3vw, 48px);
}

.av-footer-menu a,
.av-footer-contact a,
.av-footer-contact span {
  overflow-wrap: anywhere;
}

.av-footer-brand img {
  background: transparent;
  padding: 0;
  filter: brightness(0) invert(1);
}

@media (max-width: 980px) {
  .av-footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .av-footer-brand,
  .av-footer-contact {
    grid-column: 1 / -1;
  }
}

@media (max-width: 620px) {
  .av-footer-grid {
    grid-template-columns: 1fr;
  }
}
/* Avanza Seguridad v60 - restored pills and contained pricing hero. */
.av-kicker,
.av-hero__eyebrow {
  --av-kicker-progress: 1;
  --av-kicker-reveal: 100%;
  position: relative !important;
  isolation: isolate !important;
  display: inline-flex !important;
  width: fit-content !important;
  max-width: min(100%, 92vw) !important;
  min-height: 36px !important;
  margin: 0 0 18px !important;
  padding: 8px 18px !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  color: var(--av-v15-blue, #105a9f) !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  font-size: 0.76rem !important;
  font-weight: 820 !important;
  letter-spacing: 0.12em !important;
  line-height: 1.1 !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  opacity: max(0.72, calc(0.42 + (var(--av-kicker-progress) * 0.58))) !important;
  transform: translateY(calc((1 - var(--av-kicker-progress)) * 8px)) !important;
}

.av-kicker::before,
.av-hero__eyebrow::before {
  content: "" !important;
  position: absolute !important;
  z-index: -2 !important;
  inset: 0 !important;
  display: block !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  background: rgba(237, 245, 250, 0.76) !important;
  border: 1px solid rgba(16, 90, 159, 0.18) !important;
  border-radius: inherit !important;
  transform: none !important;
}

.av-kicker::after,
.av-hero__eyebrow::after {
  content: "" !important;
  position: absolute !important;
  z-index: -1 !important;
  inset: 0 !important;
  display: block !important;
  background: #edf5fa !important;
  border: 1px solid rgba(16, 90, 159, 0.2) !important;
  border-radius: inherit !important;
  clip-path: inset(0 calc(100% - var(--av-kicker-reveal)) 0 0 round 999px) !important;
  box-shadow: 0 10px 24px rgba(16, 90, 159, 0.08) !important;
}

.av-section--ink .av-kicker,
.av-operations .av-kicker,
.av-cta-panel .av-kicker,
.av-prefooter .av-kicker {
  color: #fff !important;
}

.av-section--ink .av-kicker::before,
.av-section--ink .av-kicker::after,
.av-operations .av-kicker::before,
.av-operations .av-kicker::after,
.av-cta-panel .av-kicker::before,
.av-cta-panel .av-kicker::after,
.av-prefooter .av-kicker::before,
.av-prefooter .av-kicker::after {
  background: rgba(255, 255, 255, 0.14) !important;
  border-color: rgba(255, 255, 255, 0.28) !important;
}

.av-rate-sheet {
  width: min(100%, var(--wp--style--global--wide-size, 1480px)) !important;
  max-width: calc(100vw - 32px) !important;
  margin-inline: auto !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

.av-rate-sheet__head,
.av-rate-sheet__price,
.av-rate-sheet__amount {
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

.av-rate-sheet__amount {
  flex-wrap: nowrap !important;
}

.av-rate-sheet__amount strong {
  display: inline-block !important;
  white-space: nowrap !important;
  font-size: clamp(4.8rem, 7.4vw, 7rem) !important;
  line-height: 0.82 !important;
  letter-spacing: -0.06em !important;
}

@media (min-width: 981px) {
  .av-rate-sheet__head {
    grid-template-columns: minmax(0, 1fr) minmax(300px, 0.42fr) !important;
    column-gap: clamp(44px, 5vw, 82px) !important;
  }

  .av-rate-sheet__head > .av-rate-sheet__price,
  .av-rate-sheet__price {
    padding-left: clamp(34px, 4vw, 56px) !important;
  }
}

@media (max-width: 980px) {
  .av-entry-content > .av-rate-sheet,
  .av-rate-sheet {
    width: min(100%, calc(100vw - 24px)) !important;
    max-width: calc(100vw - 24px) !important;
    margin-inline: auto !important;
    padding-inline: clamp(18px, 5vw, 28px) !important;
    text-align: center !important;
  }

  .av-rate-sheet__head {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    justify-items: center !important;
    gap: 18px !important;
    width: 100% !important;
    min-height: 0 !important;
    padding-block: 8px 18px !important;
  }

  .av-rate-sheet__head > .av-kicker,
  .av-rate-sheet__head > .av-section-title,
  .av-rate-sheet__head > h2,
  .av-rate-sheet__head > .av-section-lead,
  .av-rate-sheet__head > .av-rate-sheet__price {
    grid-column: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    justify-self: center !important;
    text-align: center !important;
  }

  .av-rate-sheet__head > .av-kicker {
    width: fit-content !important;
  }

  .av-rate-sheet__head > .av-section-title,
  .av-rate-sheet__head > h2 {
    font-size: clamp(2.45rem, 11vw, 4.25rem) !important;
    line-height: 0.98 !important;
  }

  .av-rate-sheet__head > .av-section-lead {
    margin-inline: auto !important;
    font-size: clamp(1rem, 4vw, 1.18rem) !important;
  }

  .av-rate-sheet__head > .av-rate-sheet__price,
  .av-rate-sheet__price {
    margin-top: 8px !important;
    padding: 24px 0 0 !important;
    border-left: 0 !important;
    border-top: 1px solid rgba(8, 43, 75, 0.14) !important;
  }

  .av-rate-sheet__price::before {
    width: min(220px, 68vw) !important;
    margin-inline: auto !important;
    margin-bottom: 18px !important;
  }

  .av-rate-sheet__price > p:first-child {
    margin-inline: auto !important;
    text-align: center !important;
  }

  .av-rate-sheet__amount {
    justify-content: center !important;
    align-items: flex-end !important;
    gap: 8px !important;
    width: 100% !important;
  }

  .av-rate-sheet__amount strong {
    font-size: clamp(3.4rem, 18vw, 5.4rem) !important;
    letter-spacing: -0.055em !important;
  }

  .av-rate-sheet__amount span {
    margin-bottom: 8px !important;
    font-size: 0.98rem !important;
  }
}

@media (max-width: 420px) {
  .av-rate-sheet__amount strong {
    font-size: clamp(3rem, 17vw, 4.35rem) !important;
  }

  .av-rate-sheet__amount span {
    font-size: 0.88rem !important;
  }
}
/* Avanza Seguridad v62 - visible pill on orange prefooter. */
.av-prefooter .av-kicker,
.av-prefooter .av-kicker.av-kicker--light {
  color: var(--av-v15-navy, #082b4b) !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 999px !important;
  padding: 8px 18px !important;
  box-shadow: none !important;
}

.av-prefooter .av-kicker::before,
.av-prefooter .av-kicker.av-kicker--light::before {
  content: "" !important;
  position: absolute !important;
  z-index: -2 !important;
  inset: 0 !important;
  display: block !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  background: rgba(255, 246, 232, 0.7) !important;
  border: 1px solid rgba(8, 43, 75, 0.18) !important;
  border-radius: inherit !important;
  transform: none !important;
}

.av-prefooter .av-kicker::after,
.av-prefooter .av-kicker.av-kicker--light::after {
  content: "" !important;
  position: absolute !important;
  z-index: -1 !important;
  inset: 0 !important;
  display: block !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  background: #fff3df !important;
  border: 1px solid rgba(8, 43, 75, 0.2) !important;
  border-radius: inherit !important;
  clip-path: inset(0 calc(100% - var(--av-kicker-reveal, 100%)) 0 0 round 999px) !important;
  box-shadow: 0 12px 26px rgba(8, 43, 75, 0.1) !important;
}
/* Avanza Seguridad v63 - locality orange pills. */
.av-town-pills,
.av-town-pills .wp-block-group__inner-container {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  align-items: center !important;
  margin: clamp(26px, 3vw, 36px) 0 0 !important;
  padding: clamp(22px, 3vw, 32px) !important;
  background: rgba(255, 255, 255, 0.76) !important;
  border-left: 3px solid var(--av-v15-orange, #ff6b1a) !important;
  border-radius: 0 24px 24px 0 !important;
  box-shadow: 0 18px 48px rgba(8, 43, 75, 0.06) !important;
}

.av-town-pill {
  display: inline-flex !important;
  min-height: 34px !important;
  padding: 8px 14px !important;
  align-items: center !important;
  justify-content: center !important;
  color: #fff !important;
  background: var(--av-v15-orange, #ff6b1a) !important;
  border: 1px solid rgba(255, 255, 255, 0.18) !important;
  border-radius: 999px !important;
  box-shadow: 0 10px 22px rgba(255, 107, 26, 0.16) !important;
  font-size: clamp(0.84rem, 1vw, 0.96rem) !important;
  font-weight: 760 !important;
  line-height: 1.1 !important;
  white-space: nowrap !important;
}

.av-town-list {
  display: none !important;
}

@media (max-width: 620px) {
  .av-town-pills,
  .av-town-pills .wp-block-group__inner-container {
    gap: 8px !important;
    padding: 18px 14px !important;
    border-radius: 18px !important;
    border-left-width: 0 !important;
  }

  .av-town-pill {
    min-height: 32px !important;
    padding: 7px 11px !important;
    font-size: 0.82rem !important;
  }
}
/* Avanza Seguridad v63b - single locality pill container. */
.av-town-pills {
  display: block !important;
}

.av-town-pills > .wp-block-group__inner-container {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

@media (max-width: 620px) {
  .av-town-pills > .wp-block-group__inner-container {
    gap: 8px !important;
    padding: 0 !important;
    border: 0 !important;
  }
}
/* Avanza Seguridad v64 - home hero WhatsApp and Google rating. */
body.home .av-hero__actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  align-items: center !important;
}

body.home .av-hero__actions .av-button {
  min-width: 0 !important;
  flex: 1 1 190px !important;
  justify-content: center !important;
}

.av-button--whatsapp {
  color: #07321e !important;
  background: #25d366 !important;
  border-color: #25d366 !important;
  box-shadow: 0 16px 34px rgba(37, 211, 102, 0.2) !important;
}

.av-button--whatsapp:hover {
  color: #07321e !important;
  background: #2fe276 !important;
  border-color: #2fe276 !important;
  transform: translateY(-1px) !important;
}

.av-hero__rating {
  display: inline-flex !important;
  width: fit-content !important;
  max-width: 100% !important;
  margin-top: 16px !important;
  padding: 10px 13px !important;
  align-items: center !important;
  gap: 10px !important;
  color: #1f2b37 !important;
  background: rgba(255, 255, 255, 0.84) !important;
  border: 1px solid rgba(8, 43, 75, 0.12) !important;
  border-radius: 999px !important;
  box-shadow: 0 14px 34px rgba(8, 43, 75, 0.08) !important;
  text-decoration: none !important;
  transition: box-shadow 0.2s ease, transform 0.2s ease !important;
}

.av-hero__rating:hover,
.av-hero__rating:focus-visible {
  box-shadow: 0 16px 38px rgba(8, 43, 75, 0.16) !important;
  transform: translateY(-1px) !important;
}

.av-hero__google {
  display: inline-grid !important;
  width: 30px !important;
  height: 30px !important;
  place-items: center !important;
  flex: 0 0 auto !important;
  color: #fff !important;
  background: conic-gradient(from -40deg, #4285f4 0 27%, #34a853 0 48%, #fbbc05 0 72%, #ea4335 0 100%) !important;
  border-radius: 50% !important;
  font-family: Arial, sans-serif !important;
  font-size: 1rem !important;
  font-weight: 800 !important;
  line-height: 1 !important;
}

.av-hero__rating-copy {
  display: inline-flex !important;
  align-items: baseline !important;
  gap: 6px !important;
  flex-wrap: wrap !important;
  font-size: 0.88rem !important;
  font-weight: 760 !important;
  line-height: 1.1 !important;
}

.av-hero__rating-copy strong {
  color: var(--av-v15-navy, #082b4b) !important;
  font-size: 1rem !important;
  font-weight: 860 !important;
}

.av-hero__stars {
  color: #fbbc05 !important;
  letter-spacing: -0.04em !important;
}

.av-hero__rating-copy small {
  color: #5d6c79 !important;
  font-size: 0.78rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
}

@media (max-width: 640px) {
  body.home .av-hero__actions {
    width: 100% !important;
  }

  body.home .av-hero__actions .av-button {
    flex-basis: 100% !important;
    width: 100% !important;
  }

  .av-hero__rating {
    margin-inline: auto !important;
  }
}
/* Avanza Seguridad v65 - compact desktop tables and real hero logos. */
.av-button--whatsapp {
  gap: 9px !important;
}

.av-icon--whatsapp {
  width: 20px !important;
  height: 20px !important;
  flex: 0 0 auto !important;
  display: block !important;
}

.av-hero__google {
  background: #fff !important;
  box-shadow: 0 2px 8px rgba(8, 43, 75, 0.08) !important;
}

.av-hero__google svg {
  width: 22px !important;
  height: 22px !important;
  display: block !important;
}

@media (min-width: 981px) {
  .av-entry-content .av-data-table,
  .av-entry-content .av-table-wrap,
  .av-rate-sheet .av-table-wrap,
  .av-rate-sheet .av-data-table,
  .av-section--pricing-detail .av-data-table {
    width: min(100%, 1080px) !important;
    max-width: 1080px !important;
    margin-inline: auto !important;
  }

  .av-entry-content .av-data-table table,
  .av-entry-content .av-table-wrap table,
  .av-rate-sheet .av-table-wrap table,
  .av-section--pricing-detail .av-data-table table {
    width: 100% !important;
    font-size: 0.92rem !important;
  }

  .av-entry-content .av-data-table th,
  .av-entry-content .av-data-table td,
  .av-entry-content .av-table-wrap th,
  .av-entry-content .av-table-wrap td,
  .av-rate-sheet .av-table-wrap th,
  .av-rate-sheet .av-table-wrap td,
  .av-section--pricing-detail .av-data-table th,
  .av-section--pricing-detail .av-data-table td {
    padding: 14px 18px !important;
    line-height: 1.35 !important;
  }

  .av-rate-sheet .av-table-wrap {
    margin-top: 22px !important;
  }

  .av-rate-sheet {
    padding-bottom: clamp(34px, 4vw, 58px) !important;
  }
}
/* Avanza Seguridad v66 - flush CRA, alternating reveal cards, animated orange pills and fullscreen mobile menu. */
.av-entry-content > .av-operations,
body.home .av-operations,
.av-operations {
  padding: 0 !important;
  gap: 0 !important;
  overflow: hidden !important;
  align-items: stretch !important;
}

.av-operations__media {
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  align-self: stretch !important;
}

.av-operations__media img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  object-fit: cover !important;
  border-radius: 0 !important;
}

.av-operations__copy {
  padding: clamp(34px, 4.4vw, 64px) clamp(34px, 4.8vw, 70px) !important;
}

@media (min-width: 981px) {
  .av-operations__media {
    min-height: 100% !important;
  }
}

@media (max-width: 980px) {
  .av-operations__copy {
    padding: 30px 22px !important;
  }
}

.av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card {
  border: 2px solid rgba(16, 90, 159, 0.72) !important;
  background: #fff !important;
  box-shadow: 0 18px 42px rgba(8, 43, 75, 0.06) !important;
}

.av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card:nth-child(even) {
  border-color: rgba(255, 107, 26, 0.76) !important;
  background: #fff3df !important;
}

.av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card:nth-child(odd)::before {
  background: var(--av-v15-blue, #105a9f) !important;
}

.av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card:nth-child(even)::before {
  background: var(--av-v15-orange, #ff6b1a) !important;
}

.av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card:nth-child(odd) .av-card-index {
  background: var(--av-v15-blue, #105a9f) !important;
  box-shadow: 0 10px 20px rgba(16, 90, 159, 0.16) !important;
}

.av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card:nth-child(even) .av-card-index {
  background: var(--av-v15-orange, #ff6b1a) !important;
  box-shadow: 0 10px 20px rgba(255, 107, 26, 0.16) !important;
}

body.av-card-reveal-ready .av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card {
  opacity: 0 !important;
  transform: translateY(34px) scale(0.985) !important;
}

body.av-card-reveal-ready .av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card.is-visible {
  opacity: 1 !important;
  transform: translateY(0) scale(1) !important;
}

.av-prefooter .av-kicker,
.av-prefooter .av-kicker.av-kicker--light {
  --av-kicker-progress: 0;
  --av-kicker-reveal: 0%;
}

.av-prefooter .av-kicker.is-pill-complete,
.av-prefooter .av-kicker.av-kicker--light.is-pill-complete {
  --av-kicker-progress: 1;
  --av-kicker-reveal: 100%;
}

@media (max-width: 980px) {
  body.av-menu-open {
    overflow: hidden !important;
  }

  .av-site-header {
    z-index: 10020 !important;
  }

  .av-menu-toggle {
    z-index: 10040 !important;
  }

  .av-primary-nav {
    position: fixed !important;
    inset: 0 !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    z-index: 10010 !important;
    display: none !important;
    width: 100vw !important;
    height: 100dvh !important;
    max-height: none !important;
    margin: 0 !important;
    padding: calc(var(--av-header, 88px) + 22px) 18px 32px !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    background: rgba(8, 43, 75, 0.985) !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .admin-bar .av-primary-nav {
    padding-top: calc(var(--av-header, 88px) + 54px) !important;
  }

  .av-primary-nav.is-open {
    display: block !important;
  }

  .av-primary-menu {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    width: min(100%, 520px) !important;
    margin: 0 auto !important;
    padding: 0 0 32px !important;
  }

  .av-primary-menu > li {
    display: block !important;
    background: rgba(255, 255, 255, 0.06) !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    border-radius: 18px !important;
    overflow: hidden !important;
  }

  .av-primary-menu > li.av-menu-duplicate,
  .av-primary-menu > li[hidden] {
    display: none !important;
  }

  .av-primary-menu > li > a {
    min-height: 54px !important;
    padding: 0 18px !important;
    color: #fff !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    font-size: 1.05rem !important;
    font-weight: 840 !important;
  }

  .av-primary-menu > li > a::after {
    content: "" !important;
    width: 16px !important;
    height: 16px !important;
    margin-left: 14px !important;
    flex: 0 0 auto !important;
    background: var(--av-v15-orange, #ff6b1a) !important;
    border-radius: 0 !important;
    -webkit-mask-image: url("../images/avanza-z-mark.png") !important;
    mask-image: url("../images/avanza-z-mark.png") !important;
    -webkit-mask-size: contain !important;
    mask-size: contain !important;
    -webkit-mask-repeat: no-repeat !important;
    mask-repeat: no-repeat !important;
    -webkit-mask-position: center !important;
    mask-position: center !important;
  }

  .av-primary-menu .sub-menu,
  .av-primary-menu li:hover > .sub-menu,
  .av-primary-menu li:focus-within > .sub-menu {
    position: static !important;
    display: grid !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 12px 14px !important;
    gap: 7px !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    pointer-events: auto !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .av-primary-menu .sub-menu li {
    display: block !important;
  }

  .av-primary-menu .sub-menu a {
    display: flex !important;
    min-height: 40px !important;
    padding: 10px 14px !important;
    align-items: center !important;
    color: rgba(255, 255, 255, 0.88) !important;
    background: rgba(255, 255, 255, 0.075) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: 12px !important;
    font-size: 0.9rem !important;
    font-weight: 720 !important;
    line-height: 1.2 !important;
  }

  .av-primary-menu .sub-menu a:hover,
  .av-primary-menu .sub-menu a:focus {
    color: #fff !important;
    background: rgba(255, 255, 255, 0.13) !important;
  }
}
/* Avanza Seguridad v67 - homepage hero photo framing and working primary CTA. */
.home .av-hero__image-wrap,
body.home .av-hero__image-wrap {
  overflow: hidden !important;
}

.home .av-hero__image,
body.home .av-hero__image {
  object-position: 61% 58% !important;
  transform: translateY(3.8%) scale(1.045) !important;
  transform-origin: center center !important;
}

@media (max-width: 980px) {
  .home .av-hero__image,
  body.home .av-hero__image {
    object-position: 63% 56% !important;
    transform: translateY(2.4%) scale(1.035) !important;
  }
}

/* Avanza Seguridad v68 - white cards for after-contact process section. */
.av-section--quote-flow .av-steps {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(18px, 2.4vw, 30px) !important;
  margin-top: clamp(34px, 4vw, 58px) !important;
}

.av-section--quote-flow .av-step,
.av-section--quote-flow .av-step:first-child,
.av-section--quote-flow .av-step:nth-child(2),
.av-section--quote-flow .av-step:nth-child(3) {
  display: flex !important;
  min-height: 270px !important;
  padding: clamp(28px, 3vw, 42px) !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  color: var(--av-v15-navy, #082b4b) !important;
  background: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.72) !important;
  border-radius: 28px !important;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.18) !important;
}

.av-section--quote-flow .av-step:nth-child(odd) {
  border-color: rgba(16, 90, 159, 0.24) !important;
}

.av-section--quote-flow .av-step:nth-child(even) {
  border-color: rgba(255, 107, 26, 0.38) !important;
}

.av-section--quote-flow .av-step::before {
  display: none !important;
}

.av-section--quote-flow .av-step-number {
  display: grid !important;
  width: 58px !important;
  height: 58px !important;
  margin: 0 0 clamp(22px, 2.8vw, 32px) !important;
  place-items: center !important;
  color: #fff !important;
  background: var(--av-v15-blue, #105a9f) !important;
  border-radius: 999px !important;
  box-shadow: 0 14px 28px rgba(16, 90, 159, 0.18) !important;
  font-size: 0.76rem !important;
  font-weight: 900 !important;
  letter-spacing: 0.08em !important;
}

.av-section--quote-flow .av-step:nth-child(2) .av-step-number {
  background: var(--av-v15-orange, #ff6b1a) !important;
  box-shadow: 0 14px 28px rgba(255, 107, 26, 0.2) !important;
}

.av-section--quote-flow .av-step h3 {
  margin: 0 0 14px !important;
  color: var(--av-v15-navy, #082b4b) !important;
  font-size: clamp(1.2rem, 1.6vw, 1.55rem) !important;
  line-height: 1.08 !important;
}

.av-section--quote-flow .av-step > p:last-child {
  margin: 0 !important;
  color: #5f6f80 !important;
  font-size: clamp(0.98rem, 1.05vw, 1.08rem) !important;
  line-height: 1.62 !important;
}

@media (max-width: 980px) {
  .av-section--quote-flow .av-steps {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  .av-section--quote-flow .av-step,
  .av-section--quote-flow .av-step:first-child,
  .av-section--quote-flow .av-step:nth-child(2),
  .av-section--quote-flow .av-step:nth-child(3) {
    min-height: 0 !important;
    padding: 24px !important;
    border-radius: 22px !important;
  }
}
/* Avanza Seguridad v69 - homepage hero image with visible face. */
.home .av-hero__image,
body.home .av-hero__image {
  object-position: 50% 42% !important;
  transform: none !important;
  transform-origin: center center !important;
}

@media (min-width: 981px) {
  .home .av-hero__image,
  body.home .av-hero__image {
    object-position: 52% 40% !important;
  }
}

@media (max-width: 980px) {
  .home .av-hero__image,
  body.home .av-hero__image {
    object-position: 50% 36% !important;
  }
}

/* Avanza Seguridad v70 - fix mobile overflow on orange CTA banner and pricing table. */
@media (max-width: 720px) {
  .av-prefooter__inner {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .av-prefooter__inner > * {
    min-width: 0 !important;
  }

  .av-prefooter .av-kicker {
    max-width: 100% !important;
    white-space: normal !important;
    text-align: left !important;
  }

  .av-prefooter .av-button {
    max-width: 100% !important;
    white-space: normal !important;
    text-align: center !important;
  }

  .av-rate-sheet .av-data-table table,
  .av-section--pricing-detail .av-data-table table {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
  }
}

/* Avanza Seguridad v70 - remove excess margin/padding around CRA operations panel. */
.av-entry-content > .av-operations,
.av-entry-content > .wp-block-group.av-operations,
.av-entry-content > .av-section.av-operations,
.av-entry-content > .wp-block-group.av-section.av-operations,
body.home .av-operations,
.av-operations {
  margin-block: 0 !important;
  padding-block: 0 !important;
}

/* Avanza Seguridad v70 - swap mobile menu accordion squares for the brand Z mark. */
@media (max-width: 980px) {
  .av-primary-menu > li > a::after {
    background: var(--av-v15-orange, #ff6b1a) !important;
    border-radius: 0 !important;
    -webkit-mask-image: url("../images/avanza-z-mark.png") !important;
    mask-image: url("../images/avanza-z-mark.png") !important;
    -webkit-mask-size: contain !important;
    mask-size: contain !important;
    -webkit-mask-repeat: no-repeat !important;
    mask-repeat: no-repeat !important;
    -webkit-mask-position: center !important;
    mask-position: center !important;
  }
}

/* Avanza Seguridad v70 - keep the language switcher clear of the mobile action bar. */
@media (max-width: 980px) {
  #gt_float_wrapper {
    bottom: 84px !important;
    right: 12px !important;
  }
}

/* Avanza Seguridad v70 - one icon per point in the homepage opener facts. */
body.home .av-home-fact {
  grid-template-columns: 44px minmax(0, 1fr) 48px !important;
  grid-template-areas: "number title icon" "number copy icon" !important;
  align-items: center !important;
}

body.home .av-home-fact::after {
  content: "" !important;
  grid-area: icon !important;
  width: 44px !important;
  height: 44px !important;
  border-radius: 50% !important;
  justify-self: end !important;
  align-self: center !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 22px 22px !important;
}

body.home .av-home-fact:nth-child(1)::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3h6a1 1 0 0 1 1 1v1H8V4a1 1 0 0 1 1-1z'/%3E%3Cpath d='M6 5h9a2 2 0 0 1 2 2v3'/%3E%3Cpath d='M6 5a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h6'/%3E%3Cpath d='M8 10h6M8 13h4'/%3E%3Ccircle cx='17' cy='16' r='3.2'/%3E%3Cpath d='M19.3 18.3 21.5 20.5'/%3E%3C/svg%3E") !important;
  background-color: #0d5da8 !important;
}

body.home .av-home-fact:nth-child(2)::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a4 4 0 0 0-5.4 4.6L3 17.2V21h3.8l6.3-6.3a4 4 0 0 0 4.6-5.4l-2.6 2.6-2-2z'/%3E%3C/svg%3E") !important;
  background-color: #082b4b !important;
}

body.home .av-home-fact:nth-child(3)::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 13v-1a8 8 0 0 1 16 0v1'/%3E%3Crect x='2.5' y='13' width='4' height='6' rx='1.5'/%3E%3Crect x='17.5' y='13' width='4' height='6' rx='1.5'/%3E%3Cpath d='M20 19v1a3 3 0 0 1-3 3h-3'/%3E%3C/svg%3E") !important;
  background-color: #e56f1a !important;
}

@media (max-width: 480px) {
  body.home .av-home-fact {
    grid-template-columns: 44px minmax(0, 1fr) 36px !important;
  }

  body.home .av-home-fact::after {
    width: 36px !important;
    height: 36px !important;
    background-size: 18px 18px !important;
  }
}

/* Avanza Seguridad v70 - multi-step quote wizard on /presupuesto/. */
.av-wizard-progress {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 28px;
}

.av-wizard-progress__step {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 30px;
  height: 30px;
  background: var(--av-v15-sky, #eaf4fb);
  border-radius: 50%;
  color: var(--av-v15-muted, #5d6a75);
  font-size: 0.8rem;
  font-weight: 780;
}

.av-wizard-progress__step + .av-wizard-progress__step {
  position: relative;
  margin-left: 8px;
}

.av-wizard-progress__step + .av-wizard-progress__step::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 100%;
  width: 16px;
  height: 2px;
  background: var(--av-v15-line, #dce3e7);
  transform: translateY(-50%);
}

.av-wizard-progress__step.is-active,
.av-wizard-progress__step.is-done {
  background: var(--av-v15-blue, #0d5da8);
  color: #fff;
}

.av-wizard-step__title {
  margin: 0 0 18px;
  color: var(--av-v15-navy, #082b4b);
  font-size: 1.15rem;
  font-weight: 820;
}

.av-wizard-cards {
  display: none;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}

.av-wizard-card {
  padding: 16px 18px;
  background: #fff;
  border: 1px solid var(--av-v15-line, #dce3e7);
  border-radius: 14px;
  color: var(--av-v15-navy, #082b4b);
  text-align: left;
  font-size: 0.94rem;
  font-weight: 720;
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease;
}

.av-wizard-card:hover {
  border-color: var(--av-v15-blue, #0d5da8);
}

.av-wizard-card.is-selected {
  background: var(--av-v15-sky, #eaf4fb);
  border-color: var(--av-v15-blue, #0d5da8);
  box-shadow: inset 0 0 0 1px var(--av-v15-blue, #0d5da8);
}

.av-wizard-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 22px;
}

.av-wizard-loading {
  display: none;
  padding: 60px 20px;
  text-align: center;
}

.av-wizard-loading__spinner {
  width: 46px;
  height: 46px;
  margin: 0 auto 20px;
  border: 4px solid var(--av-v15-sky, #eaf4fb);
  border-top-color: var(--av-v15-blue, #0d5da8);
  border-radius: 50%;
  animation: av-wizard-spin 0.85s linear infinite;
}

.av-wizard-loading p {
  margin: 0;
  color: var(--av-v15-navy, #082b4b);
  font-weight: 720;
}

.av-wizard-loading:not([hidden]) {
  display: block;
}

@keyframes av-wizard-spin {
  to {
    transform: rotate(360deg);
  }
}

/* Steps default to a plain stacked form so the wizard degrades gracefully without JS.
   Once JS is ready, every step is stacked in the same grid cell (instead of display:none)
   so the container height matches the tallest step and the card doesn't resize as you
   move between steps. */
.av-quote-wizard.is-wizard-ready .av-lead-form--wizard {
  display: grid;
}

.av-quote-wizard.is-wizard-ready .av-wizard-step {
  display: block;
  grid-column: 1;
  grid-row: 1;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}

.av-quote-wizard.is-wizard-ready .av-wizard-step.is-active {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

.av-quote-wizard.is-wizard-ready .av-wizard-cards {
  display: grid;
}

.av-quote-wizard.is-wizard-ready .av-wizard-native {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

.av-quote-wizard.is-wizard-ready .av-wizard-progress {
  display: flex;
}

.av-wizard-progress {
  display: none;
}

@media (max-width: 600px) {
  .av-wizard-cards {
    grid-template-columns: 1fr 1fr;
  }

  .av-wizard-actions {
    flex-wrap: wrap;
  }
}

/* Avanza Seguridad v70 - white step cards on /presupuesto/ (seeded content predates
   the .av-section--quote-flow class, so scope by the page body class instead). */
body.av-page-presupuesto .av-section--ink .av-steps {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(18px, 2.4vw, 30px) !important;
  margin-top: clamp(34px, 4vw, 58px) !important;
}

body.av-page-presupuesto .av-section--ink .av-step {
  display: flex !important;
  min-height: 270px !important;
  margin-top: 0 !important;
  padding: clamp(28px, 3vw, 42px) !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  color: var(--av-v15-navy, #082b4b) !important;
  background: #ffffff !important;
  border: 1px solid rgba(16, 90, 159, 0.24) !important;
  border-radius: 28px !important;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.18) !important;
}

body.av-page-presupuesto .av-section--ink .av-step:nth-child(even) {
  border-color: rgba(255, 107, 26, 0.38) !important;
}

body.av-page-presupuesto .av-section--ink .av-step::before {
  display: none !important;
}

body.av-page-presupuesto .av-section--ink .av-step-number {
  display: grid !important;
  width: 58px !important;
  height: 58px !important;
  margin: 0 0 clamp(22px, 2.8vw, 32px) !important;
  place-items: center !important;
  color: #fff !important;
  background: var(--av-v15-blue, #105a9f) !important;
  border-radius: 999px !important;
  box-shadow: 0 14px 28px rgba(16, 90, 159, 0.18) !important;
  font-size: 0.76rem !important;
  font-weight: 900 !important;
  letter-spacing: 0.08em !important;
}

body.av-page-presupuesto .av-section--ink .av-step:nth-child(2) .av-step-number {
  background: var(--av-v15-orange, #ff6b1a) !important;
  box-shadow: 0 14px 28px rgba(255, 107, 26, 0.2) !important;
}

body.av-page-presupuesto .av-section--ink .av-step h3 {
  margin: 0 0 14px !important;
  color: var(--av-v15-navy, #082b4b) !important;
  font-size: clamp(1.2rem, 1.6vw, 1.55rem) !important;
  line-height: 1.08 !important;
}

body.av-page-presupuesto .av-section--ink .av-step > p:last-child {
  margin: 0 !important;
  color: #5f6f80 !important;
  font-size: clamp(0.98rem, 1.05vw, 1.08rem) !important;
  line-height: 1.62 !important;
}

@media (max-width: 980px) {
  body.av-page-presupuesto .av-section--ink .av-steps {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  body.av-page-presupuesto .av-section--ink .av-step {
    min-height: 0 !important;
    padding: 24px !important;
  }
}

/* Avanza Seguridad v70 - product photos alongside the quote wizard steps. */
.av-quote-wizard {
  max-width: 1080px !important;
}

.av-quote-wizard__body {
  display: flex;
  gap: 32px;
  align-items: stretch;
}

.av-quote-wizard__visual {
  position: relative;
  display: flex;
  flex: 0 0 240px;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: var(--av-v15-sky, #eaf4fb);
  border-radius: 20px;
}

.av-quote-wizard__visual img {
  display: none;
  width: 100%;
  max-width: 210px;
  height: auto;
  object-fit: contain;
}

.av-quote-wizard:not([data-active-step]) .av-quote-wizard__visual img[data-visual-step="1"] {
  display: block;
}

.av-quote-wizard[data-active-step="1"] .av-quote-wizard__visual img[data-visual-step="1"],
.av-quote-wizard[data-active-step="2"] .av-quote-wizard__visual img[data-visual-step="2"],
.av-quote-wizard[data-active-step="3"] .av-quote-wizard__visual img[data-visual-step="3"],
.av-quote-wizard[data-active-step="4"] .av-quote-wizard__visual img[data-visual-step="4"],
.av-quote-wizard[data-active-step="5"] .av-quote-wizard__visual img[data-visual-step="5"],
.av-quote-wizard[data-active-step="6"] .av-quote-wizard__visual img[data-visual-step="6"] {
  display: block;
}

.av-wizard-step__hint {
  margin: -12px 0 18px;
  color: var(--av-v15-muted, #5d6a75);
  font-size: 0.88rem;
}

.av-wizard-plans {
  display: none;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}

.av-quote-wizard.is-wizard-ready .av-wizard-plans {
  display: grid;
}

.av-wizard-plan {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding: 18px 20px;
  background: #fff;
  border: 1px solid var(--av-v15-line, #dce3e7);
  border-radius: 16px;
  text-align: left;
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease;
}

.av-wizard-plan:hover {
  border-color: var(--av-v15-blue, #0d5da8);
}

.av-wizard-plan.is-selected {
  background: var(--av-v15-sky, #eaf4fb);
  border-color: var(--av-v15-blue, #0d5da8);
  box-shadow: inset 0 0 0 1px var(--av-v15-blue, #0d5da8);
}

.av-wizard-plan__name {
  color: var(--av-v15-navy, #082b4b);
  font-size: 1.02rem;
  font-weight: 820;
}

.av-wizard-plan__price {
  color: var(--av-v15-blue, #0d5da8);
  font-size: 0.9rem;
  font-weight: 760;
}

.av-wizard-plan__features {
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
}

.av-wizard-plan__features li {
  position: relative;
  margin-bottom: 5px;
  padding-left: 16px;
  color: var(--av-v15-muted, #5d6a75);
  font-size: 0.84rem;
  line-height: 1.4;
}

.av-wizard-plan__features li::before {
  content: "";
  position: absolute;
  top: 0.5em;
  left: 0;
  width: 6px;
  height: 6px;
  background: var(--av-v15-orange, #ff6b1a);
  border-radius: 50%;
}

@media (max-width: 600px) {
  .av-wizard-plans {
    grid-template-columns: 1fr;
  }
}

.av-quote-wizard__main {
  flex: 1 1 auto;
  min-width: 0;
}

@media (max-width: 780px) {
  .av-quote-wizard__body {
    flex-direction: column;
  }

  .av-quote-wizard__visual {
    flex: 0 0 auto;
    padding: 16px;
  }

  .av-quote-wizard__visual img {
    max-width: 150px;
  }
}

/* Avanza Seguridad v70 - app store badges in the footer brand column. */
.av-footer-apps {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 22px;
}

.av-footer-apps__label {
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.82rem;
}

.av-footer-apps a {
  display: inline-block;
  width: fit-content;
  line-height: 0;
}

.av-footer-apps img {
  display: block;
  width: 140px;
  height: auto;
}

/* Avanza Seguridad v70 - shift the product photo right so it clears the hero text card.
   object-position alone did nothing here because the image already fills its box edge to
   edge (contain has no letterboxing slack to redistribute) - padding is what actually
   carves out room on the left, shrinking and shifting the visible photo to the right. */
.av-hero__visual--product .av-hero__image {
  padding: clamp(55px, 7vw, 95px) clamp(30px, 4vw, 60px) clamp(55px, 7vw, 95px) clamp(160px, 20vw, 320px) !important;
  object-position: right center !important;
}

@media (max-width: 980px) {
  .av-hero__visual--product .av-hero__image {
    padding: clamp(40px, 6vw, 70px) !important;
    object-position: center !important;
  }
}
/* Avanza Seguridad v72 - WooCommerce alarm shop. */
.av-section--store-front {
  overflow: visible !important;
}

.av-store-alert,
.av-storefront__summary,
.av-store-card,
.woocommerce-cart-form,
.woocommerce-checkout #customer_details,
.woocommerce-checkout-review-order {
  border-radius: 26px;
}

.av-store-alert {
  padding: 24px;
  color: #082b4b;
  background: #fff3df;
  border: 1px solid rgba(255, 107, 26, 0.28);
}

.av-storefront {
  display: grid;
  gap: clamp(22px, 3vw, 36px);
  margin-top: clamp(28px, 4vw, 48px);
}

.av-storefront__summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
  gap: 22px;
  align-items: center;
  padding: clamp(22px, 3vw, 34px);
  background: #082b4b;
  color: #fff;
  box-shadow: 0 24px 60px rgba(8, 43, 75, 0.14);
}

.av-storefront__summary strong {
  display: block;
  margin-top: 7px;
  font-size: clamp(1.45rem, 2vw, 2.05rem);
  line-height: 1.08;
}

.av-storefront__summary p {
  max-width: 760px;
  margin: 10px 0 0;
  color: rgba(255, 255, 255, 0.76);
  line-height: 1.55;
}

.av-storefront__eyebrow {
  display: inline-flex;
  width: fit-content;
  padding: 8px 14px;
  color: #082b4b;
  background: #fff;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.av-storefront__cartbox {
  display: grid;
  gap: 10px;
  padding: 20px;
  color: #082b4b;
  background: #fff;
  border-radius: 20px;
}

.av-storefront__cartbox span {
  color: #637285;
  font-size: 0.92rem;
}

.av-storefront__cartbox strong {
  margin: 0;
  color: #082b4b;
  font-size: 1.45rem;
}

.av-storefront__cartbox a {
  display: flex;
  min-height: 44px;
  padding: 0 16px;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: #ff6b1a;
  border-radius: 14px;
  font-weight: 850;
  text-decoration: none;
}

.av-storefront__cartbox a:first-of-type {
  color: #082b4b;
  background: #eaf4fd;
}

.av-storefront__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 2vw, 24px);
}

.av-store-card {
  position: relative;
  display: flex;
  min-height: 100%;
  padding: clamp(20px, 2.3vw, 28px);
  flex-direction: column;
  background: #fff;
  border: 2px solid rgba(16, 90, 159, 0.18);
  box-shadow: 0 18px 42px rgba(8, 43, 75, 0.08);
}

.av-store-card--addon {
  background: #fff3df;
  border-color: rgba(255, 107, 26, 0.42);
}

.av-store-card__badge {
  position: absolute;
  top: 18px;
  left: 18px;
  z-index: 2;
  padding: 7px 12px;
  color: #fff;
  background: #105a9f;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.av-store-card--addon .av-store-card__badge {
  background: #ff6b1a;
}

.av-store-card__media {
  display: grid;
  height: 170px;
  margin: 0 0 20px;
  place-items: center;
  overflow: hidden;
  background: #f4f9fe;
  border-radius: 20px;
}

.av-store-card--addon .av-store-card__media {
  background: rgba(255, 255, 255, 0.56);
}

.av-store-card__media img {
  display: block;
  max-width: 86%;
  max-height: 150px;
  width: auto;
  height: auto;
  object-fit: contain;
}

.av-store-card h3 {
  margin: 0 0 10px;
  color: #082b4b;
  font-size: clamp(1.2rem, 1.45vw, 1.5rem);
  line-height: 1.08;
}

.av-store-card__price {
  display: flex;
  margin: 0 0 12px;
  align-items: flex-end;
  gap: 4px;
  color: #082b4b;
  font-size: clamp(2rem, 3vw, 3.3rem);
  font-weight: 950;
  line-height: 0.95;
}

.av-store-card__price .woocommerce-Price-currencySymbol,
.av-store-card__price span:last-child {
  font-size: 1rem;
  font-weight: 850;
  line-height: 1.2;
}

.av-store-card__copy {
  margin: 0 0 16px;
  color: #637285;
  line-height: 1.58;
}

.av-store-card__includes {
  display: grid;
  gap: 8px;
  margin: 0 0 22px;
  padding: 0;
  color: #33465a;
  list-style: none;
}

.av-store-card__includes li {
  position: relative;
  padding-left: 20px;
}

.av-store-card__includes li::before {
  content: "";
  position: absolute;
  top: 0.62em;
  left: 0;
  width: 8px;
  height: 8px;
  background: #ff6b1a;
  border-radius: 50%;
}

.av-store-card__button {
  display: flex;
  min-height: 52px;
  margin-top: auto;
  padding: 0 18px;
  align-items: center;
  justify-content: center;
  color: #fff !important;
  background: #082b4b;
  border-radius: 16px;
  font-weight: 900;
  text-decoration: none !important;
}

.av-store-card--addon .av-store-card__button {
  background: #ff6b1a;
}

.av-wc-price-suffix {
  margin-left: 0.2em;
  font-size: 0.86em;
  font-weight: 800;
}

.woocommerce .button,
.woocommerce button.button,
.woocommerce a.button,
.woocommerce input.button {
  color: #fff !important;
  background: #ff6b1a !important;
  border-radius: 14px !important;
  font-weight: 850 !important;
}

.woocommerce table.shop_table,
.woocommerce-cart-form,
.woocommerce-checkout #customer_details,
.woocommerce-checkout-review-order {
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(8, 43, 75, 0.12) !important;
  box-shadow: 0 16px 42px rgba(8, 43, 75, 0.06);
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
  min-height: 48px;
  padding: 10px 14px;
  border: 1px solid rgba(8, 43, 75, 0.18);
  border-radius: 12px;
}

@media (max-width: 1100px) {
  .av-storefront__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .av-storefront__summary {
    grid-template-columns: 1fr;
    padding: 22px;
    border-radius: 22px;
  }

  .av-storefront__grid {
    grid-template-columns: 1fr;
  }

  .av-store-card__media {
    height: 150px;
  }
}
/* Avanza Seguridad v73 - extended shop products and equipment gallery. */
.av-store-equipment {
  display: grid;
  gap: clamp(22px, 3vw, 34px);
  margin-top: clamp(34px, 5vw, 68px);
}

.av-store-equipment__head {
  max-width: 920px;
}

.av-store-equipment__head > span {
  display: inline-flex;
  width: fit-content;
  margin-bottom: 14px;
  padding: 9px 15px;
  color: #105a9f;
  background: #eaf4fd;
  border: 1px solid rgba(16, 90, 159, 0.16);
  border-radius: 999px;
  font-size: 0.76rem;
  font-weight: 950;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.av-store-equipment__head h2 {
  margin: 0;
  color: #082b4b;
  font-size: clamp(2rem, 4vw, 4.25rem);
  line-height: 0.98;
}

.av-store-equipment__head p {
  max-width: 760px;
  margin: 16px 0 0;
  color: #637285;
  font-size: clamp(1rem, 1.2vw, 1.16rem);
  line-height: 1.6;
}

.av-store-equipment__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(14px, 2vw, 22px);
}

.av-store-equipment-card {
  display: grid;
  gap: 12px;
  padding: clamp(18px, 2vw, 24px);
  background: #fff;
  border: 1px solid rgba(8, 43, 75, 0.12);
  border-radius: 24px;
  box-shadow: 0 16px 36px rgba(8, 43, 75, 0.06);
}

.av-store-equipment-card figure {
  display: grid;
  height: 130px;
  margin: 0;
  place-items: center;
  background: #f3f9fe;
  border-radius: 18px;
}

.av-store-equipment-card img {
  display: block;
  max-width: 86%;
  max-height: 110px;
  width: auto;
  height: auto;
  object-fit: contain;
}

.av-store-equipment-card > span {
  width: fit-content;
  padding: 6px 10px;
  color: #fff;
  background: #ff6b1a;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.av-store-equipment-card h3 {
  margin: 0;
  color: #082b4b;
  font-size: 1.08rem;
  line-height: 1.15;
}

.av-store-equipment-card p {
  margin: 0;
  color: #637285;
  font-size: 0.92rem;
  line-height: 1.55;
}

@media (max-width: 1100px) {
  .av-store-equipment__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .av-store-equipment__grid {
    grid-template-columns: 1fr;
  }
}
/* Avanza Seguridad v74 - configurator style shop sections. */
.av-storefront--configurator .av-configurator {
  display: grid;
  gap: clamp(22px, 3vw, 34px);
  margin-top: clamp(26px, 4vw, 48px);
}

.av-config-section {
  padding: clamp(18px, 2.5vw, 28px);
  background: #fff;
  border: 1px solid rgba(16, 90, 159, 0.18);
  border-radius: 24px;
  box-shadow: 0 18px 42px rgba(8, 43, 75, 0.06);
}

.av-config-section__head {
  display: grid;
  grid-template-columns: minmax(0, 0.42fr) minmax(0, 0.58fr);
  gap: 12px;
  align-items: end;
  margin-bottom: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(16, 90, 159, 0.16);
}

.av-config-section__head h2 {
  margin: 0;
  color: #082b4b;
  font-size: clamp(1.1rem, 1.6vw, 1.55rem);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.av-config-section__head p {
  margin: 0;
  color: #637285;
  line-height: 1.5;
}

.av-config-section__items {
  display: grid;
  gap: 10px;
}

.av-config-section--cards .av-config-section__items,
.av-config-section--mini-cards .av-config-section__items {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.av-config-section--cards .av-config-item,
.av-config-section--mini-cards .av-config-item {
  display: grid;
  min-height: 100%;
  padding: 18px;
  grid-template-columns: 1fr;
  gap: 12px;
  text-align: center;
}

.av-config-item {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  min-height: 74px;
  padding: 10px 12px;
  background: #fbfdff;
  border: 1px solid rgba(16, 90, 159, 0.22);
  border-radius: 16px;
}

.av-config-item__media {
  display: grid;
  width: 58px;
  height: 58px;
  margin: 0;
  place-items: center;
  overflow: hidden;
  background: #f0f6fd;
  border-radius: 13px;
}

.av-config-section--cards .av-config-item__media,
.av-config-section--mini-cards .av-config-item__media {
  width: 100%;
  height: 138px;
}

.av-config-item__media img {
  max-width: 86%;
  max-height: 86%;
  width: auto;
  height: auto;
  object-fit: contain;
}

.av-config-placeholder {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  color: #105a9f;
  background: #e8f3ff;
  border-radius: 12px;
  font-size: 0.78rem;
  font-weight: 950;
}

.av-config-item__copy h3 {
  margin: 0;
  color: #082b4b;
  font-size: 0.98rem;
  line-height: 1.2;
}

.av-config-item__code,
.av-config-item__price {
  margin: 3px 0 0;
  color: #486077;
  font-size: 0.78rem;
  line-height: 1.2;
}

.av-config-item__price {
  color: #105a9f;
  font-weight: 900;
}

.av-config-qty {
  display: grid;
  grid-template-columns: 34px 28px 34px;
  gap: 8px;
  align-items: center;
  justify-content: end;
}

.av-config-qty strong {
  color: #082b4b;
  text-align: center;
  font-size: 1rem;
}

.av-config-qty__btn {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  color: #105a9f !important;
  background: #fff !important;
  border: 1px solid rgba(16, 90, 159, 0.34);
  border-radius: 999px;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1;
  text-decoration: none !important;
}

.av-config-qty__btn--plus {
  border-color: rgba(16, 90, 159, 0.62);
}

.av-config-qty__btn.is-disabled {
  opacity: 0.38;
  pointer-events: none;
}

@media (max-width: 980px) {
  .av-config-section__head {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .av-config-section--cards .av-config-section__items,
  .av-config-section--mini-cards .av-config-section__items {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .av-config-section {
    padding: 14px;
    border-radius: 18px;
  }

  .av-config-item {
    grid-template-columns: 50px minmax(0, 1fr);
  }

  .av-config-qty {
    grid-column: 1 / -1;
    justify-content: stretch;
    grid-template-columns: 44px 1fr 44px;
  }

  .av-config-qty__btn {
    width: 44px;
    height: 40px;
  }
}

/* Avanza Seguridad v70 - visual plan comparison with photos and tick/cross rows. */
.av-plan-comparison {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 2.4vw, 30px);
  margin-top: clamp(28px, 4vw, 48px);
}

.av-plan-comparison__card {
  display: flex;
  flex-direction: column;
  padding: clamp(24px, 2.6vw, 34px);
  background: #fff;
  border: 1px solid var(--av-v15-line, #dce3e7);
  border-radius: 24px;
  box-shadow: 0 20px 50px rgba(8, 43, 75, 0.08);
}

.av-plan-comparison__photo {
  display: grid;
  height: 140px;
  margin-bottom: 18px;
  place-items: center;
  background: var(--av-v15-sky, #eaf4fb);
  border-radius: 16px;
}

.av-plan-comparison__photo img {
  max-width: 90%;
  max-height: 100px;
  object-fit: contain;
}

.av-plan-comparison__name {
  margin: 0 0 2px;
  color: var(--av-v15-navy, #082b4b);
  font-size: 1.15rem;
  font-weight: 820;
}

.av-plan-comparison__price {
  margin: 0 0 18px;
  color: var(--av-v15-blue, #0d5da8);
  font-size: 1.4rem;
  font-weight: 840;
}

.av-plan-comparison__rows {
  flex: 1 1 auto;
  margin: 0 0 22px;
  padding: 0;
  list-style: none;
}

.av-plan-comparison__row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 0;
  border-top: 1px solid var(--av-v15-line, #dce3e7);
  color: var(--av-v15-navy, #082b4b);
  font-size: 0.92rem;
}

.av-plan-comparison__row:first-child {
  border-top: 0;
}

.av-plan-comparison__mark {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  margin-top: 1px;
  border-radius: 50%;
  font-size: 0.72rem;
  font-weight: 800;
}

.av-plan-comparison__mark--yes {
  background: rgba(16, 163, 74, 0.14);
  color: #0e8f43;
}

.av-plan-comparison__mark--optional {
  background: rgba(93, 106, 117, 0.14);
  color: #5d6a75;
}

.av-plan-comparison__mark--text {
  width: auto;
  min-width: 22px;
  height: auto;
  padding: 2px 8px;
  background: var(--av-v15-sky, #eaf4fb);
  border-radius: 999px;
  color: var(--av-v15-blue, #0d5da8);
  font-size: 0.72rem;
  white-space: nowrap;
}

.av-plan-comparison__label em {
  color: var(--av-v15-muted, #5d6a75);
  font-size: 0.82em;
  font-style: normal;
}

.av-plan-comparison__card .av-button {
  justify-content: center;
  width: 100%;
}

@media (max-width: 780px) {
  .av-plan-comparison {
    grid-template-columns: 1fr;
  }
}

/* Avanza Seguridad - the footer logo's white-filter (.av-footer-brand img) was also
   bleaching the app store badges into blank white rectangles since they share that
   selector. Reset it specifically for the badges. */
.av-footer-brand .av-footer-apps img {
  filter: none !important;
}

/* Avanza Seguridad - cart icon in the header, plus a guaranteed "Tienda" nav link.
   .av-header-utility wraps the mobile hamburger and pairs it with a cart icon that
   stays visible there; a second cart icon lives in .av-header-actions for desktop,
   where .av-header-utility itself is hidden so it doesn't add a stray grid column. */
.av-header-utility {
  display: flex;
  align-items: center;
  gap: 14px;
}

@media (min-width: 981px) {
  .av-header-utility {
    display: none !important;
  }
}

.av-header-cart {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  color: var(--av-v15-navy, #082b4b);
  text-decoration: none;
}

.av-header-cart__icon {
  width: 22px;
  height: 22px;
}

.av-header-cart__count {
  position: absolute;
  top: 0;
  right: 0;
  display: grid;
  min-width: 16px;
  height: 16px;
  padding: 0 3px;
  place-items: center;
  color: #fff;
  background: var(--av-v15-orange, #ff6b1a);
  border-radius: 999px;
  font-size: 0.64rem;
  font-weight: 800;
  line-height: 1;
}

.av-header-cart__count:empty,
.av-header-cart__count[data-count="0"] {
  display: none;
}

.av-header-cart--utility {
  color: #fff;
}

.av-header-cart--actions {
  color: #fff;
}

/* Avanza Seguridad - Plus/Premium/A medida comparison table: product photos in the
   header, near-transparent blue/orange column tints, pill-shaped values, and a
   no-horizontal-scroll card layout on mobile. Applied by assets/js/theme.js to
   .av-data-table tables inside .av-section--comparison, since the plain
   "Incluida"/"Opcional" text lives in seeded page content we cannot edit directly
   (see avanza_render_plan_comparison for the same data on new pages). */
.av-data-table.av-compare-enhanced table {
  border-collapse: separate !important;
  border-spacing: 0 !important;
}

.av-data-table.av-compare-enhanced thead th {
  position: relative;
  padding-top: 110px !important;
  vertical-align: bottom !important;
  text-align: center !important;
  background: var(--av-v15-blue, #0d5da8) !important;
  color: #fff !important;
}

.av-data-table.av-compare-enhanced thead th:nth-child(3) {
  background: var(--av-v15-orange, #ff6b1a) !important;
}

.av-data-table.av-compare-enhanced thead th:nth-child(4) {
  background: var(--av-v15-navy, #23374a) !important;
}

.av-compare-photo {
  position: absolute;
  top: 10px;
  left: 50%;
  width: 90px;
  height: 90px;
  padding: 6px;
  background: #fff;
  border-radius: 12px;
  transform: translateX(-50%);
  object-fit: contain;
}

.av-data-table.av-compare-enhanced tbody td:nth-child(2) {
  background: rgba(13, 93, 168, 0.05) !important;
}

.av-data-table.av-compare-enhanced tbody td:nth-child(3) {
  background: rgba(255, 107, 26, 0.06) !important;
}

.av-data-table.av-compare-enhanced tbody td:nth-child(4) {
  background: rgba(35, 55, 74, 0.03) !important;
}

.av-data-table.av-compare-enhanced tbody td {
  padding: 14px 10px !important;
  text-align: center !important;
}

.av-compare-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 7px 16px;
  border-radius: 999px;
  font-size: 0.86rem;
  font-weight: 650;
  white-space: nowrap;
}

.av-compare-pill--yes {
  background: rgba(16, 163, 74, 0.14);
  color: #0e8f43;
}

.av-compare-pill--optional {
  background: rgba(93, 106, 117, 0.14);
  color: #5d6a75;
}

.av-compare-pill--text {
  background: rgba(13, 93, 168, 0.1);
  color: var(--av-v15-blue, #0d5da8);
}

.av-compare-pill__icon {
  display: grid;
  width: 16px;
  height: 16px;
  place-items: center;
  font-size: 0.62rem;
}

@media (max-width: 600px) {
  .av-data-table.av-compare-enhanced thead th {
    padding-top: 90px !important;
  }

  .av-compare-photo {
    width: 70px;
    height: 70px;
  }
}

/* Below 720px the table becomes one card per row - no min-width tug-of-war, no
   horizontal scroll. The generic ".av-data-table table { min-width: 820px }" rule
   elsewhere always wins over a plain "width: 100%", so it has to be zeroed here too. */
@media (max-width: 720px) {
  .av-data-table.av-compare-enhanced {
    overflow: visible !important;
  }

  .av-data-table.av-compare-enhanced table {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  .av-data-table.av-compare-enhanced thead {
    display: none !important;
  }

  .av-data-table.av-compare-enhanced tbody {
    display: block !important;
  }

  .av-data-table.av-compare-enhanced tbody tr {
    display: block !important;
    margin-bottom: 14px;
    padding: 14px 16px;
    background: #fff;
    border: 1px solid rgba(8, 43, 75, 0.1);
    border-radius: 16px;
    box-shadow: 0 10px 24px rgba(8, 43, 75, 0.06);
  }

  .av-data-table.av-compare-enhanced tbody td {
    display: flex !important;
    align-items: center;
    justify-content: space-between !important;
    gap: 10px;
    padding: 8px 0 !important;
    background: none !important;
    border: 0 !important;
    text-align: left !important;
  }

  .av-data-table.av-compare-enhanced tbody td:first-child {
    padding-top: 0 !important;
    padding-bottom: 8px !important;
    color: var(--av-v15-navy, #082b4b);
    border-bottom: 1px solid rgba(8, 43, 75, 0.08) !important;
    font-weight: 800;
  }

  .av-data-table.av-compare-enhanced tbody td:nth-child(2)::before,
  .av-data-table.av-compare-enhanced tbody td:nth-child(3)::before,
  .av-data-table.av-compare-enhanced tbody td:nth-child(4)::before {
    color: #5d6a75;
    font-size: 0.78rem;
    font-weight: 700;
  }

  .av-data-table.av-compare-enhanced tbody td:nth-child(2)::before {
    content: "Alarma Plus";
  }

  .av-data-table.av-compare-enhanced tbody td:nth-child(3)::before {
    content: "Alarma Premium";
  }

  .av-data-table.av-compare-enhanced tbody td:nth-child(4)::before {
    content: "A medida";
  }
}

/* "Contratar" row appended by theme.js at the bottom of the comparison table, with a
   real WooCommerce add-to-cart link per plan. */
.av-data-table.av-compare-enhanced .av-compare-buy-row td {
  padding: 16px 10px !important;
  background: none !important;
  vertical-align: middle;
}

.av-compare-buy {
  min-height: 40px !important;
  padding: 0 18px !important;
  font-size: 0.86rem !important;
}

@media (max-width: 720px) {
  .av-data-table.av-compare-enhanced .av-compare-buy-row {
    border-top: 1px solid rgba(8, 43, 75, 0.08);
    padding-top: 10px;
    margin-top: 4px;
  }

  .av-data-table.av-compare-enhanced .av-compare-buy-row td {
    padding: 8px 0 !important;
  }

  .av-data-table.av-compare-enhanced .av-compare-buy-row td:first-child {
    border-bottom: 0 !important;
  }

  .av-compare-buy {
    width: 100%;
  }
}

/* Shared mobile hero measurements (home, photo and product variants) — the legacy
   rules above leave .av-hero__copy with align-self:center and no explicit width,
   which lets long content push it wider than the viewport, so both are pinned here. */
@media (max-width: 720px) {
  .av-hero {
    padding: 12px 0 16px !important;
  }

  body .av-hero__visual,
  body.home .av-hero__visual,
  body:not(.home) .av-entry--page .av-hero__visual {
    position: relative !important;
    inset: auto !important;
    height: 220px !important;
    min-height: 220px !important;
  }

  body .av-hero__copy,
  body.home .av-hero__copy,
  body:not(.home) .av-entry--page .av-hero__copy,
  body:not(.home) .av-hero__copy {
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    left: auto !important;
    bottom: auto !important;
    right: auto !important;
    width: auto !important;
    max-width: none !important;
    height: auto !important;
    max-height: none !important;
    box-sizing: border-box !important;
    transform: none !important;
    align-self: stretch !important;
    margin: -22px 12px 12px !important;
    padding: 20px 20px 18px !important;
  }

  .av-hero__eyebrow {
    width: auto !important;
    max-width: 100% !important;
    white-space: normal !important;
    text-align: center !important;
    line-height: 1.3 !important;
    margin-bottom: 8px !important;
  }

  body .av-hero__lead,
  body.home .av-hero__lead,
  body:not(.home) .av-hero__lead {
    margin-top: 8px !important;
    font-size: 0.88rem !important;
    line-height: 1.45 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 3 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
  }

  .av-hero__actions,
  body.home .av-hero__actions,
  body:not(.home) .av-hero__actions {
    margin-top: 14px !important;
    gap: 10px !important;
  }

  body:not(.home) .av-hero__highlights {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    margin-top: 8px !important;
    padding: 2px 14px !important;
  }

  body:not(.home) .av-hero__highlight,
  body:not(.home) .av-hero__highlight:first-child {
    min-height: 0 !important;
    padding: 10px 2px !important;
    border: 0 !important;
    border-top: 1px solid rgba(8, 43, 75, 0.1) !important;
  }

  body:not(.home) .av-hero__highlight:first-child {
    border-top: 0 !important;
  }

  .av-hero__highlight-text {
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    font-size: 0.8rem !important;
    line-height: 1.35 !important;
  }

  .av-hero__highlight-index {
    width: 28px !important;
    height: 28px !important;
    font-size: 0.55rem !important;
  }

  body.home .av-hero__pillars {
    margin-top: 8px !important;
    padding: 10px 10px !important;
  }

  body.home .av-hero-pillar,
  body.home .av-hero-pillar:nth-child(3) {
    min-height: 58px !important;
    padding: 6px 8px !important;
  }

  body.home .av-hero__rating {
    margin-top: 10px !important;
  }

  .av-hero__visual--product .av-hero__image-wrap {
    padding: 14px !important;
  }

  .av-hero__visual--product .av-hero__image {
    max-height: 190px !important;
    padding: 0 !important;
  }
}

.av-footer-funding {
  display: flex;
  justify-content: center;
  padding: 22px 0 30px;
}

.av-footer-funding img {
  max-width: 100%;
  height: auto;
  background: #fff;
  border-radius: 10px;
  padding: 10px 18px;
}

@media (max-width: 720px) {
  .av-footer-funding {
    padding: 16px 0 24px;
  }

  .av-footer-funding img {
    max-width: 92%;
    padding: 8px 12px;
  }
}

/* theme.js wraps each "Estudio técnico / Instalación propia / Respuesta continua"
   point in .av-home-fact-card (photo + the original .av-home-fact together), so the
   photo's square corners clip to the card's rounded shape via overflow:hidden and
   the text half becomes its own white card body. */
.av-home-fact-card {
  overflow: hidden;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 14px 32px rgba(8, 43, 75, 0.08);
}

.av-home-fact-card + .av-home-fact-card {
  margin-top: 26px;
}

/* Gap between the section's blue top border and the first card, so the card's
   rounded corner doesn't sit flush against the straight border line. */
body.home .av-home-opener__facts {
  padding-top: 26px !important;
}

.av-home-fact-photo {
  display: block;
  width: 100%;
  margin: 0;
}

.av-home-fact-photo img {
  display: block;
  width: 100%;
  height: 200px;
  object-fit: cover;
}

body.home .av-home-fact-card .av-home-fact {
  padding: 22px 24px 26px !important;
  border-top: 0 !important;
  background: #fff !important;
}

/* User asked to drop the round icon-per-point badge (the v70 ::after block above)
   now that each point has its own photo instead. */
body.home .av-home-fact {
  grid-template-columns: 44px minmax(0, 1fr) !important;
  grid-template-areas: "number title" "number copy" !important;
}

body.home .av-home-fact::after {
  content: none !important;
  display: none !important;
}

@media (max-width: 480px) {
  body.home .av-home-fact {
    grid-template-columns: 44px minmax(0, 1fr) !important;
  }
}

/* Desktop-only carousel for the 3 point cards: theme.js appends
   .av-home-fact-timeline and toggles .is-active on one card at a time. Below the
   981px breakpoint this stays inert — every card renders in the normal stacked
   flow and the timeline nav is hidden. */
.av-home-fact-timeline {
  display: none;
  gap: 8px;
  margin-top: 20px;
}

.av-home-fact-timeline__seg {
  flex: 1;
  height: 4px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(8, 43, 75, 0.15);
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.av-home-fact-timeline__seg.is-active,
.av-home-fact-timeline__seg.is-done {
  background: #0d5da8;
}

@media (min-width: 981px) {
  .av-home-fact-card {
    display: none;
  }

  .av-home-fact-card.is-active {
    display: block;
  }

  .av-home-fact-photo img {
    height: 320px;
  }

  .av-home-fact-timeline {
    display: flex;
  }
}

/* Half-photo CTA banner (footer.php .av-prefooter__photo), shared by every page
   since the banner is printed once from footer.php. Hidden on narrow screens —
   splitting the banner in half only reads well once there's room for both a
   readable text column and a photo panel. From 981px up, the photo panel is
   absolutely positioned against .av-prefooter (already position:relative with
   overflow:hidden for its own rounded corners) and its left edge uses a radius
   equal to half its own height on both left corners, so the two quarter-circles
   meet at the vertical mid-point and bulge into the orange like a ")" seam. */
.av-prefooter {
  position: relative;
}

.av-prefooter__photo {
  display: none;
  margin: 0;
}

@media (min-width: 981px) {
  .av-prefooter__inner {
    grid-template-columns: minmax(0, 1fr) !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding-left: clamp(24px, 4vw, 64px) !important;
    padding-right: 46% !important;
  }

  .av-prefooter__inner .av-button {
    margin-top: 26px;
  }

  .av-prefooter__photo {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 44%;
    border-top-left-radius: clamp(60px, 8vw, 140px) 50%;
    border-bottom-left-radius: clamp(60px, 8vw, 140px) 50%;
    overflow: hidden;
  }

  .av-prefooter__photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}

/* Sections used to float as separate cards: width min(1320px, 100% - 36px) plus
   margin: auto (elsewhere in this file) split the leftover width evenly into a side
   inset. Zeroing just the margin left that leftover width stuck on one side instead
   of removing it, so the width constraint has to go too — full width, no gap: every
   top-level section now runs edge to edge and sits flush against the next one, so
   the only visible seam is each section's own rounded corner meeting whatever color
   follows it. */
.av-entry-content > .av-section {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* Going full-width above also threw out the old width:min(1320px, 100% - 36px) +
   margin:auto centering trick, which was every section's ONLY source of a side
   gutter unless it also had its own colored-card padding. :where() keeps this at
   zero specificity so it only ever fills in for sections with no padding-inline of
   their own — it can't override one, so already-correct sections (own padding, e.g.
   the colored cards) are untouched. */
:where(.av-entry-content) > :where(.av-section) {
  padding-inline: clamp(20px, 4vw, 24px);
}

/* .av-section--faq additionally sets padding-inline: 0 explicitly (to pair with its
   own max-width:1060px reading-width column), which beats the zero-specificity rule
   above, so it needs its own named override. */
.av-section--faq {
  padding-inline: clamp(20px, 4vw, 24px) !important;
}

/* .av-section--services had 0 padding of its own (shorthand `padding: 0` from
   body.home .av-section--services, which also beats the :where() rule above) — it
   relied entirely on the 48px margin above and the width:min(...)+margin:auto side
   gutter, both gone now, so its kicker pill crowded the rounded corner above it and
   its heading sat flush against the left edge. .av-operations is also 0-padding but
   doesn't need this: its own copy panel already carries 32px of padding, and the
   other column is a full-bleed photo that's supposed to touch the section edge. */
.av-section--services {
  padding-block: clamp(48px, 6vw, 80px) !important;
  padding-inline: clamp(20px, 4vw, 24px) !important;
}

/* theme.js wraps the "Detectamos"/"Respondemos" steps of the Detectar-Verificar-
   Responder flow in .av-step-wrap (photo + the original .av-step together). This
   keeps .av-step's own internal grid (an !important rule elsewhere) completely
   untouched, and .av-step-wrap is a 1-for-1 stand-in for .av-step as a child of the
   3-column .av-steps grid, so the column count and alignment don't change either. */
.av-step-wrap {
  display: block;
  /* WordPress's block-gap CSS gives every child but the first a margin-top inside
     wp-block-group.is-layout-constrained (.av-steps) — it doesn't check for that
     class on the child itself, so it was landing on .av-step-wrap too and pushing
     columns 2-3 down relative to column 1. */
  margin-top: 0 !important;
}

.av-step-photo {
  display: block;
  width: 100%;
  margin: 0 0 20px;
}

.av-step-photo img {
  display: block;
  width: 100%;
  height: 190px;
  object-fit: cover;
  border-radius: 16px;
}

@media (max-width: 720px) {
  .av-step-photo img {
    height: 200px;
  }
}

/* .av-town-pills is a plain wp-block-group with no alignwide/alignfull class, so
   WordPress's own .is-layout-constrained > :where(...) rule caps it at the theme's
   content-size var and centers it — inside the already-narrower .av-section--local-
   detail card that math doesn't center it at all, just strands it on the left with
   the rest of the card empty. */
.av-town-pills {
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  border-left: 0 !important;
}

.av-town-pill {
  background: #fff !important;
  color: #1a1a1a !important;
  border: 1.5px solid var(--av-v15-orange, #ff6b1a) !important;
  box-shadow: none !important;
}

/* The "En esta página" pill nav: some pages' kickers are a full sentence instead of
   a short label (e.g. "Compra, servicio y respuesta son cosas distintas"), and
   min-width: max-content elsewhere in this file was forcing every pill to its full
   text width regardless of the max-width/ellipsis also set on it, so long ones blew
   out the row. min-width auto-sizing has to go before max-width + ellipsis can do
   anything; text-overflow doesn't apply to the flex container itself, so theme.js
   also wraps each pill's text in .av-section-nav__label-text for it to apply to. */
.av-section-nav__track a,
.av-section-nav__track a.is-active,
.av-section-nav__track a[aria-current="true"] {
  min-width: 0 !important;
}

.av-section-nav__label-text {
  display: block;
  overflow: hidden;
  min-width: 0;
  white-space: nowrap;
  text-overflow: ellipsis;
}

/* Product hero photo (kit-alarma etc.): width:660px + max-height:390px + the
   asymmetric 320px-left padding built for /presupuesto/'s old overlap problem left
   every OTHER product hero small and stranded in a sea of empty background. Scaled
   up and re-centered here for every product hero except presupuesto, which keeps
   its own asymmetric padding (still declared earlier in this file, further up). */
@media (min-width: 981px) {
  body:not(.av-page-presupuesto) .av-hero__visual--product .av-hero__image {
    width: min(100%, 980px) !important;
    padding: clamp(20px, 3vw, 36px) !important;
    max-height: 620px !important;
    object-position: center !important;
  }
}

/* .av-lead-form-wrap (the /presupuesto/ quote wizard) had a flat max-width:980px
   and margin-inline:0 from before .av-section went full-width — that used to land it
   close to the section's own edges, but now that the section itself runs edge to
   edge, the fixed 980px cap left a growing gap on the right instead. */
.av-entry-content > .av-form-section > .av-lead-form-wrap {
  max-width: none !important;
  width: 100% !important;
  margin-inline: 0 !important;
}

/* /tienda/ "Como funciona": .av-feature-grid is a plain wp-block-group without
   alignwide, so it inherited WordPress's own is-layout-constrained max-width cap
   (760px) inside its now-full-width parent section, leaving a huge empty right
   margin and crushing the 3-column card grid. Same bug class already fixed for
   .av-town-pills earlier in this file. */
.av-feature-grid {
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* General rule: no section title should ever be allowed to overflow past the
   viewport. The >=1280px rule below used to force white-space:nowrap on every
   section heading, which is fine for short titles but blows out long ones (seen
   on /tienda/). Titles now always wrap, at any width, on every page. */
.av-section > .av-section-title,
.av-section > h2:not(.av-card-title),
.av-contact .av-section-title,
.av-contact h2 {
  white-space: normal !important;
}

h1, h2, h3, .av-section-title, .av-card-title {
  overflow-wrap: break-word !important;
  max-width: 100% !important;
}

/* /servicios/ hub page: .av-card-index is normally a tight circle holding a
   2-digit number ("01") or a short code ("B2B", "PCI"), fixed at 44px (38px on
   mobile). This page instead passes full words ("Residencial", "Accesos",
   "Digital") as the badge label, which do not fit in a fixed circle and spill
   out of the card ("no caben"). Column 1 now sizes to the badge's own content
   instead of a fixed pixel value, so short codes still render as a circle and
   longer words grow into a pill automatically. */
.av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card {
  grid-template-columns: minmax(44px, max-content) minmax(0, 1fr) !important;
}

.av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card-index {
  width: auto !important;
  height: auto !important;
  min-width: 44px !important;
  min-height: 44px !important;
  padding: 0 10px !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
}

/* The card's optional CTA link ("Ver alarmas ->") has no explicit grid-column,
   so it auto-places into column 1 under the badge, same as before this change.
   Without a fixed width here its own text would now feed into column 1's
   max-content sizing too and inflate the badge column far past the badge's own
   width (eg. "Ver soluciones ->" is wider than "B2B"). Pin it back to the
   badge's own footprint so only the badge text drives the column width. */
.av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card > p.wp-block-paragraph:not(.av-card-index):not(.av-card-copy) {
  width: 44px !important;
  max-width: 44px !important;
}

@media (max-width: 640px) {
  .av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card {
    grid-template-columns: minmax(38px, max-content) minmax(0, 1fr) !important;
  }

  .av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card-index {
    min-width: 38px !important;
    min-height: 38px !important;
    padding: 0 9px !important;
  }

  .av-entry-content .av-section:not(.av-section--contact-grid) .av-feature-grid .av-card > p.wp-block-paragraph:not(.av-card-index):not(.av-card-copy) {
    width: 38px !important;
    max-width: 38px !important;
  }
}

/* Two joined (no-gap) sections that both happen to use the dark navy "ink"
   background (.av-section--ink and .av-cta-panel share almost the same navy)
   read as a single undifferentiated block with no way to tell where one ends
   and the next begins. A faint hairline marks the seam without breaking the
   joined-sections look. */
.av-entry-content > .av-section--ink + .av-section--ink,
.av-entry-content > .av-section--ink + .av-cta-panel,
.av-entry-content > .av-cta-panel + .av-section--ink,
.av-entry-content > .av-cta-panel + .av-cta-panel {
  border-top: 1px solid rgba(255, 255, 255, 0.14) !important;
}

/* Footer Instagram icon, grouped with the legal menu so .av-footer-bottom's
   space-between still only sees two items (copyright vs. this group). */
.av-footer-bottom__right {
  display: flex;
  align-items: center;
  gap: 20px;
}

.av-footer-social {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  color: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 999px;
  flex-shrink: 0;
  transition: color 160ms ease, border-color 160ms ease, background-color 160ms ease;
}

.av-footer-social:hover,
.av-footer-social:focus-visible {
  color: #fff;
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.5);
}

.av-footer-social svg {
  width: 18px;
  height: 18px;
}

@media (max-width: 620px) {
  .av-footer-bottom__right {
    align-self: flex-start;
  }
}

/* General rule: no kicker/eyebrow pill should ever be allowed to clip its own
   text. The "v60 restored pills" rule earlier in this file forces
   white-space:nowrap + overflow:hidden on every .av-kicker/.av-hero__eyebrow,
   which silently cuts off the end of any label too long for the pill (eg.
   "Instalar seguridad exige algo mas que montar equipos" on mobile). Long
   labels now wrap to a second line inside the pill instead of being clipped. */
.av-kicker,
.av-hero__eyebrow {
  white-space: normal !important;
  overflow: visible !important;
  text-align: center !important;
}

/* Plan-comparison table redesign (/comparador-alarmas/ "Comparacion directa"):
   separate floating cards per plan instead of one flat table, plus a
   "Mas completa" badge on the recommended plan. Cells stay real <td>/<th>
   (content lives in seeded page HTML we cannot rewrite - see theme.js), so the
   "card" look is built from per-cell borders/radius/border-spacing gaps rather
   than actual wrapper divs. */
.av-data-table.av-compare-enhanced {
  overflow: visible !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.av-data-table.av-compare-enhanced table {
  border-collapse: separate !important;
  border-spacing: 12px 0 !important;
  margin: 0 -12px !important;
  width: calc(100% + 24px) !important;
}

.av-data-table.av-compare-enhanced th,
.av-data-table.av-compare-enhanced td {
  border: 0 !important;
  border-bottom: 1px solid rgba(8, 43, 75, 0.07) !important;
}

.av-data-table.av-compare-enhanced tbody tr:last-child td {
  border-bottom: 0 !important;
}

.av-data-table.av-compare-enhanced thead th:first-child,
.av-data-table.av-compare-enhanced tbody td:first-child {
  background: transparent !important;
  color: var(--av-v15-navy, #082b4b) !important;
  font-weight: 700 !important;
  padding-left: 4px !important;
}

/* The "Criterio" header has no plan to show - keep its column width without
   showing the label itself, since the 3 plan headers already carry the row. */
.av-data-table.av-compare-enhanced thead th:first-child {
  opacity: 0;
}

.av-data-table.av-compare-enhanced thead th {
  padding-top: 118px !important;
  padding-bottom: 22px !important;
  border-radius: 18px 18px 0 0 !important;
  font-size: 0.95rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.02em !important;
}

.av-data-table.av-compare-enhanced tbody tr:last-child td {
  border-radius: 0 0 18px 18px !important;
}

.av-compare-photo {
  width: 104px !important;
  height: 104px !important;
  top: 14px !important;
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.18) !important;
}

/* Highlight the recommended plan (Alarma Premium, column 3) with a full
   outline built from matching per-cell borders - separate table cells cannot
   share one border as a group, but identical left/right borders on every
   stacked cell in the column line up into a seamless rectangle. */
.av-data-table.av-compare-enhanced thead th:nth-child(3),
.av-data-table.av-compare-enhanced tbody td:nth-child(3) {
  border-left: 2px solid var(--av-v15-orange, #f27622) !important;
  border-right: 2px solid var(--av-v15-orange, #f27622) !important;
}

.av-data-table.av-compare-enhanced thead th:nth-child(3) {
  border-top: 2px solid var(--av-v15-orange, #f27622) !important;
  padding-top: 168px !important;
  position: relative;
}

.av-data-table.av-compare-enhanced tbody tr:last-child td:nth-child(3) {
  border-bottom: 2px solid var(--av-v15-orange, #f27622) !important;
}

.av-data-table.av-compare-enhanced thead th:nth-child(3) .av-compare-photo {
  top: 48px !important;
}

/* Kept inside the header cell (top:14px) rather than poking above it
   (the original -14px): a badge that overflows the cell's own box can end up
   behind the page's sticky header/section-nav depending on scroll position -
   see the same fix on the mobile carousel's badge below. */
.av-data-table.av-compare-enhanced thead th:nth-child(3)::after {
  content: "\2605  M\00e1s completa" !important;
  position: absolute;
  top: 12px;
  left: 50%;
  transform: translateX(-50%);
  background: #fff;
  color: var(--av-v15-orange, #f27622);
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  padding: 8px 18px;
  border-radius: 999px;
  white-space: nowrap;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.22);
}

/* Mobile: the old fallback stacked every ROW as its own card with all 3 plan
   values listed inside it, one under another - readable, but you could never
   see two plans next to each other to compare them. This keeps real table
   columns and pins the label column with position:sticky so it stays in view
   while the plan columns scroll horizontally underneath - two plans (label +
   2 columns) are always visible together, and the third is one swipe away. */
@media (max-width: 720px) {
  .av-data-table.av-compare-enhanced {
    overflow-x: auto !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch;
  }

  .av-data-table.av-compare-enhanced table {
    display: table !important;
    table-layout: fixed !important;
    width: auto !important;
    min-width: 0 !important;
    border-spacing: 0 !important;
    margin: 0 !important;
  }

  .av-data-table.av-compare-enhanced thead {
    display: table-header-group !important;
  }

  .av-data-table.av-compare-enhanced tbody {
    display: table-row-group !important;
  }

  .av-data-table.av-compare-enhanced thead tr,
  .av-data-table.av-compare-enhanced tbody tr {
    display: table-row !important;
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .av-data-table.av-compare-enhanced thead th,
  .av-data-table.av-compare-enhanced tbody td {
    display: table-cell !important;
    text-align: center !important;
    vertical-align: middle !important;
    padding: 10px 6px !important;
  }

  .av-data-table.av-compare-enhanced tbody td::before {
    display: none !important;
    content: none !important;
  }

  .av-data-table.av-compare-enhanced thead th:first-child,
  .av-data-table.av-compare-enhanced tbody td:first-child {
    position: sticky !important;
    left: 0 !important;
    z-index: 2 !important;
    width: 84px !important;
    min-width: 84px !important;
    max-width: 84px !important;
    background: #fff !important;
    box-shadow: 3px 0 8px rgba(8, 43, 75, 0.08) !important;
    text-align: left !important;
    font-size: 0.74rem !important;
    line-height: 1.25 !important;
    padding-left: 8px !important;
  }

  .av-data-table.av-compare-enhanced thead th:not(:first-child),
  .av-data-table.av-compare-enhanced tbody td:not(:first-child) {
    width: 128px !important;
    min-width: 128px !important;
    max-width: 128px !important;
  }

  .av-data-table.av-compare-enhanced thead th {
    padding-top: 86px !important;
    padding-bottom: 12px !important;
    font-size: 0.74rem !important;
  }

  .av-data-table.av-compare-enhanced .av-compare-photo {
    width: 68px !important;
    height: 68px !important;
    top: 8px !important;
  }

  /* Pills can no longer force nowrap in a 128px column - long values (eg.
     "Empresa o riesgo especial") wrap to two lines instead of overflowing. */
  .av-compare-pill {
    white-space: normal !important;
    padding: 5px 9px !important;
    font-size: 0.72rem !important;
    line-height: 1.25 !important;
  }

  .av-data-table.av-compare-enhanced thead th:nth-child(3)::after {
    font-size: 0.58rem !important;
    padding: 4px 9px !important;
    top: -10px !important;
  }
}

/* Plain product/price tables (rate-sheet on the homepage, pricing-detail on
   /precio-alarma/) get the same rounded-card + pill visual language as the
   plan-comparison table above, so every product/comparison table on the site
   reads as one consistent design. */
.av-rate-sheet .av-data-table,
.av-section--pricing-detail .av-data-table {
  border: 0 !important;
  box-shadow: 0 16px 40px rgba(8, 43, 75, 0.08) !important;
  border-radius: 18px !important;
}

.av-rate-sheet .av-data-table th,
.av-section--pricing-detail .av-data-table th {
  background: var(--av-v15-navy, #082b4b) !important;
}

.av-rate-sheet .av-data-table td:nth-child(2) strong,
.av-rate-sheet .av-data-table td:nth-child(3) strong {
  display: inline-block;
  background: rgba(13, 93, 168, 0.1);
  color: var(--av-v15-blue, #0d5da8);
  padding: 6px 14px;
  border-radius: 999px;
  font-size: 0.86rem;
}

.av-section--pricing-detail .av-data-table td:nth-child(2) {
  color: var(--av-v15-blue, #0d5da8) !important;
  font-weight: 800 !important;
}

/* Both tables above sat inside a "width:min(100%,1080px)" cap written back when
   sections were narrower - now that sections run edge to edge, that old cap
   left ~170px of dead space on each side and squeezed "Proyecto a medida" onto
   two lines. Let these two use the section's full width like everything else;
   .av-section--pricing-detail (a plain 2-column Elemento/Precio list) keeps
   its narrower cap since it has nothing to gain from stretching edge to edge. */
.av-entry-content .av-data-table.av-compare-enhanced,
.av-entry-content .av-rate-sheet .av-data-table {
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
}

/* Mobile carousel for the plan-comparison table (built by theme.js): one full
   plan card at a time, in the same visual language as the desktop columns
   (colored header, photo, pill values, badge on the recommended plan),
   paged with side arrows and dots instead of the old row-by-row stack. */
.av-compare-carousel {
  display: none;
}

@media (max-width: 720px) {
  .av-data-table.av-compare-enhanced {
    display: none !important;
  }

  .av-compare-carousel {
    display: block;
    position: relative;
    padding: 0 4px;
  }

  .av-compare-carousel__track {
    position: relative;
  }

  .av-compare-carousel__card {
    display: none;
    position: relative;
    background: #fff;
    border-radius: 20px;
    overflow: visible;
    box-shadow: 0 16px 40px rgba(8, 43, 75, 0.1);
    border: 1px solid rgba(8, 43, 75, 0.06);
  }

  .av-compare-carousel__card.is-active {
    display: block;
  }

  .av-compare-carousel__head {
    position: relative;
    padding: 90px 44px 22px;
    text-align: center;
    background: var(--av-v15-blue, #0d5da8);
    color: #fff;
    border-radius: 20px 20px 0 0;
    overflow: hidden;
  }

  .av-compare-carousel__card[data-plan-index="1"] .av-compare-carousel__head {
    background: var(--av-v15-orange, #f27622);
  }

  .av-compare-carousel__card[data-plan-index="2"] .av-compare-carousel__head {
    background: var(--av-v15-navy, #082b4b);
  }

  /* width/height/top/box-shadow come from the shared, unscoped
     ".av-compare-photo { ... !important }" rule earlier in this file (the
     cloned <img> keeps that class) - not repeated here since literal values
     written here would be silently overridden and misleading to read. */
  .av-compare-carousel__head img {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    padding: 6px;
    background: #fff;
    border-radius: 12px;
    object-fit: contain;
  }

  /* The badge used to poke above the card (top:-12px, like the desktop
     ::after ribbon). At the exact scroll position where this section lands
     under the page's own sticky header/section-nav, that -12px put the badge
     behind that sticky chrome. Keeping it inside the card's own bounds avoids
     the collision at any scroll position.
     Note: the cloned <img> keeps its .av-compare-photo class, so the
     unconditional ".av-compare-photo { width/height/top: ... !important }"
     rule elsewhere in this file always wins over this block's own size/top -
     the photo actually renders at 104px here too (not the 84px literally
     written below), and every offset here has to clear THAT actual size,
     not the one on paper. */
  .av-compare-carousel__card[data-plan-index="1"] .av-compare-carousel__head {
    padding-top: 168px;
  }

  .av-compare-carousel__card[data-plan-index="1"] .av-compare-carousel__head img {
    top: 48px !important;
  }

  .av-compare-carousel__badge {
    position: absolute;
    top: 12px;
    left: 50%;
    transform: translateX(-50%);
    background: #fff;
    color: var(--av-v15-orange, #f27622);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.03em;
    padding: 7px 16px;
    border-radius: 999px;
    white-space: nowrap;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.22);
    z-index: 3;
  }

  .av-compare-carousel__name {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
  }

  /* 44px side padding (kept to clear the inset side arrows, see below) left
     too little room for the value column, wrapping even short pills like
     "Desde 25 €/mes" onto two lines. Narrower padding plus a slightly
     smaller pill (below) comfortably fit both short and long values. */
  .av-compare-carousel__rows {
    padding: 6px 28px 0;
  }

  .av-compare-carousel__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 0;
    border-bottom: 1px solid rgba(8, 43, 75, 0.07);
  }

  .av-compare-carousel__row:last-child {
    border-bottom: 0;
  }

  .av-compare-carousel__label {
    color: var(--av-v15-navy, #082b4b);
    font-size: 0.84rem;
    font-weight: 700;
  }

  .av-compare-carousel__buy {
    padding: 16px 28px 22px;
  }

  .av-compare-carousel__buy a {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100%;
    text-align: center;
  }

  /* Pills can afford to be slightly smaller in the roomier carousel card than
     they need to be in the cramped 128px sticky-table column, which buys back
     the room given up by the narrower side padding above. */
  .av-compare-carousel .av-compare-pill {
    padding: 4px 8px;
    font-size: 0.7rem;
  }

  .av-compare-carousel__arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 4;
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 999px;
    border: 1px solid rgba(8, 43, 75, 0.12);
    background: #fff;
    color: var(--av-v15-navy, #082b4b);
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(8, 43, 75, 0.16);
  }

  .av-compare-carousel__arrow svg {
    width: 18px;
    height: 18px;
  }

  .av-compare-carousel__arrow--prev {
    left: -4px;
  }

  .av-compare-carousel__arrow--next {
    right: -4px;
  }

  .av-compare-carousel__dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 16px;
  }

  .av-compare-carousel__dot {
    width: 8px;
    height: 8px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(8, 43, 75, 0.18);
    cursor: pointer;
  }

  .av-compare-carousel__dot.is-active {
    width: 22px;
    background: var(--av-v15-orange, #f27622);
  }
}

/* Homepage rate sheet, rebuilt by theme.js into a product-card grid: each row
   was a different product (not a column to compare side by side), so this
   uses the same photo/pill visual language as the plan-comparison cards
   above without forcing an unrelated table/carousel structure onto a list. */
.av-product-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 20px;
  /* Plain new child of a WP is-layout-constrained group, so without this it
     gets silently capped at the theme's ~760px content width and centered -
     the same WordPress default hit earlier this session for .av-town-pills
     and .av-feature-grid. */
  width: 100% !important;
  max-width: none !important;
}

@media (min-width: 860px) {
  .av-product-cards {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}

.av-product-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid rgba(8, 43, 75, 0.08);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 14px 32px rgba(8, 43, 75, 0.06);
}

.av-product-card__photo {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: var(--av-v15-sky, #eaf4fb);
}

.av-product-card__photo img {
  width: 100%;
  max-width: 140px;
  height: 100px;
  object-fit: contain;
}

.av-product-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 10px;
  padding: 18px 20px 22px;
}

.av-product-card__name {
  margin: 0;
  color: var(--av-v15-navy, #082b4b);
  font-size: 1.02rem;
  font-weight: 800;
}

.av-product-card__pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.av-product-card__modality {
  background: rgba(8, 43, 75, 0.06) !important;
  color: var(--av-v15-navy, #082b4b) !important;
}

.av-product-card__equipment {
  margin: 0;
  color: #5d6a75;
  font-size: 0.88rem;
  line-height: 1.5;
}

@media (max-width: 640px) {
  .av-product-cards {
    grid-template-columns: 1fr;
  }
}

/* Quick-quote modal, opened from the home hero's primary button
   ([data-quick-quote-open], wired in theme.js). Hidden by default and only
   shown once .is-open is added, so it never affects normal page layout. */
.av-quick-quote {
  display: none;
}

.av-quick-quote.is-open {
  display: block;
  position: fixed;
  inset: 0;
  z-index: 1000;
}

.av-quick-quote__overlay {
  position: absolute;
  inset: 0;
  background: rgba(8, 43, 75, 0.55);
  backdrop-filter: blur(2px);
}

body.av-quick-quote-open {
  overflow: hidden;
}

.av-quick-quote__dialog {
  position: relative;
  width: min(440px, calc(100vw - 32px));
  max-height: calc(100vh - 48px);
  overflow-y: auto;
  margin: 24px auto;
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 30px 70px rgba(0, 0, 0, 0.35);
}

@media (min-height: 560px) {
  .av-quick-quote__dialog {
    margin-top: max(24px, calc((100vh - 480px) / 2));
  }
}

.av-quick-quote__close {
  position: absolute;
  top: 14px;
  right: 14px;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 999px;
  background: rgba(8, 43, 75, 0.06);
  color: var(--av-v15-navy, #082b4b);
  font-size: 1.3rem;
  line-height: 1;
  cursor: pointer;
}

.av-quick-quote__close:hover {
  background: rgba(8, 43, 75, 0.12);
}

.av-quick-quote__body {
  padding: clamp(28px, 5vw, 40px);
}

.av-quick-quote__body .av-kicker {
  margin-bottom: 10px;
}

.av-quick-quote__body h2 {
  margin: 0 0 8px;
  color: var(--av-v15-navy, #082b4b);
  font-size: clamp(1.35rem, 3vw, 1.65rem);
}

.av-quick-quote__lead {
  margin: 0 0 22px;
  color: #5d6a75;
  font-size: 0.95rem;
  line-height: 1.5;
}

.av-quick-quote__form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.av-quick-quote__form label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  color: var(--av-v15-navy, #082b4b);
  font-size: 0.84rem;
  font-weight: 700;
}

.av-quick-quote__form input[type="text"],
.av-quick-quote__form input[type="tel"],
.av-quick-quote__form input[type="email"] {
  padding: 12px 14px;
  border: 1.5px solid rgba(8, 43, 75, 0.15);
  border-radius: 12px;
  font-size: 0.95rem;
  font-weight: 400;
  font-family: inherit;
}

.av-quick-quote__form input:focus {
  outline: 2px solid var(--av-v15-blue, #0d5da8);
  outline-offset: 1px;
}

.av-quick-quote__consent {
  flex-direction: row !important;
  align-items: flex-start;
  gap: 10px !important;
  font-size: 0.82rem !important;
  font-weight: 500 !important;
}

.av-quick-quote__consent input {
  margin-top: 3px;
}

.av-quick-quote__form .av-button {
  justify-content: center;
  margin-top: 6px;
}

.av-quick-quote__status {
  margin: 4px 0 0;
  padding: 14px 16px;
  border-radius: 12px;
  font-size: 0.9rem;
  font-weight: 600;
  text-align: center;
}

.av-quick-quote__status.is-success {
  background: rgba(16, 163, 74, 0.12);
  color: #0e8f43;
}

.av-quick-quote__status.is-error {
  background: rgba(220, 53, 69, 0.1);
  color: #c22b3a;
}

/* theme.js replaces the homepage rate-sheet table with .av-product-cards and
   sets [hidden] on the original <table>'s figure - but an older mobile rule
   (.av-rate-sheet .av-data-table { display: block !important }, from before
   that JS existed) outranks the [hidden] attribute's own display:none, so
   the old table was showing again right alongside the new cards on mobile. */
.av-rate-sheet .av-data-table[hidden] {
  display: none !important;
}

/* Kickers: drop the pill badge (background/border/wipe-fill layers) and keep
   just the label, fading and rising into view as you scroll past it - reuses
   the same --av-kicker-progress variable theme.js already computes on
   scroll, just applied to the text itself instead of a pill background. */
.av-kicker::before,
.av-kicker::after,
.av-hero__eyebrow::before,
.av-hero__eyebrow::after,
.av-entry-content .av-kicker::before,
.av-entry-content .av-kicker::after,
.av-cta-panel .av-kicker::before,
.av-cta-panel .av-kicker::after,
.av-operations .av-kicker::before,
.av-operations .av-kicker::after,
.av-operations__copy .av-kicker::before,
.av-operations__copy .av-kicker::after,
.av-section--ink .av-kicker::before,
.av-section--ink .av-kicker::after,
.av-quick-quote__body .av-kicker::before,
.av-quick-quote__body .av-kicker::after,
.av-prefooter .av-kicker::before,
.av-prefooter .av-kicker::after,
.av-prefooter .av-kicker.av-kicker--light::before,
.av-prefooter .av-kicker.av-kicker--light::after {
  content: none !important;
  display: none !important;
}

.av-kicker,
.av-hero__eyebrow,
.av-entry-content .av-kicker,
.av-cta-panel .av-kicker,
.av-operations .av-kicker,
.av-operations__copy .av-kicker,
.av-section--ink .av-kicker,
.av-quick-quote__body .av-kicker,
.av-prefooter .av-kicker,
.av-prefooter .av-kicker.av-kicker--light {
  min-height: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  opacity: var(--av-kicker-progress, 1) !important;
  transform: translateY(calc((1 - var(--av-kicker-progress, 1)) * 16px)) !important;
  transition: opacity 0.2s linear, transform 0.2s linear;
}

.av-section--ink .av-kicker,
.av-operations .av-kicker,
.av-operations__copy .av-kicker,
.av-cta-panel .av-kicker,
.av-prefooter .av-kicker {
  color: #fff !important;
}

@media (prefers-reduced-motion: reduce) {
  .av-kicker,
  .av-hero__eyebrow {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* Verified Google review cards. */
.av-testimonial-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
  margin-top: 40px;
}

.av-testimonial {
  min-width: 0;
  padding: 30px;
  background: var(--av-white);
  border: 1px solid var(--av-line);
  border-radius: var(--av-radius);
}

.av-testimonial__stars {
  margin: 0 0 14px;
  color: #fbbc05;
  font-size: 1rem;
  letter-spacing: 0.06em;
}

.av-testimonial__quote {
  margin: 0 0 18px;
  color: var(--av-ink);
  font-size: 1.02rem;
  line-height: 1.55;
  font-style: italic;
}

.av-testimonial__author {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-style: normal;
}

.av-testimonial__author strong {
  color: var(--av-navy);
  font-size: 0.92rem;
}

.av-testimonial__author span {
  color: var(--av-muted);
  font-size: 0.82rem;
}

.av-testimonial__cta {
  grid-column: 1 / -1;
  margin-top: 4px;
}
