/*
Theme Name: Agentic Studio - Mira
Theme URI: https://register.acensa.com.au/
Author: Agentic Studio
Description: The Agentic Studio hybrid WordPress theme for accessible broadband registration experiences, with full support for traditional WordPress content and modern block editing.
Version: 0.1.1.13
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: mira
Tags: custom-logo, custom-menu, featured-images, threaded-comments, translation-ready, wide-blocks, block-styles, accessibility-ready, blog, one-column, two-columns
*/

:root {
  --mira-navy: #24152d;
  --mira-indigo: #4b2658;
  --mira-teal: #0a7586;
  --mira-aqua: #20a7c3;
  --mira-coral: #824091;
  --mira-accent-hover: #9a53aa;
  --mira-button-text: #fff;
  --mira-link: #087587;
  --mira-hero-accent: #67d8e8;
  --mira-hero-copy: #ede8ef;
  --mira-overlay-rgb: 31, 18, 40;
  --mira-node-rgb: 83, 209, 226;
  --mira-pulse-rgb: 178, 92, 192;
  --mira-ink: #3f4143;
  --mira-muted: #68686a;
  --mira-line: #e3dfe6;
  --mira-soft: #f6f3f7;
  --mira-white: #fff;
  --mira-radius: 1rem;
  --mira-shadow: 0 18px 50px rgba(36, 21, 45, .12);
  --mira-content: 760px;
  --mira-wide: 1180px;
  --mira-font-sans: "Mira Roboto", Roboto, "Helvetica Neue", Arial, sans-serif;
}

@font-face {
  font-family: "Mira Roboto";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("assets/fonts/Roboto-Variable.ttf") format("truetype-variations");
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
body {
  margin: 0;
  background: var(--mira-white);
  color: var(--mira-ink);
  font-family: var(--mira-font-sans);
  font-size: 1rem;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; }
a { color: var(--mira-link); text-underline-offset: .18em; }
a:hover { color: var(--mira-navy); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid var(--mira-coral);
  outline-offset: 3px;
}
.screen-reader-text {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.screen-reader-text:focus { top: .75rem; left: .75rem; z-index: 100000; width: auto; height: auto; clip: auto; padding: .75rem 1rem; background: #fff; color: #000; }
.mira-shell { width: min(calc(100% - 2rem), var(--mira-wide)); margin-inline: auto; }
.site-header { position: relative; z-index: 20; border-bottom: 1px solid var(--mira-line); background: rgba(255, 255, 255, .96); }
.site-header__inner { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.site-branding { display: flex; align-items: center; min-width: 0; }
.custom-logo-link { display: inline-flex; margin-right: .8rem; }
.custom-logo { max-height: 46px; width: auto; }
.mira-default-logo { max-height: 50px; }
.site-title { margin: 0; color: var(--mira-navy); font-size: 1.35rem; font-weight: 760; line-height: 1.1; letter-spacing: -.025em; }
.site-title a { color: inherit; text-decoration: none; }
.site-description { margin: .25rem 0 0; color: var(--mira-muted); font-size: .78rem; line-height: 1.25; }
.primary-navigation ul, .footer-navigation ul { margin: 0; padding: 0; list-style: none; }
.primary-navigation > div > ul { display: flex; align-items: center; gap: 1.75rem; }
.primary-navigation a { color: var(--mira-ink); font-size: .93rem; font-weight: 650; text-decoration: none; }
.primary-navigation a:hover, .primary-navigation .current-menu-item > a { color: var(--mira-teal); }
.menu-toggle { display: none; border: 0; border-radius: .7rem; padding: .65rem .8rem; background: var(--mira-soft); color: var(--mira-navy); font: inherit; font-weight: 700; cursor: pointer; }
.site-main { min-height: 55vh; }
.mira-hero {
  --mira-hero-image: linear-gradient(135deg, var(--mira-navy), var(--mira-teal));
  --mira-overlay-strength: .62;
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  min-height: clamp(560px, 72vh, 760px);
  overflow: hidden;
  background-color: var(--mira-navy);
  background-image: var(--mira-hero-image);
  background-position: center;
  background-size: cover;
  color: var(--mira-white);
}
.mira-hero--signal { --mira-hero-image: url("assets/images/hero-signal-horizon.webp"); }
.mira-hero--aurora { --mira-hero-image: url("assets/images/hero-aurora-current.webp"); }
.mira-hero--geometry { --mira-hero-image: url("assets/images/hero-connected-geometry.webp"); }
.mira-hero--isp { --mira-hero-image: url("assets/images/hero-isp-network.webp"); }
.mira-hero::before {
  position: absolute;
  z-index: 0;
  inset: 0;
  background: linear-gradient(90deg, rgba(var(--mira-overlay-rgb), var(--mira-overlay-strength)) 0%, rgba(var(--mira-overlay-rgb), .45) 42%, rgba(var(--mira-overlay-rgb), .08) 78%);
  content: "";
}
.mira-hero--isp::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 81% 37%, rgba(var(--mira-node-rgb), .24) 0 2px, transparent 11px),
    radial-gradient(circle at 68% 61%, rgba(var(--mira-pulse-rgb), .2) 0 2px, transparent 13px),
    radial-gradient(circle at 91% 69%, rgba(var(--mira-node-rgb), .18) 0 2px, transparent 10px);
  content: "";
  animation: mira-network-breathe 6s ease-in-out infinite alternate;
}
.mira-network-canvas { position: absolute; z-index: 1; inset: 0; display: block; width: 100%; height: 100%; pointer-events: none; opacity: .58; }
.mira-hero--visual-map .mira-network-canvas { opacity: .82; }
.mira-hero--visual-cinematic .mira-network-canvas { opacity: .74; }
.mira-hero-brand-reveal { position: absolute; z-index: 2; top: 50%; right: clamp(2rem, 8vw, 9rem); width: clamp(300px, 31vw, 520px); pointer-events: none; opacity: 0; transform: translateY(-50%); animation: mira-brand-signature 4.8s cubic-bezier(.22, .8, .22, 1) 1 both; }
.mira-hero-brand-reveal::after { position: absolute; inset: -18% auto -18% -30%; width: 28%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .72), transparent); content: ""; filter: blur(7px); transform: skewX(-18deg); animation: mira-brand-light-sweep 1.5s ease 1.15s 1 both; }
.mira-hero-brand-reveal img { display: block; width: 100%; max-height: 180px; object-fit: contain; filter: drop-shadow(0 0 22px rgba(var(--mira-node-rgb), .28)); }
.mira-hero__content { position: relative; z-index: 3; width: min(100%, 680px); padding-block: clamp(5rem, 10vw, 8rem); }
.mira-hero__eyebrow { margin: 0 0 1rem; color: var(--mira-hero-accent); font-size: .78rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.mira-hero__title { margin: 0; max-width: 650px; color: #fff; font-size: clamp(3rem, 7vw, 6.2rem); font-weight: 380; line-height: .98; letter-spacing: -.055em; text-wrap: balance; }
.mira-hero__description { max-width: 620px; margin: 1.5rem 0 0; color: var(--mira-hero-copy); font-size: clamp(1.08rem, 2vw, 1.3rem); line-height: 1.6; }
.mira-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-top: 2rem; }
.mira-button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; border-radius: 999px; padding: .75rem 1.5rem; font-weight: 760; text-decoration: none; }
.mira-button--primary { background: var(--mira-coral); color: var(--mira-button-text); box-shadow: 0 12px 28px rgba(0, 0, 0, .18); }
.mira-button--primary:hover { background: var(--mira-accent-hover); color: var(--mira-button-text); }
.mira-button--secondary { color: #fff; }
.mira-button--secondary:hover { color: var(--mira-hero-accent); }
.mira-network-partners { overflow: hidden; border-bottom: 1px solid var(--mira-line); background: var(--mira-soft); }
.mira-network-partners__inner { min-height: 118px; display: flex; align-items: center; justify-content: space-between; gap: 2.5rem; }
.mira-network-partners__label { flex: 0 0 190px; margin: 0; color: var(--mira-muted); font-size: .76rem; font-weight: 800; letter-spacing: .11em; line-height: 1.45; text-transform: uppercase; }
.mira-network-partners__logos { display: flex; flex: 1 1 auto; min-width: 0; opacity: .68; animation: mira-logo-reveal .8s ease-out both; }
.mira-network-partners__logos img { display: block; width: auto; max-width: var(--mira-logo-width, 145px); max-height: 34px; object-fit: contain; filter: brightness(0); }
.mira-network-logo--custom { width: auto; max-width: 100%; max-height: 64px; }
.mira-carrier-viewport { --mira-carrier-gap: clamp(1.25rem, 2.4vw, 2rem); width: 100%; overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); }
.mira-carrier-track { display: flex; width: max-content; animation: mira-carrier-scroll 30s linear infinite; will-change: transform; }
.mira-carrier-set { display: flex; align-items: center; gap: var(--mira-carrier-gap); padding-right: var(--mira-carrier-gap); }
.mira-carrier-item { display: flex; flex: 0 0 clamp(160px, 17vw, 190px); height: 72px; align-items: center; justify-content: center; }
.mira-network-logo--lynham { --mira-logo-width: 110px; }
.mira-network-logo--redtrain { --mira-logo-width: 125px; }
.mira-network-logo--nbn { --mira-logo-width: 110px; }
.mira-network-logo--dgtek { --mira-logo-width: 75px; }
.mira-network-wordmark { display: inline-flex; align-items: center; flex-direction: column; justify-content: center; color: var(--mira-ink); line-height: .82; text-align: center; }
.mira-network-wordmark strong { font-size: 1.42rem; font-weight: 820; letter-spacing: -.055em; text-transform: lowercase; }
.mira-network-wordmark small { margin-top: .32rem; font-size: .43rem; font-weight: 760; letter-spacing: .16em; text-transform: uppercase; }
.mira-network-logo--opticomm { --mira-logo-width: 110px; }
.mira-network-logo--xyz { --mira-logo-width: 105px; }
.mira-network-partners__logos img.mira-network-logo--opticomm { max-height: 55px; filter: grayscale(1) contrast(1.2); }
.mira-carrier-viewport:is(:hover, :focus-within) .mira-carrier-track { animation-play-state: paused; }
.mira-landing-content:empty { display: none; }
.mira-page-header { padding: clamp(3rem, 7vw, 6rem) 0 2rem; background: linear-gradient(145deg, var(--mira-soft), #fff 70%); }
.mira-page-header h1 { max-width: 850px; margin: 0; color: var(--mira-navy); font-size: clamp(2.25rem, 6vw, 4.75rem); line-height: 1.04; letter-spacing: -.055em; }
.mira-eyebrow { margin: 0 0 .75rem; color: var(--mira-teal); font-size: .78rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.mira-content { width: min(calc(100% - 2rem), var(--mira-content)); margin: 0 auto; padding: clamp(2.5rem, 6vw, 5rem) 0; }
.mira-content--wide { width: min(calc(100% - 2rem), var(--mira-wide)); }
.entry-content > * { margin-block: 0 1.4em; }
.entry-content > :where(.alignwide) { width: min(var(--mira-wide), calc(100vw - 2rem)); max-width: none; margin-left: 50%; transform: translateX(-50%); }
.entry-content > :where(.alignfull) { width: 100vw; max-width: none; margin-left: 50%; transform: translateX(-50%); }
.entry-content h2, .entry-content h3, .entry-content h4 { color: var(--mira-navy); line-height: 1.2; letter-spacing: -.025em; }
.entry-content h2 { margin-top: 1.8em; font-size: clamp(1.7rem, 3vw, 2.35rem); }
.entry-content blockquote { margin-inline: 0; padding: .4rem 0 .4rem 1.4rem; border-left: 4px solid var(--mira-aqua); color: var(--mira-indigo); font-size: 1.15rem; }
.entry-meta, .entry-footer { color: var(--mira-muted); font-size: .9rem; }
.post-navigation, .posts-navigation, .comments-area { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--mira-line); }
.mira-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: clamp(2rem, 5vw, 5rem); }
.widget { margin-bottom: 2rem; }
.widget-title { color: var(--mira-navy); font-size: 1rem; }
.widget ul { padding-left: 1.1rem; }
.site-footer { background: var(--mira-navy); color: #dce5ee; }
.site-footer a { color: #fff; text-decoration-color: transparent; text-underline-offset: .22em; }
.site-footer a:hover, .site-footer a:focus-visible { color: var(--mira-hero-accent); text-decoration-color: currentColor; }
.mira-footer-cta { border-bottom: 1px solid rgba(255, 255, 255, .13); background: linear-gradient(120deg, var(--mira-indigo), var(--mira-navy)); }
.mira-footer-cta__inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-block: 2rem; }
.mira-footer-cta__eyebrow { margin: 0 0 .35rem; color: var(--mira-hero-accent); font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.mira-footer-cta h2 { margin: 0; color: #fff; font-size: clamp(1.55rem, 3vw, 2.2rem); line-height: 1.1; letter-spacing: -.035em; }
.mira-footer-cta .mira-button { flex: 0 0 auto; }
.site-footer .mira-button--primary:hover, .site-footer .mira-button--primary:focus-visible { color: var(--mira-button-text); text-decoration-color: transparent; }
.mira-footer-main { position: relative; isolation: isolate; overflow: hidden; padding: clamp(3rem, 6vw, 4.5rem) 0 1.5rem; }
.mira-footer-network-canvas { position: absolute; z-index: 0; inset: 0; display: block; width: 100%; height: 100%; pointer-events: none; opacity: .22; }
.mira-footer-main > .mira-shell { position: relative; z-index: 1; }
.mira-footer-grid { display: grid; grid-template-columns: minmax(250px, 1.3fr) repeat(2, minmax(180px, 1fr)); gap: clamp(2rem, 5vw, 5rem); }
.mira-footer-grid h2 { margin: 0 0 1.2rem; color: #fff; font-size: .92rem; letter-spacing: .08em; text-transform: uppercase; }
.mira-footer-blurb { max-width: 34ch; margin: 0 0 1.35rem; color: #bac9d7; line-height: 1.65; }
.mira-footer-contact { font-style: normal; }
.mira-footer-contact ul, .mira-footer-column ul, .footer-navigation ul { margin: 0; padding: 0; list-style: none; }
.mira-footer-contact li { display: grid; grid-template-columns: 2.65rem minmax(0, 1fr); gap: .35rem; margin-bottom: .65rem; line-height: 1.5; }
.mira-footer-contact li span { color: var(--mira-hero-accent); font-size: .76rem; font-weight: 800; letter-spacing: .06em; }
.mira-footer-column li { margin-bottom: .72rem; }
.mira-footer-column a { color: #dce5ee; }
.site-footer__inner { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 2rem; margin-top: 3rem; padding-top: 1.35rem; border-top: 1px solid rgba(255, 255, 255, .13); }
.site-info { margin: 0; color: #9eb0c0; font-size: .85rem; }
.footer-navigation ul { display: flex; flex-wrap: wrap; gap: .8rem 1.5rem; }
.footer-widgets { margin-bottom: 3rem; padding-bottom: 2rem; border-bottom: 1px solid rgba(255, 255, 255, .13); }
.footer-widgets .widget-title { color: #fff; }
.mira-registration .site-header { box-shadow: 0 8px 28px rgba(7, 28, 51, .06); }
.mira-registration .mira-content { width: min(calc(100% - 2rem), 1040px); }
.mira-registration-intro { max-width: 720px; margin-bottom: 2rem; }
.mira-registration-intro h1 { margin: 0 0 .65rem; color: var(--mira-navy); font-size: clamp(2.1rem, 5vw, 4rem); line-height: 1.05; letter-spacing: -.045em; }
.mira-not-found { text-align: center; padding-block: clamp(5rem, 12vw, 9rem); }
.mira-not-found .error-code { margin: 0; color: var(--mira-aqua); font-size: clamp(5rem, 18vw, 11rem); font-weight: 800; line-height: .9; }

@keyframes mira-network-breathe {
  from { opacity: .42; transform: scale(.995); }
  to { opacity: .9; transform: scale(1.012); }
}
@keyframes mira-brand-signature {
  0% { opacity: 0; clip-path: inset(0 100% 0 0); filter: blur(12px); transform: translateY(-50%) scale(.96); }
  22% { opacity: .88; }
  46%, 72% { opacity: .88; clip-path: inset(0); filter: blur(0); transform: translateY(-50%) scale(1); }
  100% { opacity: 0; clip-path: inset(0); filter: blur(3px); transform: translateY(-50%) scale(1.025); }
}
@keyframes mira-brand-light-sweep {
  0% { left: -30%; opacity: 0; }
  18% { opacity: .75; }
  100% { left: 112%; opacity: 0; }
}
@keyframes mira-logo-reveal {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: .68; transform: translateY(0); }
}
@keyframes mira-carrier-scroll {
  to { transform: translateX(-50%); }
}

@media (max-width: 800px) {
  .menu-toggle { display: inline-flex; }
  .primary-navigation { display: none; position: absolute; top: 100%; left: 0; right: 0; padding: 1rem; border-bottom: 1px solid var(--mira-line); background: #fff; box-shadow: var(--mira-shadow); }
  .primary-navigation.is-open { display: block; }
  .primary-navigation > div > ul { align-items: stretch; flex-direction: column; gap: 0; }
  .primary-navigation a { display: block; padding: .75rem; }
  .mira-grid, .site-footer__inner { grid-template-columns: 1fr; }
  .mira-footer-cta__inner { align-items: flex-start; flex-direction: column; }
  .mira-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mira-footer-brand { grid-column: 1 / -1; }
  .site-description { display: none; }
  .mira-hero { min-height: 600px; background-position: 62% center; }
  .mira-hero-brand-reveal { display: none; }
  .mira-hero::before { background: rgba(var(--mira-overlay-rgb), var(--mira-overlay-strength)); }
  .mira-hero__content { padding-block: 5rem; }
  .mira-network-partners__inner { align-items: flex-start; flex-direction: column; gap: 1rem; padding-block: 1.5rem; }
  .mira-network-partners__label { flex-basis: auto; }
  .mira-network-partners__logos { width: 100%; }
  .mira-carrier-item { flex-basis: calc((100vw - 5rem) / 3); }
  .mira-network-partners__logos img { max-width: min(var(--mira-logo-width, 100px), 82%); max-height: 32px; }
}

@media (max-width: 560px) {
  .mira-footer-grid { grid-template-columns: 1fr; }
  .mira-footer-brand { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .mira-hero-brand-reveal, .mira-footer-network-canvas { display: none; }
  .mira-carrier-viewport { overflow-x: auto; mask-image: none; }
  .mira-carrier-track { animation: none; }
  .mira-carrier-set--duplicate { display: none; }
}

@media print {
  .site-header, .site-footer, .sidebar, .post-navigation, .comments-area { display: none; }
  body { color: #000; }
  .mira-content { width: 100%; padding: 0; }
}
