/* ============================================================
   GoTroppo — site-specific overrides
   ------------------------------------------------------------
   Enqueued at wp_enqueue_scripts priority 1000 so it prints after the
   go-troppo plugin's own late sheets (nbn-site-custom, nbn-plan-cards at
   999). Where the plugin sets a property with !important, the override
   here must match specificity and importance, which is why many rules
   carry it.

   Tokens (see DESIGN-TOKENS.md, never raw hex):
     var(--orange) var(--orange-h) var(--purple) var(--teal) var(--off)
     var(--ink) var(--bg) var(--muted) var(--line) var(--grad) var(--wrap)
   Reusable theme classes: .btn (+ .ghost .solid .sm .lg), .tile, .card,
   .chip, .wrap, .page-hero, .entry-content, .cta-band.
   ============================================================ */


/* ============================================================
   1. KADENCE BLOCKS — palette bridge
   ------------------------------------------------------------
   Page content is Kadence Blocks and resolves colour through the
   --global-palette* variables the Kadence THEME used to define. On this
   site palette3/4 are the dark navy row grounds and palette9 is white
   text, so the variables keep those roles; the light-ground and dark-text
   uses of the same slots are re-mapped per use by the class rules below.
   !important so the values survive Kadence Blocks printing its own
   fallback palette after this sheet.
   ============================================================ */
:root,
body {
  --global-palette1: var(--orange) !important;
  --global-palette2: #ffde59 !important;             /* the site's existing yellow accent */
  --global-palette3: var(--ink) !important;
  --global-palette4: var(--ink) !important;
  --global-palette5: var(--muted) !important;
  --global-palette6: rgba(255, 255, 255, .46) !important;
  --global-palette7: #14131f !important;             /* raised surface, same as theme form fields */
  --global-palette8: var(--bg) !important;
  --global-palette9: var(--off) !important;
  --global-palette9rgb: 250, 250, 250 !important;
  --global-palette10: var(--teal) !important;
  --global-palette11: #2ecc71 !important;            /* status colours, lifted for contrast */
  --global-palette12: #4d9fff !important;
  --global-palette13: #ff5757 !important;
  --global-palette14: #ff9f43 !important;
  --global-palette15: #f5a524 !important;

  --global-palette-btn: var(--ink) !important;
  --global-palette-btn-bg: var(--orange) !important;
  --global-palette-btn-hover: var(--ink) !important;
  --global-palette-btn-bg-hover: var(--orange-h) !important;
  --global-palette-btn-sec: var(--off) !important;
  --global-palette-btn-sec-bg: rgba(255, 255, 255, .10) !important;
  --global-palette-btn-sec-hover: var(--ink) !important;
  --global-palette-btn-sec-bg-hover: var(--orange) !important;

  --global-palette-highlight: var(--orange) !important;
  --global-palette-highlight-alt: var(--off) !important;
  --global-palette-highlight-alt2: var(--ink) !important;

  --global-body-font-family: Montserrat, sans-serif !important;
  --global-fallback-font: sans-serif;
  --global-display-fallback-font: sans-serif;
  --global-heading-font-family: Montserrat, var(--global-fallback-font) !important;
  --global-primary-nav-font-family: var(--global-heading-font-family, inherit);

  --global-content-width: var(--wrap) !important;
  --global-content-narrow-width: 842px;
  --global-content-wide-width: calc(var(--wrap) + 230px);
  --global-content-edge-padding: 1.5rem;
  --global-content-boxed-padding: 2rem;
  --global-calc-content-width: calc(var(--wrap) - var(--global-content-edge-padding) - var(--global-content-edge-padding));

  --global-kb-font-size-sm: clamp(0.8rem, 0.73rem + 0.217vw, 0.9rem);
  --global-kb-font-size-md: clamp(1.1rem, 0.995rem + 0.326vw, 1.25rem);
  --global-kb-font-size-lg: clamp(1.75rem, 1.576rem + 0.543vw, 2rem);
  --global-kb-font-size-xl: clamp(2.25rem, 1.728rem + 1.63vw, 3rem);
  --global-kb-font-size-xxl: clamp(2.5rem, 1.456rem + 3.26vw, 4rem);
  --global-kb-font-size-xxxl: clamp(2.75rem, 0.489rem + 7.065vw, 6rem);

  --global-vw: calc(100vw - (0.5 * var(--scrollbar-offset, 0px)));
}

/* Kadence prints per-block CSS behind id selectors, so structural overrides carry !important. */
.wp-block-kadence-rowlayout > .kt-row-layout-inner,
.wp-block-kadence-column > .kt-inside-inner-col {
  background-color: transparent !important;
}

/* Slot roles split by use: dark-text slots read light, light-ground slots sit on ink. */
.has-theme-palette-3-color,
.has-theme-palette3-color,
.has-theme-palette-4-color,
.has-theme-palette4-color {
  color: var(--off) !important;
}

:is(h1, h2, h3, h4).has-theme-palette-5-color,
:is(h1, h2, h3, h4).has-theme-palette5-color {
  color: var(--off) !important;
}

.has-theme-palette-5-color,
.has-theme-palette5-color,
.has-theme-palette-6-color,
.has-theme-palette6-color {
  color: var(--muted) !important;
}

.has-theme-palette-7-background-color,
.has-theme-palette7-background-color,
.has-theme-palette-8-background-color,
.has-theme-palette8-background-color,
.has-theme-palette-9-background-color,
.has-theme-palette9-background-color {
  background-color: var(--ink) !important;
}

/* Info boxes and accordions ship white grounds in their generated CSS. */
.kt-blocks-info-box-link-wrap {
  border: 1px solid var(--line) !important;
  border-radius: 14px !important;
  background: rgba(255, 255, 255, .04) !important;
  box-shadow: none !important;
}

.kt-blocks-info-box-link-wrap:hover {
  border-color: var(--orange) !important;
}

.kt-blocks-info-box-link-wrap .kt-infobox-textcontent :is(h1, h2, h3, h4, h5, h6),
.kt-blocks-info-box-link-wrap .kt-blocks-info-box-title {
  color: var(--off) !important;
}

.kt-blocks-info-box-link-wrap .kt-infobox-textcontent p {
  color: var(--muted) !important;
}

.kt-blocks-info-box-link-wrap .kt-blocks-info-box-media {
  border-color: var(--line) !important;
  background: rgba(255, 255, 255, .08) !important;
  color: var(--orange) !important;
}

.kt-accordion-wrap .kt-blocks-accordion-header,
.kt-accordion-wrap .kt-blocks-accordion-header:hover,
.kt-accordion-wrap .kt-blocks-accordion-header:focus,
.kt-accordion-wrap .kt-blocks-accordion-header.kt-accordion-panel-active {
  border: 1px solid var(--line) !important;
  border-radius: 12px !important;
  background: #14131f !important;
  color: var(--off) !important;
}

.kt-accordion-wrap .kt-blocks-accordion-header:hover,
.kt-accordion-wrap .kt-blocks-accordion-header.kt-accordion-panel-active {
  border-color: var(--orange) !important;
}

.kt-accordion-wrap .kt-blocks-accordion-title,
.kt-accordion-wrap .kt-blocks-accordion-icon-trigger {
  color: inherit !important;
}

.kt-accordion-wrap .kt-blocks-accordion-icon-trigger::before,
.kt-accordion-wrap .kt-blocks-accordion-icon-trigger::after {
  background: var(--off) !important;
}

.kt-accordion-wrap .kt-accordion-panel-inner {
  border: 1px solid var(--line) !important;
  border-top: 0 !important;
  border-radius: 0 0 12px 12px !important;
  background: rgba(255, 255, 255, .03) !important;
  color: var(--off) !important;
}

/* Kadence Forms fields take their ground from palette9, now the light text slot. */
.kb-field,
.kb-textarea-field,
.kb-select-field,
.kb-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.kb-form textarea,
.kb-form select {
  border: 1.5px solid var(--line) !important;
  border-radius: 10px !important;
  background: #14131f !important;
  color: var(--off) !important;
  box-shadow: none !important;
}

.kb-field::placeholder,
.kb-form input::placeholder,
.kb-form textarea::placeholder {
  color: rgba(255, 255, 255, .45) !important;
}

.kb-field:focus,
.kb-form input:focus,
.kb-form textarea:focus {
  outline: 2px solid var(--orange) !important;
  outline-offset: 3px !important;
  border-color: var(--line) !important;
}

.kb-advanced-form label,
.kb-form label,
.kb-form .kb-field-label,
.kb-form .kb-form-field-label {
  color: var(--off) !important;
}

.kb-advanced-form .kb-button,
.kb-adv-form-submit-button,
.kb-form .kb-forms-submit,
.kb-form .kb-button,
.kb-form button[type="submit"],
.kb-form input[type="submit"] {
  border: 0 !important;
  border-radius: 99px !important;
  background: var(--grad) !important;
  color: var(--ink) !important;
  font-weight: 800 !important;
}

/* Kadence blocks that hardcode a light hex rather than a palette variable. */
.entry-content [style*="background-color:#fff"],
.entry-content [style*="background-color: #fff"],
.entry-content [style*="background-color:#ffffff"],
.entry-content [style*="background-color: #ffffff"] {
  background-color: var(--ink) !important;
}


/* ============================================================
   2. go-troppo PLUGIN — wrappers: font, ground, width
   ------------------------------------------------------------
   The plugin scopes some layout rules to Kadence theme wrapper classes
   (.kadence-content-wrap, .kadence-content, .kadence-blocks-wrap);
   page.php reproduces them so those rules keep matching.
   plans-display-unified.css sets a system font stack on the wrappers at
   (0,2,0), so the font reset needs at least that specificity.
   ============================================================ */
.nbn-plugin-wrapper,
.nbn-plugin-wrapper.nbn-flow,
.nbn-plugin-wrapper.nbn-plans-display,
.nbn-plugin-wrapper .nbn-plans-display,
.nbn-plugin-wrapper .troppo-theme-container,
.nbn-plugin-wrapper .nbn-address-search-container {
  font-family: inherit !important;
  color: var(--off);
}

body .nbn-plugin-wrapper.nbn-flow,
body .nbn-plugin-wrapper .nbn-plans-display,
.nbn-plugin-wrapper .troppo-theme-container,
.nbn-plugin-wrapper .nbn-address-search-container[data-theme="premium"] {
  background: var(--bg) !important;
  min-height: 0 !important;
}

/* The plugin reserves 100px above the flow for its wave art; the page hero already gives that room. */
body .nbn-plugin-wrapper.nbn-flow .troppo-theme-container {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Decorative blurred blobs and waves have no equivalent in the design. */
.nbn-plugin-wrapper .troppo-bg-waves,
.nbn-plugin-wrapper .troppo-float-shapes,
.nbn-plugin-wrapper .nbn-address-search-container::before {
  display: none !important;
}

/* page.php caps prose at 820px; plugin shortcode output must not be squeezed. */
.entry-content:has(.nbn-plugin-wrapper, .gtl-banner) {
  max-width: none;
}

.page-body:has(.nbn-plugin-wrapper.nbn-flow) {
  padding-block: 0;
}


/* ============================================================
   3. go-troppo PLUGIN — ordering flow (/nbn-plans-order/)
   ------------------------------------------------------------
   Real markup from plugin v1.4.28. Each .nbn-flow-section becomes a flat
   full-bleed band (the theme's .addr / .wifi / .phone pattern) whose
   inner edge lines up with .wrap.
   ============================================================ */
.nbn-plugin-wrapper .nbn-flow-content {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.nbn-plugin-wrapper .nbn-flow-section {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 48px max(clamp(20px, 3vw, 48px), calc((100% - 1280px) / 2)) 52px !important;
  border: 0 !important;
  border-top: 1px solid var(--line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  animation: none !important;
}

/* plan-cards-v9.css sets this band's padding and ground at (0,3,1) !important. */
body .nbn-plugin-wrapper.nbn-flow .nbn-flow-section.nbn-address-section {
  min-height: 0 !important;
  padding: 48px max(clamp(20px, 3vw, 48px), calc((100% - 1280px) / 2)) 52px !important;
  border-top: 0 !important;
  background: var(--ink) !important;
}

/* Section headings on the theme's h2 scale; the highlight span is the <em> accent. */
.nbn-plugin-wrapper .troppo-heading {
  margin: 0 0 14px !important;
  font-size: clamp(28px, 3.9vw, 44px) !important;
  font-weight: 900 !important;
  line-height: 1.04 !important;
  letter-spacing: -.03em !important;
  color: var(--off) !important;
}

.nbn-plugin-wrapper .troppo-highlight,
.nbn-plugin-wrapper .nbn-search-heading .highlight {
  background: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
  -webkit-text-fill-color: currentColor !important;
  color: var(--orange) !important;
  animation: none !important;
}

/* Step 1's heading reads as the kicker above the address headline. */
.nbn-plugin-wrapper .nbn-address-section .troppo-heading {
  margin: 0 !important;
  font-size: 11.5px !important;
  font-weight: 800 !important;
  line-height: 1.4 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase;
  text-align: left;
  color: var(--orange) !important;
}

/* ---- Input state ---- */
.nbn-plugin-wrapper .nbn-address-section .nbn-address-form {
  max-width: 560px;
  text-align: left;
}

/* plan-cards-v9.css hides the instruction line; here it is the band's headline. */
.nbn-plugin-wrapper .nbn-address-section .nbn-address-form > p {
  display: block !important;
  margin: 14px 0 0 !important;
  max-width: 22ch;
  font-size: clamp(26px, 3.4vw, 40px);
  font-weight: 900;
  line-height: 1.04;
  letter-spacing: -.03em;
  color: var(--off);
}

.nbn-plugin-wrapper .nbn-address-section .troppo-input-group {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 10px !important;
  align-items: center !important;
  max-width: 560px;
  margin: 20px 0 0 !important;
}

.nbn-plugin-wrapper #nbn-address-input,
.nbn-plugin-wrapper .nbn-address-section .troppo-input {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 13px 20px !important;
  border: 0 !important;
  border-radius: 99px !important;
  background: rgba(255, 255, 255, .10) !important;
  box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .22) !important;
  color: var(--off) !important;
  font-family: inherit !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
}

.nbn-plugin-wrapper #nbn-address-input::placeholder,
.nbn-plugin-wrapper .nbn-address-section .troppo-input::placeholder {
  color: rgba(255, 255, 255, .45);
}

.nbn-plugin-wrapper #nbn-address-input:focus,
.nbn-plugin-wrapper .nbn-address-section .troppo-input:focus {
  outline: 2px solid var(--orange) !important;
  outline-offset: 3px !important;
  background: rgba(255, 255, 255, .12) !important;
  box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .22) !important;
}

/* plan-cards-v9.css sets the Check button's size and gradient with !important at (1,1,0). */
.nbn-plugin-wrapper .nbn-address-section #nbn-check-address {
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 13px 26px !important;
  background: var(--grad) !important;
  box-shadow: none !important;
  color: var(--ink) !important;
  font-size: 14px !important;
}

@media (max-width: 600px) {
  .nbn-plugin-wrapper .nbn-address-section .troppo-input-group {
    grid-template-columns: 1fr !important;
  }

  .nbn-plugin-wrapper .nbn-address-section #nbn-check-address {
    width: 100% !important;
  }
}

/* ---- Buttons: .troppo-btn is .btn.ghost, .troppo-btn-primary is .btn ---- */
.nbn-plugin-wrapper .troppo-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 26px !important;
  border: 0 !important;
  border-radius: 99px !important;
  background: transparent !important;
  box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .3) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  color: var(--off) !important;
  font-family: inherit !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  text-decoration: none !important;
  transition: transform .15s ease, filter .15s ease, box-shadow .15s ease;
}

.nbn-plugin-wrapper .troppo-btn:hover {
  transform: translateY(-1px);
  box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .6) !important;
}

.nbn-plugin-wrapper .troppo-btn-primary {
  background: var(--grad) !important;
  box-shadow: none !important;
  color: var(--ink) !important;
}

.nbn-plugin-wrapper .troppo-btn-primary:hover {
  filter: brightness(1.05);
  box-shadow: none !important;
}

.nbn-plugin-wrapper .troppo-btn-primary::before {
  content: none !important;
}

/* Plan-card CTAs: plan-cards-v9.css and product-flow.css set these with !important
   through body-prefixed chains, so match them. */
body .nbn-plugin-wrapper .nbn-plan-card .troppo-btn-primary,
body .nbn-plugin-wrapper .nbn-plan-card .nbn-select-plan,
body .nbn-plans-display .nbn-plan-card .troppo-btn-primary,
body .nbn-plans-display .nbn-plan-card .nbn-select-plan {
  border-radius: 99px !important;
  background: var(--grad) !important;
  box-shadow: none !important;
  color: var(--ink) !important;
  font-family: inherit !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

/* The upgrade preview shows cards that are not yet orderable; keep them visibly inert. */
body .nbn-upgrade-plans-preview .nbn-plan-card .troppo-btn-primary,
body .nbn-upgrade-plans-preview .nbn-plan-card .nbn-select-plan {
  background: rgba(255, 255, 255, .12) !important;
  color: var(--muted) !important;
}

/* ---- Verified state ---- */
.nbn-plugin-wrapper .nbn-address-verified {
  max-width: none !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  text-align: left;
}

/* notifications-troppo.css wraps this block in an orange notice panel with a tick pseudo. */
.nbn-plugin-wrapper .nbn-address-verified .nbn-success-message {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  box-shadow: none !important;
  animation: none !important;
  color: var(--off) !important;
  font-size: inherit !important;
  text-align: left;
}

.nbn-plugin-wrapper .nbn-address-verified .nbn-success-message::before {
  content: none !important;
  display: none !important;
}

.nbn-plugin-wrapper .nbn-address-verified .nbn-success-message h3 {
  display: block !important;
  margin: 14px 0 0 !important;
  max-width: 19ch;
  font-size: clamp(30px, 3.9vw, 46px) !important;
  font-weight: 900 !important;
  line-height: 1.04 !important;
  letter-spacing: -.03em !important;
  color: var(--off) !important;
}

.nbn-plugin-wrapper .nbn-address-verified .nbn-success-subtitle {
  margin: 16px 0 0 !important;
  max-width: 44ch;
  font-size: 15px !important;
  line-height: 1.6;
  color: var(--muted) !important;
}

/* Connection facts: each line a .fact tile, then the teal "checked" chip on its own row. */
.nbn-plugin-wrapper .nbn-address-details {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin: 20px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}

.nbn-plugin-wrapper .nbn-address-details > p {
  margin: 0 !important;
  padding: 11px 15px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: rgba(255, 255, 255, .04);
  font-size: 14.5px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -.01em;
  color: var(--off) !important;
}

.nbn-plugin-wrapper .nbn-address-details > p strong {
  font-weight: 900;
  color: var(--off) !important;
}

.nbn-plugin-wrapper .nbn-address-details::before {
  content: "";
  order: 1;
  flex-basis: 100%;
  height: 0;
}

.nbn-plugin-wrapper .nbn-address-details::after {
  content: "\2713\00a0\00a0Address Checked, We Can Connect You";
  order: 2;
  display: inline-flex;
  align-items: center;
  margin-top: 8px;
  padding: 9px 17px;
  border-radius: 99px;
  background: var(--teal);
  color: var(--ink);
  font-size: 12.5px;
  font-weight: 800;
}

.nbn-plugin-wrapper .nbn-address-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 26px 0 0 !important;
}

.nbn-plugin-wrapper .nbn-address-actions .troppo-btn {
  margin: 0 !important;
}

/* ---- Multiple matches ---- */
.nbn-plugin-wrapper .nbn-address-selection__message {
  margin: 16px 0 14px;
  font-size: 15px;
  color: var(--muted);
}

.nbn-plugin-wrapper .nbn-address-selection__list {
  display: grid;
  gap: 10px;
  max-width: 560px;
  margin: 0 0 16px;
}

.nbn-plugin-wrapper .nbn-address-selection__list > * {
  padding: 14px 18px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(255, 255, 255, .03);
  color: var(--off);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color .15s, transform .15s;
}

.nbn-plugin-wrapper .nbn-address-selection__list > *:hover {
  border-color: var(--orange);
  transform: translateY(-2px);
}

/* ---- Error ---- */
.nbn-plugin-wrapper .nbn-error-inline {
  margin-top: 14px;
  padding: 14px 18px;
  border-left: 3px solid #ff5757;
  border-radius: 0 12px 12px 0;
  background: rgba(255, 87, 87, .10);
  color: var(--off);
}

/* ---- Free-upgrade message: the .upg panel ---- */
.nbn-plugin-wrapper .nbn-upgrade-message {
  margin: 26px 0 0 !important;
  padding: 22px 24px !important;
  border: 1px solid var(--line) !important;
  border-radius: 16px !important;
  background: rgba(255, 255, 255, .04) !important;
}

.nbn-plugin-wrapper .nbn-upgrade-notice {
  margin: 0 !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.55 !important;
  color: var(--off) !important;
}

.nbn-plugin-wrapper .nbn-upgrade-notice strong {
  color: var(--teal);
}

.nbn-plugin-wrapper .nbn-upgrade-disclaimer {
  margin: 12px 0 0 !important;
  font-size: 11.5px !important;
  font-style: normal !important;
  line-height: 1.6 !important;
  color: rgba(255, 255, 255, .56) !important;
}

.nbn-plugin-wrapper .nbn-upgrade-plans-preview {
  border: 1px solid var(--line) !important;
  border-radius: 16px !important;
  background: rgba(255, 255, 255, .04) !important;
}

.nbn-plugin-wrapper .nbn-upgrade-plans-preview__title {
  color: var(--off) !important;
}

.nbn-plugin-wrapper .nbn-upgrade-plans-preview__label {
  border-radius: 99px !important;
  background: var(--teal) !important;
  color: var(--ink) !important;
  font-weight: 800 !important;
}

.nbn-plugin-wrapper .nbn-upgrade-plans-preview__desc {
  color: var(--muted) !important;
}

/* ---- Billing-frequency toggle (Step 2 and the homepage plans widget): the .yn pattern ---- */
.nbn-plugin-wrapper .nbn-payment-filters {
  display: inline-flex !important;
  width: auto !important;
  max-width: none !important;
  gap: 0 !important;
  margin: 0 0 22px !important;
  padding: 4px !important;
  border: 0 !important;
  border-radius: 99px !important;
  background: rgba(255, 255, 255, .09) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  animation: none !important;
}

.nbn-plugin-wrapper .nbn-payment-filter {
  flex: 0 0 auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 11px 24px !important;
  border: 0 !important;
  border-radius: 99px !important;
  background: transparent !important;
  box-shadow: none !important;
  color: rgba(255, 255, 255, .7) !important;
  font-family: inherit !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  white-space: nowrap;
  cursor: pointer;
}

.nbn-plugin-wrapper .nbn-payment-filter:hover {
  color: var(--off) !important;
}

.nbn-plugin-wrapper .nbn-payment-filter.active {
  background: var(--off) !important;
  color: var(--ink) !important;
}

@media (max-width: 430px) {
  .nbn-plugin-wrapper .nbn-payment-filters {
    display: flex !important;
    width: 100% !important;
  }

  .nbn-plugin-wrapper .nbn-payment-filter {
    flex: 1 1 0 !important;
    padding: 10px 6px !important;
    font-size: 12px !important;
  }
}


/* ============================================================
   4. go-troppo PLUGIN — homepage address search ([nbn_address_search])
   ------------------------------------------------------------
   Styled as the theme's hero .checker. Markup: .nbn-plugin-wrapper
   .nbn-address-search › .nbn-address-search-container › .nbn-search-main-card
   › .nbn-search-heading, .nbn-search-subtitle, form#nbn-premium-search-form,
   .nbn-search-button(-wrapper).
   ============================================================ */
.nbn-plugin-wrapper .nbn-address-search-container[data-theme="premium"] {
  padding: 48px 0 !important;
  overflow: visible !important;
}

.nbn-plugin-wrapper .nbn-search-main-card {
  max-width: none !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.nbn-plugin-wrapper .nbn-search-wrapper {
  padding: 0 !important;
}

.nbn-plugin-wrapper .nbn-search-heading h1,
.nbn-plugin-wrapper .nbn-search-heading h2 {
  margin: 0 0 20px !important;
  font-size: clamp(42px, 6.4vw, 82px) !important;
  font-weight: 900 !important;
  line-height: 1.04 !important;
  letter-spacing: -.03em !important;
  color: var(--off) !important;
}

.nbn-plugin-wrapper .nbn-search-subtitle {
  max-width: 40ch;
  margin: 0 0 28px !important;
  padding: 0 !important;
  font-size: 17px !important;
  font-weight: 500;
  color: rgba(255, 255, 255, .8) !important;
}

.nbn-plugin-wrapper .nbn-search-form input:not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]) {
  width: 100%;
  min-width: 0;
  padding: 15px 22px !important;
  border: 0 !important;
  border-radius: 99px !important;
  background: rgba(255, 255, 255, .1) !important;
  box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .22) !important;
  color: var(--off) !important;
  font-family: inherit;
  font-size: 14.5px;
  font-weight: 600;
}

.nbn-plugin-wrapper .nbn-search-form input::placeholder {
  color: rgba(255, 255, 255, .5);
}

.nbn-plugin-wrapper .nbn-search-button-wrapper {
  justify-content: flex-start !important;
  gap: 10px;
  margin-top: 12px;
}

.nbn-plugin-wrapper .nbn-search-button {
  padding: 15px 32px !important;
  border: 0 !important;
  border-radius: 99px !important;
  background: var(--grad) !important;
  box-shadow: none !important;
  color: var(--ink) !important;
  font-family: inherit !important;
  font-size: 15px !important;
  font-weight: 800 !important;
}

.nbn-plugin-wrapper .nbn-search-button::before {
  content: none !important;
}

.nbn-plugin-wrapper .nbn-search-button.nbn-view-plans-button {
  background: transparent !important;
  box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .3) !important;
  color: var(--off) !important;
}


/* ============================================================
   5. promotional-subscriptions PLUGIN — intro pricing
   ------------------------------------------------------------
   Plan cards, product page, cart and checkout.
   ============================================================ */
.promotional-pricing .strike-through,
.cart-promotional-pricing .strike-through,
.nbn-promotional-pricing .original-price {
  color: var(--muted) !important;
  text-decoration: line-through;
}

.promotional-pricing .promotional-price,
.cart-promotional-pricing .promotional-price,
.nbn-promotional-pricing .promotional-price {
  color: var(--orange) !important;
  font-weight: 900 !important;
}

.promotional-savings,
.cart-promotional-pricing .promotional-savings {
  display: inline-block;
  padding: 6px 12px !important;
  border-radius: 99px !important;
  background: var(--teal) !important;
  color: var(--ink) !important;
  font-size: 12px !important;
  font-weight: 800 !important;
}

.cart-promotional-pricing .promotional-duration,
.nbn-promotional-pricing .promotional-note {
  color: var(--muted) !important;
}

/* The badge is the .flag pattern; the plugin pulses it, the design does not. */
.nbn-promotional-badge {
  background: var(--orange) !important;
  box-shadow: none !important;
  color: var(--ink) !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  animation: none !important;
}

.nbn-promotional-badge .badge-duration {
  font-size: 10px !important;
  font-weight: 800 !important;
  opacity: 1 !important;
}


/* ============================================================
   6. loyalty-rewards PLUGIN — GT Rewards banner, summaries, checkout
   ------------------------------------------------------------
   The banner becomes the design's purple .rew band. The plugin also ships
   a light "checkout journey" theme (cream page, white panels, green
   button) that has to be unwound so woocommerce.css shows through.
   ============================================================ */
.gtl-banner {
  --b-white: var(--purple);
  --b-white2: var(--purple);
  --b-ink: var(--off);
  --b-ink2: rgba(255, 255, 255, .75);
  padding: 62px 0 66px !important;
  color: var(--off) !important;
}

.gtl-banner-inner {
  max-width: var(--wrap) !important;
  padding: 0 clamp(20px, 5vw, 56px) !important;
}

.gtl-banner-eyebrow {
  background: rgba(255, 255, 255, .12) !important;
  box-shadow: none !important;
  color: var(--off) !important;
}

.gtl-banner-h {
  letter-spacing: -.03em !important;
}

.gtl-banner-h .hl {
  background: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
  color: var(--b-yellow) !important;
}

.gtl-banner-sub {
  color: rgba(255, 255, 255, .86) !important;
}

.gtl-banner-cta {
  background: var(--grad) !important;
  box-shadow: none !important;
  color: var(--ink) !important;
}

.gtl-banner-cta:hover {
  box-shadow: none !important;
  filter: brightness(1.05);
}

.gtl-banner-steps .ic svg {
  stroke: var(--off) !important;
}

.gtl-banner-earn .badge {
  background: var(--off) !important;
  box-shadow: none !important;
  color: var(--ink) !important;
}

.gtl-banner-steps .tx em,
.gtl-banner-earn .tx em {
  color: rgba(255, 255, 255, .72) !important;
}

/* Rewards summary strip (plans, checkout) and the per-card reward chip. */
.gtl-rewards-summary {
  --gtl-summary-ink: var(--off);
  --gtl-summary-orange: var(--orange);
  --gtl-summary-cream: rgba(255, 255, 255, .03);
  border: 1px solid var(--line) !important;
  border-radius: 16px !important;
  background: rgba(255, 255, 255, .03) !important;
  box-shadow: none !important;
  color: var(--off) !important;
  font-family: inherit !important;
}

/* plan-cards-v9.css restyles the flow variant behind a (1,3,3) !important chain.
   The band sits on the light plan ground, so it takes a cream surface rather than
   the dark skin's white-on-white lift, which resolved to nothing visible. */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 details.gtl-rewards-summary--flow {
  border: 1px solid rgba(255, 98, 0, .3) !important;
  border-radius: 9px !important;
  background: #fff6f0 !important;
  box-shadow: 0 1px 2px rgba(16, 15, 29, .05) !important;
  color: var(--ink) !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 details.gtl-rewards-summary--flow > summary {
  color: var(--ink) !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 details.gtl-rewards-summary--flow > summary::before {
  color: var(--orange) !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 details.gtl-rewards-summary--flow > summary::after {
  border-color: var(--ink) !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 details.gtl-rewards-summary--flow .gtl-rewards-summary-draw {
  border-top: 1px solid var(--line) !important;
  background: transparent !important;
  color: var(--off) !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 details.gtl-rewards-summary--flow .gtl-rewards-summary-draw p {
  color: var(--muted) !important;
}

.gtl-rewards-summary-current,
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 details.gtl-rewards-summary--flow .gtl-rewards-summary-current {
  border: 0 !important;
  border-radius: 99px !important;
  background: var(--teal) !important;
  color: var(--ink) !important;
  font-weight: 800 !important;
}

.gtl-rewards-summary-note,
.gtl-rewards-rate span,
.gtl-plan-reward-copy small {
  color: var(--muted) !important;
}

.gtl-rewards-rate {
  border: 1px solid var(--line) !important;
  border-radius: 11px !important;
  background: rgba(255, 255, 255, .04) !important;
}

.gtl-rewards-rate.is-current {
  border-color: var(--orange) !important;
  box-shadow: 0 0 0 2px rgba(255, 98, 0, .2) !important;
}

.gtl-rewards-summary-link,
.gtl-rewards-summary-link:hover {
  background: var(--grad) !important;
  color: var(--ink) !important;
}

.gtl-rewards-summary-link:hover {
  filter: brightness(1.05);
}

.gtl-plan-reward {
  border: 1px solid var(--line) !important;
  background: rgba(255, 255, 255, .04) !important;
  color: var(--off) !important;
}

.gtl-plan-reward-value {
  background: var(--orange) !important;
  color: var(--ink) !important;
}

/* Checkout journey theme: unwind it so woocommerce.css's dark checkout shows through. */
body.woocommerce-checkout:not(.woocommerce-order-received) .site-main,
body.woocommerce-checkout:not(.woocommerce-order-received) .content-area {
  background: var(--bg) !important;
}

body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce {
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  color: inherit !important;
}

body.woocommerce-checkout form.checkout > .col2-set,
body.woocommerce-checkout form.checkout > #order_review_heading,
body.woocommerce-checkout form.checkout > #order_review,
body.woocommerce-checkout .wc-block-checkout__main {
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.woocommerce-checkout .wc-block-checkout__sidebar {
  padding: 22px !important;
  border: 1px solid var(--line) !important;
  border-radius: 16px !important;
  background: rgba(255, 255, 255, .03) !important;
  box-shadow: none !important;
}

body.woocommerce-checkout form.checkout > #order_review_heading {
  margin: 0 0 18px !important;
  color: var(--off) !important;
}

body.woocommerce-checkout .woocommerce-billing-fields > h3,
body.woocommerce-checkout .woocommerce-shipping-fields > h3,
body.woocommerce-checkout .form-row label {
  color: var(--off) !important;
}

body.woocommerce-checkout #payment {
  border: 1px solid var(--line) !important;
  border-radius: 14px !important;
  background: rgba(255, 255, 255, .03) !important;
}

body.woocommerce-checkout #payment div.payment_box {
  border-radius: 10px !important;
  background: rgba(255, 255, 255, .04) !important;
}

body.woocommerce-checkout #place_order,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button {
  border: 0 !important;
  border-radius: 99px !important;
  background: var(--grad) !important;
  box-shadow: none !important;
  color: var(--ink) !important;
  font-weight: 800 !important;
}

body.woocommerce-checkout #place_order:hover {
  background: var(--grad) !important;
  filter: brightness(1.05);
}

/* go-troppo greys the button (cart-dark-glass-theme.css) until its final checks pass. */
body.woocommerce-checkout #place_order.nbn-final-checks-blocked,
body.woocommerce-checkout #place_order:disabled {
  background: rgba(255, 255, 255, .08) !important;
  box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .16) !important;
  color: rgba(255, 255, 255, .45) !important;
  filter: none !important;
  cursor: not-allowed;
}

/* go-troppo checkout gate: fieldset.nbn-final-checks is injected by script and ships a cream panel. */
body.woocommerce-checkout #order_review fieldset.nbn-final-checks {
  border: 1px solid var(--line) !important;
  border-radius: 14px !important;
  background: rgba(255, 255, 255, .03) !important;
  color: var(--off) !important;
}

body.woocommerce-checkout #order_review .nbn-final-checks legend {
  color: var(--off) !important;
}

body.woocommerce-checkout #order_review .nbn-final-checks__intro {
  color: var(--muted) !important;
}

body.woocommerce-checkout #order_review .nbn-final-checks__message {
  color: #ff5757 !important;
}

body.woocommerce-checkout #order_review .nbn-final-checks.is-complete .nbn-final-checks__message {
  color: var(--teal) !important;
}

body.woocommerce-checkout #order_review p.nbn-final-check {
  border: 1px solid var(--line) !important;
  border-radius: 12px !important;
  background: rgba(255, 255, 255, .04) !important;
  color: var(--off) !important;
}

body.woocommerce-checkout #order_review p.nbn-final-check.is-required {
  border-color: rgba(255, 87, 87, .55) !important;
  background: rgba(255, 87, 87, .08) !important;
}

body.woocommerce-checkout #order_review p.nbn-final-check.is-complete {
  border-color: rgba(32, 214, 180, .55) !important;
  background: rgba(32, 214, 180, .08) !important;
}

body.woocommerce-checkout #order_review .nbn-final-check label,
body.woocommerce-checkout #order_review .nbn-final-check .woocommerce-terms-and-conditions-checkbox-text {
  color: var(--off) !important;
}

body.woocommerce-checkout #order_review .nbn-final-check a {
  color: var(--orange) !important;
}

body.woocommerce-checkout #order_review .nbn-final-check input[type="checkbox"] {
  accent-color: var(--orange) !important;
}

body.woocommerce-checkout #order_review .nbn-final-check__state {
  background: rgba(255, 87, 87, .16) !important;
  color: #ff8a8a !important;
}

body.woocommerce-checkout #order_review .nbn-final-check.is-complete .nbn-final-check__state {
  background: rgba(32, 214, 180, .16) !important;
  color: var(--teal) !important;
}

body.woocommerce-checkout .woocommerce-message:focus,
body.woocommerce-checkout .woocommerce-notices-wrapper :focus {
  outline: 2px solid var(--orange) !important;
  outline-offset: 2px !important;
}

body.woocommerce-checkout #place_order:focus-visible,
body.woocommerce-checkout .input-text:focus,
body.woocommerce-checkout .select2-container--focus .select2-selection {
  outline: 2px solid var(--orange) !important;
  outline-offset: 3px !important;
  border-color: var(--line) !important;
}


/* ============================================================
   7. woocommerce-subscriptions PLUGIN — recurring totals
   ============================================================ */
.woocommerce table.shop_table .recurring-totals th,
.woocommerce table.shop_table .recurring-total th,
.woocommerce table.shop_table .recurring-total td {
  color: var(--off);
}

.woocommerce .subscription-details,
.woocommerce .first-payment-date,
.woocommerce .recurring-total small,
.woocommerce .subscription-details small {
  color: var(--muted);
  font-weight: 600;
}

.woocommerce a.wcs-switch-link,
.woocommerce .wcsatt-options-wrapper a {
  color: var(--orange);
}


/* ============================================================
   8. Native selects outside WooCommerce (Kadence forms, plugin selects)
   ------------------------------------------------------------
   The popup paints from the control's own background-color, so it must
   be solid. WooCommerce selects are handled in woocommerce.css.
   ============================================================ */
select {
  padding: 13px 15px;
  border: 1.5px solid var(--line);
  border-radius: 10px;
  background-color: #14131f;
  color: var(--off);
  font-family: inherit;
  font-size: 14.5px;
}

select option,
select optgroup {
  background-color: #14131f;
  color: var(--off);
}


/* ============================================================
   9. Focus rings — the plugin's teal ring becomes the theme's orange one
   ============================================================ */
.nbn-plugin-wrapper .troppo-btn:focus-visible,
.nbn-plugin-wrapper .troppo-btn-secondary:focus-visible,
.nbn-plugin-wrapper .nbn-address-selection__list > *:focus-visible {
  outline: 2px solid var(--orange) !important;
  outline-offset: 3px !important;
  box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .3) !important;
}

.nbn-plugin-wrapper .troppo-btn-primary:focus-visible,
.nbn-plugin-wrapper .nbn-select-plan:focus-visible,
.nbn-plugin-wrapper .nbn-payment-filter:focus-visible,
.nbn-plugin-wrapper .nbn-search-button:focus-visible {
  outline: 2px solid var(--orange) !important;
  outline-offset: 3px !important;
  box-shadow: none !important;
}


/* ============================================================
   10. Safety net
   ------------------------------------------------------------
   The plugin toggles checker and flow states with a `hidden` class.
   Nothing above sets display on those elements, but this keeps any
   future display override from resurrecting a hidden state.
   ============================================================ */
.nbn-plugin-wrapper .hidden {
  display: none !important;
}


/* ============================================================
   11. HEADER — the site's uploaded logo and its live primary menu
   ------------------------------------------------------------
   style.css sizes only the text wordmark. The site's custom logo is a
   909×303 PNG that otherwise renders at intrinsic width and pushes the
   menu onto three rows. The GT Rewards pill is troppo-unified-theme.css.
   ============================================================ */
.site-logo {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
}

.site-logo .custom-logo-link {
  display: inline-flex;
  line-height: 0;
}

.site-logo img.custom-logo {
  height: 46px;
  width: auto;
  max-width: 180px;
  object-fit: contain;
}

.primary-menu {
  flex-wrap: nowrap;
  gap: 18px;
}

.primary-menu > li > a {
  font-size: 13px;
}

/* troppo-unified-theme.css styles this pill only on flow pages; give it one look everywhere. */
li.gt-rewards-cta > a,
li.gt-rewards-cta > a:link,
li.gt-rewards-cta > a:visited {
  display: inline-flex !important;
  align-items: center !important;
  height: 32px !important;
  margin: 0 !important;
  padding: 4px 13px !important;
  border-radius: 99px !important;
  background: var(--purple) !important;
  color: var(--off) !important;
  font-family: inherit !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
}

li.gt-rewards-cta > a:hover {
  background: var(--orange) !important;
  color: var(--ink) !important;
}

@media (max-width: 1100px) {
  .site-logo img.custom-logo {
    height: 40px;
  }

  .primary-menu {
    flex-wrap: wrap;
  }

  .primary-menu > li > a {
    font-size: 15px;
  }
}

@media (max-width: 480px) {
  .site-logo img.custom-logo {
    height: 34px;
    max-width: 150px;
  }
}


/* ============================================================
   12. go-troppo PLUGIN — nbn attribution bar printed after the footer
   ============================================================ */
.nbn-footer-badge-bar {
  padding: 18px clamp(20px, 5vw, 56px) 26px;
  border-top: 1px solid var(--line);
  background: #07060f;
}

.nbn-footer-badge-bar-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  max-width: var(--wrap);
  margin: 0 auto;
}

.nbn-footer-badge-label {
  color: var(--muted);
  font-size: 12.5px;
  font-weight: 600;
}

/* The asset is 600×297 and perfmatters swaps it in lazily; pin both axes so the swap cannot resize it. */
img.nbn-footer-badge-img {
  display: block;
  width: 81px !important;
  height: 40px !important;
  max-width: none !important;
  border-radius: 8px;
}


/* ============================================================
   13. go-troppo PLUGIN — plan-card "ideal for" strip
   ------------------------------------------------------------
   plan-cards-v9.css paints it white behind (0,4,1) !important chains.
   ============================================================ */
html body .nbn-plugin-wrapper.nbn-flow .nbn-plan-card .nbn-users-box,
html body .nbn-plugin-wrapper .nbn-plan-card .nbn-users-box,
html body .nbn-plugin-wrapper .nbn-plans-display .nbn-plan-card .nbn-users-box,
html body .nbn-plans-display .nbn-plan-card .nbn-users-box {
  border: 1px solid var(--line) !important;
  background: rgba(255, 255, 255, .08) !important;
  box-shadow: none !important;
  color: var(--off) !important;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-plan-card .nbn-users-box *,
html body .nbn-plugin-wrapper .nbn-plan-card .nbn-users-box *,
html body .nbn-plugin-wrapper .nbn-plans-display .nbn-plan-card .nbn-users-box *,
html body .nbn-plans-display .nbn-plan-card .nbn-users-box * {
  color: var(--off) !important;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-plan-card .nbn-users-box svg *,
html body .nbn-plugin-wrapper .nbn-plan-card .nbn-users-box svg *,
html body .nbn-plugin-wrapper .nbn-plans-display .nbn-plan-card .nbn-users-box svg *,
html body .nbn-plans-display .nbn-plan-card .nbn-users-box svg * {
  stroke: var(--off) !important;
}


/* ============================================================
   14. loyalty-rewards PLUGIN — GT Rewards page content
   ------------------------------------------------------------
   The page's own blocks (.gtr-section groups, the .gtrw how-it-works
   grid, cards, FAQ) style themselves light in an inline stylesheet;
   gtl-public.css then themes its widgets for that light surface through
   --gtl-* variables. That inline sheet prints after this one, so these
   selectors out-rank it. Dark/hero sections are already on-brand and untouched.
   ============================================================ */
html body .site-main .gtr-section:not(.gtr-section--dark):not(.gtr-section--hero) {
  --gtl-navy: var(--off);
  --gtl-ink: rgba(255, 255, 255, .82);
  --gtl-muted: var(--muted);
  --gtl-hairline: var(--line);
  background: var(--bg) !important;
  color: var(--off) !important;
}

html body .site-main .gtr-section--cream:not(.gtr-section--dark),
html body .site-main .gtr-section--mist:not(.gtr-section--dark) {
  background: var(--ink) !important;
}

html body .site-main .gtr-section :is(h1, h2, h3, h4, h5, h6) {
  color: var(--off) !important;
}

html body .site-main .gtr-section:not(.gtr-section--dark):not(.gtr-section--hero) :is(p, li) {
  color: rgba(255, 255, 255, .8) !important;
}

html body .site-main .gtr-card,
html body .site-main .gtrw-card,
html body .site-main .gtr-faq-item,
html body .site-main .gtl-widget-teaser,
html body .site-main .gtr-section .gtl-widget {
  border: 1px solid var(--line) !important;
  background: rgba(255, 255, 255, .04) !important;
  box-shadow: none !important;
  color: var(--off) !important;
}

html body .site-main .gtrw :is(h2, h3, h4) {
  color: var(--off) !important;
}

html body .site-main .gtrw :is(p, li) {
  color: rgba(255, 255, 255, .8) !important;
}


/* ============================================================
   15. Inner pages — full width
   ------------------------------------------------------------
   Kadence rendered these pages full width: the container spanned the
   viewport and each row's inner column was capped by the theme content
   width (.kb-theme-content-width is a Kadence-theme rule this theme has to
   supply). style.css caps .entry-content at 820px, which only suits prose.
   ============================================================ */
.page-body .entry-content,
.site-main .entry-content {
  max-width: none;
}

/* Pages built from Kadence rows span the viewport; the ordering flow's column
   stays uncapped so its bands run edge to edge. */
.page-body > .wrap:has(.kb-row-layout-wrap) {
  max-width: none;
  padding-inline: 0;
}

.entry-content .kt-row-column-wrap.kb-theme-content-width:not(:has(.nbn-plugin-wrapper.nbn-flow)) {
  max-width: var(--global-content-width, var(--wrap)) !important;
  margin-inline: auto !important;
}

.entry-content > .alignwide,
.entry-content .kb-row-layout-wrap.alignwide {
  max-width: none !important;
}

.entry-content > .alignfull,
.entry-content .kb-row-layout-wrap.alignfull,
.entry-content .wp-block-group.alignfull,
.entry-content .wp-block-cover.alignfull {
  width: var(--global-vw, 100vw) !important;
  max-width: none !important;
  margin-left: calc(50% - var(--global-vw, 100vw) / 2) !important;
  margin-right: calc(50% - var(--global-vw, 100vw) / 2) !important;
}


/* ============================================================
   16. The plugin's [nbn_address_search] as the compact pill checker
   ------------------------------------------------------------
   Used by the Homepage Concept hero (.hero-search) and by every widget
   placed in page content (.entry-content), e.g. the NBN plans and
   "NBN for" pages. The widget's glass card, heading, stepper and trust
   list are hidden; only its form remains, dressed as the hero .checker
   pill. address-search-wildly.css uses no !important.
   ============================================================ */
:is(.hero .hero-search, .entry-content .nbn-plugin-wrapper.nbn-address-search) {
  position: relative;
  z-index: 5;
  max-width: 560px;
  margin-top: 34px;
}

:is(.hero .hero-search, .entry-content .nbn-plugin-wrapper.nbn-address-search) .nbn-plugin-wrapper.nbn-address-search,
:is(.hero .hero-search, .entry-content .nbn-plugin-wrapper.nbn-address-search) .nbn-address-search-container,
:is(.hero .hero-search, .entry-content .nbn-plugin-wrapper.nbn-address-search) .nbn-search-main-card,
:is(.hero .hero-search, .entry-content .nbn-plugin-wrapper.nbn-address-search) .nbn-search-wrapper,
:is(.hero .hero-search, .entry-content .nbn-plugin-wrapper.nbn-address-search) .nbn-input-group,
:is(.hero .hero-search, .entry-content .nbn-plugin-wrapper.nbn-address-search) .nbn-search-button-wrapper {
  width: auto !important;
  max-width: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  overflow: visible !important;
}

:is(.hero .hero-search, .entry-content .nbn-plugin-wrapper.nbn-address-search) .nbn-geometric-bg,
:is(.hero .hero-search, .entry-content .nbn-plugin-wrapper.nbn-address-search) .nbn-search-heading,
:is(.hero .hero-search, .entry-content .nbn-plugin-wrapper.nbn-address-search) .nbn-parrot-illustration,
:is(.hero .hero-search, .entry-content .nbn-plugin-wrapper.nbn-address-search) .nbn-progress-steps,
:is(.hero .hero-search, .entry-content .nbn-plugin-wrapper.nbn-address-search) .nbn-search-helper-text,
:is(.hero .hero-search, .entry-content .nbn-plugin-wrapper.nbn-address-search) .nbn-trust-value-stack,
:is(.hero .hero-search, .entry-content .nbn-plugin-wrapper.nbn-address-search) .nbn-floating-label,
:is(.hero .hero-search, .entry-content .nbn-plugin-wrapper.nbn-address-search) .nbn-search-button-icon {
  display: none !important;
}

:is(.hero .hero-search, .entry-content .nbn-plugin-wrapper.nbn-address-search) .nbn-search-form {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin: 0 !important;
}

:is(.hero .hero-search, .entry-content .nbn-plugin-wrapper.nbn-address-search) .nbn-input-group {
  flex: 1 1 220px;
  position: relative;
}

:is(.hero .hero-search, .entry-content .nbn-plugin-wrapper.nbn-address-search) input.nbn-address-input {
  display: block;
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 15px 22px !important;
  border: 0 !important;
  border-radius: 99px !important;
  background: rgba(255, 255, 255, .10) !important;
  box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .22) !important;
  color: var(--off) !important;
  font-family: inherit !important;
  font-size: 14.5px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
}

:is(.hero .hero-search, .entry-content .nbn-plugin-wrapper.nbn-address-search) input.nbn-address-input::placeholder {
  color: rgba(255, 255, 255, .5) !important;
  opacity: 1;
}

:is(.hero .hero-search, .entry-content .nbn-plugin-wrapper.nbn-address-search) input.nbn-address-input:focus {
  outline: 2px solid var(--orange) !important;
  outline-offset: 3px !important;
  background: rgba(255, 255, 255, .12) !important;
}

:is(.hero .hero-search, .entry-content .nbn-plugin-wrapper.nbn-address-search) button.nbn-search-button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: auto !important;
  min-width: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: 15px 24px !important;
  border: 0 !important;
  border-radius: 99px !important;
  background: var(--grad) !important;
  box-shadow: none !important;
  color: var(--ink) !important;
  font-family: inherit !important;
  font-size: 14.5px !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  white-space: nowrap;
}

:is(.hero .hero-search, .entry-content .nbn-plugin-wrapper.nbn-address-search) button.nbn-search-button:hover {
  filter: brightness(1.06);
  transform: translateY(-1px);
}

:is(.hero .hero-search, .entry-content .nbn-plugin-wrapper.nbn-address-search) button.nbn-search-button .button-text::after {
  content: " \2192";
}

:is(.hero .hero-search, .entry-content .nbn-plugin-wrapper.nbn-address-search) .nbn-search-feedback {
  flex-basis: 100%;
  margin: 4px 0 0 !important;
  padding: 10px 14px !important;
  border: 0 !important;
  border-left: 3px solid #ff5757 !important;
  border-radius: 0 12px 12px 0 !important;
  background: rgba(255, 87, 87, .10) !important;
  color: var(--off) !important;
  font-size: 13px !important;
}

:is(.hero .hero-search, .entry-content .nbn-plugin-wrapper.nbn-address-search) .nbn-search-results {
  position: absolute;
  z-index: 20;
  left: 0;
  right: 0;
  top: calc(100% + 6px);
}

/* Google Places dropdown (body-level) for every checker on the site. */
.pac-container {
  margin-top: 6px;
  border: 1px solid var(--line) !important;
  border-radius: 12px !important;
  background: #14131f !important;
  box-shadow: 0 24px 50px rgba(0, 0, 0, .5) !important;
  font-family: Montserrat, sans-serif !important;
}

.pac-item {
  padding: 9px 12px !important;
  border-top: 1px solid var(--line) !important;
  color: var(--muted) !important;
  font-size: 13px !important;
  cursor: pointer;
}

.pac-item:first-child {
  border-top: 0 !important;
}

.pac-item:hover,
.pac-item-selected {
  background: rgba(255, 255, 255, .06) !important;
}

.pac-item-query,
.pac-matched {
  color: var(--off) !important;
}

.pac-icon {
  filter: invert(1) opacity(.7);
}


/* ============================================================
   17. go-troppo PLUGIN — Step 3 hardware composer (.nbn-bundle-composer)
   ------------------------------------------------------------
   The concept's .wifi step: pill tabs, a 4-up grid of .h1c tiles with an
   orange ring on the selected one, the "Most popular" corner flag, a pill
   term toggle, a dark summary tile and a gradient add button. The plugin's
   carousel becomes a grid, so its scroll buttons are hidden; its JS still
   switches panes, sets aria-checked and updates the summary.
   nbn-bundle-tier-carousel.css pins card width/flex with !important and
   themes [data-theme] variants, both at (0,3,0); the doubled class here
   out-ranks them and the --nbnbc-* variables are redefined.
   ============================================================ */
html body .nbn-plugin-wrapper .nbn-modems-grid {
  display: block !important;
  text-align: left !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer {
  --nbnbc-text: var(--off);
  --nbnbc-tab-text: rgba(255, 255, 255, .72);
  --nbnbc-cta-bg: var(--grad);
  --nbnbc-cta-text: var(--ink);
  --nbnbc-card-bg: rgba(255, 255, 255, .035);
  --nbnbc-card-border: var(--line);
  --nbnbc-card-radius: 15px;
  --nbnbc-card-hover-border: rgba(255, 255, 255, .3);
  --nbnbc-card-selected: var(--orange);
  --nbnbc-card-shadow: 0 0 0 1px var(--orange);
  --nbnbc-badge-bg: var(--orange);
  --nbnbc-badge-bg-deep: var(--orange);
  --nbnbc-badge-text: var(--ink);
  --nbnbc-visual-bg: transparent;
  --nbnbc-accent: var(--off);
  --nbnbc-accent-deep: var(--off);
  --nbnbc-summary-bg: rgba(255, 255, 255, .05);
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  text-align: left !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--off) !important;
  font-family: inherit !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-header {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: left !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-section-title {
  margin: 0 !important;
  font-size: clamp(22px, 2.6vw, 28px) !important;
  font-weight: 900 !important;
  line-height: 1.1 !important;
  letter-spacing: -.03em !important;
  color: var(--off) !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-section-help {
  max-width: 54ch;
  margin: 0 !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
  color: var(--muted) !important;
}

/* Tabs */
html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tabs {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: flex-start !important;
  gap: 8px !important;
  width: auto !important;
  align-self: flex-start !important;
  margin: 26px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tab {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 11px 19px !important;
  border: 0 !important;
  border-radius: 99px !important;
  background: rgba(255, 255, 255, .09) !important;
  box-shadow: none !important;
  color: rgba(255, 255, 255, .72) !important;
  font-family: inherit !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  transform: none !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tab:hover {
  background: rgba(255, 255, 255, .14) !important;
  color: var(--off) !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tab.is-active,
html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tab[aria-selected="true"] {
  background: var(--off) !important;
  color: var(--ink) !important;
  box-shadow: none !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tab-count {
  display: none !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tab-hint {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: inherit !important;
  font-size: 11.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  opacity: .7;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tab-hint::before {
  content: "\00b7 ";
}

/* Carousel → grid */
html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tier-carousel-wrap {
  position: relative !important;
  margin: 22px 0 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  min-height: 0 !important;
  width: auto !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tier-carousel-wrap[hidden] {
  display: none !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-scroll-btn {
  display: none !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tier-carousel {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(215px, 1fr)) !important;
  gap: 14px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  scroll-snap-type: none !important;
  -webkit-mask-image: none !important;
  mask-image: none !important;
}

/* Tier card = .h1c */
html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tier-carousel > .nbn-bundle-tier-card {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  flex: none !important;
  gap: 0 !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 22px 20px 24px !important;
  border: 1px solid var(--line) !important;
  border-radius: 15px !important;
  background: rgba(255, 255, 255, .035) !important;
  box-shadow: none !important;
  color: var(--off) !important;
  font-family: inherit !important;
  text-align: left !important;
  transform: none !important;
  transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease !important;
  cursor: pointer;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tier-carousel > .nbn-bundle-tier-card:hover {
  border-color: rgba(255, 255, 255, .3) !important;
  box-shadow: none !important;
  transform: none !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tier-carousel > .nbn-bundle-tier-card[aria-checked="true"] {
  border-color: var(--orange) !important;
  box-shadow: 0 0 0 1px var(--orange) !important;
  background: rgba(255, 98, 0, .08) !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tier-carousel > .nbn-bundle-tier-card:focus-visible {
  outline: 2px solid var(--orange) !important;
  outline-offset: 3px !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tier-badge {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  bottom: auto !important;
  left: auto !important;
  margin: 0 !important;
  padding: 6px 12px !important;
  border: 0 !important;
  border-radius: 0 14px 0 11px !important;
  background: var(--orange) !important;
  box-shadow: none !important;
  color: var(--ink) !important;
  font-size: 9.5px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  transform: none !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tier-visual {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: center !important;
  gap: 4px !important;
  height: 104px !important;
  margin: 0 0 15px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tier-unit {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: center !important;
  flex: 1 1 0 !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  height: 100% !important;
  margin: 0 !important;
  transform: none !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tier-unit img {
  display: block !important;
  width: auto !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: 100% !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  object-fit: contain;
  filter: drop-shadow(0 9px 20px rgba(0, 0, 0, .55)) !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tier-visual--count-2 .nbn-bundle-tier-unit img {
  max-height: 82% !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tier-visual--count-3 .nbn-bundle-tier-unit img {
  max-height: 68% !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tier-visual--count-4 .nbn-bundle-tier-unit img {
  max-height: 58% !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tier-body {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  gap: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tier-label {
  margin: 0 !important;
  font-size: 16px !important;
  font-weight: 900 !important;
  line-height: 1.25 !important;
  text-transform: none !important;
  letter-spacing: -.02em !important;
  color: var(--off) !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tier-subtitle {
  flex: 1 1 auto !important;
  margin: 7px 0 0 !important;
  font-size: 12.5px !important;
  line-height: 1.5 !important;
  color: var(--muted) !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tier-price {
  display: flex !important;
  align-items: baseline !important;
  gap: 5px !important;
  margin: 16px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--off) !important;
  font-size: 22px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: -.03em !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tier-amount {
  color: var(--off) !important;
  font-size: 22px !important;
  font-weight: 900 !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tier-frequency {
  color: var(--muted) !important;
  font-size: 12.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-tier-select-indicator {
  display: block !important;
}

/* Term toggle = .yn */
html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-term-toggle {
  display: inline-flex !important;
  flex-wrap: wrap !important;
  gap: 0 !important;
  width: auto !important;
  align-self: flex-start !important;
  margin: 26px 0 0 !important;
  padding: 4px !important;
  border: 0 !important;
  border-radius: 99px !important;
  background: rgba(255, 255, 255, .09) !important;
  box-shadow: none !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-term-btn {
  margin: 0 !important;
  padding: 11px 24px !important;
  border: 0 !important;
  border-radius: 99px !important;
  background: transparent !important;
  box-shadow: none !important;
  color: rgba(255, 255, 255, .7) !important;
  font-family: inherit !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  transform: none !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-term-btn:hover {
  background: rgba(255, 255, 255, .08) !important;
  color: var(--off) !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-term-btn.is-active,
html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-term-btn[aria-checked="true"] {
  background: var(--off) !important;
  color: var(--ink) !important;
  box-shadow: none !important;
  transform: none !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-term-help {
  margin: 12px 0 0 !important;
  font-size: 12.5px !important;
  line-height: 1.55 !important;
  color: var(--muted) !important;
  text-align: left !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-term-help[hidden] {
  display: none !important;
}

/* Summary tile */
html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-summary {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  margin: 22px 0 0 !important;
  padding: 16px 18px !important;
  border: 1px solid var(--line) !important;
  border-radius: 12px !important;
  background: rgba(255, 255, 255, .05) !important;
  color: var(--off) !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-summary-line {
  display: flex !important;
  justify-content: space-between !important;
  align-items: baseline !important;
  gap: 14px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  font-size: 14px !important;
  color: var(--muted) !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-summary-line--total {
  padding-top: 8px !important;
  border-top: 1px solid var(--line) !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-summary-label {
  font-size: 10.5px !important;
  font-weight: 800 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: var(--muted) !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-summary-detail {
  font-size: 15px !important;
  font-weight: 800 !important;
  color: var(--off) !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-summary-total {
  font-size: 22px !important;
  font-weight: 900 !important;
  letter-spacing: -.03em !important;
  color: var(--off) !important;
}

/* Actions */
html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 14px !important;
  margin: 18px 0 0 !important;
  padding: 0 !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-add-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 15px 28px !important;
  border: 0 !important;
  border-radius: 99px !important;
  background: var(--grad) !important;
  box-shadow: none !important;
  color: var(--ink) !important;
  font-family: inherit !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  transform: none !important;
  opacity: 1 !important;
  transition: filter .15s ease, transform .15s ease;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-add-btn:hover:not(:disabled) {
  filter: brightness(1.06);
  transform: translateY(-1px) !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-add-btn:disabled {
  background: rgba(255, 255, 255, .12) !important;
  color: rgba(255, 255, 255, .55) !important;
  cursor: not-allowed;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-error {
  flex: 1 1 100% !important;
  margin: 0 !important;
  padding: 10px 14px !important;
  border: 0 !important;
  border-left: 3px solid #ff5757 !important;
  border-radius: 0 12px 12px 0 !important;
  background: rgba(255, 87, 87, .1) !important;
  color: var(--off) !important;
  font-size: 13px !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-error[hidden] {
  display: none !important;
}

/* FAQ accordion under the composer */
html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-faq {
  margin: 40px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-faq-title {
  margin: 0 0 14px !important;
  font-size: 18px !important;
  text-align: left !important;
  text-transform: none !important;
  font-weight: 900 !important;
  letter-spacing: -.02em !important;
  color: var(--off) !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-faq-item {
  margin: 0 0 10px !important;
  padding: 0 !important;
  border: 1px solid var(--line) !important;
  border-radius: 14px !important;
  background: rgba(255, 255, 255, .035) !important;
  box-shadow: none !important;
  overflow: hidden;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-faq-q {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 12px !important;
  margin: 0 !important;
  padding: 16px 20px !important;
  background: transparent !important;
  color: var(--off) !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  list-style: none;
  cursor: pointer;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-faq-q::-webkit-details-marker {
  display: none;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-faq-toggle {
  color: var(--orange) !important;
  font-weight: 900 !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-faq-a {
  margin: 0 !important;
  padding: 0 20px 18px !important;
  background: transparent !important;
  color: var(--muted) !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-faq-a :is(p, li) {
  color: var(--muted) !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-faq-a strong {
  color: var(--off) !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-faq-table-wrap {
  overflow-x: auto;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-faq-table {
  width: 100% !important;
  border-collapse: collapse !important;
  background: transparent !important;
  color: var(--muted) !important;
  font-size: 13px !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-faq-table :is(th, td) {
  padding: 10px 12px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--line) !important;
  background: transparent !important;
  color: inherit !important;
  text-align: left !important;
  vertical-align: top !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-faq-table th {
  color: var(--off) !important;
  font-size: 10.5px !important;
  font-weight: 800 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-faq-tag {
  display: inline-block;
  margin-top: 4px;
  padding: 2px 8px !important;
  border-radius: 99px !important;
  background: rgba(32, 214, 180, .14) !important;
  color: var(--teal) !important;
  font-size: 10.5px !important;
  font-weight: 800 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
}


/* ============================================================
   18. go-troppo PLUGIN — Step 4 home phone (.nbn-voip-section)
   ------------------------------------------------------------
   The concept's .phone row: copy on the left, a Yes/No pill switch on
   the right. :not(.hidden) keeps the plugin's hidden state intact.
   ============================================================ */
html body .nbn-plugin-wrapper .nbn-voip-section:not(.hidden) {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  column-gap: clamp(20px, 3vw, 40px) !important;
  row-gap: 18px !important;
}

html body .nbn-plugin-wrapper .nbn-voip-section .troppo-heading {
  flex: 1 1 100% !important;
  margin: 0 !important;
}

html body .nbn-plugin-wrapper .nbn-voip-price-display {
  display: flex !important;
  flex: 1 1 420px !important;
  max-width: none !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 6px !important;
  min-width: 260px;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  text-align: left !important;
}

html body .nbn-plugin-wrapper .nbn-voip-price-name {
  margin: 0 !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  color: var(--off) !important;
}

html body .nbn-plugin-wrapper .nbn-voip-price-amount {
  display: flex !important;
  align-items: baseline !important;
  gap: 6px !important;
  margin: 0 !important;
  color: var(--muted) !important;
  font-size: 14.5px !important;
}

html body .nbn-plugin-wrapper .nbn-voip-price-value {
  font-size: 22px !important;
  font-weight: 900 !important;
  letter-spacing: -.03em !important;
  color: var(--off) !important;
}

html body .nbn-plugin-wrapper .nbn-voip-price-term {
  font-size: 13px !important;
  font-weight: 700 !important;
  color: var(--muted) !important;
}

html body .nbn-plugin-wrapper .nbn-voip-simple-options {
  display: inline-flex !important;
  flex: 0 0 auto !important;
  gap: 0 !important;
  flex-wrap: nowrap !important;
  margin: 0 0 0 auto !important;
  padding: 4px !important;
  border-radius: 99px !important;
  background: rgba(255, 255, 255, .09) !important;
}

html body .nbn-plugin-wrapper .nbn-voip-simple-btn {
  width: auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 11px 24px !important;
  border: 0 !important;
  border-radius: 99px !important;
  background: transparent !important;
  box-shadow: none !important;
  color: rgba(255, 255, 255, .7) !important;
  font-family: inherit !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  white-space: nowrap !important;
  text-transform: none !important;
  transform: none !important;
  transition: background-color .15s ease, color .15s ease;
}

html body .nbn-plugin-wrapper .nbn-voip-simple-btn:hover {
  background: rgba(255, 255, 255, .08) !important;
  box-shadow: none !important;
  color: var(--off) !important;
  transform: none !important;
}

html body .nbn-plugin-wrapper .nbn-voip-simple-btn.selected,
html body .nbn-plugin-wrapper .nbn-voip-simple-btn[aria-pressed="true"] {
  background: var(--off) !important;
  box-shadow: none !important;
  color: var(--ink) !important;
}

@media (max-width: 640px) {
  html body .nbn-plugin-wrapper .nbn-voip-simple-options {
    margin-left: 0 !important;
  }
}

html body .nbn-plugin-wrapper .nbn-voip-btn-text {
  color: inherit !important;
  font: inherit !important;
}

html body .nbn-plugin-wrapper .nbn-voip-simple-yes .nbn-voip-btn-text::after {
  content: ", add it";
}

html body .nbn-plugin-wrapper .nbn-voip-simple-no .nbn-voip-btn-text::after {
  content: " thanks";
}

html body .nbn-plugin-wrapper .nbn-critical-info-statement {
  flex: 1 1 100% !important;
  margin: 4px 0 0 !important;
  text-align: left !important;
}

html body .nbn-plugin-wrapper .nbn-pdf-link {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--muted) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px;
}

html body .nbn-plugin-wrapper .nbn-pdf-link:hover {
  background: transparent !important;
  color: var(--off) !important;
}

html body .nbn-plugin-wrapper .nbn-pdf-icon {
  width: 16px !important;
  height: 16px !important;
}


/* ============================================================
   19. go-troppo PLUGIN — order summary (.nbn-cart-summary-section)
   ------------------------------------------------------------
   The concept's .sum band: off-white ground, a white .lines card of step
   rows on the left and the dark .tot totals panel on the right. The
   plugin renders this block outside .nbn-plugin-wrapper (straight into
   the page column), so nothing here relies on the wrapper. product-flow.css
   makes .nbn-cart-summary sticky; that is reset.
   ============================================================ */
html body .nbn-cart-summary-section.hidden {
  display: none !important;
}

html body .nbn-cart-summary-section {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 56px max(clamp(20px, 5vw, 56px), calc((100% - var(--wrap)) / 2 + clamp(20px, 5vw, 56px))) 62px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--off) !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  color: var(--ink) !important;
  animation: none !important;
}

html body .nbn-cart-summary-section .nbn-cart-summary {
  position: static !important;
  top: auto !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) !important;
  gap: 24px !important;
  align-items: start !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  color: var(--ink) !important;
  animation: none !important;
}

html body .nbn-cart-summary-section .nbn-cart-header {
  grid-column: 1 / -1 !important;
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 14px !important;
  margin: 0 0 6px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

html body .nbn-cart-summary-section .nbn-cart-title {
  margin: 0 !important;
  font-size: clamp(26px, 3.4vw, 38px) !important;
  font-weight: 900 !important;
  line-height: 1.05 !important;
  letter-spacing: -.03em !important;
  color: var(--ink) !important;
}

html body .nbn-cart-summary-section .nbn-cart-title::before,
html body .nbn-cart-summary-section .nbn-cart-title::after {
  content: none !important;
}

html body .nbn-cart-summary-section .nbn-cart-total-display {
  display: inline-flex !important;
  align-items: baseline !important;
  gap: 4px !important;
  margin: 0 !important;
  padding: 9px 16px !important;
  border-radius: 99px !important;
  background: rgba(16, 15, 29, .07) !important;
  color: var(--ink) !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  letter-spacing: -.01em !important;
}

html body .nbn-cart-summary-section .nbn-total-amount {
  color: var(--ink) !important;
  font-weight: 900 !important;
}

/* Step rows = .lines / .ln */
html body .nbn-cart-summary-section .nbn-cart-steps {
  grid-column: 1 !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid rgba(0, 0, 0, .09) !important;
  border-radius: 18px !important;
  background: #fff !important;
  box-shadow: none !important;
  overflow: hidden !important;
}

html body .nbn-cart-summary-section .nbn-cart-step {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  column-gap: 16px !important;
  row-gap: 0 !important;
  align-items: baseline !important;
  margin: 0 !important;
  padding: 18px 24px !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(0, 0, 0, .08) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--ink) !important;
  text-align: left !important;
  animation: none !important;
}

html body .nbn-cart-summary-section .nbn-cart-step:last-child {
  border-bottom: 0 !important;
}

html body .nbn-cart-summary-section .nbn-cart-step.hidden {
  display: none !important;
}

html body .nbn-cart-summary-section .nbn-cart-step-header {
  grid-column: 1 !important;
  grid-row: 1 !important;
  margin: 0 !important;
  font-size: 10.5px !important;
  font-weight: 800 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: #6a6f7e !important;
}

html body .nbn-cart-summary-section .nbn-cart-step-title {
  grid-column: 1 !important;
  grid-row: 2 !important;
  margin: 3px 0 0 !important;
  font-size: 15.5px !important;
  font-weight: 900 !important;
  line-height: 1.3 !important;
  letter-spacing: -.02em !important;
  color: var(--ink) !important;
}

html body .nbn-cart-summary-section .nbn-cart-step-subtitle {
  grid-column: 1 !important;
  grid-row: 3 !important;
  margin: 3px 0 0 !important;
  font-size: 12.5px !important;
  color: #5b6070 !important;
}

html body .nbn-cart-summary-section .nbn-cart-step-price {
  grid-column: 2 !important;
  grid-row: 2 !important;
  align-self: baseline !important;
  margin: 0 !important;
  font-size: 16px !important;
  font-weight: 900 !important;
  letter-spacing: -.025em !important;
  white-space: nowrap !important;
  color: var(--ink) !important;
}

html body .nbn-cart-summary-section .nbn-cart-step-actions {
  grid-column: 1 / -1 !important;
  grid-row: 4 !important;
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: flex-start !important;
  gap: 14px !important;
  margin: 10px 0 0 !important;
  padding: 0 !important;
}

html body .nbn-cart-summary-section .nbn-cart-step-actions .troppo-btn,
html body .nbn-cart-summary-section .nbn-cart-step-actions .nbn-remove-btn {
  display: inline !important;
  width: auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #5b6070 !important;
  font-family: inherit !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  text-decoration: none !important;
  transform: none !important;
  cursor: pointer;
}

html body .nbn-cart-summary-section .nbn-cart-step-actions .nbn-remove-btn {
  color: #b42318 !important;
}

html body .nbn-cart-summary-section .nbn-cart-step-actions .troppo-btn:hover,
html body .nbn-cart-summary-section .nbn-cart-step-actions .nbn-remove-btn:hover {
  background: transparent !important;
  color: var(--ink) !important;
  text-decoration: underline !important;
  text-underline-offset: 3px;
}

/* Totals panel = .tot */
html body .nbn-cart-summary-section .nbn-cart-footer {
  grid-column: 2 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  gap: 0 !important;
  margin: 0 !important;
  padding: 28px 26px 30px !important;
  border: 0 !important;
  border-radius: 18px !important;
  background: var(--ink) !important;
  box-shadow: none !important;
  color: var(--off) !important;
}

html body .nbn-cart-summary-section .nbn-cart-totals-summary {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  text-align: left !important;
}

html body .nbn-cart-summary-section .nbn-cart-total-item {
  display: flex !important;
  justify-content: space-between !important;
  align-items: baseline !important;
  gap: 14px !important;
  margin: 0 !important;
  padding: 11px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid var(--line) !important;
  font-size: 14px !important;
  color: var(--muted) !important;
}

html body .nbn-cart-summary-section .nbn-cart-total-label {
  margin: 0 !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: var(--muted) !important;
}

html body .nbn-cart-summary-section .nbn-cart-total-value {
  margin: 0 !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  white-space: nowrap !important;
  color: var(--off) !important;
  background: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
  -webkit-text-fill-color: currentColor !important;
}

html body .nbn-cart-summary-section .nbn-monthly-total,
html body .nbn-cart-summary-section .nbn-onetime-total,
html body .nbn-cart-summary-section .nbn-recurring-total {
  color: inherit !important;
  font: inherit !important;
}

/* The recurring line is the concept's big per-period figure, shown last. */
html body .nbn-cart-summary-section .nbn-cart-total-item:has(.nbn-cart-recurring-label) {
  order: 2 !important;
  padding: 18px 0 4px !important;
  border-bottom: 0 !important;
}

html body .nbn-cart-summary-section .nbn-cart-total-item:has(.nbn-cart-recurring-label) .nbn-cart-total-label {
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
}

html body .nbn-cart-summary-section .nbn-cart-total-item:has(.nbn-cart-recurring-label) .nbn-cart-total-value {
  font-size: 34px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: -.04em !important;
}

html body .nbn-cart-summary-section .nbn-cart-recurring-suffix {
  margin-left: 2px;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  color: var(--muted) !important;
}

html body .nbn-cart-summary-section .nbn-proceed-checkout {
  display: block !important;
  width: 100% !important;
  margin: 20px 0 0 !important;
  padding: 15px 14px !important;
  border: 0 !important;
  border-radius: 99px !important;
  background: var(--grad) !important;
  box-shadow: none !important;
  color: var(--ink) !important;
  font-family: inherit !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  text-align: center !important;
  text-transform: none !important;
  transform: none !important;
  opacity: 1 !important;
  cursor: pointer;
  transition: filter .15s ease, transform .15s ease;
}

html body .nbn-cart-summary-section .nbn-proceed-checkout:hover:not(:disabled) {
  filter: brightness(1.06);
  transform: translateY(-1px) !important;
}

html body .nbn-cart-summary-section .nbn-proceed-checkout:disabled {
  background: rgba(255, 255, 255, .12) !important;
  color: rgba(255, 255, 255, .55) !important;
  cursor: not-allowed;
}

@media (max-width: 820px) {
  html body .nbn-cart-summary-section .nbn-cart-summary {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  html body .nbn-cart-summary-section .nbn-cart-steps,
  html body .nbn-cart-summary-section .nbn-cart-footer {
    grid-column: 1 !important;
  }

  html body .nbn-cart-summary-section .nbn-cart-step {
    padding: 16px 18px !important;
  }
}


/* ============================================================
   20. go-troppo PLUGIN — plan cards on the concept's white-card design
   ------------------------------------------------------------
   Covers both surfaces plan-cards-v9.css owns: Step 2 of the ordering
   flow (#nbn-step-2) and the [nbn_plans] display on content pages. The
   :is() prefix carries the ID's specificity, so every rule out-ranks the
   plugin's `body .nbn-plugin-wrapper.nbn-flow .nbn-plan-card …` chains.
   Design source: theme-gotroppo style.css/order.css .plans, .card,
   .toggle, .trustrow, .entries, .feat, .finep.
   ============================================================ */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) {
  background: var(--off) !important;
  color: var(--ink) !important;
  text-align: left !important;
  font-family: inherit !important;
}

html body .nbn-plugin-wrapper.nbn-plans-display {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 44px clamp(20px, 4vw, 48px) 52px !important;
  border: 0 !important;
  border-radius: 22px !important;
  box-shadow: none !important;
  overflow: visible !important;
}

html body .nbn-plugin-wrapper.nbn-plans-display .troppo-theme-container,
html body .nbn-plugin-wrapper.nbn-plans-display .nbn-plans-display {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

html body .nbn-plugin-wrapper.nbn-plans-display .troppo-bg-waves,
html body .nbn-plugin-wrapper.nbn-plans-display .troppo-float-shapes {
  display: none !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .troppo-heading {
  color: var(--ink) !important;
  text-align: left !important;
}

/* Trust badges = .trustrow */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-trust-badges {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: flex-start !important;
  gap: 10px 22px !important;
  margin: 18px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-trust-badge {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #5b6070 !important;
  font-size: 12.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-trust-badge::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-right: 8px;
  border-radius: 99px;
  background: var(--orange);
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-trust-badge-icon {
  display: none !important;
}

/* Plan-type and payment filters = .toggle */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) :is(.nbn-plan-filters, .nbn-payment-filters) {
  display: inline-flex !important;
  flex-wrap: wrap !important;
  justify-content: flex-start !important;
  gap: 0 !important;
  width: auto !important;
  margin: 22px 12px 0 0 !important;
  padding: 4px !important;
  border: 0 !important;
  border-radius: 99px !important;
  background: #e9e5df !important;
  box-shadow: none !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) :is(.nbn-plan-filter, .nbn-payment-filter) {
  display: inline-flex !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 10px 20px !important;
  border: 0 !important;
  border-radius: 99px !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #3d4351 !important;
  font-family: inherit !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  text-decoration: none !important;
  transform: none !important;
  opacity: 1 !important;
  cursor: pointer;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) :is(.nbn-plan-filter, .nbn-payment-filter):hover {
  background: rgba(16, 15, 29, .08) !important;
  color: var(--ink) !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) :is(.nbn-plan-filter, .nbn-payment-filter).active {
  background: var(--ink) !important;
  color: var(--off) !important;
  box-shadow: none !important;
}

/* Grid = .grid (the plugin's .nbn-plans-grid scroller; the arrows go) */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plans-container {
  display: block !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  margin-inline: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plans-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)) !important;
  gap: 18px !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 30px 0 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  scroll-snap-type: none !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) :is(.nbn-scroll-arrow, .nbn-plans-scroll-hint, .nbn-scroll-indicator, .nbn-scroll-dots, .nbn-plans-nav) {
  display: none !important;
}

/* Card = .card */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card {
  position: relative !important;
  flex-direction: column !important;
  flex: none !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 30px 24px 26px !important;
  border: 1px solid rgba(0, 0, 0, .09) !important;
  border-radius: 20px !important;
  background: #fff !important;
  box-shadow: none !important;
  color: var(--ink) !important;
  text-align: left !important;
  overflow: visible !important;
  transform: none !important;
  transition: box-shadow .15s ease !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card:hover {
  transform: none !important;
  box-shadow: 0 18px 40px rgba(0, 0, 0, .12) !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) :is(.nbn-plan-card.popular, .nbn-plan-card.nbn-recommended),
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) :is(.nbn-plan-card.popular, .nbn-plan-card.nbn-recommended):hover {
  box-shadow: 0 0 0 2.5px var(--orange) !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card.selected {
  box-shadow: 0 0 0 3px var(--ink), 0 18px 40px rgba(0, 0, 0, .28) !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) :is(.nbn-plan-card.selected.popular, .nbn-plan-card.selected.nbn-recommended) {
  box-shadow: 0 0 0 3px var(--ink), 0 0 0 7px rgba(255, 98, 0, .35), 0 18px 40px rgba(0, 0, 0, .28) !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-details {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  gap: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: inherit !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-product-type {
  display: none !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) :is(.nbn-popular-badge, .nbn-popular-tag) {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  bottom: auto !important;
  left: auto !important;
  width: auto !important;
  margin: 0 !important;
  padding: 6px 12px !important;
  border: 0 !important;
  border-radius: 0 19px 0 11px !important;
  background: var(--orange) !important;
  box-shadow: none !important;
  color: var(--ink) !important;
  font-size: 9.5px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  transform: none !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) :is(.nbn-savings-badge, .nbn-promotional-badge) {
  position: static !important;
  display: inline-flex !important;
  align-self: flex-start !important;
  width: auto !important;
  margin: 0 0 14px !important;
  padding: 6px 11px !important;
  border: 0 !important;
  border-radius: 99px !important;
  background: #fff6f0 !important;
  box-shadow: none !important;
  color: var(--orange-h) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  line-height: 1.3 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  transform: none !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-promotional-badge .badge-text {
  display: inline !important;
  padding: 0 !important;
  background: transparent !important;
  color: inherit !important;
  font: inherit !important;
  letter-spacing: inherit !important;
  text-transform: inherit !important;
}

/* The card is the only positioned box, so the POPULAR flag sits on its corner */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) :is(.nbn-plan-details, .nbn-plan-header, .nbn-header-top, .nbn-header-bottom) {
  position: static !important;
}

/* Name + tier = .nm / .tech */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-header {
  display: block !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: inherit !important;
  text-align: left !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-header-top {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 5px !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-name {
  min-height: 0 !important;
  order: 0 !important;
  display: block !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--ink) !important;
  font-size: 23px !important;
  font-weight: 900 !important;
  line-height: 1.1 !important;
  letter-spacing: -.03em !important;
  text-align: left !important;
  text-shadow: none !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-tier {
  display: inline-block !important;
  order: 1 !important;
  position: static !important;
  text-align: left !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: #6a6f7e !important;
  font-size: 11.5px !important;
  font-weight: 700 !important;
  letter-spacing: .04em !important;
  text-transform: none !important;
}

/* Typical speeds = .spd */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-header-bottom {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 8px !important;
  margin: 20px 0 !important;
  padding: 16px 0 !important;
  border: 0 !important;
  border-top: 1px solid rgba(0, 0, 0, .09) !important;
  border-bottom: 1px solid rgba(0, 0, 0, .09) !important;
  border-radius: 0 !important;
  background: transparent !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-typical-speeds-text {
  margin: 0 !important;
  color: #6a6f7e !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
}

/* display is deliberately not set here. usecase.css lays this row out as a grid
   on the narrower use-case card, and a flex declaration at this specificity
   would beat it and break a value away from its unit. */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-typical-speeds-indicators {
  flex-wrap: wrap !important;
  align-items: baseline !important;
  justify-content: flex-start !important;
  gap: 4px 4px !important;
  margin: 0 !important;
  color: var(--ink) !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-arrow {
  color: var(--orange) !important;
  font-size: 14px !important;
  font-weight: 900 !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-arrow + .nbn-typical-value {
  margin-left: 2px !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-typical-value {
  color: var(--ink) !important;
  font-size:  24px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: -.035em !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-unit {
  margin-right:  8px !important;
  color: #5b6070 !important;
  font-size: 12px !important;
  font-weight: 800 !important;
}

/* "Ideal for" chip */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-users-box {
  display: inline-flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  align-self: flex-start !important;
  gap: 6px 12px !important;
  width: auto !important;
  margin: 0 0 12px !important;
  padding: 8px 12px !important;
  border: 0 !important;
  border-radius: 11px !important;
  background: #f3f1ee !important;
  box-shadow: none !important;
  color: #3d4351 !important;
  font-size: 12px !important;
  font-weight: 700 !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-users-label {
  color: #6a6f7e !important;
  font-size: 10.5px !important;
  font-weight: 800 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-users-stat {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  color: #3d4351 !important;
  font-size: 12px !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-users-stat strong {
  color: var(--ink) !important;
  font-weight: 900 !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-users-stat svg {
  width: 14px !important;
  height: 14px !important;
  color: var(--orange) !important;
  fill: currentColor;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-benefit {
  margin: 0 0 16px !important;
  padding: 0 !important;
  background: transparent !important;
  color: #5b6070 !important;
  font-size: 13.5px !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  text-align: left !important;
}

/* Price = .price */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) :is(.nbn-plan-pricing, .nbn-price-display, .nbn-weekly-price, .nbn-fortnightly-price, .nbn-monthly-price) {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: inherit !important;
  text-align: left !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-price-container {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: baseline !important;
  justify-content: flex-start !important;
  gap: 4px !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--ink) !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) :is(.nbn-price-container::before, .nbn-price-value::before, .nbn-currency) {
  color: var(--ink) !important;
  font-size: 16px !important;
  font-weight: 900 !important;
  vertical-align: top !important;
  background: none !important;
  -webkit-text-fill-color: currentColor !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-price-value {
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
  -webkit-text-fill-color: currentColor !important;
  color: var(--ink) !important;
  font-size: clamp(30px, 2.9vw, 38px) !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: -.045em !important;
  text-shadow: none !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-price-container small {
  color: #5b6070 !important;
  font-size: 13.5px !important;
  font-weight: 700 !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-price-note {
  margin: 6px 0 0 !important;
  padding: 0 !important;
  background: transparent !important;
  color: #5b6070 !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  line-height: 1.45 !important;
  text-align: left !important;
}

/* GT Rewards entries = .entries */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-gt-rewards-tag {
  display: inline-flex !important;
  align-items: baseline !important;
  align-self: flex-start !important;
  gap: 6px !important;
  width: auto !important;
  margin: 16px 0 0 !important;
  padding: 9px 13px !important;
  border: 0 !important;
  border-radius: 11px !important;
  background: #f1ecff !important;
  box-shadow: none !important;
  color: var(--purple) !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-tagline {
  margin: 14px 0 0 !important;
  padding: 0 !important;
  background: transparent !important;
  color: #6a6f7e !important;
  font-size: 10.5px !important;
  font-weight: 800 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  text-align: left !important;
}

/* Best-for and features = .feat */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-best-for {
  margin: 14px 0 0 !important;
  padding: 0 !important;
  border: 1px solid rgba(0, 0, 0, .09) !important;
  border-radius: 11px !important;
  background: #faf9f7 !important;
  box-shadow: none !important;
  color: #3d4351 !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-best-for-head {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 10px 14px !important;
  border: 0 !important;
  background: transparent !important;
  color: #3d4351 !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  list-style: none !important;
  cursor: pointer;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-best-for-head::-webkit-details-marker {
  display: none;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-best-for-head::after {
  content: "+";
  color: var(--orange);
  font-size: 15px;
  font-weight: 900;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-best-for[open] .nbn-best-for-head::after {
  content: "\2013";
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) :is(.nbn-best-for-list, .nbn-features-list) {
  display: block !important;
  margin: 0 !important;
  padding: 2px 14px 12px !important;
  list-style: none !important;
  color: #3d4351 !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) :is(.nbn-best-for-list li, .nbn-feature-item) {
  position: relative !important;
  display: block !important;
  margin: 0 0 7px !important;
  padding: 0 0 0 20px !important;
  border: 0 !important;
  background: transparent !important;
  color: #3d4351 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-align: left !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) :is(.nbn-best-for-list li, .nbn-feature-item)::before {
  content: "";
  position: absolute;
  left: 0;
  top: 6px;
  width: 10px;
  height: 10px;
  border-radius: 99px;
  background: var(--orange);
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) :is(.nbn-highlight-check, .nbn-feature-icon) {
  display: none !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-feature-text {
  color: inherit !important;
  font: inherit !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-description {
  margin: 14px 0 0 !important;
  padding: 0 !important;
  background: transparent !important;
  color: #5b6070 !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
  text-align: left !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-features {
  margin: 14px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-features-toggle {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 10px 0 !important;
  border: 0 !important;
  border-top: 1px solid rgba(0, 0, 0, .09) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #3d4351 !important;
  font-family: inherit !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  cursor: pointer;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-toggle-icon {
  color: var(--orange) !important;
  font-size: 15px !important;
  font-weight: 900 !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-features-content {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

/* Select button = .card .btn, CIS link = .finep a */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-actions {
  margin: auto 0 0 !important;
  padding: 18px 0 0 !important;
  border: 0 !important;
  background: transparent !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-actions :is(.troppo-btn-primary, .nbn-flow-select-plan, .nbn-select-plan, button, a) {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 14px !important;
  border: 0 !important;
  border-radius: 99px !important;
  background: var(--grad) !important;
  box-shadow: none !important;
  color: var(--ink) !important;
  font-family: inherit !important;
  font-size: 14.5px !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  text-align: center !important;
  text-transform: none !important;
  text-decoration: none !important;
  transform: none !important;
  cursor: pointer;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-actions :is(.troppo-btn-primary, .nbn-flow-select-plan, .nbn-select-plan, button, a):hover {
  filter: brightness(1.06);
  transform: translateY(-1px) !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-cis {
  margin: 12px 0 0 !important;
  text-align: center !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) :is(.nbn-plan-cis a, .nbn-plan-info-links a, .nbn-plans-footnotes a) {
  color: #5b6070 !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) :is(.nbn-plan-cis a, .nbn-plan-info-links a, .nbn-plans-footnotes a):hover {
  color: var(--ink) !important;
}

/* Footnotes, info links = .finep */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plans-footnotes {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: flex-start !important;
  gap: 10px 22px !important;
  margin: 26px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-footnote {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  margin: 0 !important;
  color: #5b6070 !important;
  font-size: 12px !important;
  font-weight: 700 !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-footnote svg {
  width: 14px !important;
  height: 14px !important;
  color: var(--orange) !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-info-links {
  margin: 16px 0 0 !important;
  text-align: left !important;
  color: #5b6070 !important;
  font-size: 12px !important;
}

/* Speed guide accordion as a white card */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-guide {
  margin: 22px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-guide-trigger {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 16px 20px !important;
  border: 1px solid rgba(0, 0, 0, .09) !important;
  border-radius: 14px !important;
  background: #fff !important;
  box-shadow: none !important;
  color: var(--ink) !important;
  font-family: inherit !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  cursor: pointer;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-guide-trigger__icon {
  color: var(--orange) !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-guide-panel {
  margin: 10px 0 0 !important;
  border: 1px solid rgba(0, 0, 0, .09) !important;
  border-radius: 14px !important;
  background: #fff !important;
  box-shadow: none !important;
  color: var(--ink) !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-guide-content {
  padding: 20px !important;
  background: transparent !important;
  color: #3d4351 !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-guide-content :is(table, th, td, tr) {
  border-color: rgba(0, 0, 0, .09) !important;
  background: transparent !important;
  color: #3d4351 !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-guide-content th {
  color: var(--ink) !important;
  font-size: 10.5px !important;
  font-weight: 800 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) :is(.nbn-speed-guide-close, .nbn-speed-guide-expand, .nbn-speed-guide-filters button) {
  margin: 0 !important;
  padding: 8px 14px !important;
  border: 1px solid rgba(0, 0, 0, .12) !important;
  border-radius: 99px !important;
  background: #fff !important;
  box-shadow: none !important;
  color: var(--ink) !important;
  font-family: inherit !important;
  font-size: 12.5px !important;
  font-weight: 800 !important;
  cursor: pointer;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-guide-filters button.active {
  background: var(--ink) !important;
  border-color: var(--ink) !important;
  color: var(--off) !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) :is(.nbn-speed-guide-note, .nbn-speed-guide-scroll-hint) {
  color: #5b6070 !important;
  font-size: 12px !important;
}

/* Cards the plugin filters out stay out */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card.filter-hidden {
  display: none !important;
}

/* Script-injected billing panel around the payment toggle */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-billing-choice {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 14px 24px !important;
  margin: 22px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-billing-choice .nbn-payment-filters {
  margin: 0 !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-billing-choice__copy {
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
  color: #5b6070 !important;
  font-size: 13.5px !important;
  text-align: left !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-billing-choice__copy strong {
  color: var(--ink) !important;
  font-size: 15px !important;
  font-weight: 800 !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-billing-choice__copy span {
  color: #5b6070 !important;
}

/* Speed help "?" inside the tier line */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-help {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 16px !important;
  height: 16px !important;
  margin: 0 0 0 6px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 99px !important;
  background: #e9e5df !important;
  box-shadow: none !important;
  color: var(--ink) !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  vertical-align: middle !important;
  cursor: pointer;
}

/* Rewards summary copy on the light band */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .gtl-rewards-summary :is(p, span, strong, a, summary) {
  color: var(--ink) !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .gtl-rewards-summary :is(p, .gtl-rewards-summary-eyebrow) {
  color: #5b6070 !important;
}

/* Rewards draw panel inside the summary */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-guidance .gtl-rewards-summary-draw {
  border: 1px solid rgba(0, 0, 0, .09) !important;
  border-radius: 14px !important;
  background: #fff !important;
  color: var(--ink) !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-guidance .gtl-rewards-summary-draw :is(p, span, strong, div) {
  color: var(--ink) !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-guidance .gtl-rewards-summary-draw :is(p, .gtl-rewards-summary-eyebrow) {
  color: #5b6070 !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-guidance .gtl-rewards-summary-draw a {
  color: var(--ink) !important;
  font-weight: 800 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px;
}

/* Speed guide table internals (rendered by the plugin script) */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-guide-content :is(p, span, li, td, th, strong, div) {
  color: #3d4351 !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-guide-content :is(strong, .sg-tier-speed, th) {
  color: var(--ink) !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .sg-tier-speed {
  display: block !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  letter-spacing: -.02em !important;
  text-transform: none !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .sg-tier-plan {
  display: block !important;
  color: #5b6070 !important;
  font-size: 10.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-guide-table th.sg-recommended {
  background: #fff6f0 !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .sg-best-match-tag {
  display: inline-block !important;
  margin: 0 0 4px !important;
  padding: 3px 8px !important;
  border-radius: 99px !important;
  background: var(--orange) !important;
  color: var(--ink) !important;
  font-size: 9.5px !important;
  font-weight: 900 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-guide-filters {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin: 0 0 14px !important;
}

/* [nbn_plans] title underline and its check-availability CTA */
html body .nbn-plugin-wrapper.nbn-plans-display .nbn-plans-title::after {
  display: none !important;
}

html body .nbn-plugin-wrapper.nbn-plans-display .nbn-address-check-cta {
  margin: 26px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--ink) !important;
  text-align: left !important;
}

html body .nbn-plugin-wrapper.nbn-plans-display .nbn-address-check-cta :is(p, span, h3, h4) {
  color: #5b6070 !important;
}

html body .nbn-plugin-wrapper.nbn-plans-display .nbn-address-check-cta :is(a, button) {
  display: inline-flex !important;
  align-items: center !important;
  margin: 10px 0 0 !important;
  padding: 14px 24px !important;
  border: 0 !important;
  border-radius: 99px !important;
  background: var(--grad) !important;
  box-shadow: none !important;
  color: var(--ink) !important;
  font-size: 14.5px !important;
  font-weight: 800 !important;
  text-decoration: none !important;
  text-transform: none !important;
}

/* FTTP upgrade preview (flow only) */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .nbn-upgrade-plans-preview {
  margin: 22px 0 0 !important;
  padding: 22px !important;
  border: 1px solid rgba(0, 0, 0, .09) !important;
  border-radius: 16px !important;
  background: #fff !important;
  box-shadow: none !important;
  color: var(--ink) !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 :is(.nbn-upgrade-plans-preview__title, .nbn-upgrade-plans-preview__label) {
  color: var(--ink) !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .nbn-upgrade-plans-preview__desc {
  color: #5b6070 !important;
}

@media (max-width: 760px) {
  :is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plans-container {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  :is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) :is(.nbn-plan-filter, .nbn-payment-filter) {
    padding: 9px 14px !important;
    font-size: 12.5px !important;
  }
}


/* ============================================================
   21. Header — dropdown menus
   ------------------------------------------------------------
   header.php prints all menu levels. The second level opens as a dark
   panel; a third level renders inline inside it as grouped links (the
   group items are "#" placeholders). Parents get a chevron, and the two
   right-most items open their panel leftwards so nothing leaves the
   viewport. Desktop only: style.css lays the menu out statically below
   the mobile breakpoint.
   ============================================================ */
.primary-menu .sub-menu,
.primary-menu .sub-menu li {
  margin: 0;
  list-style: none;
}

.primary-menu > li.menu-item-has-children > a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.primary-menu > li.menu-item-has-children > a::after {
  content: "";
  width: 6px;
  height: 6px;
  margin-top: -3px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  opacity: .7;
  transition: transform .15s ease, margin-top .15s ease;
}

.primary-menu > li.menu-item-has-children:hover > a::after,
.primary-menu > li.menu-item-has-children:focus-within > a::after {
  margin-top: 3px;
  transform: rotate(225deg);
}

@media (min-width: 901px) {
  .primary-menu > li > .sub-menu {
    top: calc(100% + 10px);
    min-width: 240px;
    padding: 10px;
    box-shadow: 0 24px 50px rgba(0, 0, 0, .5);
  }

  /* Keeps the panel open while the pointer crosses the gap under the link. */
  .primary-menu > li > .sub-menu::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -12px;
    height: 12px;
  }

  .primary-menu > li:nth-last-child(-n+2) > .sub-menu {
    left: auto;
    right: 0;
  }

  .primary-menu .sub-menu a {
    padding: 9px 12px;
    color: rgba(255, 255, 255, .82);
    font-size: 13.5px;
    font-weight: 700;
  }

  .primary-menu .sub-menu a:hover {
    background: rgba(255, 255, 255, .07);
    color: var(--off);
  }

  .primary-menu > li > .sub-menu:has(.sub-menu) {
    display: none;
    grid-template-columns: repeat(2, minmax(190px, 1fr));
    gap: 4px 18px;
    width: max-content;
    min-width: 0;
    max-width: min(560px, calc(100vw - 40px));
  }

  .primary-menu > li:hover > .sub-menu:has(.sub-menu),
  .primary-menu > li:focus-within > .sub-menu:has(.sub-menu) {
    display: grid;
  }

  .primary-menu .sub-menu > li.menu-item-has-children > a {
    padding: 10px 12px 4px;
    color: var(--orange);
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
  }

  .primary-menu .sub-menu > li.menu-item-has-children > a[href="#"] {
    pointer-events: none;
  }

  .primary-menu .sub-menu .sub-menu {
    position: static;
    display: block;
    min-width: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .primary-menu .sub-menu .sub-menu a {
    padding: 7px 12px;
    font-size: 13px;
  }
}

@media (max-width: 900px) {
  .primary-menu .sub-menu > li.menu-item-has-children > a {
    color: var(--orange);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
  }

  .primary-menu .sub-menu .sub-menu {
    padding-left: 12px;
  }
}


/* ============================================================
   22. ORDER FLOW TEMPLATE — stepper offsets, next-steps band, FAQ band
   ------------------------------------------------------------
   templates/template-order-flow.php docks the concept's stepper above the
   plugin flow. The plugin's own "What Happens Next" grid and FAQ list follow
   .nbn-cart-summary-section as siblings; they become the concept's dark
   .next / .nsteps / .ns and .qs / .qgrid / .q bands.
   ============================================================ */
.order-flow .nbn-flow-section,
.order-flow .nbn-cart-summary-section {
  scroll-margin-top: calc(var(--gt-header-h, 64px) + var(--gt-stepper-h, 64px) + 8px);
}

.order-flow__rewards .gtl-banner {
  margin: 0 !important;
}

html body .entry-content :is(.nbn-what-happens-next, .nbn-faq-section) {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--ink) !important;
  box-shadow: none !important;
  color: var(--off) !important;
  text-align: left !important;
}

html body .entry-content .nbn-what-happens-next {
  padding: 58px max(clamp(20px, 5vw, 56px), calc((100% - var(--wrap)) / 2 + clamp(20px, 5vw, 56px))) 62px !important;
}

html body .entry-content .nbn-faq-section {
  padding: 54px max(clamp(20px, 5vw, 56px), calc((100% - var(--wrap)) / 2 + clamp(20px, 5vw, 56px))) 58px !important;
  border-top: 1px solid var(--line) !important;
}

html body .entry-content :is(.nbn-whn-title, .nbn-faq-title) {
  margin: 0 !important;
  padding: 0 !important;
  color: var(--off) !important;
  font-family: inherit !important;
  font-size: clamp(26px, 3.6vw, 40px) !important;
  font-weight: 900 !important;
  letter-spacing: -.03em !important;
  line-height: 1.1 !important;
  text-align: left !important;
  text-transform: none !important;
}

html body .entry-content .nbn-faq-title {
  font-size: clamp(24px, 3.2vw, 36px) !important;
}

html body .entry-content :is(.nbn-whn-title, .nbn-faq-title) .troppo-highlight {
  background: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
  -webkit-text-fill-color: currentColor !important;
  color: var(--orange) !important;
}

/* What happens next = .nsteps / .ns */
html body .entry-content .nbn-whn-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 15px !important;
  width: auto !important;
  max-width: none !important;
  margin: 32px 0 0 !important;
  padding: 0 !important;
}

html body .entry-content .nbn-whn-block {
  display: block !important;
  margin: 0 !important;
  padding: 24px 21px 22px !important;
  border: 1px solid var(--line) !important;
  border-radius: 15px !important;
  background: rgba(255, 255, 255, .035) !important;
  box-shadow: none !important;
  color: var(--off) !important;
  transform: none !important;
}

html body .entry-content .nbn-whn-block-header {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 14px !important;
  margin: 0 !important;
  padding: 0 !important;
}

html body .entry-content .nbn-whn-block-number {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 26px !important;
  height: 26px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 99px !important;
  background: var(--orange) !important;
  box-shadow: none !important;
  color: var(--ink) !important;
  font-size: 12.5px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
}

html body .entry-content .nbn-whn-block-title {
  margin: 0 !important;
  padding: 0 !important;
  color: var(--off) !important;
  font-size: 15.5px !important;
  font-weight: 900 !important;
  letter-spacing: -.02em !important;
  line-height: 1.2 !important;
  text-transform: none !important;
}

html body .entry-content .nbn-whn-block-text {
  margin: 7px 0 0 !important;
  padding: 0 !important;
  color: var(--muted) !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
}

html body .entry-content .nbn-whn-block-text strong {
  color: var(--off) !important;
  font-weight: 700 !important;
}

/* FAQ = .qgrid / .q, kept as the plugin's accordion */
html body .entry-content .nbn-faq-list {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 15px !important;
  align-items: start !important;
  width: auto !important;
  max-width: none !important;
  margin: 28px 0 0 !important;
  padding: 0 !important;
}

html body .entry-content .nbn-faq-item {
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid var(--line) !important;
  border-radius: 15px !important;
  background: rgba(255, 255, 255, .035) !important;
  box-shadow: none !important;
  overflow: hidden !important;
}

html body .entry-content .nbn-faq-item.active {
  border-color: rgba(255, 255, 255, .28) !important;
}

html body .entry-content .nbn-faq-question {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 14px !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 20px 22px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--off) !important;
  font-family: inherit !important;
  font-size: 15.5px !important;
  font-weight: 900 !important;
  letter-spacing: -.02em !important;
  line-height: 1.3 !important;
  text-align: left !important;
  text-transform: none !important;
  cursor: pointer;
}

html body .entry-content .nbn-faq-toggle {
  flex: 0 0 auto !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 26px !important;
  height: 26px !important;
  margin: 0 !important;
  border-radius: 99px !important;
  background: rgba(255, 255, 255, .12) !important;
  color: var(--off) !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
}

html body .entry-content .nbn-faq-answer {
  background: transparent !important;
  border: 0 !important;
}

html body .entry-content .nbn-faq-answer-inner {
  padding: 0 22px 22px !important;
  color: var(--muted) !important;
  font-size: 13.5px !important;
  line-height: 1.6 !important;
}

html body .entry-content .nbn-faq-answer-inner strong {
  color: var(--off) !important;
  font-weight: 700 !important;
}

@media (max-width: 1000px) {
  html body .entry-content .nbn-whn-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 760px) {
  html body .entry-content :is(.nbn-whn-grid, .nbn-faq-list) {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* ============================================================
   23. ORDER FLOW — step headings and details matched to the order concept
   ------------------------------------------------------------
   functions.php rewrites the flow's four "Step N:" headings into the
   concept's kicker (.gt-kicker) plus headline; order-flow.js re-applies
   Step 2 after the plugin's nbn-step2-layout.js overwrites it. Also the
   Step 1 fact tiles and chip, the 2x2 plan grid, the spine lines and the
   summary's reassurance line.
   ============================================================ */
html body .nbn-plugin-wrapper.nbn-flow .nbn-flow-section > .troppo-heading.gt-step-heading {
  margin: 0 0 12px !important;
  text-align: left !important;
  font-size: clamp(26px, 3.6vw, 40px) !important;
  font-weight: 900 !important;
  line-height: 1.06 !important;
  letter-spacing: -.03em !important;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-flow-section > .troppo-heading.gt-step-heading .gt-kicker {
  display: block !important;
  margin: 0 0 12px !important;
  background: none !important;
  -webkit-text-fill-color: currentColor !important;
  color: var(--orange) !important;
  font-size: 11.5px !important;
  font-weight: 800 !important;
  line-height: 1.4 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-flow-section > .troppo-heading.gt-step-heading em {
  font-style: normal !important;
  color: var(--orange) !important;
}

/* Step 1's heading is the kicker alone; the headline is the verified block's h3 */
html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section > .troppo-heading.gt-step-heading {
  margin: 0 !important;
  font-size: 11.5px !important;
  line-height: 1.4 !important;
  letter-spacing: .16em !important;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section > .troppo-heading.gt-step-heading .gt-kicker {
  margin: 0 !important;
}

/* Step 2 on the off-white band: the concept's .plans h2 and grey .sk kicker */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 > .troppo-heading.gt-step-heading {
  font-size: clamp(30px, 4.2vw, 46px) !important;
  color: var(--ink) !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 > .troppo-heading.gt-step-heading .gt-kicker {
  color: #6a6f7e !important;
}

/* Step 4 headline on the concept's .phone scale */
html body .nbn-plugin-wrapper.nbn-flow .nbn-voip-section > .troppo-heading.gt-step-heading {
  font-size: clamp(24px, 3vw, 34px) !important;
}

/* Step 1 verified: accent word, fact tiles with the value over its label, actions side by side */
.nbn-plugin-wrapper .nbn-address-verified .nbn-success-message h3 em {
  font-style: normal;
  color: var(--orange);
}

.nbn-plugin-wrapper .nbn-address-details > p {
  display: flex;
  flex-direction: column-reverse;
  gap: 3px;
  font-size: 14.5px;
  font-weight: 900;
  letter-spacing: -.02em;
}

.nbn-plugin-wrapper .nbn-address-details > p strong {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .5) !important;
}

.nbn-plugin-wrapper .nbn-address-details::after {
  content: "\2713\00a0 Address Checked, We Can Connect You";
}

.nbn-plugin-wrapper .nbn-address-actions {
  justify-content: flex-start !important;
}

/* Spine lines between the bands */
body .nbn-plugin-wrapper.nbn-flow .nbn-flow-section.nbn-address-section {
  border-bottom: 6px solid var(--orange) !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 {
  border-bottom: 3px solid var(--orange) !important;
}

/* The order flow shows the same plan grid as the plan pages */
@media (min-width: 761px) {
  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .nbn-plans-grid {
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)) !important;
  }
}

/* The chosen card carries the ink ring only */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .nbn-plan-card.selected::before,
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .nbn-plan-card.selected::after {
  content: none !important;
}

/* The composer header reads as the lead under the section headline */
html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-header {
  gap: 6px !important;
  margin: 4px 0 0 !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-section-title {
  font-size: 16px !important;
  letter-spacing: -.02em !important;
}

/* Summary reassurance line */
html body .nbn-cart-summary-section .nbn-cart-footer::after {
  content: "Nothing is charged until you confirm at checkout.";
  display: block;
  margin-top: 14px;
  font-size: 11.5px;
  line-height: 1.6;
  color: rgba(255, 255, 255, .5);
}

/* Stacked address actions share one width on small screens */
@media (max-width: 600px) {
  .nbn-plugin-wrapper .nbn-address-actions > .troppo-btn {
    flex: 1 1 100% !important;
    width: 100% !important;
  }
}

/* ============================================================
   24. CONTENT-OWNED HEROES, KADENCE COLOUR ROWS, CIS DOCUMENTS
   ------------------------------------------------------------
   Pages whose content opens with its own Kadence hero (photo, h1, checker)
   skip the theme's title band: page.php prints a slim breadcrumb strip and
   marks .page-body.has-content-hero. The hero's h1 takes the design's hero
   type. Colour-only Kadence rows become dark panels, inline <mark>
   highlights get their palette colour (the class never reached <mark>, so
   it fell to the UA's black), and the CIS documents render as a paper card.
   ============================================================ */
.page-crumbs {
  background: var(--ink);
  padding-block: clamp(40px, 5vw, 64px) 0;
}

.page-crumbs .crumbs {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--muted);
}

.page-crumbs .crumbs a {
  color: var(--muted);
  text-decoration: none;
}

.page-crumbs .crumbs a:hover {
  color: var(--orange);
}

.page-body.has-content-hero {
  padding-top: 0;
}

.has-content-hero .entry-content > .kb-row-layout-wrap:first-child h1.wp-block-kadence-advancedheading {
  color: var(--off) !important;
  font-size: clamp(34px, 5vw, 62px) !important;
  font-weight: 900 !important;
  line-height: 1.02 !important;
  letter-spacing: -.03em !important;
}

.has-content-hero .entry-content > .kb-row-layout-wrap:first-child h1.wp-block-kadence-advancedheading :is(mark, em) {
  color: var(--orange) !important;
  font-style: normal;
}

/* Inline highlights */
.entry-content mark {
  background: transparent;
  color: inherit;
}

.entry-content mark.has-theme-palette-1-color { color: var(--global-palette1) !important; }
.entry-content mark.has-theme-palette-2-color { color: var(--global-palette2) !important; }
.entry-content mark.has-theme-palette-9-color { color: var(--global-palette9) !important; }
.entry-content mark.has-theme-palette-10-color { color: var(--global-palette10) !important; }

/* Colour-only rows (no image, no overlay) sit on the dark ground as panels */
.entry-content .kb-row-layout-wrap.kt-row-has-bg:not(:has(> .kt-row-layout-overlay)) {
  background-color: rgba(255, 255, 255, .035) !important;
}

/* The plugin's "no plans" notice and the plans title accent on the white band */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-no-plans-message {
  color: var(--ink) !important;
  background: transparent !important;
}

html body .nbn-plugin-wrapper.nbn-plans-display .nbn-plans-title .troppo-highlight {
  color: var(--orange) !important;
}

/* CIS documents: their inline stylesheet assumes a light page */
.entry-content .cis-container {
  max-width: none !important;
  margin: 8px 0 32px !important;
  padding: clamp(24px, 4vw, 48px) !important;
  border-radius: 18px;
  background: #fff;
  color: #3d4351;
  font-family: inherit !important;
}

.entry-content .cis-container :is(h1, h2, h3, h4, strong) {
  color: var(--ink);
}

.entry-content .cis-container :is(p, li) {
  color: #3d4351;
}

.entry-content .cis-container a {
  color: var(--orange-h, #c94e00);
}

.entry-content .cis-container .cis-table th {
  color: #fff;
  background: transparent;
  border-color: rgba(255, 255, 255, .25);
}

.entry-content .cis-container .cis-table td {
  color: var(--ink);
  border-color: #eee;
}

.entry-content .cis-container .contact-box,
.entry-content .cis-container .contact-box :is(h3, p, strong) {
  color: var(--off);
}

.entry-content .cis-container .contact-box a {
  color: var(--teal);
}

/* Kadence's generated CSS uses the palette variables directly, which the class rules above
   cannot reach: links and paragraph-style headings set to the ink slots read as orange / off. */
.entry-content .wp-block-kadence-advancedheading a {
  --global-palette3: var(--orange);
  --global-palette4: var(--orange);
}

.entry-content p.wp-block-kadence-advancedheading {
  --global-palette3: var(--off);
  --global-palette4: var(--off);
}

/* Hard-coded navy headings on the AI page */
.entry-content [class*="kt-adv-heading_ai-uc-h"] {
  color: var(--off) !important;
}

/* Core striped tables ship light stripes */
.entry-content .wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
  background-color: rgba(255, 255, 255, .05);
}

.entry-content .wp-block-table.is-style-stripes {
  border-bottom-color: var(--line);
}

/* Rows whose generated CSS paints the whole row in the ink slot (nbn-plans, fixed-wireless-plans,
   nbn-for-seniors): text follows the page, links and palette-filled buttons take the accent. */
.entry-content .kb-row-layout-wrap {
  color: inherit;
}

.entry-content .kb-row-layout-wrap a,
.entry-content .kb-button {
  --global-palette3: var(--orange);
  --global-palette4: var(--orange);
  --global-palette5: var(--orange);
}

/* A badge heading tucked under the heading above it: the theme's tight leading leaves no room
   for the negative margin, so it sits flush instead. */
.entry-content .wp-block-kadence-advancedheading + .wp-block-kadence-advancedheading.has-background {
  margin-top: 0;
}

/* CIS tables are wider than a phone; scroll them inside the card */
@media (max-width: 760px) {
  .entry-content .cis-container .cis-table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
  }
}

/* The content hero sits on the designer's page-hero ground: flat ink under the crumbs, no photo,
   no overlay, a hairline beneath. */
.has-content-hero .entry-content > .kb-row-layout-wrap:first-child {
  background: var(--ink) !important;
  border-bottom: 1px solid var(--line);
}

.has-content-hero .entry-content > .kb-row-layout-wrap:first-child > .kt-row-layout-overlay {
  display: none;
}

.has-content-hero .entry-content > .kb-row-layout-wrap:first-child > .kt-row-column-wrap {
  padding-top: 14px !important;
  padding-bottom: 40px !important;
}

/* ============================================================
   25. PLAN GRID WIDTH ON CONTENT PAGES + whole-card hover
   ------------------------------------------------------------
   [nbn_plans] on the NBN pages sits on a full-width band, so the plugin's
   inner containers ran edge to edge and the cards grew with the screen.
   The band stays; title, filters, grid and footnotes sit in the design's
   wrap. The plugin lifts only the inner details panel on hover; the whole
   card lifts instead.
   ============================================================ */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) > :is(.troppo-theme-container, .nbn-plan-info-links) {
  max-width: 1344px !important;
  margin-inline: auto !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card {
  transition: box-shadow .15s ease, transform .15s ease !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card:hover {
  transform: translateY(-4px) !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) :is(.nbn-plan-card.popular, .nbn-plan-card.nbn-recommended):hover {
  box-shadow: 0 0 0 2.5px var(--orange), 0 18px 40px rgba(0, 0, 0, .12) !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card:hover .nbn-plan-details,
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-plan-details:hover {
  box-shadow: none !important;
  border-color: transparent !important;
  transform: none !important;
}

@media (prefers-reduced-motion: reduce) {
  :is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card:hover {
    transition: none !important;
  }
}

/* The content pages flag the popular card as .nbn-plan-featured */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card.nbn-plan-featured {
  box-shadow: 0 0 0 2.5px var(--orange) !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card.nbn-plan-featured:hover {
  box-shadow: 0 0 0 2.5px var(--orange), 0 18px 40px rgba(0, 0, 0, .12) !important;
}

/* The speeds row is six independent spans (arrow, value, unit per direction), so a
   flex wrap can break a value away from its unit. Where the row no longer fits on one
   line, a grid keeps each direction's three spans together on their own row. */
@media (max-width: 1320px) {
  :is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-typical-speeds-indicators {
    display: grid !important;
    grid-template-columns: auto auto 1fr !important;
    column-gap: 5px !important;
    row-gap: 3px !important;
    align-items: baseline !important;
    justify-content: start !important;
  }
}
/* The plugin pins the badge to white-space:nowrap + overflow:hidden, so flex-wrap
   alone cannot break the line and a longer payment period is cut off at both ends. */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) :is(.nbn-savings-badge, .nbn-promotional-badge) {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) :is(.nbn-savings-badge, .nbn-promotional-badge) :is(.badge-text, span) {
  white-space: normal !important;
  overflow: visible !important;
}
/* The promo badge never leaves the card: it caps at the content width and its two spans wrap as
   whole units when a payment period's copy is longer than the card. */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) :is(.nbn-savings-badge, .nbn-promotional-badge) {
  max-width: 100% !important;
  flex-wrap: wrap !important;
  gap: 2px 5px !important;
  letter-spacing: .04em !important;
  line-height: 1.3 !important;
  text-align: left !important;
}

/* The order flow offers the standard range only. Kept measurable rather than
   display:none: plans-display.js reads .nbn-plan-filter.active:visible and falls
   back to showing every category when nothing matches. */
html body .nbn-plugin-wrapper.nbn-flow .nbn-plan-filters {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Only the popular plan carries the flag, as on the plan pages. The flow also
   rings its qualification-recommended card, which put two POPULAR labels in one row. */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .nbn-plan-card.nbn-recommended:not(.popular):not(.nbn-plan-featured) {
  box-shadow: none !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .nbn-plan-card.nbn-recommended:not(.popular):not(.nbn-plan-featured) :is(.nbn-popular-badge, .nbn-popular-tag, .nbn-plan-badge) {
  display: none !important;
}

/* ============================================================
   Plan-area room, GT Rewards visibility, homepage speed explainer
   ============================================================ */

/* The plans-display band takes the same cream surface; the flow variant is pinned
   by the (1,3,3) rule further up this file. */
html body .nbn-plugin-wrapper.nbn-plans-display details.gtl-rewards-summary.gtl-rewards-summary {
  background: #fff6f0 !important;
  border: 1px solid rgba(255, 98, 0, .3) !important;
  border-radius: 9px !important;
  box-shadow: 0 1px 2px rgba(16, 15, 29, .05) !important;
}

/* Flow cards carried no horizontal padding, so their text sat flush against the
   border. site-custom-v1.css pins it to 0 at (1,5,1) for the order page, so this
   has to outrank that rather than just restate the plan pages' own padding. */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2.nbn-plans-section .nbn-plans-container .nbn-plan-card.nbn-plan-card {
  padding: 30px 24px 26px !important;
}
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2.nbn-plans-section .nbn-plans-container .nbn-plan-card.nbn-plan-card .nbn-plan-cis {
  padding-inline: 0 !important;
}

/* The plan grid breathes a little wider than the plugin default. */
@media (min-width: 761px) {
  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .nbn-plans-grid {
    gap: 22px !important;
  }
}

/* Homepage plan area: same treatment, wider than the 1280px page wrap. */
html body .plans .wrap {
  max-width: 1560px;
}
html body .plans .grid {
  gap: 22px;
}
html body .plans .card .feat {
  margin-bottom: 20px;
}
html body .plans .card .pnote {
  margin: 8px 0 0;
  color: #5b6070;
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.45;
}
html body .plans .card .pnote[hidden] {
  display: none;
}
/* Same pill the plan cards carry, so the two card families read as one set. */
html body .plans .card .gtrw {
  align-self: flex-start;
  margin: 0 0 20px;
  padding: 9px 16px;
  border: 1px solid rgba(114, 9, 183, .28);
  border-radius: 999px;
  background: #f1ecff;
  color: #4c1d95;
  font-size: 12.5px;
  font-weight: 800;
}

/* Replaces the "five times the speed" banner, which was only true on FTTP/HFC. */
html body .plans .speedbox {
  margin-top: 26px;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, .1);
  border-radius: 12px;
  overflow: hidden;
}
html body .plans .speedbox > summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px 20px;
  font-size: 14.5px;
  font-weight: 800;
  color: var(--ink);
}
html body .plans .speedbox > summary::-webkit-details-marker {
  display: none;
}
html body .plans .speedbox .sb-k {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  border-radius: 99px;
  background: #e9e5df;
  color: #5b6070;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 900;
}
html body .plans .speedbox .sb-c {
  margin-left: auto;
  color: #6a6f7e;
  font-size: 11px;
}
html body .plans .speedbox .sb-c::before {
  content: "\25BC";
  display: inline-block;
  transition: transform .18s ease;
}
html body .plans .speedbox[open] .sb-c::before {
  transform: rotate(180deg);
}
html body .plans .speedbox .sb-body {
  padding: 0 20px 18px;
  border-top: 1px solid rgba(0, 0, 0, .07);
}
html body .plans .speedbox .sb-body p {
  margin: 14px 0 0;
  color: #5b6070;
  font-size: 13.5px;
  line-height: 1.6;
}
html body .plans .speedbox .sb-body ul {
  margin: 12px 0 0;
  padding-left: 20px;
  color: #5b6070;
  font-size: 13.5px;
  line-height: 1.6;
}
html body .plans .speedbox .sb-body li {
  margin-bottom: 6px;
}
html body .plans .speedbox .sb-body b {
  color: var(--ink);
  font-weight: 800;
}

/* Tier cards are buttons but read as static tiles, so each carries a Select pill.
   Decorative only: the card keeps its own button semantics and aria-checked state. */
html body .nbn-bundle-composer .nbn-bundle-tier-carousel > .nbn-bundle-tier-card::after {
  content: "Select";
  display: block;
  margin-top: auto;
  padding: 9px 14px;
  border: 1.5px solid var(--orange);
  border-radius: 9px;
  background: transparent;
  color: var(--orange);
  font-size: 12.5px;
  font-weight: 800;
  line-height: 1.2;
  text-align: center;
}

html body .nbn-bundle-composer .nbn-bundle-tier-carousel > .nbn-bundle-tier-card[aria-checked="true"]::after {
  content: "Selected";
  background: var(--grad);
  border-color: transparent;
  color: var(--ink);
}

/* The sticky site header (79px) plus the docked stepper (77px) covered the heading
   of whichever section the flow scrolled to, so step 4 arrived under the chrome. */
html body .nbn-plugin-wrapper.nbn-flow :is(.nbn-flow-section, [id^="nbn-step"]) {
  scroll-margin-top: 172px;
}

/* The term control read as a filter chip, not a decision, so it carries a question. */
html body .nbn-bundle-composer .gt-term-q {
  margin: 26px 0 10px !important;
  color: inherit;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: -.01em;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-term-toggle {
  margin: 0 !important;
  padding: 5px !important;
}

html body .nbn-bundle-composer.nbn-bundle-composer .nbn-bundle-term-btn {
  padding: 11px 20px !important;
  font-size: 13.5px !important;
  font-weight: 800 !important;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-voip-section .gt-voip-optional {
  margin: 12px 0 0 !important;
  color: inherit;
  opacity: .68;
  font-size: 13px;
  font-weight: 600;
}

/* Order summary: the plan and the hardware read as a run of grey text, so each row
   takes a brand accent bar and the plan row carries its speeds and rewards entries.
   This panel is a sibling Kadence section, not part of .nbn-plugin-wrapper. */
html body .nbn-cart-summary-section .nbn-cart-step {
  position: relative !important;
  padding-left: 20px !important;
}

html body .nbn-cart-summary-section .nbn-cart-step::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: 16px !important;
  bottom: 16px !important;
  width: 4px !important;
  height: auto !important;
  border-radius: 99px !important;
  background: #d9d5cf !important;
}

html body .nbn-cart-summary-section .nbn-cart-step.nbn-cart-plan::before {
  background: var(--orange) !important;
}

html body .nbn-cart-summary-section .nbn-cart-step.nbn-cart-modem::before {
  background: var(--teal) !important;
}

html body .nbn-cart-summary-section .nbn-cart-step.nbn-cart-phone::before {
  background: var(--purple) !important;
}

html body .nbn-cart-summary-section .nbn-cart-step .nbn-cart-step-header {
  font-size: 11px !important;
  font-weight: 900 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
}

html body .nbn-cart-summary-section .nbn-cart-plan .nbn-cart-step-header {
  color: #c24d00 !important;
}

html body .nbn-cart-summary-section .nbn-cart-modem .nbn-cart-step-header {
  color: #0b8f78 !important;
}

html body .nbn-cart-summary-section .nbn-cart-phone .nbn-cart-step-header {
  color: #6a12a8 !important;
}

html body .nbn-cart-summary-section .nbn-cart-step .nbn-cart-step-title {
  font-size: 19px !important;
  font-weight: 900 !important;
  letter-spacing: -.02em !important;
  line-height: 1.2 !important;
  color: var(--ink) !important;
}

html body .nbn-cart-summary-section .gt-order-speeds {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin: 8px 0 0 !important;
}

html body .nbn-cart-summary-section .gt-order-speeds .gt-spd {
  padding: 4px 10px !important;
  border-radius: 8px !important;
  background: #f3f1ee !important;
  font-size: 12.5px !important;
  font-weight: 800 !important;
  line-height: 1.3 !important;
  white-space: nowrap !important;
}

html body .nbn-cart-summary-section .gt-order-speeds .gt-spd-down {
  color: #c24d00 !important;
}

html body .nbn-cart-summary-section .gt-order-speeds .gt-spd-up {
  color: #0b8f78 !important;
}

html body .nbn-cart-summary-section .nbn-cart-step .gt-order-entries {
  color: #6a12a8 !important;
  font-weight: 800 !important;
}

/* Every child of the row carries an explicit grid-row, so an appended element
   auto-places into the empty price-column cell. Give the speeds their own row and
   push the rows below it down, keeping the price beside the plan name. */
html body .nbn-cart-summary-section .nbn-cart-plan .gt-order-speeds {
  grid-column: 1 !important;
  grid-row: 3 !important;
}

html body .nbn-cart-summary-section .nbn-cart-plan .nbn-cart-step-subtitle {
  grid-row: 4 !important;
}

html body .nbn-cart-summary-section .nbn-cart-plan .nbn-cart-step-actions {
  grid-row: 5 !important;
}

/* The footnotes and the info links kept their own max-widths, so they re-centred
   inside the full-width plan step and broke the left edge on wide screens. */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 :is(.nbn-plans-footnotes, .nbn-plan-info-links) {
  max-width: none !important;
  margin-inline: 0 !important;
}

/* ============================================================
   Payment tabs joined to the GT Rewards band
   ============================================================ */

/* The cadence control and the rewards band were two stacked strips with no
   relationship. The control now docks onto the band as a tab: the active tab
   shares the band's cream and bleeds 1px over its top border so the two read as
   one component, and the band squares its top-right corner to meet the tab. */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .nbn-billing-choice {
  align-items: flex-end !important;
  gap: 14px 24px !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .nbn-billing-choice .nbn-payment-filters {
  position: relative !important;
  z-index: 1 !important;
  margin: 0 0 -1px !important;
  padding: 5px 6px 0 !important;
  border: 1px solid rgba(255, 98, 0, .38) !important;
  border-bottom: 0 !important;
  border-radius: 12px 12px 0 0 !important;
  background: #ece8e2 !important;
  box-shadow: none !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .nbn-billing-choice .nbn-payment-filter {
  border-radius: 8px 8px 0 0 !important;
  padding: 10px 20px 11px !important;
  font-weight: 800 !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .nbn-billing-choice .nbn-payment-filter:is(.selected, .active) {
  margin-bottom: 0 !important;
  padding-bottom: 11px !important;
  background: #fff6f0 !important;
  color: #0b6b4f !important;
  box-shadow: none !important;
}

/* Square the corner the tab sits against so the right edge runs unbroken. */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 details.gtl-rewards-summary--flow {
  border-color: rgba(255, 98, 0, .38) !important;
  border-top-right-radius: 0 !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .nbn-plan-guidance {
  margin-bottom: 34px !important;
}

/* The people count is guesswork off the speed tier; devices is the number people
   actually shop on, so the ideal-for panel carries devices alone. */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-users-box .nbn-users-stat.nbn-users-people {
  display: none !important;
}

/* ============================================================
   Understanding NBN Speeds: crosshair hover + per-column select
   The blanket cell rule above pins every td to transparent at (1,3,3), so these
   carry the same wrapper prefix to outrank it.
   ============================================================ */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-guide .nbn-speed-guide-table .gt-row-hot > :is(td, th) {
  background: rgba(255, 98, 0, .05) !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-guide .nbn-speed-guide-table .gt-col-hot {
  background: rgba(255, 98, 0, .05) !important;
}

/* The crossing cell reads darker so the row and the column are both legible. */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-guide .nbn-speed-guide-table .gt-row-hot > .gt-col-hot {
  background: rgba(255, 98, 0, .14) !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-guide .nbn-speed-guide-table .gt-guide-select-row > td {
  padding: 14px 12px !important;
  border-top: 1px solid rgba(0, 0, 0, .12) !important;
  text-align: center !important;
  vertical-align: middle !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-guide .nbn-speed-guide-table .gt-guide-select-label {
  color: var(--ink) !important;
  font-size: 12.5px !important;
  font-weight: 800 !important;
  text-align: left !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-guide .nbn-speed-guide-table .gt-guide-select-na {
  color: #9aa0ad !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-guide .nbn-speed-guide-table .gt-guide-select {
  display: inline-block !important;
  padding: 9px 20px !important;
  border: 0 !important;
  border-radius: 99px !important;
  background: var(--grad) !important;
  color: var(--ink) !important;
  font-family: inherit !important;
  font-size: 12.5px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  white-space: nowrap !important;
  cursor: pointer;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-guide .nbn-speed-guide-table .gt-guide-select:hover {
  filter: brightness(1.06);
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-guide .nbn-speed-guide-table .gt-guide-select:focus-visible {
  outline: 3px solid rgba(255, 98, 0, .45);
  outline-offset: 2px;
}

/* ============================================================
   Page constraint, tab slope, centred plan cards, checkout shimmer
   ============================================================ */

/* The order summary is a sibling Kadence section, so it needs the same 1280px
   constraint the flow sections take or it runs wider than everything above it. */
html body .nbn-cart-summary-section {
  padding-inline: max(clamp(20px, 3vw, 48px), calc((100% - 1280px) / 2)) !important;
}

/* The tab shelf meets the band with a concave sweep rather than a hard step.
   The pseudo-element is a square with one rounded corner; an offset, spread
   box-shadow paints everything except that corner, which inverts the curve. */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .nbn-billing-choice .nbn-payment-filters::before {
  content: "";
  position: absolute;
  left: -14px;
  bottom: 0;
  width: 14px;
  height: 14px;
  background: radial-gradient(circle at 0 0, rgba(255, 255, 255, 0) 0 13px, rgba(255, 98, 0, .38) 13px 14px, #ece8e2 14px);
  pointer-events: none;
}

/* When the leftmost tab is the active one the sweep carries its cream instead. */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .nbn-billing-choice .nbn-payment-filters:has(> .nbn-payment-filter:first-child:is(.selected, .active))::before {
  background: radial-gradient(circle at 0 0, rgba(255, 255, 255, 0) 0 13px, rgba(255, 98, 0, .38) 13px 14px, #fff6f0 14px);
}

/* Plan cards read as a centred column: the speeds, the ideal-for pill, the price
   and the rewards tag all share one axis. */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-plan-details {
  text-align: center !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card :is(.nbn-plan-header, .nbn-savings-badge, .nbn-plan-pricing, .nbn-plan-benefit) {
  text-align: center !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-typical-speeds-indicators {
  width: 100% !important;
  justify-content: center !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-users-box {
  width: fit-content !important;
  margin-inline: auto !important;
  justify-content: center !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-gt-rewards-tag {
  margin-inline: auto !important;
}

/* Below 1320px the row is a grid; the trailing 1fr track has to collapse before
   the tracks can centre. Three auto tracks keep a value joined to its unit. */
@media (max-width: 1320px) {
  :is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-typical-speeds-indicators {
    grid-template-columns: auto auto auto !important;
    justify-content: center !important;
  }
}

/* ============================================================
   Plan card chips: ideal-for + GT Rewards as pills, room for promo pricing
   ============================================================ */

/* Both chips are pills, as the original card had them. The devices stat already
   ships the Wi-Fi glyph; the people stat stays hidden above. */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-users-box {
  padding: 8px 16px !important;
  border: 1px solid rgba(16, 15, 29, .12) !important;
  border-radius: 999px !important;
  background: #fff !important;
  box-shadow: 0 1px 2px rgba(16, 15, 29, .05) !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-users-box .nbn-svg-stat {
  width: 15px !important;
  height: 15px !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-users-box svg * {
  stroke: #3d4351 !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-users-box svg circle[fill]:not([fill="none"]) {
  fill: #3d4351 !important;
  stroke: none !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-gt-rewards-tag {
  padding: 9px 16px !important;
  border: 1px solid rgba(114, 9, 183, .28) !important;
  border-radius: 999px !important;
  letter-spacing: .03em !important;
  text-transform: uppercase !important;
}

/* The promo line is the second half of the price, so it sits on the same axis and
   keeps its own space instead of being crowded by the rewards pill below it. */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-price-note {
  margin: 8px 0 0 !important;
  color: #5b6070 !important;
  text-align: center !important;
}

/* Cards without a promo keep the same rhythm as the ones that have one. */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-plan-pricing {
  min-height: 84px !important;
}

/* ============================================================
   Plan header centring + mobile cadence tabs
   ============================================================ */

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card :is(.nbn-price-display, .nbn-price-container) {
  justify-content: center !important;
  text-align: center !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card :is(.nbn-header-top, .nbn-header-bottom, .nbn-plan-tier) {
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card :is(.nbn-plan-name, .nbn-speed-tier, .nbn-typical-speeds-text) {
  width: 100% !important;
  text-align: center !important;
}

/* Below the tablet break the shelf has no room to sit beside the heading, so it
   spans the band instead and the bend has nothing to turn around. */
@media (max-width: 900px) {
  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .nbn-billing-choice {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 12px !important;
  }

  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .nbn-billing-choice .nbn-payment-filters {
    display: flex !important;
    width: 100% !important;
    border-radius: 12px 12px 0 0 !important;
  }

  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .nbn-billing-choice .nbn-payment-filter {
    flex: 1 1 0 !important;
    padding: 10px 6px 11px !important;
    font-size: 12.5px !important;
    text-align: center !important;
  }

  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .nbn-billing-choice .nbn-payment-filters::before {
    display: none !important;
  }

  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 details.gtl-rewards-summary--flow {
    border-top-left-radius: 0 !important;
  }
}

/* ============================================================
   Unapplied hardware change
   ============================================================ */

/* A picked tier or term only reaches the order when Add is pressed, so the
   button asks for the press rather than waiting to be noticed. */
html body .nbn-bundle-composer .gt-bundle-dirty-note {
  margin: 0 0 12px !important;
  padding: 10px 14px !important;
  border: 1px solid rgba(255, 98, 0, .45) !important;
  border-radius: 10px !important;
  background: rgba(255, 98, 0, .12) !important;
  color: var(--ink, #100f1d) !important;
  font-size: 13.5px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  text-align: center !important;
}

html body .nbn-bundle-composer .gt-bundle-dirty-note[hidden] {
  display: none !important;
}

html body .nbn-bundle-composer .nbn-bundle-add-btn.gt-needs-update {
  animation: gt-needs-update 1.5s ease-in-out 4 !important;
}

@keyframes gt-needs-update {
  0%, 100% { box-shadow: 0 0 0 0 rgba(255, 98, 0, .55); }
  50% { box-shadow: 0 0 0 8px rgba(255, 98, 0, 0); }
}

@media (prefers-reduced-motion: reduce) {
  html body .nbn-bundle-composer .nbn-bundle-add-btn.gt-needs-update {
    animation: none !important;
    box-shadow: 0 0 0 3px rgba(255, 98, 0, .55) !important;
  }
}

/* ============================================================
   Step 1 hero: copy column beside the connection card
   ============================================================ */

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-step1 {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: 40px 56px;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-step1-copy > .gt-step-heading {
  margin: 0 0 6px !important;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-step1-copy .nbn-success-subtitle {
  max-width: 34ch;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-step1-features {
  display: flex;
  flex-wrap: wrap;
  gap: 18px 30px;
  margin: 30px 0 0;
  padding: 0;
  list-style: none;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-step1-features > li {
  display: flex;
  flex: 0 1 auto;
  align-items: center;
  gap: 12px;
  margin: 0;
  padding: 0;
  max-width: 15ch;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.35;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-feat-icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border: 1.5px solid var(--orange, #ff6200);
  border-radius: 999px;
  color: var(--orange, #ff6200);
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section :is(.gt-feat-icon, .gt-fact-icon, .gt-card-check, .gt-info-icon) svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-feat-icon svg path:not([stroke]) {
  fill: none;
}

/* --- the card --- */

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-step1-card {
  padding: 26px;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 20px;
  background: rgba(255, 255, 255, .04);
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-step1-card-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 20px;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-card-check {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  border-radius: 999px;
  background: var(--teal, #17c9a0);
  color: #08281f;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-card-check svg {
  stroke-width: 2.6;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-card-title {
  margin: 0 !important;
  font-size: 21px;
  font-weight: 800;
  letter-spacing: -.02em;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-card-pill {
  margin-left: auto;
  padding: 8px 15px;
  border-radius: 999px;
  background: var(--teal, #17c9a0);
  color: #08281f;
  font-size: 13px;
  font-weight: 800;
  white-space: nowrap;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-step1-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-fact {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px;
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 14px;
  background: rgba(255, 255, 255, .03);
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-fact-icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  border-radius: 12px;
  background: rgba(255, 255, 255, .07);
  color: #fff;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-fact-body {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-fact-label {
  color: rgba(255, 255, 255, .55);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-fact-value {
  font-size: 15.5px;
  font-weight: 800;
  line-height: 1.3;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-fact-sub {
  color: rgba(255, 255, 255, .6);
  font-size: 13px;
  font-weight: 600;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-step1-info {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-top: 14px;
  padding: 15px 16px;
  border: 1px solid rgba(23, 201, 160, .3);
  border-radius: 14px;
  background: rgba(23, 201, 160, .1);
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-info-icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 26px;
  height: 26px;
  border-radius: 999px;
  background: var(--teal, #17c9a0);
  color: #08281f;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-info-icon svg {
  width: 14px;
  height: 14px;
  stroke-width: 3;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-info-body {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: 13.5px;
  line-height: 1.45;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-info-body > strong {
  font-weight: 800;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-info-body > span {
  color: rgba(255, 255, 255, .65);
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-step1-card .nbn-address-actions {
  display: flex !important;
  gap: 14px !important;
  margin: 20px 0 0 !important;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-step1-card .nbn-address-actions > * {
  flex: 1 1 0 !important;
  justify-content: center !important;
  text-align: center !important;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .nbn-choose-plan::after {
  content: " \2192";
}

/* Stacked below the two-column break: the card leads with the action, and the
   confirmation reads as a panel rather than a pill beside the title. */
@media (max-width: 900px) {
  html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-step1 {
    grid-template-columns: minmax(0, 1fr);
    gap: 26px;
  }

  html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-step1-features {
    flex-direction: column;
    gap: 14px;
    margin-top: 24px;
  }

  html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-step1-features > li {
    max-width: none;
  }

  html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-card-pill {
    display: none;
  }

  html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-step1-facts {
    grid-template-columns: minmax(0, 1fr);
  }

  html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-step1-card .nbn-address-actions {
    flex-direction: column-reverse !important;
  }
}

/* Step 1 hero refinements to match the design comp. */
html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-card-title {
  text-transform: none !important;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-step1 {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr) !important;
}

/* The headline finds its own two-line break; a ch cap splits it three ways. */
html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-step1-copy .nbn-success-message > h3 {
  max-width: none;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-step1-features > li {
  max-width: 19ch;
}

/* The comp carries a wide orange sweep behind the copy column. */
html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section {
  position: relative;
  overflow: hidden;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section > * {
  position: relative;
  z-index: 1;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section::after {
  content: "";
  position: absolute;
  left: -22%;
  bottom: -128%;
  width: 92%;
  aspect-ratio: 1;
  border: 2px solid rgba(255, 98, 0, .5);
  border-radius: 999px;
  pointer-events: none;
  z-index: 0;
}


/* Three features across one row, and the sweep kept to the bottom-left corner
   where the comp puts it rather than crossing the card. */
html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-step1-features {
  flex-wrap: nowrap;
  gap: 16px 20px;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-step1-features > li {
  max-width: 13ch;
  font-size: 13.5px;
}

html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section::after {
  left: -42%;
  bottom: -168%;
  width: 108%;
  border-color: rgba(255, 98, 0, .34);
}


/* Features share the row evenly instead of being capped into narrow columns. */
html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-step1-features > li {
  flex: 1 1 0;
  max-width: none;
}

/* Soft corner glows, as the comp has them — a hard ring cut across the card. */
html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section::after {
  inset: 0;
  left: auto;
  bottom: auto;
  width: auto;
  aspect-ratio: auto;
  border: 0;
  border-radius: 0;
  background:
    radial-gradient(120% 85% at -8% 118%, rgba(255, 98, 0, .22), rgba(255, 98, 0, 0) 55%),
    radial-gradient(95% 75% at 108% -18%, rgba(255, 98, 0, .16), rgba(255, 98, 0, 0) 55%);
}
/* Stacked layout wins over the desktop refinements above, which carry !important
   for the plugin's own rules. */
@media (max-width: 900px) {
  html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-step1 {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-step1-features {
    flex-direction: column !important;
    flex-wrap: wrap !important;
    gap: 14px !important;
  }

  html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-step1-features > li {
    max-width: none !important;
    font-size: 14px !important;
  }

  html body .nbn-plugin-wrapper.nbn-flow .nbn-address-section .gt-step1-card {
    padding: 20px !important;
  }
}

/* GT Rewards band: the automatic-entry tag beside the title. */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 details.gtl-rewards-summary--flow > summary .gt-auto-entered {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  margin-left: 12px !important;
  padding: 5px 12px 5px 10px !important;
  border: 1px solid rgba(255, 98, 0, .35) !important;
  border-radius: 999px !important;
  background: rgba(255, 98, 0, .1) !important;
  color: #c24d00 !important;
  font-size: 12.5px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 details.gtl-rewards-summary--flow > summary .gt-auto-entered svg {
  width: 13px !important;
  height: 13px !important;
  fill: var(--orange, #ff6200) !important;
  flex: 0 0 auto !important;
}

@media (max-width: 760px) {
  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 details.gtl-rewards-summary--flow > summary .gt-auto-entered {
    margin: 6px 0 0 !important;
    white-space: normal !important;
  }
}

/* ============================================================
   GT Rewards draw panel
   ============================================================ */

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gtl-rewards-summary-draw {
  display: grid !important;
  grid-template-columns: minmax(0, 1.04fr) minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 20px 34px !important;
  padding: 6px 4px 4px !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-copy {
  min-width: 0;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gtl-rewards-summary-eyebrow {
  display: block !important;
  color: #5b6070 !important;
  font-size: 12.5px !important;
  font-weight: 800 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-copy > strong {
  display: block !important;
  margin: 4px 0 10px !important;
  color: var(--ink, #100f1d) !important;
  font-size: clamp(28px, 3vw, 42px) !important;
  font-weight: 900 !important;
  letter-spacing: -.035em !important;
  line-height: 1.02 !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-prize {
  color: var(--orange, #ff6200) !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-lead {
  margin: 0 !important;
  color: var(--ink, #100f1d) !important;
  font-size: 15.5px !important;
  font-weight: 800 !important;
  line-height: 1.4 !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-sub {
  margin: 4px 0 0 !important;
  color: #5b6070 !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-feats {
  display: flex !important;
  gap: 12px 22px !important;
  margin: 20px 0 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-feats > li {
  display: flex !important;
  flex: 1 1 0 !important;
  align-items: center !important;
  gap: 11px !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--ink, #100f1d) !important;
  font-size: 13.5px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 :is(.gt-draw-feat-icon, .gt-draw-fact-icon) {
  display: grid !important;
  place-items: center !important;
  flex: 0 0 auto !important;
  width: 40px !important;
  height: 40px !important;
  border: 1.6px solid var(--orange, #ff6200) !important;
  border-radius: 999px !important;
  color: var(--orange, #ff6200) !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 :is(.gt-draw-feat-icon, .gt-draw-fact-icon) svg {
  width: 19px !important;
  height: 19px !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.6 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  margin-top: 22px !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-actions .gtl-rewards-summary-link {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 15px 26px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: #0b3b2c !important;
  color: #fff !important;
  font-size: 14.5px !important;
  font-weight: 800 !important;
  text-decoration: none !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-actions .gtl-rewards-summary-link::after {
  content: "\2192";
  font-size: 16px;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-how {
  display: inline-flex !important;
  align-items: center !important;
  padding: 15px 24px !important;
  border: 1px solid rgba(16, 15, 29, .22) !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: var(--ink, #100f1d) !important;
  font-size: 14.5px !important;
  font-weight: 800 !important;
  text-decoration: none !important;
}
/* --- prize art --- */

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-art {
  position: relative !important;
  display: grid !important;
  place-items: center !important;
  min-width: 0;
  padding: 8px 0;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-art::before {
  content: "";
  position: absolute;
  right: 2%;
  top: 4%;
  width: 74%;
  height: 88%;
  border-radius: 46% 54% 42% 58% / 58% 44% 56% 42%;
  background: rgba(255, 98, 0, .32);
  z-index: 0;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-art img {
  position: relative !important;
  z-index: 1 !important;
  width: 100% !important;
  max-width: 460px !important;
  height: auto !important;
  border-radius: 0 !important;
  object-fit: contain !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-note {
  position: absolute !important;
  right: 0 !important;
  top: 2% !important;
  z-index: 2 !important;
  display: grid !important;
  justify-items: end !important;
  gap: 2px !important;
  max-width: 170px !important;
  color: var(--orange, #ff6200) !important;
  pointer-events: none !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-note-text {
  font-family: "Bradley Hand", "Segoe Script", "Brush Script MT", cursive !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  text-align: right !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-note-arrow svg {
  width: 54px !important;
  height: 40px !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 2.2 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  transform: scaleX(-1);
}

/* --- fact strip --- */

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-strip {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 0 !important;
  margin-top: 18px !important;
  padding: 16px 4px !important;
  border-radius: 14px !important;
  background: rgba(255, 98, 0, .08) !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-fact {
  display: flex !important;
  align-items: center !important;
  gap: 13px !important;
  padding: 2px 22px !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-fact + .gt-draw-fact {
  border-left: 1px solid rgba(255, 98, 0, .22) !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-fact-icon {
  width: 38px !important;
  height: 38px !important;
  border: 0 !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-fact-icon svg {
  width: 26px !important;
  height: 26px !important;
  stroke-width: 1.5 !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-fact-body {
  display: flex !important;
  flex-direction: column !important;
  gap: 1px !important;
  min-width: 0 !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-fact-body > strong {
  color: var(--ink, #100f1d) !important;
  font-size: 14.5px !important;
  font-weight: 800 !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-fact-body > span {
  color: #5b6070 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
}
/* --- stacked --- */

@media (max-width: 900px) {
  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 details.gtl-rewards-summary--flow > summary {
    flex-wrap: wrap !important;
  }

  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 details.gtl-rewards-summary--flow > summary .gt-auto-entered {
    display: none !important;
  }

  /* The two column wrappers dissolve so the art can sit between the copy and the
     button, which is the stacked reading order. */
  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gtl-rewards-summary-draw {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
  }

  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 :is(.gt-draw-copy, .gt-draw-art) {
    display: contents !important;
  }

  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gtl-rewards-summary-eyebrow { order: 1 !important; }
  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-copy > strong { order: 2 !important; }
  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-lead { order: 3 !important; }
  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-art img { order: 4 !important; margin: 14px auto 4px !important; }
  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-actions { order: 5 !important; margin-top: 14px !important; }
  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-feats { order: 6 !important; flex-direction: column !important; gap: 10px !important; margin-top: 18px !important; }

  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-feats > li {
    padding: 12px 14px !important;
    border-radius: 12px !important;
    background: rgba(255, 98, 0, .07) !important;
    font-size: 14px !important;
  }

  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 :is(.gt-draw-sub, .gt-draw-note, .gt-draw-how, .gt-draw-strip) {
    display: none !important;
  }

  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-actions .gtl-rewards-summary-link {
    flex: 1 1 100% !important;
    justify-content: center !important;
  }

  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-art::before {
    display: none !important;
  }
}

/* Summary row reads left to right: title, tag, then the rate pushed to the end. */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 details.gtl-rewards-summary--flow > summary {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  flex-wrap: nowrap !important;
  gap: 10px !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 details.gtl-rewards-summary--flow > summary .gtl-rewards-summary-title {
  flex: 0 0 auto !important;
  text-align: left !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 details.gtl-rewards-summary--flow > summary .gt-auto-entered {
  flex: 0 0 auto !important;
  margin-left: 2px !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 details.gtl-rewards-summary--flow > summary .gtl-rewards-summary-current {
  flex: 0 0 auto !important;
  margin-left: auto !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gtl-rewards-summary-draw > .gt-draw-copy > strong > .gt-prize {
  color: var(--orange, #ff6200) !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-actions > a:is(:link, :visited, :hover, :focus) {
  text-decoration: none !important;
  text-decoration-line: none !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-feats > li {
  align-items: flex-start !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-feat-icon svg {
  width: 21px !important;
  height: 21px !important;
  stroke-width: 1.8 !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-art::before {
  right: 6%;
  top: 2%;
  width: 66%;
  height: 92%;
}

/* The plugin colours this link for the light band; on the filled pill it has to
   be white or it reads as dark-on-dark. */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-actions a.gtl-rewards-summary-link.gtl-rewards-summary-link,
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-actions a.gtl-rewards-summary-link.gtl-rewards-summary-link:is(:link, :visited, :hover, :focus, :active),
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-actions a.gtl-rewards-summary-link.gtl-rewards-summary-link * {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gtl-rewards-summary-draw {
  grid-template-columns: minmax(0, 1.18fr) minmax(0, 1fr) !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-art::before {
  right: 8%;
  top: 0;
  width: 78%;
  height: 100%;
  border-radius: 48% 52% 44% 56% / 54% 48% 52% 46%;
}

/* The comp's blob sits behind and right of the car rather than spanning the column. */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-art::before {
  right: 4%;
  top: 3%;
  width: 62%;
  height: 94%;
  border-radius: 50% 50% 46% 54% / 52% 50% 50% 48%;
}

/* ============================================================
   GT Rewards panel: Oliva art, brand icons, breathing room
   ============================================================ */

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 details.gtl-rewards-summary--flow[open] {
  padding: 18px 26px 24px !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gtl-rewards-summary-draw {
  gap: 24px 48px !important;
  padding: 20px 0 6px !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-lead {
  margin-top: 2px !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-feats {
  gap: 14px 26px !important;
  margin-top: 26px !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-actions {
  margin-top: 28px !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-strip {
  margin-top: 26px !important;
  padding: 20px 6px !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-fact {
  padding: 2px 26px !important;
}

/* The flat ellipse is replaced by the Oliva form, which sits behind the prize. */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-art::before {
  display: none !important;
  content: none !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-art {
  position: relative !important;
  display: block !important;
  padding: 26px 0 22px !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-blob {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  display: block !important;
  pointer-events: none !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-blob svg {
  width: 100% !important;
  height: 100% !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-art img {
  position: relative !important;
  z-index: 1 !important;
  display: block !important;
  width: 82% !important;
  max-width: 400px !important;
  margin: 8px auto 0 !important;
  height: auto !important;
}

/* The annotation reads top-right and its arrow lands on the car's rear quarter. */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-note {
  position: absolute !important;
  right: 0 !important;
  top: 4px !important;
  z-index: 2 !important;
  display: block !important;
  width: 152px !important;
  max-width: none !important;
  color: var(--orange, #ff6200) !important;
  pointer-events: none !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-note-text {
  display: block !important;
  font-family: "Bradley Hand", "Segoe Script", "Brush Script MT", cursive !important;
  font-size: 15.5px !important;
  font-weight: 700 !important;
  line-height: 1.18 !important;
  text-align: right !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-note-arrow {
  display: block !important;
  margin: 4px 30px 0 auto !important;
  width: 86px !important;
}

/* Ink rather than currentColor: the annotation is a hand-drawn aside and needs
   to read against the orange blob it crosses. */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-note-arrow svg {
  display: block !important;
  width: 86px !important;
  height: 65px !important;
  fill: none !important;
  stroke: #100f1d !important;
  stroke-width: 2.4 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  transform: none !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-note-arrow svg :is(path, line, polyline) {
  stroke: #100f1d !important;
}

@media (max-width: 900px) {
  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 details.gtl-rewards-summary--flow[open] {
    padding: 16px 16px 20px !important;
  }

  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-blob {
    display: none !important;
  }

  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-art img {
    width: 100% !important;
  }
}

/* The Oliva form needs clearance from the band edge, and the prize sits on it
   rather than over its rim. */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-art {
  padding: 30px 12px 26px 0 !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-blob {
  inset: 6% 14px 4% -6% !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-art img {
  width: 78% !important;
  max-width: 372px !important;
  margin: 12px auto 0 !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-note {
  right: 10px !important;
  top: 0 !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-note-arrow {
  margin: 1px 44px 0 auto !important;
}

/* The art column carries real height so the Oliva form is not letterboxed flat. */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-art {
  min-height: 272px !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-blob {
  inset: 0 12px 0 -8% !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-art img {
  margin-top: 40px !important;
}

@media (max-width: 900px) {
  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-art {
    min-height: 0 !important;
  }

  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-art img {
    margin-top: 0 !important;
  }
}

/* Keep the lit bulb clear of the annotation so the handwriting stays legible. */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-blob {
  inset: 16px 44px 0 -8% !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-note {
  top: -6px !important;
  right: 2px !important;
}

/* Last word on the stacked layout: the desktop art rules above carry !important,
   so the wrapper has to be dissolved again here or the prize sorts above the copy. */
@media (max-width: 900px) {
  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 :is(.gt-draw-copy, .gt-draw-art) {
    display: contents !important;
  }

  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 :is(.gt-draw-note, .gt-draw-blob) {
    display: none !important;
  }

  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-art img {
    order: 4 !important;
    width: 100% !important;
    max-width: none !important;
    margin: 16px auto 4px !important;
  }
}

/* The prize carries the panel, so the art column takes the larger share and the
   car runs to its full width, which brings it up to meet the annotation arrow. */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gtl-rewards-summary-draw {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.46fr) !important;
  align-items: center !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-art {
  min-height: 400px !important;
  padding: 16px 12px 12px 0 !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-blob {
  inset: 30px 30px 22px -6% !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-art img {
  width: 100% !important;
  max-width: 720px !important;
  margin: 44px auto 0 !important;
}

/* The copy column is narrower now, so the feature row tightens to stay two lines. */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-feats {
  gap: 12px 18px !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-feats > li {
  gap: 10px !important;
  font-size: 13px !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-feat-icon {
  width: 36px !important;
  height: 36px !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-note {
  top: 8px !important;
}

@media (max-width: 900px) {
  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-art {
    min-height: 0 !important;
    padding: 0 !important;
  }

  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-art img {
    margin: 16px auto 4px !important;
    max-width: none !important;
  }

  html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-feats > li {
    font-size: 14px !important;
  }
}

/* The prize image is height-capped upstream, so widening its box only letterboxed
   it; the cap has to go for the width to mean anything. */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-art img {
  height: auto !important;
  max-height: none !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
}

/* Sized against the car as it actually rendered before (286px inside its
   letterboxed box), not against the element that was wrapping it. */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gtl-rewards-summary-draw {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr) !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-copy {
  position: relative !important;
  z-index: 2 !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-art {
  min-height: 380px !important;
  padding: 16px 10px 12px 0 !important;
}

/* The form runs wider than the prize so it still reads as the ground it sits on. */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-blob {
  inset: 14px 4px 14px -14% !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-art img {
  max-width: 572px !important;
  margin: 34px auto 0 !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-feats > li {
  font-size: 13.5px !important;
}

/* The dark skin outlines this region; on the cream band it reads as a stray box
   whose corner the prize art crosses. Carries the `details` chain so it outranks
   the earlier border rule in this file. */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 details.gtl-rewards-summary--flow .gtl-rewards-summary-draw {
  border: 0 !important;
  border-radius: 0 !important;
}

/* ============================================================
   Savings line, card hover ring, speed-guide filter row
   ============================================================ */

/* The savings line is a supporting note above the plan name, not a second
   headline, and it has to hold one line at every card width. */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-savings-badge {
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: .02em !important;
  white-space: nowrap !important;
}

/* The 4px gradient cap read as a stray line across the top of the card. The
   emphasis belongs to a ring around the whole card instead. */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card::before {
  display: none !important;
  content: none !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card:hover {
  border-color: transparent !important;
  box-shadow: 0 0 0 2px var(--orange, #ff6200), 0 16px 34px rgba(16, 15, 29, .1) !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card:is(.popular, .nbn-recommended, .nbn-plan-featured) {
  border-color: transparent !important;
  box-shadow: 0 0 0 2.5px var(--orange, #ff6200) !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card:is(.popular, .nbn-recommended, .nbn-plan-featured):hover {
  box-shadow: 0 0 0 2.5px var(--orange, #ff6200), 0 16px 34px rgba(16, 15, 29, .1) !important;
}

/* Nine persona filters wrap onto a second row below about 1400px, which breaks
   the header of the table underneath. One row that scrolls instead. */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-guide :is(.nbn-speed-guide-filters, :has(> .nbn-speed-guide-filter)) {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 7px !important;
  overflow-x: auto !important;
  scrollbar-width: none !important;
  -webkit-overflow-scrolling: touch !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-guide :is(.nbn-speed-guide-filters, :has(> .nbn-speed-guide-filter))::-webkit-scrollbar {
  display: none !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-speed-guide .nbn-speed-guide-filter {
  flex: 0 0 auto !important;
  padding: 8px 12px !important;
  font-size: 12px !important;
  white-space: nowrap !important;
}

/* The strip icons carry the brand orange, as the feature icons above them do. */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-fact-icon {
  color: var(--orange, #ff6200) !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 .gt-draw-fact-icon svg {
  width: 24px !important;
  height: 24px !important;
  stroke-width: 1.6 !important;
}

/* currentColor on these icons resolves to the band's ink, so the stroke is set
   directly rather than routed through an inherited colour. */
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 details.gtl-rewards-summary--flow :is(.gt-draw-feat-icon, .gt-draw-fact-icon) svg,
html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 details.gtl-rewards-summary--flow :is(.gt-draw-feat-icon, .gt-draw-fact-icon) svg :is(path, rect, circle, line) {
  stroke: var(--orange, #ff6200) !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 details.gtl-rewards-summary--flow :is(.gt-draw-feat-icon, .gt-draw-fact-icon) svg circle[fill]:not([fill="none"]) {
  fill: var(--orange, #ff6200) !important;
  stroke: none !important;
}

html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2 details.gtl-rewards-summary--flow .gt-draw-note :is(path, svg) {
  stroke: var(--orange, #ff6200) !important;
}

/* ============================================================
   GT Rewards draw countdown
   ============================================================ */

/* One bar treatment everywhere: label, clock, then the fine print, collapsing to
   a stack when the row runs out of room. */
html body .gt-countdown {
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 8px 18px;
  border: 1px solid rgba(255, 98, 0, .34);
  border-radius: 12px;
  background: linear-gradient(90deg, rgba(255, 98, 0, .14), rgba(255, 98, 0, .05) 55%, rgba(255, 98, 0, .12));
  color: #fff6f0;
}

html body .gt-countdown-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px 22px;
  max-width: 1180px;
  margin: 0 auto;
}

html body .gt-countdown-head {
  display: flex;
  align-items: center;
  gap: 7px;
}

html body .gt-countdown-spark svg {
  display: block;
  width: 13px;
  height: 13px;
  fill: #ff6200;
}

html body .gt-countdown-title {
  color: #ff8a3d;
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}

html body .gt-countdown-clock {
  display: flex;
  gap: 7px;
}

html body .gt-countdown-unit {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1px;
  min-width: 52px;
  padding: 5px 8px 4px;
  border: 1px solid rgba(255, 98, 0, .3);
  border-radius: 9px;
  background: rgba(12, 10, 22, .5);
}

html body .gt-countdown-num {
  color: #fff6f0;
  font-size: 18px;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.03em;
  line-height: 1.05;
}

html body .gt-countdown-label {
  color: rgba(255, 246, 240, .6);
  font-size: 8.5px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

html body .gt-countdown-note {
  margin: 0;
  max-width: 40ch;
  color: rgba(255, 246, 240, .68);
  font-size: 11.5px;
  font-weight: 600;
  line-height: 1.35;
}

html body .gt-countdown.is-closed .gt-countdown-title::after {
  content: " \2014 closed";
}

/* Light skin: the same bar where it lands on a cream or white surface. */
html body .gt-countdown--light {
  border-color: rgba(255, 98, 0, .38);
  background: #fff6f0;
  color: #100f1d;
}

html body .gt-countdown--light .gt-countdown-title {
  color: #c24d00;
}

html body .gt-countdown--light .gt-countdown-unit {
  border-color: rgba(255, 98, 0, .26);
  background: rgba(255, 98, 0, .1);
}

html body .gt-countdown--light .gt-countdown-num {
  color: #100f1d;
}

html body .gt-countdown--light :is(.gt-countdown-label, .gt-countdown-note) {
  color: #5b6070;
}

/* Homepage prize section: spans the width under both columns. */
html body .prize .gt-countdown {
  max-width: 1180px;
  margin: 30px auto 0;
}

/* Order flow: above the GT Rewards band, so it is read before the plan grid
   rather than only by people who expand the draw. */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .gt-countdown {
  margin: 18px 0 22px !important;
}

@media (max-width: 900px) {
  html body .gt-countdown-inner {
    gap: 10px 18px;
  }

  html body .gt-countdown-note {
    max-width: none;
    text-align: center;
  }
}

@media (max-width: 620px) {
  html body .gt-countdown {
    padding: 10px 12px;
  }

  html body .gt-countdown-clock {
    gap: 6px;
    width: 100%;
  }

  html body .gt-countdown-unit {
    flex: 1 1 0;
    min-width: 0;
  }

  html body .gt-countdown-num {
    font-size: 16px;
  }

  html body .prize .gt-countdown {
    width: auto;
    margin: 22px 16px 0;
  }
}

/* Both chips stay on a single line inside the card column. */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-users-box {
  flex-wrap: nowrap !important;
  gap: 9px !important;
  padding: 7px 14px !important;
  font-size: 11.5px !important;
  white-space: nowrap !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-users-box :is(.nbn-users-label, .nbn-users-stat) {
  font-size: 11.5px !important;
  white-space: nowrap !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-users-box .nbn-svg-stat {
  width: 13px !important;
  height: 13px !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-gt-rewards-tag {
  padding: 8px 13px !important;
  font-size: 11px !important;
  letter-spacing: 0 !important;
  white-space: nowrap !important;
}
/* Checkout is the one action on the page that should catch the eye. */
html body .nbn-proceed-checkout:not([disabled]):not(.disabled) {
  position: relative;
  overflow: hidden;
}

html body .nbn-proceed-checkout:not([disabled]):not(.disabled)::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, rgba(255, 255, 255, 0) 35%, rgba(255, 255, 255, .5) 50%, rgba(255, 255, 255, 0) 65%);
  transform: translateX(-100%);
  animation: gt-checkout-shimmer 3.4s ease-in-out infinite !important;
  pointer-events: none;
}

@keyframes gt-checkout-shimmer {
  0%, 55% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

@media (prefers-reduced-motion: reduce) {
  html body .nbn-proceed-checkout:not([disabled]):not(.disabled)::after {
    animation: none !important;
    opacity: 0;
  }
}

/* ============================================================
   Plan cards: left-aligned, matching the homepage card
   ============================================================ */

/* Appended after the earlier centring rules so equal specificity resolves here. */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card {
  text-align: left !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card :is(.nbn-price-display, .nbn-price-container) {
  justify-content: flex-start !important;
  text-align: left !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card :is(.nbn-header-top, .nbn-header-bottom, .nbn-plan-tier) {
  align-items: flex-start !important;
  justify-content: flex-start !important;
  text-align: left !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card :is(.nbn-plan-name, .nbn-speed-tier, .nbn-typical-speeds-text) {
  width: 100% !important;
  text-align: left !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-typical-speeds-indicators {
  width: 100% !important;
  justify-content: flex-start !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-price-note {
  text-align: left !important;
}

/* The specials badge is the first thing in the card, so it starts on the same
   left rule as everything under it and leaves the corner free for POPULAR. */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-savings-badge {
  display: inline-block !important;
  margin-right: auto !important;
  justify-content: flex-start !important;
  text-align: left !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card :is(.nbn-users-box, .nbn-gt-rewards-tag) {
  margin-right: auto !important;
  margin-left: 0 !important;
}

@media (max-width: 1320px) {
  :is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-typical-speeds-indicators {
    justify-content: flex-start !important;
  }
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card :is(.nbn-plan-benefit, .nbn-plan-cis) {
  text-align: left !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-plan-cis a {
  text-align: left !important;
}

/* .nbn-plan-benefit is a flex container, so text-align alone leaves it centred. */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card :is(.nbn-plan-benefit, .nbn-plan-details, .nbn-plan-cis) {
  justify-content: flex-start !important;
  text-align: left !important;
}

/* The use-case skin pins the rewards tag to the card's top-right corner, where it
   lands underneath the POPULAR flag. Put it back in the body flow so the card
   reads the same here as on the flow and the plans page. */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-gt-rewards-tag {
  position: static !important;
  inset: auto !important;
  margin-right: auto !important;
  margin-left: 0 !important;
  border: 1px solid rgba(114, 9, 183, .28) !important;
  background: rgba(114, 9, 183, .07) !important;
  color: #5b21b6 !important;
}

/* The use-case skin un-hides .nbn-plan-tier, which prints the same NBN tier the
   .nbn-speed-tier line already carries. Drop it only when both are present. */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card:has(.nbn-speed-tier) .nbn-plan-tier {
  display: none !important;
}

/* Each speed reads as one unit. Without this the narrower use-case card breaks
   "17 Mbps UP" across lines and the row lands in three or four pieces. */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-typical-speeds-indicators {
  flex-wrap: wrap !important;
  gap: 4px 14px !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-typical-speeds-indicators > * {
  flex: 0 0 auto !important;
  white-space: nowrap !important;
}

/* The use-case skin gives the label a full row of its own, which only works while
   the pill wraps. It does not wrap here, so the label must size to its own text
   or the line overruns the card edge. */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-users-box .nbn-users-label {
  width: auto !important;
  flex: 0 0 auto !important;
}

:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-users-box {
  justify-content: flex-start !important;
  text-align: left !important;
}


/* ============================================================
   Phone: plan cards are a left-right rail, not a four-card stack
   ------------------------------------------------------------
   The reskin above lays the plugin's scroller out as a grid at every width,
   which collapses to one column on a phone. 768px is the plugin's own rail
   breakpoint, so both agree on where the rail starts.
   ============================================================ */
@media (max-width: 768px) {
  :is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plans-grid {
    display: flex !important;
    grid-template-columns: none !important;
    flex-wrap: nowrap !important;
    gap: 14px !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain !important;
    scroll-padding-inline: 2px !important;
    padding: 6px 2px 10px !important;
    scrollbar-width: none !important;
  }

  :is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plans-grid::-webkit-scrollbar {
    display: none !important;
  }

  /* Short of 100% so the next card peeks and the rail reads as swipeable. */
  :is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card {
    flex: 0 0 min(86%, 320px) !important;
    scroll-snap-align: center !important;
  }
}

/* ============================================================
   Post go-live fixes
   ============================================================ */

/* Kadence rows set to "full" content width used to be held to 1290px by the
   Kadence theme's container. Without it their columns run to the viewport
   edge on wide screens (My Account, the NBN For You heroes). Cap every row's
   column wrap at the site width; the ordering flow keeps its full bands. */
.entry-content .kt-row-column-wrap:not(:has(.nbn-plugin-wrapper.nbn-flow)),
.uc-body .kt-row-column-wrap:not(:has(.nbn-plugin-wrapper.nbn-flow)) {
  max-width: var(--global-content-width, var(--wrap)) !important;
  margin-inline: auto !important;
}

/* Plans page offers the standard range only, so the Standard | All switch
   goes. Kept measurable rather than display:none: plans-display.js reads
   .nbn-plan-filter.active:visible. The cadence switch sits centred. */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plans-display > .nbn-plan-filters {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Speed row: one direction per line, so a unit never wraps away from its
   number when the card narrows. */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plan-card .nbn-typical-speeds-indicators {
  display: grid !important;
  grid-template-columns: auto auto 1fr !important;
  column-gap: 6px !important;
  row-gap: 2px !important;
  align-items: baseline !important;
}

/* Classic checkout field hints: WooCommerce ships them as a blue tooltip whose
   link colour vanishes on the fill. */
body.woocommerce-checkout .form-row .description,
body.woocommerce-checkout .form-row .woocommerce-input-wrapper .description {
  position: relative !important;
  margin: .55em 0 0 !important;
  padding: .7em .9em !important;
  border: 1px solid rgba(255, 98, 0, .38) !important;
  border-radius: 10px !important;
  background: rgba(255, 98, 0, .1) !important;
  color: var(--off) !important;
  font-size: .82rem !important;
  line-height: 1.45 !important;
}

body.woocommerce-checkout .form-row .description::before {
  display: none !important;
}

body.woocommerce-checkout .form-row .description a,
body.woocommerce-checkout .form-row .description .nbn-avcid-autofill {
  color: var(--orange) !important;
  font-weight: 700 !important;
}

/* Final checks: the hardware-finance row is a div, so the p-scoped rules above
   miss it and the plugin's white fill shows through. */
body.woocommerce-checkout #order_review .nbn-final-checks .nbn-final-check {
  border: 1px solid var(--line) !important;
  border-radius: 12px !important;
  background: rgba(255, 255, 255, .04) !important;
  color: var(--off) !important;
}

body.woocommerce-checkout #order_review .nbn-final-checks .nbn-final-check.is-required {
  border-color: rgba(255, 87, 87, .55) !important;
  background: rgba(255, 87, 87, .08) !important;
}

body.woocommerce-checkout #order_review .nbn-final-checks .nbn-final-check.is-complete {
  border-color: rgba(32, 214, 180, .55) !important;
  background: rgba(32, 214, 180, .08) !important;
}

body.woocommerce-checkout #order_review .nbn-final-checks .nbn-final-check :is(label, p, small, strong, span:not(.nbn-final-check__state)) {
  color: var(--off) !important;
}

body.woocommerce-checkout #order_review .nbn-final-checks .nbn-final-check a {
  color: var(--orange) !important;
}

body.woocommerce-checkout #order_review .nbn-final-checks__rows {
  background: transparent !important;
}

/* Inline validation: WooCommerce toggles these classes on blur but prints no
   message, so each state gets one here. */
body.woocommerce-checkout .form-row.woocommerce-invalid input.input-text,
body.woocommerce-checkout .form-row.woocommerce-invalid select,
body.woocommerce-checkout .form-row.woocommerce-invalid .select2-selection {
  border-color: #ff5757 !important;
  box-shadow: 0 0 0 3px rgba(255, 87, 87, .18) !important;
}

body.woocommerce-checkout .form-row.woocommerce-validated input.input-text,
body.woocommerce-checkout .form-row.woocommerce-validated select,
body.woocommerce-checkout .form-row.woocommerce-validated .select2-selection {
  border-color: rgba(32, 214, 180, .6) !important;
}

body.woocommerce-checkout .form-row.woocommerce-invalid::after {
  content: "Please check this field." !important;
  display: block !important;
  clear: both !important;
  margin-top: .4em !important;
  color: #ff8a8a !important;
  font-size: .8rem !important;
  line-height: 1.4 !important;
}

body.woocommerce-checkout .form-row.woocommerce-invalid-required-field::after {
  content: "This field is required." !important;
}

body.woocommerce-checkout .form-row.woocommerce-invalid-email::after {
  content: "Enter a valid email address, like name@example.com." !important;
}

body.woocommerce-checkout .form-row.woocommerce-invalid-phone::after {
  content: "Enter a valid phone number, digits only." !important;
}

body.woocommerce-checkout .form-row.woocommerce-invalid-postcode::after {
  content: "Enter a valid Australian postcode." !important;
}

body.woocommerce-checkout .form-row.woocommerce-invalid label {
  color: #ff8a8a !important;
}

/* Card fields: the box that holds the Stripe iframe, before the element mounts. */
body.woocommerce-checkout .payment_box.payment_method_stripe,
body.woocommerce-checkout .wc-stripe-upe-element {
  background: rgba(255, 255, 255, .04) !important;
  border-color: var(--line) !important;
  color: var(--off) !important;
}

body.woocommerce-checkout .payment_box.payment_method_stripe p,
body.woocommerce-checkout .wc-stripe-upe-element p {
  color: rgba(255, 255, 255, .78) !important;
}

/* GT Rewards live-status widget: the addon paints navy figures and a navy
   button for its old cream card. */
html body .site-main .gtr-section .gtl-widget :is(.gtl-widget-balance, .gtl-widget-figure, .gtl-widget-stat-value) {
  color: var(--off) !important;
}

html body .site-main .gtr-section .gtl-widget .gtl-widget-figure-label {
  color: var(--orange) !important;
}

html body .site-main .gtr-section .gtl-widget .gtl-widget-stat-label {
  color: rgba(255, 255, 255, .72) !important;
}

html body .site-main .gtr-section .gtl-widget .gtl-widget-stat {
  border: 1px solid var(--line) !important;
  background: rgba(255, 255, 255, .05) !important;
}

html body .site-main .gtr-section .gtl-widget .gtl-widget-promo {
  border-color: rgba(255, 98, 0, .35) !important;
  background: rgba(255, 98, 0, .12) !important;
  color: var(--off) !important;
}

html body .site-main .gtr-section .gtl-widget .gtl-tier-badge-sm {
  color: #14131f !important;
}

html body .site-main .gtr-section .gtl-widget a.gtl-widget-link,
html body .site-main .gtr-section .gtl-widget a.gtl-widget-link:hover {
  background: var(--grad) !important;
  color: #14131f !important;
  box-shadow: none !important;
}

/* The reskin rule above pins the cadence toggle left for the flow and the
   plans page alike; on the plans page it sits alone and is centred. */
:is(html body .nbn-plugin-wrapper.nbn-flow #nbn-step-2, html body .nbn-plugin-wrapper.nbn-plans-display) .nbn-plans-display > .nbn-payment-filters {
  display: flex !important;
  justify-content: center !important;
  width: fit-content !important;
  margin: 22px auto 0 !important;
}

/* GT Rewards FAQ carries an inline navy from the old light page. */
html body .gtr-faq-item.wp-block-details,
html body .gtr-faq-item.wp-block-details :is(summary, p, li, span, strong, em) {
  color: var(--off) !important;
}

html body .gtr-faq-item.wp-block-details a {
  color: var(--orange) !important;
}
