/* ============================================================================
   Charnwood OneVu portal — APAS preview theme
   ----------------------------------------------------------------------------
   Drop-in stylesheet based on the APAS design system, adapted to the OneVu
   (Bootstrap 3 + Aurelia) citizen portal.

   • All icons are embedded inline as SVG data-URIs — no external files needed.
   • Pure CSS. Three enhancements from the live preview need markup/JS and are
     noted in the "NEEDS MARKUP / JS" section at the bottom of this file.

   Colours use the Charnwood brand green (#59AF33). Where white text sat on that
   green and failed WCAG contrast, a slightly darker green (#52a12f) or dark
   text is used so it passes AA.
   ============================================================================ */

/* ---------------------------------------------------------------- 1. TOKENS */
:root{
  --apas-bg:#f3f3f5; --apas-surface:#ffffff; --apas-surface-2:#fafafb;
  --apas-ink:#111114; --apas-ink-2:#3a3a42; --apas-muted:#8a8a94;
  --apas-line:#e7e7eb; --apas-line-2:#efeff2;
  --apas-accent:#111114; --apas-accent-soft:#1e1e24; --apas-on-accent:#ffffff;
  --apas-green:#59af33; --apas-green-accessible:#52a12f; --apas-green-tint:rgba(89,175,51,.25);
  --apas-pill-green-bg:#b6f0c2; --apas-pill-green-ink:#0c5b29;
  --apas-pill-amber-bg:#ffd591; --apas-pill-amber-ink:#6b3d00;
  --apas-pill-blue-bg:#cfe2ff;  --apas-pill-blue-ink:#0d3b86;
  --apas-pill-pink-bg:#ffd1e0;  --apas-pill-pink-ink:#7a1c44;
  --apas-status-danger:#c0392b;
  --apas-font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --apas-radius-sm:8px; --apas-radius-md:10px; --apas-radius-lg:12px;
  --apas-radius-xl:14px; --apas-radius-2xl:20px; --apas-radius-full:999px;
  --apas-shadow-sm:0 1px 2px rgba(17,17,20,.04);
  --apas-shadow-md:0 4px 16px rgba(17,17,20,.06);
  --apas-shadow-lg:0 12px 32px rgba(17,17,20,.10);
  --apas-ease:cubic-bezier(.4,0,.2,1);
}
/* Load Inter (or self-host and remove this import) */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

/* ------------------------------------------------------------ 2. BASE/TYPE */
body{background:var(--apas-bg)!important;color:var(--apas-ink)!important;-webkit-font-smoothing:antialiased;}
body,body button,body input,body select,body textarea,.navbar,h1,h2,h3,h4,h5,.btn{font-family:var(--apas-font-family)!important;}
h1,h2,h3,h4{color:var(--apas-ink)!important;font-weight:700!important;letter-spacing:-.02em;}
a{color:var(--apas-ink-2);} a:hover{color:var(--apas-ink);}

/* --------------------------------------------------------- 3. HEADER/LOGO */
/* #onevu-custom-banner actually lives INSIDE #top-banner in the live markup
   (not as a sibling after it, as originally assumed) — it's the header's
   second flex child. Switching the header to a column flex stacks the logo
   row above a full-width banner row, so the banner spans the page width. */
#top-banner{height:auto!important;min-height:110px!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;padding:0!important;background:var(--apas-surface)!important;border-bottom:0!important;overflow:visible!important;position:relative!important;}
#top-banner img.logo{align-self:center!important;max-height:103px!important;width:auto!important;height:auto!important;margin:3.5px auto!important;display:block!important;}

/* --------------------------------------------------------- 4. WARNING BAR */
/* "Phones are down" banner and its icon -- hidden entirely per request. */
#onevu-custom-banner{display:none!important;}

/* ------------------------------------------------------ 5. PAGE-TITLE BAND */
.page-header{background:linear-gradient(90deg,#5ab031,#0072ab)!important;border-bottom:1px solid var(--apas-line)!important;width:100vw!important;margin-left:calc(50% - 50vw)!important;margin-right:calc(50% - 50vw)!important;padding:20px 45px 20px 81px!important;}
.page-header,.page-header *{color:#000!important;}

/* --------------------------------------------------------------- 6. TOP NAV */
.navbar-default.menu{background:var(--apas-accent)!important;border:0!important;border-radius:0!important;box-shadow:none!important;margin-bottom:0!important;}
.navbar-default.menu .nav>li>a{color:rgba(255,255,255,.72)!important;font-weight:600!important;font-size:14px!important;background:transparent!important;border:0!important;margin:8px 2px!important;padding:8px 14px!important;border-radius:var(--apas-radius-lg)!important;outline:none!important;transition:background .15s,color .15s;}
.navbar-default.menu .nav>li>a:hover{background:rgba(255,255,255,.10)!important;color:#fff!important;}
.navbar-default.menu .nav>li>a:focus{background:transparent!important;color:rgba(255,255,255,.72)!important;outline:none!important;}
.navbar-default.menu .nav>li.active>a,.navbar-default.menu .nav>li.active>a:hover,.navbar-default.menu .nav>li.active>a:focus{background:#fff!important;color:var(--apas-ink)!important;}
.navbar-default.menu .navbar-toggle{border-radius:var(--apas-radius-md)!important;border-color:rgba(255,255,255,.3)!important;}
.navbar-default.menu .navbar-toggle .icon-bar{background:#fff!important;}

/* --------------------------------------------------------------- 7. BUTTONS */
.btn{display:inline-flex!important;align-items:center;gap:8px;min-height:40px;padding:0 16px!important;border-radius:var(--apas-radius-lg)!important;border:1px solid var(--apas-line)!important;background:var(--apas-surface)!important;color:var(--apas-ink)!important;font-weight:600!important;box-shadow:none!important;text-shadow:none!important;transition:background .15s,border-color .15s;}
.btn:hover,.btn:focus{background:var(--apas-line-2)!important;color:var(--apas-ink)!important;outline:none!important;}
.btn-primary,.btn-success{background:var(--apas-accent)!important;border-color:var(--apas-accent)!important;color:var(--apas-on-accent)!important;}
.btn-primary:hover,.btn-success:hover{background:var(--apas-accent-soft)!important;border-color:var(--apas-accent-soft)!important;}
.btn-danger{background:var(--apas-status-danger)!important;border-color:var(--apas-status-danger)!important;color:#fff!important;}
.btn-xs,.btn-sm{min-height:32px!important;padding:0 12px!important;border-radius:var(--apas-radius-md)!important;}
/* bare Aurelia buttons that aren't Bootstrap .btn */
/* NOTE: this catch-all's :not() exclusions each add a class's worth of
   specificity (0,0,6,1) -- higher than the more "targeted-looking"
   .silo-detail-alt .silo-accordian-header rule below it (0,0,2,0). It was
   silently winning the cascade for every property they both set (display,
   gap, padding, border...), including the border this button was never
   supposed to have. .silo-accordian-header needs excluding here, same as
   .btn/.thumbnail/etc., for its own rule to have any effect at all. */
button.au-target:not(.btn):not(.thumbnail):not(.navbar-toggle):not(.close):not(.addFavourite):not(.favourite):not(.silo-accordian-header){display:inline-flex!important;align-items:center!important;gap:8px!important;min-height:40px!important;padding:0 16px!important;border-radius:var(--apas-radius-lg)!important;border:1px solid var(--apas-line)!important;background:var(--apas-surface)!important;color:var(--apas-ink)!important;font-weight:600!important;font-size:14px!important;cursor:pointer!important;box-shadow:none!important;}

/* ------------------------------------------------------------- 8. NAV-PILLS */
.nav-pills{display:inline-flex!important;flex-wrap:wrap!important;gap:8px!important;padding:0!important;margin:0 0 16px!important;list-style:none!important;}
.nav-pills>li{float:none!important;margin:0!important;}
.nav-pills>li>a{display:inline-flex!important;align-items:center!important;gap:8px!important;min-height:40px!important;padding:0 16px!important;margin:0!important;border-radius:var(--apas-radius-lg)!important;border:1px solid var(--apas-line)!important;background:var(--apas-surface)!important;color:var(--apas-ink)!important;font-weight:600!important;font-size:14px!important;text-decoration:none!important;}
.nav-pills>li>a:hover{background:var(--apas-line-2)!important;color:var(--apas-ink)!important;}
.nav-pills>li.active>a,.nav-pills>li.active>a:hover{background:var(--apas-accent)!important;border-color:var(--apas-accent)!important;color:var(--apas-on-accent)!important;}

/* ------------------------------------------ 9. FORMS / TABLES / LABELS / ALERTS */
.form-control{background:var(--apas-surface-2)!important;border:1px solid var(--apas-line)!important;border-radius:var(--apas-radius-md)!important;color:var(--apas-ink)!important;box-shadow:none!important;height:auto!important;padding:10px 12px!important;}
.form-control:focus{background:var(--apas-surface)!important;border-color:var(--apas-ink)!important;box-shadow:none!important;}
label,.control-label{font-weight:600!important;color:var(--apas-ink-2)!important;}
.table{background:var(--apas-surface)!important;}
.table>thead>tr>th{border-bottom:1px solid var(--apas-line)!important;color:var(--apas-muted)!important;text-transform:uppercase;font-size:11px;letter-spacing:.06em;font-weight:600!important;}
.table>tbody>tr>td{border-top:1px solid var(--apas-line-2)!important;}
.table-hover>tbody>tr:hover{background:var(--apas-surface-2)!important;}
.label,.badge{border-radius:var(--apas-radius-full)!important;font-weight:600!important;font-size:11px!important;padding:4px 10px!important;}
.label-success{background:var(--apas-pill-green-bg)!important;color:var(--apas-pill-green-ink)!important;}
.label-warning{background:var(--apas-pill-amber-bg)!important;color:var(--apas-pill-amber-ink)!important;}
.label-info{background:var(--apas-pill-blue-bg)!important;color:var(--apas-pill-blue-ink)!important;}
.label-danger{background:var(--apas-pill-pink-bg)!important;color:var(--apas-pill-pink-ink)!important;}
.alert{border-radius:var(--apas-radius-xl)!important;border:1px solid var(--apas-line)!important;}
.alert-info{background:var(--apas-pill-blue-bg)!important;border-color:transparent!important;color:var(--apas-pill-blue-ink)!important;}
.alert-success{background:var(--apas-pill-green-bg)!important;border-color:transparent!important;color:var(--apas-pill-green-ink)!important;}
.alert-warning{background:var(--apas-green-tint)!important;border-color:transparent!important;color:var(--apas-ink)!important;}
.alert-danger{background:var(--apas-pill-pink-bg)!important;border-color:transparent!important;color:var(--apas-pill-pink-ink)!important;}

/* -------------------------------------------------- 10. CARDS / SERVICE TILES */
.panel,.thumbnail,.well{background:var(--apas-surface)!important;border:1px solid var(--apas-line)!important;border-radius:var(--apas-radius-2xl)!important;box-shadow:var(--apas-shadow-sm)!important;}
.panel-heading{background:transparent!important;border-bottom:1px solid var(--apas-line-2)!important;font-weight:700!important;border-radius:var(--apas-radius-2xl) var(--apas-radius-2xl) 0 0!important;padding:16px 20px!important;}
.panel-body{padding:20px!important;}
.thumbnail.silo-list,button.thumbnail{padding:20px!important;text-align:left!important;transition:box-shadow .18s,transform .18s,border-color .18s;}
.thumbnail.silo-list:hover,button.thumbnail:hover{box-shadow:0 0 0 2px #3b7531,0 8px 20px rgba(0,0,0,.18)!important;transform:translateY(-2px);border-color:#3b7531!important;}
.thumbnail.silo-header{padding-top:20px!important;}
/* remove the blank double-chevron column */
.thumbnail .details-link{display:none!important;}

/* --------------------------------------------------- 11. SERVICE CARD ICONS */
/* Positioned icon slot on each service tile (bottom-right). */
.thumbnail.silo-list{position:relative!important;}
.thumbnail.silo-list::after{content:'';position:absolute;right:24px;top:20px;width:66px;height:58px;background:center/contain no-repeat;pointer-events:none;}
/* Robust method: add ONE of these classes to each service tile's element. */
.apas-svc--housing::after {background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 73 73' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath d='M71.6873 36.1453C71.6873 55.6957 55.8059 71.5405 36.2187 71.5405C16.6265 71.5405 0.75 55.6957 0.75 36.1453C0.75 16.5961 16.6265 0.750014 36.2187 0.750014C55.8059 0.750014 71.6873 16.5961 71.6873 36.1453Z' stroke='%23231F20' stroke-width='1.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M24.3179 18.9626L52.1182 36.1058L24.3179 53.249' stroke='%23231F20' stroke-width='1.56' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3C/svg%3E");}
.apas-svc--tenancy::after {background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 73 73' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath d='M71.6873 36.1453C71.6873 55.6957 55.8059 71.5405 36.2187 71.5405C16.6265 71.5405 0.75 55.6957 0.75 36.1453C0.75 16.5961 16.6265 0.750014 36.2187 0.750014C55.8059 0.750014 71.6873 16.5961 71.6873 36.1453Z' stroke='%23231F20' stroke-width='1.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M24.3179 18.9626L52.1182 36.1058L24.3179 53.249' stroke='%23231F20' stroke-width='1.56' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3C/svg%3E");}
.apas-svc--waste::after   {background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 73 73' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath d='M71.6873 36.1453C71.6873 55.6957 55.8059 71.5405 36.2187 71.5405C16.6265 71.5405 0.75 55.6957 0.75 36.1453C0.75 16.5961 16.6265 0.750014 36.2187 0.750014C55.8059 0.750014 71.6873 16.5961 71.6873 36.1453Z' stroke='%23231F20' stroke-width='1.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M24.3179 18.9626L52.1182 36.1058L24.3179 53.249' stroke='%23231F20' stroke-width='1.56' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3C/svg%3E");}
.apas-svc--street::after  {background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 73 73' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath d='M71.6873 36.1453C71.6873 55.6957 55.8059 71.5405 36.2187 71.5405C16.6265 71.5405 0.75 55.6957 0.75 36.1453C0.75 16.5961 16.6265 0.750014 36.2187 0.750014C55.8059 0.750014 71.6873 16.5961 71.6873 36.1453Z' stroke='%23231F20' stroke-width='1.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M24.3179 18.9626L52.1182 36.1058L24.3179 53.249' stroke='%23231F20' stroke-width='1.56' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3C/svg%3E");}
.apas-svc--council::after {background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 73 73' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath d='M71.6873 36.1453C71.6873 55.6957 55.8059 71.5405 36.2187 71.5405C16.6265 71.5405 0.75 55.6957 0.75 36.1453C0.75 16.5961 16.6265 0.750014 36.2187 0.750014C55.8059 0.750014 71.6873 16.5961 71.6873 36.1453Z' stroke='%23231F20' stroke-width='1.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M24.3179 18.9626L52.1182 36.1058L24.3179 53.249' stroke='%23231F20' stroke-width='1.56' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3C/svg%3E");}
.apas-svc--benefits::after{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 73 73' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath d='M71.6873 36.1453C71.6873 55.6957 55.8059 71.5405 36.2187 71.5405C16.6265 71.5405 0.75 55.6957 0.75 36.1453C0.75 16.5961 16.6265 0.750014 36.2187 0.750014C55.8059 0.750014 71.6873 16.5961 71.6873 36.1453Z' stroke='%23231F20' stroke-width='1.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M24.3179 18.9626L52.1182 36.1058L24.3179 53.249' stroke='%23231F20' stroke-width='1.56' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3C/svg%3E");}
.apas-svc--businessrates::after{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 73 73' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath d='M71.6873 36.1453C71.6873 55.6957 55.8059 71.5405 36.2187 71.5405C16.6265 71.5405 0.75 55.6957 0.75 36.1453C0.75 16.5961 16.6265 0.750014 36.2187 0.750014C55.8059 0.750014 71.6873 16.5961 71.6873 36.1453Z' stroke='%23231F20' stroke-width='1.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M24.3179 18.9626L52.1182 36.1058L24.3179 53.249' stroke='%23231F20' stroke-width='1.56' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3C/svg%3E");}
/* Fallback for the fixed 6-service grid, keyed by POSITION FROM THE END
   of the tile list (nth-last-child) rather than from the start.
   Two bugs fixed here:
   1. ".silo-default" is a class ON each tile itself, not an ancestor of
      ".row" -- the old ".silo-default .row > ..." selector never matched
      anything, which is why icons never rendered at all.
   2. The page also has an OUTER single-column layout row/col wrapper
      (plain ".row" > ".col-md-12") around the entire page content, which
      a bare ".row > [class*="col-"]" selector also matches -- and since
      that wrapper is the same for every tile, it made every single tile
      resolve to the SAME nth-last-child(1) rule regardless of its real
      position. Scoping to ".row.au-target" (the actual card-grid row,
      which carries an extra Aurelia binding class the page wrapper
      lacks) makes the selector match only the intended grid.
   Caveat: this still assumes the 6 default services always render as a
   fixed-order tail after any personalised "Add to My Account" shortcuts
   (confirmed on myaccount-test.charnwood.gov.uk). If a resident's set of
   services differs from these 6, or the site ever changes their relative
   order, icons will misalign. The robust fix is the .apas-svc--* classes
   above, but nothing in the current markup adds those classes to a tile.
   Remove this whole block if that gets addressed. */
.row.au-target > [class*="col-"]:nth-last-child(6) .thumbnail.silo-list::after{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 73 73' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath d='M71.6873 36.1453C71.6873 55.6957 55.8059 71.5405 36.2187 71.5405C16.6265 71.5405 0.75 55.6957 0.75 36.1453C0.75 16.5961 16.6265 0.750014 36.2187 0.750014C55.8059 0.750014 71.6873 16.5961 71.6873 36.1453Z' stroke='%23231F20' stroke-width='1.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M24.3179 18.9626L52.1182 36.1058L24.3179 53.249' stroke='%23231F20' stroke-width='1.56' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3C/svg%3E");} /* My Council Tax */
.row.au-target > [class*="col-"]:nth-last-child(5) .thumbnail.silo-list::after{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 73 73' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath d='M71.6873 36.1453C71.6873 55.6957 55.8059 71.5405 36.2187 71.5405C16.6265 71.5405 0.75 55.6957 0.75 36.1453C0.75 16.5961 16.6265 0.750014 36.2187 0.750014C55.8059 0.750014 71.6873 16.5961 71.6873 36.1453Z' stroke='%23231F20' stroke-width='1.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M24.3179 18.9626L52.1182 36.1058L24.3179 53.249' stroke='%23231F20' stroke-width='1.56' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3C/svg%3E");} /* My Benefits */
.row.au-target > [class*="col-"]:nth-last-child(4) .thumbnail.silo-list::after{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 73 73' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath d='M71.6873 36.1453C71.6873 55.6957 55.8059 71.5405 36.2187 71.5405C16.6265 71.5405 0.75 55.6957 0.75 36.1453C0.75 16.5961 16.6265 0.750014 36.2187 0.750014C55.8059 0.750014 71.6873 16.5961 71.6873 36.1453Z' stroke='%23231F20' stroke-width='1.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M24.3179 18.9626L52.1182 36.1058L24.3179 53.249' stroke='%23231F20' stroke-width='1.56' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3C/svg%3E");} /* My Tenancy */
.row.au-target > [class*="col-"]:nth-last-child(3) .thumbnail.silo-list::after{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 73 73' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath d='M71.6873 36.1453C71.6873 55.6957 55.8059 71.5405 36.2187 71.5405C16.6265 71.5405 0.75 55.6957 0.75 36.1453C0.75 16.5961 16.6265 0.750014 36.2187 0.750014C55.8059 0.750014 71.6873 16.5961 71.6873 36.1453Z' stroke='%23231F20' stroke-width='1.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M24.3179 18.9626L52.1182 36.1058L24.3179 53.249' stroke='%23231F20' stroke-width='1.56' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3C/svg%3E");} /* Waste and Recycling */
.row.au-target > [class*="col-"]:nth-last-child(2) .thumbnail.silo-list::after{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 73 73' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath d='M71.6873 36.1453C71.6873 55.6957 55.8059 71.5405 36.2187 71.5405C16.6265 71.5405 0.75 55.6957 0.75 36.1453C0.75 16.5961 16.6265 0.750014 36.2187 0.750014C55.8059 0.750014 71.6873 16.5961 71.6873 36.1453Z' stroke='%23231F20' stroke-width='1.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M24.3179 18.9626L52.1182 36.1058L24.3179 53.249' stroke='%23231F20' stroke-width='1.56' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3C/svg%3E");} /* Housing Advice */
.row.au-target > [class*="col-"]:nth-last-child(1) .thumbnail.silo-list::after{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 73 73' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath d='M71.6873 36.1453C71.6873 55.6957 55.8059 71.5405 36.2187 71.5405C16.6265 71.5405 0.75 55.6957 0.75 36.1453C0.75 16.5961 16.6265 0.750014 36.2187 0.750014C55.8059 0.750014 71.6873 16.5961 71.6873 36.1453Z' stroke='%23231F20' stroke-width='1.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M24.3179 18.9626L52.1182 36.1058L24.3179 53.249' stroke='%23231F20' stroke-width='1.56' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3C/svg%3E");} /* Street Management */

/* -------------------------------- 11b. "ADD TO MY ACCOUNT" SHORTCUT ICONS */
/* Icons for the personalised shortcut tiles (Benefit claims, Council Tax,
   Business Rates), keyed by POSITION FROM THE START since these are always
   prepended before the fixed 6-service grid above. Same caveat as the
   fallback above: if a resident's shortcuts differ in count or order from
   what was observed on myaccount-test.charnwood.gov.uk, icons will misalign. */
.row.au-target > [class*="col-"]:nth-child(1) .thumbnail.silo-list::after{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 73 73' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath d='M71.6873 36.1453C71.6873 55.6957 55.8059 71.5405 36.2187 71.5405C16.6265 71.5405 0.75 55.6957 0.75 36.1453C0.75 16.5961 16.6265 0.750014 36.2187 0.750014C55.8059 0.750014 71.6873 16.5961 71.6873 36.1453Z' stroke='%23231F20' stroke-width='1.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M24.3179 18.9626L52.1182 36.1058L24.3179 53.249' stroke='%23231F20' stroke-width='1.56' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3C/svg%3E");} /* Benefit claims */
.row.au-target > [class*="col-"]:nth-child(2) .thumbnail.silo-list::after{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 73 73' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath d='M71.6873 36.1453C71.6873 55.6957 55.8059 71.5405 36.2187 71.5405C16.6265 71.5405 0.75 55.6957 0.75 36.1453C0.75 16.5961 16.6265 0.750014 36.2187 0.750014C55.8059 0.750014 71.6873 16.5961 71.6873 36.1453Z' stroke='%23231F20' stroke-width='1.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M24.3179 18.9626L52.1182 36.1058L24.3179 53.249' stroke='%23231F20' stroke-width='1.56' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3C/svg%3E");} /* Council Tax */
.row.au-target > [class*="col-"]:nth-child(3) .thumbnail.silo-list::after{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 73 73' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath d='M71.6873 36.1453C71.6873 55.6957 55.8059 71.5405 36.2187 71.5405C16.6265 71.5405 0.75 55.6957 0.75 36.1453C0.75 16.5961 16.6265 0.750014 36.2187 0.750014C55.8059 0.750014 71.6873 16.5961 71.6873 36.1453Z' stroke='%23231F20' stroke-width='1.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M24.3179 18.9626L52.1182 36.1058L24.3179 53.249' stroke='%23231F20' stroke-width='1.56' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3C/svg%3E");} /* Business Rates */

/* ------------------------------------------------ 12. DETAIL / FAQ PAGES */
.silo-detail-alt .faq-nav-list ol{list-style:none!important;margin:0!important;padding:0!important;display:flex!important;flex-direction:column!important;gap:14px!important;}
/* Scoped to DIRECT children of the <ol> only. A plain descendant selector
   here previously matched every <li> anywhere inside a FAQ item's expanded
   body too -- including unrelated ones like the Account/Contact Info and
   Bills/Payments .nav-tabs <li>s -- wrapping them in a second, unwanted
   white bordered pill around their own black pill. */
.silo-detail-alt .faq-nav-list>ol>li{background:var(--apas-surface)!important;border:1px solid var(--apas-line)!important;border-radius:var(--apas-radius-2xl)!important;padding:6px 6px 4px!important;margin:0!important;list-style:none!important;box-shadow:var(--apas-shadow-sm)!important;overflow:hidden!important;}
/* NOTE: the "border" shorthand silently fails to override this <button>'s
   default border here (confirmed: longhand border-width/style/color works,
   the shorthand does not -- an unexplained but reproducible quirk on this
   specific element). Use the longhand form for any future border changes. */
.silo-detail-alt .silo-accordian-header{display:flex!important;align-items:center!important;gap:14px!important;width:100%!important;background:transparent!important;border-width:0!important;border-style:none!important;border-color:transparent!important;border-radius:var(--apas-radius-lg)!important;padding:14px 16px!important;min-height:0!important;text-align:left!important;font-family:var(--apas-font-family)!important;font-weight:600!important;font-size:15px!important;color:var(--apas-ink)!important;box-shadow:none!important;}
.silo-detail-alt .silo-accordian-header:hover{background:var(--apas-line-2)!important;}
/* number badge — black for accessible contrast on white text */
.silo-detail-alt .silo-accordian-header .part-number{flex:0 0 auto!important;display:inline-grid!important;place-items:center!important;min-width:30px!important;height:30px!important;padding:0 9px!important;background:var(--apas-accent)!important;color:#fff!important;border-radius:var(--apas-radius-full)!important;font-weight:700!important;font-size:13px!important;line-height:1!important;}
.silo-detail-alt markdown-with-html{display:block!important;padding:0 18px 12px 60px!important;color:var(--apas-ink-2)!important;line-height:1.55!important;}
.silo-detail-alt markdown-with-html p{margin:0 0 10px!important;}
/* external-content links rendered as buttons */
.silo-detail-alt markdown-with-html a.btn{display:inline-flex!important;align-items:center!important;min-height:36px!important;padding:0 14px!important;background:var(--apas-accent)!important;border:1px solid var(--apas-accent)!important;color:var(--apas-on-accent)!important;border-radius:var(--apas-radius-lg)!important;font-weight:600!important;font-size:13px!important;text-decoration:none!important;margin-top:10px!important;}
.silo-detail-alt markdown-with-html a.btn:hover{background:var(--apas-accent-soft)!important;border-color:var(--apas-accent-soft)!important;color:#fff!important;}

/* -------------------------------------- 13. "ADD TO MY ACCOUNT" FAVOURITE BTN */
/* "Remove from My Account" (button.favourite) is the same component after the
   toggle -- it must match the same layout/spacing rules as button.addFavourite
   below, or it falls back to generic button styling and loses the spacing
   that compensates for "Change your phone number" being absolutely positioned
   (see section 21). Its native fa-star glyph is left alone (not given the
   custom "add" icon below) so it still reads as the favourited/remove state. */
button.addFavourite,button.favourite{display:inline-flex!important;align-items:center!important;gap:8px!important;width:auto!important;min-height:38px!important;height:auto!important;padding:6px 18px!important;border-radius:var(--apas-radius-full)!important;background:var(--apas-green-tint)!important;border:0!important;color:var(--apas-ink)!important;font-weight:600!important;font-size:13px!important;cursor:pointer!important;box-shadow:none!important;text-align:left!important;}
button.addFavourite:hover,button.favourite:hover{background:rgba(89,175,51,.38)!important;color:var(--apas-ink)!important;}
button.addFavourite[disabled],button.favourite[disabled]{opacity:.55!important;cursor:not-allowed!important;}
button.addFavourite .clearButtonTitle,button.favourite .clearButtonTitle{margin:0!important;white-space:nowrap!important;color:var(--apas-ink)!important;}
/* swap the font-awesome star glyph for the inline "add" icon */
button.addFavourite::before{content:''!important;display:inline-block!important;flex:0 0 auto!important;width:28px!important;height:22px!important;background:center/contain no-repeat!important;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath d='M31.5 21.3019C31.5 22.7687 30.2974 23.9688 28.8276 23.9688H3.17241C1.70259 23.9688 0.5 22.7687 0.5 21.3019V3.16707C0.5 1.70028 1.70259 0.500183 3.17241 0.500183H28.8276C30.2974 0.500183 31.5 1.70028 31.5 3.16707V21.3019Z' fill='white' stroke='black' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M0.5 5.83398H31.5Z' fill='white'/%3E %3Cpath d='M0.5 5.83398H31.5' stroke='black' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M4.77612 3.16682C4.77612 3.46124 4.53721 3.7002 4.24164 3.7002C3.94607 3.7002 3.70715 3.46124 3.70715 3.16682C3.70715 2.8724 3.94607 2.63344 4.24164 2.63344C4.53721 2.63344 4.77612 2.8724 4.77612 3.16682Z' fill='white' stroke='black' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M7.98321 3.16682C7.98321 3.46124 7.7443 3.7002 7.44873 3.7002C7.15316 3.7002 6.91425 3.46124 6.91425 3.16682C6.91425 2.8724 7.15316 2.63344 7.44873 2.63344C7.7443 2.63344 7.98321 2.8724 7.98321 3.16682Z' fill='white' stroke='black' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M11.1897 3.16682C11.1897 3.46124 10.9508 3.7002 10.6552 3.7002C10.3596 3.7002 10.1207 3.46124 10.1207 3.16682C10.1207 2.8724 10.3596 2.63344 10.6552 2.63344C10.9508 2.63344 11.1897 2.8724 11.1897 3.16682Z' fill='white' stroke='black' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M10.2112 13.4482H4.54633V8.59266H10.2112V13.4482Z' fill='%23ACD799' stroke='black' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M18.3038 13.4482H13.4482V8.59266H18.3038V13.4482Z' fill='white' stroke='black' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M27.2057 13.4482H21.5408V8.59266H27.2057V13.4482Z' fill='white' stroke='black' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M10.2112 20.7314H4.54633V16.6851H10.2112V20.7314Z' fill='white' stroke='black' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M18.3038 20.7314H13.4482V16.6851H18.3038V20.7314Z' fill='white' stroke='black' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M27.2057 20.7314H21.5408V16.6851H27.2057V20.7314Z' fill='white' stroke='black' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3C/svg%3E")!important;font-family:inherit!important;}
/* full card width when in the service grid (not the detail-page pills) */
.dashboard-silo button.addFavourite,.dashboard-silo button.favourite{width:100%!important;justify-content:flex-start!important;}
/* FAQ accordion items render this button directly under .silo-accordian-header
   with no gap between them -- give it some breathing room. The wrapper is
   named ".dashboard-faq" on the Council Tax detail page but ".dashboard-remove"
   on the My Account/dashboard page's favourited-items list -- same component,
   different page-specific wrapper class, so both need the rule. */
.dashboard-faq button.addFavourite,.dashboard-faq button.favourite,.dashboard-remove button.addFavourite,.dashboard-remove button.favourite{margin-top:16px!important;}

/* --------------------------------------------------------- 14. MOBILE MENU */
/* NOTE: `top` should equal the header (110px) + warning-bar height. */
.mini-menu{background:var(--apas-accent)!important;position:fixed!important;top:170px!important;left:0!important;bottom:auto!important;height:auto!important;max-height:calc(100vh - 170px)!important;width:min(340px,90vw)!important;overflow-y:auto!important;z-index:3000!important;box-shadow:var(--apas-shadow-lg)!important;font-family:var(--apas-font-family)!important;border-top-right-radius:16px!important;border-bottom-right-radius:16px!important;}
.mini-menu .content{padding:18px 16px 22px!important;}
.mini-menu h1{color:#fff!important;font-size:20px!important;font-weight:700!important;margin:0 0 14px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;}
.mini-menu i.close{color:#fff!important;font-size:20px!important;width:40px!important;height:40px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;border-radius:10px!important;opacity:.85!important;flex:0 0 40px!important;}
.mini-menu .nav{margin:0!important;padding:0!important;}
.mini-menu .nav>li{margin:0!important;float:none!important;}
.mini-menu .nav>li>a{display:block!important;color:rgba(255,255,255,.82)!important;font-size:16px!important;font-weight:600!important;padding:14px 16px!important;border-radius:12px!important;margin:3px 0!important;text-decoration:none!important;}
.mini-menu .nav>li>a:hover{background:rgba(255,255,255,.10)!important;color:#fff!important;}
.mini-menu .nav>li.active>a{background:#fff!important;color:var(--apas-ink)!important;}
.mini-menu .content>div{margin-top:20px!important;padding-top:16px!important;border-top:1px solid rgba(255,255,255,.15)!important;}
.mini-menu .content>div>h1{font-size:12px!important;text-transform:uppercase!important;letter-spacing:.08em!important;color:rgba(255,255,255,.55)!important;font-weight:600!important;margin:0 0 8px!important;}
.mini-menu .content>div .nav>li>a{color:#fff!important;border:1px solid rgba(255,255,255,.28)!important;text-align:center!important;margin-top:4px!important;}

/* ------------------------------------------------- 15. DETAILS CAPTION TINT */
.details.caption{background:#5ab031!important;} /* header green; #111114 text = 6.9:1 contrast (AA/AAA) */
.details.caption,.details.caption *{color:var(--apas-ink)!important;}

/* ============================================================================
   NEEDS MARKUP / JS  (cannot be done in pure CSS)
   ----------------------------------------------------------------------------
   1. Warning bar position: move #onevu-custom-banner to sit directly after
      #top-banner in the DOM so it's a full-width bar under the header.
   2. Service-tile icons: either add an .apas-svc--* class to each tile
      (see section 11) or keep the default-order fallback.
   3. Escaped links: some FAQ items author the external link with curly/smart
      quotes (class="btn btn-sm btn-primary"), which the browser can't parse,
      so it shows the raw <a> as text. Fix the content to use straight quotes,
      or re-parse it client-side. Once it's a real <a class="btn ...">, the
      styling in section 12 renders it as a button automatically.
   ============================================================================ */

/* ---------------------------------- 16. "PERSONALISED INFO" BADGE */
/* Site default renders this as a solid green full-width bar with centered
   white bold text. Restyled to a quiet left-aligned line with a small
   info-circle icon, matching the design brief. */
.reg-offered-container{background:transparent!important;}
.reg-offered{background:transparent!important;color:var(--apas-ink-2)!important;text-align:left!important;padding:0!important;margin:14px 0 0!important;}
.reg-offered h3{display:flex!important;align-items:center!important;gap:10px!important;margin:0!important;padding:0!important;font-weight:400!important;font-size:14px!important;line-height:1.4!important;color:var(--apas-ink-2)!important;}
.reg-offered h3::before{content:'';flex:0 0 20px;width:20px;height:20px;background:center/contain no-repeat;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath d='M15.2336 7.85155C15.2336 11.9116 11.9347 15.2031 7.86682 15.2031C3.79766 15.2031 0.5 11.9116 0.5 7.85155C0.5 3.79147 3.79766 0.499974 7.86682 0.499974C11.9347 0.499974 15.2336 3.79147 15.2336 7.85155Z' stroke='%23231F20' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M5.85754 12.5303H9.87581' stroke='%23231F20' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M6.52747 6.51455H7.86689V12.1953' stroke='%23231F20' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M7.86685 3.50666C7.86685 3.69145 7.71617 3.84082 7.532 3.84082C7.34649 3.84082 7.19714 3.69145 7.19714 3.50666C7.19714 3.32187 7.34649 3.1725 7.532 3.1725C7.71617 3.1725 7.86685 3.32187 7.86685 3.50666Z' stroke='%23231F20' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E %3C/svg%3E");}
.reg-offered h3 span{font-weight:inherit!important;color:inherit!important;}

/* -------------------------------------------------------- 17. NAV TABS */
/* Bootstrap's raw .nav-tabs (used e.g. for the Account/Contact Info toggle
   and the Bills/Payments toggle on account detail pages) was unstyled,
   rendering inconsistently between different instances on the same page.
   Restyled as a joined segmented control (touching buttons, rounded outer
   corners only) per the design brief, rather than separate pill buttons. */
.nav-tabs{border-bottom:0!important;display:inline-flex!important;flex-wrap:wrap!important;gap:0!important;padding:0!important;margin:16px 0!important;list-style:none!important;}
.nav-tabs>li{float:none!important;margin:0 0 0 -1px!important;}
.nav-tabs>li:first-child{margin-left:0!important;}
.nav-tabs>li>a{display:inline-flex!important;align-items:center!important;gap:8px!important;min-height:40px!important;padding:0 16px!important;margin:0!important;border-radius:0!important;border:1px solid var(--apas-line)!important;background:var(--apas-surface)!important;color:var(--apas-ink)!important;font-weight:600!important;font-size:14px!important;text-decoration:none!important;}
.nav-tabs>li:first-child>a{border-radius:var(--apas-radius-md) 0 0 var(--apas-radius-md)!important;}
.nav-tabs>li:last-child>a{border-radius:0 var(--apas-radius-md) var(--apas-radius-md) 0!important;}
.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{background:var(--apas-line-2)!important;color:var(--apas-ink)!important;}
.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{background:var(--apas-accent)!important;border-color:var(--apas-accent)!important;color:var(--apas-on-accent)!important;position:relative!important;z-index:1!important;}
/* Some tabs render with no label/icon configured (e.g. a spare middle tab on
   the Bills/Payments toggle) -- hide those rather than show an empty pill. */
.nav-tabs>li:has(>a:empty){display:none!important;}

/* ------------------------------------------------ 18. ACCOUNT CONTEXT BAR */
/* The "Account / 75151669" strip shown when viewing a registered silo just
   repeats the account number already shown in the "Account Summary" card
   below it -- hide it rather than style it. */
.context-row{display:none!important;}

/* --------------------------------------------------- 19. ACCOUNT SUMMARY CARD */
/* The three-column "Account Summary / This year at a glance / <correspondence>"
   block inside "Your Account Summary" used raw, unstyled .card/.card-header/
   .card-body markup. Styled to green pill sub-headings with bold values under
   plain labels, matching the design brief. */
.card-header{display:inline-flex!important;align-items:center!important;background:#3b7531!important;color:#fff!important;font-weight:700!important;font-size:13px!important;padding:8px 18px!important;border-radius:var(--apas-radius-full)!important;margin:24px 0 16px!important;}
.card-body{font-size:14px!important;color:var(--apas-ink-2)!important;margin:0 0 12px!important;}
.card-body.bold{margin:0!important;color:var(--apas-ink-2)!important;font-weight:400!important;}
.card-body.bold+.card-body{font-weight:700!important;color:var(--apas-ink)!important;}
.card hr{border:0!important;border-top:1px solid var(--apas-line)!important;margin:16px 0!important;}

/* ---------------------------------------- 20. ACCOUNT SUMMARY TAB COLUMN */
/* The "Bills and correspondence"/"Payments You've Made" column had a stray
   empty <p></p> authored before its content, which (despite rendering at
   0 height) still contributed its own margin-bottom and pushed everything
   in that column ~10px lower than its siblings. Collapsing empty paragraphs
   removes that phantom gap and the three column headers line up naturally,
   with no compensating margin needed. */
p:empty{display:none!important;}
/* Loose action links/buttons authored directly after the tab strip (e.g.
   "Change your phone number") sat flush against it with no gap. Setting
   margin-top on the link itself gets collapsed away here, so push the gap
   from the preceding element's margin-bottom instead. */
.tabbable-panel{margin-bottom:16px!important;}
/* The floated .col-md-4 columns above aren't cleared by anything, so the
   "Add to My Account" button that follows this row wraps into the gap next
   to them instead of sitting below, flush left, as a normal block. */
addtodashboard{clear:both!important;display:block!important;}
/* ...and once cleared, line its button up with the column's own left edge
   rather than the outer row edge, but only for rows with this multi-column
   layout -- simple single-column FAQ items must keep their normal position. */
markdown-with-html:has(.col-md-4)+addtodashboard{padding-left:75px!important;}

/* --------------------------------------- 21. "CHANGE YOUR PHONE NUMBER" MOVE */
/* Requested: this button (authored in the "Payments You've Made" column's
   content, as a loose <p> after the Bills/Payments tab strip) must visually
   sit directly under the Account/Contact Info tabs in the "Account Summary"
   column instead. These two buttons live in structurally unrelated content
   blocks (separate floated .col-md-4 columns) -- there is no DOM relationship
   CSS can use to reorder or move one into the other, so this is done with
   absolute positioning against .tabbable-panel (the column's own div, which
   already has position:relative from the site's base CSS and so becomes this
   element's containing block once it is made position:absolute).
   LEFT is a percentage (-200% + a 15px gutter correction), not a hardcoded
   pixel value -- since both columns are equal-width Bootstrap .col-md-4s,
   -200% of this column's own width reliably reaches the target column's
   left edge at ANY viewport width (confirmed on two differently-sized
   windows). TOP is still a hardcoded pixel offset and does NOT have that
   protection: it's calculated against the current height of everything
   above it in the Account Summary column (the account text lines, the
   3 button rows, the Account/Contact Info tabs). FRAGILE: if that content
   changes height (a longer account number, a wrapped line, extra text
   added), this will visually drift and need its "top" value recalculated.
   The robust fix is moving the actual authored link in the source content
   management system, not CSS -- worth raising with whoever maintains that
   page's content if this needs to stay reliable long-term.
   Matched by the link's own href (#/profile/index) rather than
   ":nth-child(1)" -- the My Account/dashboard page lets users reorder and
   add favourited items, so "Council Tax" is not reliably the first list
   item there (it already shifted to 2nd once, breaking an earlier
   nth-child(1)-based version of this rule the moment a second item was
   favourited). Matching on the link's own identity survives any reordering
   on either page. */
.faq-nav-list .tabbable-panel+p:has(>a[href="#/profile/index"]){position:absolute!important;top:427px!important;left:calc(-200% + 15px)!important;margin:0!important;z-index:2!important;width:auto!important;}
/* The general button spacing rule above (section giving markdown-with-html
   a.btn a margin-top) still applies inside this repositioned paragraph,
   adding an extra 10px on top of the absolute "top" offset already
   calculated above -- cancel it here so the visible gap matches the other
   rows. */
.faq-nav-list .tabbable-panel+p:has(>a[href="#/profile/index"]) a.btn{margin-top:0!important;}
/* The "Add to My Account" button below this row is positioned by
   clear:both against the floated columns, NOT relative to this absolutely-
   positioned "Change your phone number" button that visually overlays them
   -- so it doesn't automatically keep pace when that button's height/
   position changes. Its margin-top needs a larger, separately-tuned value
   here to keep the visible gap consistent with the other rows above it,
   subject to the same fragility already noted for the "Change your phone
   number" position above. Scoped via :has() on the enclosing <li> (same
   reordering concern as above) rather than nth-child(1). */
.faq-nav-list>ol>li:has(.tabbable-panel+p>a[href="#/profile/index"]) .dashboard-faq button.addFavourite,.faq-nav-list>ol>li:has(.tabbable-panel+p>a[href="#/profile/index"]) .dashboard-faq button.favourite{margin-top:45px!important;}
/* Same compensation on the My Account/dashboard page (".dashboard-remove"
   wrapper instead of ".dashboard-faq") -- a smaller value here because that
   page's surrounding content (no "Council Tax"/"Your Account Summary"
   heading duplication, no page-header band) renders shorter above this
   point, so "Change your phone number" sits higher up the page. */
.faq-nav-list>ol>li:has(.tabbable-panel+p>a[href="#/profile/index"]) .dashboard-remove button.favourite{margin-top:38px!important;}
/* The absolute positioning above only makes sense for the 3-columns-side-by-
   side desktop layout (.col-md-4, >=992px). Below that, Bootstrap stacks
   these columns (2-up at sm, full-width at xs), so the hardcoded top/left
   above would place this button somewhere nonsensical -- restore it to its
   own normal position in the flow instead, which now naturally reads as
   part of the "Payments You've Made" column's own content, with normal
   spacing above it. */
@media (max-width:991px){
.faq-nav-list .tabbable-panel+p:has(>a[href="#/profile/index"]){position:static!important;top:auto!important;left:auto!important;margin-top:16px!important;}
}

/* -------------------------------------- 22. MY ACCOUNT DASHBOARD ITEM CARDS */
/* On the My Account/dashboard page, each favourited item is a raw content
   block sitting directly on the page background -- no card treatment. A
   favourited service tile (rendered as a button.thumbnail, e.g. a blank
   placeholder silo) already gets a card look for free from the .thumbnail
   rule in section 10, so this only needs to cover hand-authored widgets like
   the Council Tax "Account Summary" content, which don't use that class.
   Matched structurally (skipping items that already contain a .thumbnail)
   rather than by page, since nothing in the markup carries a page-specific
   class here.
   The card is applied to the WHOLE row (dashboarditem's div.row.au-target),
   not just the inner content div, so "Remove from My Account" -- a later
   sibling of that content div, not a descendant of it -- ends up inside the
   card too, rather than sitting below it on the plain page background.
   That row also contains the "Move item up"/"Move item down" arrow buttons
   (siblings of the content div, one before it and one after), which need to
   appear OUTSIDE the card -- above and below it respectively -- instead of
   inside it. Solved by taking both out of flow with position:absolute and
   pushing them past the row's own top/bottom edges; the row's top and
   bottom margins below reserve the vertical space those moves create. This
   mirrors the same out-of-flow technique already used for "Change your
   phone number" in section 21. */
.faq-nav-list>ol>li>dashboarditem>div.row.au-target:not(:has(button.thumbnail)){position:relative!important;margin:56px 0!important;background:var(--apas-surface)!important;border:1px solid var(--apas-line)!important;border-radius:var(--apas-radius-2xl)!important;box-shadow:var(--apas-shadow-sm)!important;padding:24px!important;}
/* The floated .col-md-4 columns inside (Account Summary / This year at a
   glance / Bills and correspondence) aren't cleared by anything, so without
   this the card's background/border collapses to the height of the heading
   text above them instead of enclosing the columns. */
.faq-nav-list>ol>li>dashboarditem>div.row.au-target:not(:has(button.thumbnail))::after{content:''!important;display:table!important;clear:both!important;}
/* Lift "Move item up" (a pull-right floated button, sibling of the content
   div above) out of the card entirely. 56px = its own ~40px height plus the
   site's usual 16px gap; the row's top margin above reserves the same
   amount so it isn't overlapped by whatever sits above this item (the page
   header, or another card if this isn't the first favourited item). */
.faq-nav-list>ol>li>dashboarditem>div.row.au-target:not(:has(button.thumbnail))>button.fa-arrow-up{position:absolute!important;top:-56px!important;right:0!important;float:none!important;margin:0!important;}
/* Same treatment for "Move item down" (sibling of the content div below),
   dropped below the card's bottom edge instead -- the row's bottom margin
   above reserves the matching space so it doesn't collide with the next
   favourited item's card. */
.faq-nav-list>ol>li>dashboarditem>div.row.au-target:not(:has(button.thumbnail))>button.fa-arrow-down{position:absolute!important;bottom:-56px!important;top:auto!important;right:0!important;float:none!important;margin:0!important;}
/* Consistent breathing room between stacked dashboard item cards. Scoped to
   <li> that wrap a <dashboarditem> (the My Account page's favourited-items
   list) so this doesn't also add spacing between the Council Tax detail
   page's FAQ accordion rows, which reuse the same .faq-nav-list markup but
   without a <dashboarditem> wrapper. */
.faq-nav-list>ol>li:has(>dashboarditem){margin-bottom:24px!important;}

/* Forms directory: hide the "New form" label on each form card */
.form-type-summary h2[i18n="forms-directory:new_form"]{display:none!important;}

/* Request detail: Steps / Notes / Documents tabs. Bootstrap's nav-justified gives each <li>
   width:1%, which collapses them inside the flex nav and makes the buttons overlap. */
.nav-pills.nav-justified>li{width:auto!important;flex:0 0 auto!important;display:block!important;}
/* Equal 16px space above (below the green Started/Target bar) and below the tabs, aligned with card text */
.process-detail>.nav-pills{margin:16px 12px!important;}
