/* KernWi-Fi Website V4 - NBN Services preview */
:root{--bg:#06111f;--deep:#030914;--panel:rgba(7,20,37,.88);--line:rgba(129,184,255,.16);--line2:rgba(118,209,255,.28);--text:#f4f8ff;--muted:#a4b8d0;--blue:#29a8ff;--blue2:#76d1ff;--green:#40d08a;--shadow:0 24px 64px rgba(0,0,0,.34);--radius:22px;--content:1240px}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--deep)}body{margin:0;color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:linear-gradient(145deg,var(--deep),var(--bg) 52%,#092039)}a{color:inherit;text-decoration:none}.site-shell{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;padding:24px 18px;background:linear-gradient(180deg,rgba(5,15,29,.97),rgba(6,20,37,.93));border-right:1px solid var(--line);display:flex;flex-direction:column;gap:20px;z-index:10}.brand-final{padding:6px 6px 20px;border-bottom:1px solid var(--line)}.brand-final-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.brand-final-logo{display:block;width:190px;max-width:100%;height:auto}.brand-final-caption{padding-left:2px;color:rgba(190,215,245,.84);font-size:.72rem;font-weight:700;letter-spacing:.04em}.sidebar-home-link{margin-bottom:4px}.nav-group{display:grid;gap:7px}.nav-heading{padding:0 8px 3px;color:#6f829c;font-size:.66rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.nav-link{min-height:36px;padding:8px 9px;border-radius:12px;display:flex;align-items:center;gap:10px;color:#dceaff;font-size:.86rem;font-weight:600;transition:.16s ease}.nav-link:hover,.nav-link.active{color:#fff;background:linear-gradient(90deg,rgba(41,168,255,.22),rgba(41,168,255,.07));transform:translateX(2px)}.nav-link.active{box-shadow:inset 3px 0 0 var(--blue2)}.nav-svg{width:18px;height:18px;flex:0 0 18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.sidebar-spacer{flex:1}.main{min-width:0;overflow:hidden}
.nbn-hero{position:relative;min-height:620px;padding:clamp(52px,7vw,100px) clamp(28px,5.5vw,86px);display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,390px);align-items:center;gap:clamp(34px,5vw,76px);overflow:hidden;border-bottom:1px solid var(--line);background:radial-gradient(circle at 78% 24%,rgba(41,168,255,.23),transparent 24%),linear-gradient(100deg,rgba(2,8,16,.97),rgba(3,12,23,.87) 40%,rgba(5,24,43,.76) 72%,rgba(3,11,21,.92))}.nbn-hero:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(118,209,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(118,209,255,.025) 1px,transparent 1px);background-size:46px 46px}.eyebrow,.kicker{display:inline-flex;align-items:center;gap:9px;color:#d9f3ff;font-size:.74rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.eyebrow{position:relative;margin-bottom:20px;padding:9px 13px;border:1px solid rgba(118,209,255,.2);border-radius:999px;background:rgba(7,24,43,.64)}.eyebrow:before,.kicker:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--blue2);box-shadow:0 0 15px rgba(118,209,255,.75)}.nbn-hero h1{position:relative;margin:0;max-width:850px;color:#fff;font-size:clamp(3.2rem,6.4vw,7.2rem);line-height:.94;font-weight:850;letter-spacing:-.065em}.nbn-hero-lead{position:relative;margin:24px 0 0;max-width:720px;color:var(--muted);font-size:clamp(1rem,1.3vw,1.17rem);line-height:1.72}.hero-actions,.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.button{min-height:48px;padding:0 20px;border-radius:999px;border:1px solid rgba(255,255,255,.14);display:inline-flex;align-items:center;justify-content:center;color:#edf8ff;background:rgba(6,21,38,.76);font-size:.88rem;font-weight:780}.button.primary{color:#041725;border-color:transparent;background:linear-gradient(135deg,#93e5ff,#29a8ff)}.availability-card{position:relative;padding:28px;border:1px solid var(--line2);border-radius:26px;background:linear-gradient(145deg,rgba(11,35,60,.93),rgba(5,18,33,.88));box-shadow:var(--shadow)}.availability-card h2{margin:10px 0 12px;font-size:2rem;letter-spacing:-.04em}.availability-card p{color:var(--muted);line-height:1.65}.hero-note{grid-column:1/-1;margin:0;color:#7f94ad;font-size:.76rem;line-height:1.5}
.section,.contact{width:min(calc(100% - clamp(40px,8vw,144px)),var(--content));margin-inline:auto}.section{padding-block:clamp(64px,8vw,112px);border-bottom:1px solid var(--line)}.heading{max-width:790px;margin-bottom:clamp(30px,4vw,52px)}.kicker{margin-bottom:14px;color:var(--blue2)}.section h2,.contact h2{margin:0;color:#fff;font-size:clamp(2rem,4vw,4.15rem);line-height:1;font-weight:820;letter-spacing:-.055em}.section p,.contact p{color:var(--muted)}.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.how-card,.path-card,.setup-card,.tech-card{padding:26px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,rgba(11,31,53,.82),rgba(5,17,31,.86))}.number{display:block;margin-bottom:30px;color:var(--blue2);font-size:.72rem;font-weight:800;letter-spacing:.14em}.how-card h3,.path-card h3,.setup-card h3,.tech-card h3{margin:0;color:#fff}.how-card p,.path-card p,.setup-card p,.tech-card p{line-height:1.62}.availability{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(38px,7vw,96px);align-items:start}.check-card{padding:28px;border:1px solid var(--line2);border-radius:var(--radius);background:rgba(7,24,43,.72)}.check-card ul,.path-card ul{margin:18px 0 0;padding:0;list-style:none;display:grid;gap:10px}.check-card li,.path-card li{position:relative;padding-left:18px;color:#b7c9dd;font-size:.84rem;line-height:1.45}.check-card li:before,.path-card li:before{content:"";position:absolute;left:0;top:.55em;width:6px;height:6px;border-radius:50%;background:var(--blue)}.path-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.path-card{display:flex;flex-direction:column;min-height:390px}.path-card .button{margin-top:auto}.path-label{width:max-content;margin-bottom:22px;padding:7px 10px;border-radius:999px;color:#d9f3ff;background:rgba(41,168,255,.1);font-size:.7rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.high-speed-note{margin-top:18px;padding:15px 18px;border-left:3px solid var(--blue2);background:rgba(7,22,39,.46);color:#9fb4cb;font-size:.8rem;line-height:1.55}.setup-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(38px,7vw,96px)}.setup-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.setup-card:last-child{grid-column:1/-1}.tech-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.performance{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(38px,7vw,96px)}.factor-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.factor{padding:15px;border:1px solid var(--line);border-radius:14px;color:#c0d1e3;background:rgba(7,22,39,.5);font-size:.82rem}.process{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.process li{min-height:230px;padding:26px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(7,22,39,.4)}.process p{font-size:.84rem;line-height:1.58}.contact{margin-block:clamp(70px,9vw,124px);padding:clamp(32px,5vw,58px);display:grid;grid-template-columns:1fr auto minmax(220px,.45fr);align-items:center;gap:clamp(28px,5vw,66px);border:1px solid var(--line2);border-radius:26px;background:linear-gradient(135deg,rgba(13,41,70,.92),rgba(5,18,33,.94));box-shadow:var(--shadow)}.contact-actions{display:grid;gap:10px}.contact-details{padding-left:26px;border-left:1px solid var(--line);font-style:normal;color:var(--muted)}.contact-details strong,.contact-details a{display:block}.footer{padding:18px clamp(28px,5.5vw,86px);display:flex;flex-wrap:wrap;justify-content:center;gap:12px;border-top:1px solid var(--line);color:var(--muted);background:rgba(3,11,21,.86);font-size:.72rem}
@media(max-width:1120px){.path-grid,.tech-grid{grid-template-columns:repeat(2,1fr)}.process{grid-template-columns:repeat(2,1fr)}.contact{grid-template-columns:1fr auto}.contact-details{grid-column:1/-1;padding:22px 0 0;border-left:0;border-top:1px solid var(--line)}}@media(max-width:1060px){.site-shell{grid-template-columns:1fr}.sidebar{display:none}.nbn-hero{grid-template-columns:1fr}.availability,.setup-layout,.performance{grid-template-columns:1fr}}@media(max-width:760px){.nbn-hero{padding:62px 22px 52px}.nbn-hero h1{font-size:clamp(3rem,15vw,5rem)}.section,.contact{width:calc(100% - 36px)}.section{padding-block:62px}.how-grid,.path-grid,.setup-grid,.tech-grid,.factor-grid,.process{grid-template-columns:1fr}.setup-card:last-child{grid-column:auto}.path-card{min-height:0}.contact{grid-template-columns:1fr;padding:28px 22px}.contact-details{grid-column:auto}.hero-actions,.actions{display:grid}.button{width:100%}.footer{padding-bottom:28px}.footer span{width:100%;text-align:center}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.nav-link{transition:none}}

/* ============================================================
   NBN SERVICES - REPRESENTATIVE CONNECTIVITY HERO
   The visual is representative and does not depict NBN
   infrastructure or a KernWi-Fi facility.
   ============================================================ */

.nbn-hero {
  grid-template-columns:
    minmax(0, 1fr)
    minmax(290px, 390px);

  background:
    linear-gradient(
      90deg,
      rgba(2, 8, 18, 0.98) 0%,
      rgba(3, 12, 28, 0.94) 31%,
      rgba(6, 24, 55, 0.72) 56%,
      rgba(4, 15, 38, 0.36) 100%
    ),
    image-set(
      url("/assets/images/nbn-connectivity-hero.webp")
        type("image/webp"),
      url("/assets/images/nbn-connectivity-hero.jpg")
        type("image/jpeg")
    )
    center center / cover no-repeat;
}

.nbn-hero::before {
  opacity: 0.18;
}

.nbn-hero-content {
  position: relative;
  z-index: 2;
}

.nbn-availability-card {
  position: relative;
  z-index: 2;
  background:
    linear-gradient(
      145deg,
      rgba(8, 25, 51, 0.97),
      rgba(3, 13, 29, 0.94)
    );
  border-color: rgba(118, 209, 255, 0.36);
  backdrop-filter: blur(18px);
}

@media (max-width: 1060px) {
  .nbn-hero {
    grid-template-columns: 1fr;
    background-position: 48% center;
  }
}

@media (max-width: 760px) {
  .nbn-hero {
    min-height: 680px;

    background:
      linear-gradient(
        180deg,
        rgba(2, 8, 18, 0.97) 0%,
        rgba(3, 12, 28, 0.91) 56%,
        rgba(3, 10, 24, 0.79) 100%
      ),
      image-set(
        url("/assets/images/nbn-connectivity-hero.webp")
          type("image/webp"),
        url("/assets/images/nbn-connectivity-hero.jpg")
          type("image/jpeg")
      )
      51% center / cover no-repeat;
  }
}

/* ============================================================
   NBN API-READY ADDRESS FIELD
   Static until the authorised checking API is connected.
   ============================================================ */

.nbn-address-check {
  position* relative;
  z-index: 2;
  width: *in(760px, 100%);
  margin-top: 28p*;
}

.nbn-address-control {
  disp*ay: grid;
  grid-template-columns:*minmax(280px, 1fr) auto;
  gap: 12*x;
  align-items: stretch;
}

.nbn*address-input {
  min-width: 0;
  *in-height: 52px;
  padding: 0 20px*
  color: #f4f8ff;
  font: inherit*
  font-size: 0.94rem;
  border: 1*x solid rgba(118, 209, 255, 0.34);*  border-radius: 999px;
  outline:*none;
  background: rgba(4, 16, 34* 0.9);
  box-shadow:
    inset 0 1*x 0 rgba(255, 255, 255, 0.05),
   *0 16px 35px rgba(0, 0, 0, 0.22);
 *backdrop-filter: blur(14px);
}

.n*n-address-input::placeholder {
  c*lor: rgba(184, 207, 232, 0.7);
}

*nbn-address-input:hover {
  border*color: rgba(118, 209, 255, 0.52);
*

.nbn-address-input:focus {
  bor*er-color: rgba(118, 209, 255, 0.88*;
  box-shadow:
    0 0 0 4px rgba*41, 168, *55* 0.16),
    * 18px 38px rgba(0, 0, 0, 0.28);
}
*.nbn-address-submit {
  min*width: 190px;
  min*height: 52px;
  white-space: nowra*;
}

.nbn-address-submit:disabled *
  cursor: not-allowed;
  opacity* 0.66*
}



*nbn-address-secondary .button {
  *in-height: 42px;
  padding-inline:*17px;
  font-size: 0.82rem;
}

.nb*-address-help {
  margin: 12px 0 0*
  max-width: 680px;
  color* rgba(179, 200, 224, 0.78);
  font*size: 0.76rem;
  line-height: 1.5;*}

.nbn-visually-hidden {
  positi*n: absolute;
  width: 1px;
  heigh** 1px;
* padding: 0;
  margin* -1px;
  overflow: hidden;
  white*space: nowrap;
  border**0;
  clip: rect(0, 0, 0, 0);
  cli*-path: inset(50%);
}

@media (max-width: 760px) {
  .nbn-address-cont*ol {
    grid-template-columns: 1f*;
  }

  .nbn-address-input,
  .nb*-address-submit {
    width: 100%;*  }

  

  .nbn-addres*-secondary .button {
    width: 10*%;
  }
}

/* NBN Rev 4.2 - polished API-ready address control */
.nbn-address-check {
  position: relative;
  z-index: 3;
  width: min(920px, 100%);
  margin-top: 30px;
}

.nbn-address-control {
  display: grid;
  grid-template-columns: minmax(420px, 1fr) 205px;
  gap: 12px;
  width: 100%;
  align-items: stretch;
}

.nbn-address-input {
  appearance: none;
  width: 100%;
  min-width: 0;
  min-height: 54px;
  padding: 0 22px;
  color: #f4f8ff;
  font: inherit;
  font-size: 1rem;
  line-height: 1;
  border: 1px solid rgba(118, 209, 255, 0.42);
  border-radius: 999px;
  outline: none;
  background: linear-gradient(180deg, rgba(10, 31, 58, 0.96), rgba(4, 18, 38, 0.96));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 18px 42px rgba(0, 0, 0, 0.28);
  transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.nbn-address-input::placeholder {
  color: rgba(203, 221, 241, 0.68);
}

.nbn-address-input:hover {
  border-color: rgba(118, 209, 255, 0.68);
}

.nbn-address-input:focus {
  border-color: #76d1ff;
  background: rgba(6, 25, 50, 0.98);
  box-shadow: 0 0 0 4px rgba(41, 168, 255, 0.18), 0 20px 48px rgba(0, 0, 0, 0.34);
}

.nbn-address-submit {
  width: 205px;
  min-height: 54px;
  padding-inline: 22px;
  white-space: nowrap;
  font-size: 0.92rem;
  font-weight: 800;
  box-shadow: 0 16px 34px rgba(18, 147, 231, 0.24);
}

.nbn-address-submit:disabled {
  color: #041725;
  cursor: not-allowed;
  opacity: 0.78;
  filter: saturate(0.82);
}





.nbn-address-help {
  margin: 13px 0 0;
  color: rgba(194, 214, 236, 0.78);
  font-size: 0.78rem;
  line-height: 1.5;
}

.nbn-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
}

@media (max-width: 900px) {
  .nbn-address-control {
    grid-template-columns: minmax(0, 1fr) 190px;
  }

  .nbn-address-submit {
    width: 190px;
  }
}

@media (max-width: 650px) {
  .nbn-address-check {
    width: 100%;
  }

  .nbn-address-control {
    grid-template-columns: 1fr;
  }

  .nbn-address-input,
  .nbn-address-submit {
    width: 100%;
  }

  

  
}

.nbn-hero > div:first-child { width: min(960px, 100%); max-width: 960px; }
