/*
 * AFTEL core public-page interaction layer.
 *
 * Loaded after design-system.css and before the final shared header authority.
 * Structural composition remains route-namespaced in the design system; this
 * file is the sole owner of marketing-route action, form, validation and
 * interaction states shared by coverage, support, contact and installation.
 */
body.aftel-marketing-route .aftel-inner-banner-wrapper { display: none; }
body.aftel-marketing-route .aftel-public-page { isolation: isolate; }

/* Stable action geometry and states. */
.aftel-page-modern :is(.aftel-btn-primary, .aftel-btn-secondary, .aftel-card-link),
.aftel-coverage-modern :is(.aftel-button, .aftel-filter-chip),
.aftel-support-modern .aftel-btn,
.aftel-support-modern .aftel-ont-card,
.aftel-support-modern .aftel-faq summary {
  min-height: 44px;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.aftel-page-modern :is(.aftel-btn-primary, .aftel-btn-secondary, .aftel-card-link):focus-visible,
.aftel-coverage-modern :is(.aftel-button, .aftel-filter-chip):focus-visible,
.aftel-support-modern :is(.aftel-btn, .aftel-ont-card, .aftel-faq summary):focus-visible {
  outline: var(--aftel-focus);
  outline-offset: 4px;
}
.aftel-page-modern :is(.aftel-btn-primary, .aftel-btn-secondary, .aftel-card-link):is([aria-disabled="true"], :disabled),
.aftel-coverage-modern :is(.aftel-button, .aftel-filter-chip):is([aria-disabled="true"], :disabled),
.aftel-support-modern .aftel-btn:is([aria-disabled="true"], :disabled) {
  opacity: .56;
  cursor: not-allowed;
  pointer-events: none;
  transform: none;
  box-shadow: none;
}
@media (hover: hover) {
  .aftel-page-modern :is(.aftel-btn-primary, .aftel-btn-secondary, .aftel-card-link):not([aria-disabled="true"]):hover,
  .aftel-coverage-modern :is(.aftel-button, .aftel-filter-chip):not([aria-disabled="true"]):hover,
  .aftel-support-modern :is(.aftel-btn, .aftel-ont-card):not([aria-disabled="true"]):hover { transform: translateY(-1px); }
}

/* Primary and secondary roles share one colour/feedback contract. */
.aftel-public-page :is(.aftel-btn-primary, .aftel-button, .aftel-btn:not(.secondary):not(.ghost)):hover {
  color: var(--aftel-color-navy);
  background: var(--aftel-color-green-hover);
  box-shadow: 0 14px 30px rgba(121, 200, 67, .3);
}
.aftel-public-page :is(.aftel-btn-primary, .aftel-button, .aftel-btn:not(.secondary):not(.ghost)):active {
  transform: translateY(0);
  box-shadow: 0 7px 16px rgba(18, 50, 82, .14);
}
.aftel-public-page :is(.aftel-btn-secondary, .aftel-button-secondary, .aftel-card-link, .aftel-btn.secondary, .aftel-btn.ghost):hover {
  color: var(--aftel-color-navy);
  background: var(--aftel-color-blue-mist);
  border-color: rgba(45, 111, 171, .5);
}
.aftel-public-page :is(.aftel-btn-primary, .aftel-btn-secondary, .aftel-button, .aftel-button-secondary, .aftel-card-link, .aftel-btn):active {
  transform: translateY(0);
  box-shadow: 0 7px 16px rgba(18, 50, 82, .14);
}

/* Coverage search/filter states remain entirely client-side and zero-write. */
.aftel-coverage-modern .aftel-filter-chip[aria-pressed="true"] {
  border-color: var(--aftel-color-green);
  color: var(--aftel-color-navy);
  background: var(--aftel-color-mint);
  box-shadow: 0 0 0 2px rgba(121, 200, 67, .14);
}
.aftel-coverage-modern .aftel-no-results[role="status"] { color: var(--aftel-color-ink); }
.aftel-coverage-modern .aftel-search-card input::placeholder { color: #6a7b8c; opacity: 1; }
.aftel-coverage-modern .aftel-search-card input:focus {
  border-color: var(--aftel-color-blue);
  outline: 0;
  box-shadow: 0 0 0 3px rgba(45, 111, 171, .14);
}

/* Native support disclosures keep a clear keyboard/open state. */
.aftel-support-modern .aftel-faq details[open] {
  border-color: rgba(45, 111, 171, .45);
  box-shadow: 0 10px 26px rgba(18, 50, 82, .08);
}
.aftel-support-modern .aftel-faq summary::-webkit-details-marker { display: none; }
.aftel-support-modern .aftel-faq summary::marker { content: ""; }

/* Contact Form 7: presentation only; names, hidden inputs and endpoints untouched. */
.aftel-page-modern .wpcf7 :is(input, select, textarea, button) { font: inherit; }
.aftel-page-modern .wpcf7 :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]), select, textarea) {
  color: var(--aftel-color-ink);
  caret-color: var(--aftel-color-blue);
  transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.aftel-page-modern .wpcf7 :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea):focus {
  border-color: var(--aftel-color-blue);
  outline: 0;
  box-shadow: 0 0 0 3px rgba(45, 111, 171, .14);
}
.aftel-page-modern .wpcf7 :is(input, textarea)::placeholder { color: #6a7b8c; opacity: 1; }
.aftel-page-modern .wpcf7 :is(input[type="checkbox"], input[type="radio"]) {
  width: 20px;
  min-width: 20px;
  height: 20px;
  min-height: 20px;
  margin: 0 8px 0 0;
  accent-color: var(--aftel-color-green-deep);
  vertical-align: text-bottom;
}
body.aftel-marketing-route .aftel-public-page.aftel-page-modern .wpcf7 :is(input, select, textarea).wpcf7-not-valid,
body.aftel-marketing-route .aftel-public-page.aftel-page-modern .wpcf7 :is(input, select, textarea)[aria-invalid="true"] {
  border-color: var(--aftel-color-danger);
  background: #fffafa;
  box-shadow: 0 0 0 3px rgba(163, 41, 41, .1);
}
.aftel-page-modern .wpcf7 :is(input, select, textarea, button):disabled,
.aftel-page-modern .wpcf7 [aria-disabled="true"] {
  opacity: .58;
  cursor: not-allowed;
  box-shadow: none;
}
.aftel-page-modern .wpcf7 input[type="submit"] {
  transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
@media (hover: hover) {
  .aftel-page-modern .wpcf7 input[type="submit"]:not(:disabled):hover {
    border-color: var(--aftel-color-green-hover);
    background: var(--aftel-color-green-hover);
    transform: translateY(-1px);
  }
}
.aftel-page-modern .wpcf7 .wpcf7-not-valid-tip {
  display: block;
  line-height: 1.45;
}
.aftel-page-modern .wpcf7 form.invalid .wpcf7-response-output,
.aftel-page-modern .wpcf7 form.unaccepted .wpcf7-response-output,
.aftel-page-modern .wpcf7 form.payment-required .wpcf7-response-output {
  border-color: #ebc3c3;
  border-left-color: var(--aftel-color-danger);
  color: #653434;
  background: var(--aftel-color-danger-soft);
}
.aftel-page-modern .wpcf7 form.sent .wpcf7-response-output {
  border-color: #b9dfa6;
  border-left-color: var(--aftel-color-green-deep);
  color: #285f2a;
  background: var(--aftel-color-mint);
}

@media (max-width: 600px) {
  .aftel-page-modern .wpcf7 input[type="submit"] { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .aftel-page-modern :is(.aftel-btn-primary, .aftel-btn-secondary, .aftel-card-link),
  .aftel-coverage-modern :is(.aftel-button, .aftel-filter-chip),
  .aftel-support-modern :is(.aftel-btn, .aftel-ont-card, .aftel-faq summary),
  .aftel-page-modern .wpcf7 :is(input, select, textarea, button) {
    transition-duration: .001ms;
  }
}
