/* Additions for the competitor-report changes (Nov 2026). Uses the site's existing tokens. */

/* Footer licence block: two columns (CBI pattern), warning full width below */
.cs-compliance__grid--licence p { margin: 0 0 .5rem; }
.cs-compliance__grid--licence nav { margin-top: 1rem; }
.cs-compliance__warning { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid rgba(255,255,255,.18); }
.cs-compliance__warning p { margin: 0 0 .5rem; max-width: 70rem; }

/* Five-step process */
.cs-steps.cs-steps--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1.5rem; }
.cs-steps .cs-step-gets { font-size: .95em; margin-top: .5rem; }
.cs-steps .cs-step-gets strong { display: block; font-weight: 600; }
@media (max-width: 1024px) { .cs-steps.cs-steps--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px)  { .cs-steps.cs-steps--5 { grid-template-columns: 1fr; } }

/* Under-one-roof section */
.cs-roof__points { list-style: none; margin: 0 0 1.5rem; padding: 0; }
.cs-roof__points li { padding: .9rem 0; border-top: 1px solid var(--global-palette7, #d9d9d9); }
.cs-roof__points li:last-child { border-bottom: 1px solid var(--global-palette7, #d9d9d9); }
.cs-roof__points strong { display: block; color: var(--global-palette3); }

/* Booking: two meeting types */
.cs-book-types { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; margin: 1.5rem 0; }
@media (max-width: 767px) { .cs-book-types { grid-template-columns: 1fr; } }
.cs-book-type { border: 1px solid var(--global-palette7, #d9d9d9); padding: 1.5rem; display: flex; flex-direction: column; gap: .75rem; }
.cs-book-type h3 { margin: 0; }
.cs-book-type dl { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: .25rem 1rem; }
.cs-book-type dt { font-weight: 600; }
.cs-book-type dd { margin: 0; }
.cs-book-frame { width: 100%; min-height: 680px; border: 0; }

/* Service page template (What / Who / Why / When / How) */
.cs-svc-blocks { display: grid; gap: 0; margin: 0; }
.cs-svc-blocks > div { display: grid; grid-template-columns: 12rem 1fr; gap: 1.5rem; padding: 1.5rem 0; border-top: 1px solid var(--global-palette7, #d9d9d9); }
.cs-svc-blocks > div:last-child { border-bottom: 1px solid var(--global-palette7, #d9d9d9); }
.cs-svc-blocks h2 { font-size: var(--global-kb-font-size-md, 1.25rem); margin: 0; color: var(--global-palette3); }
.cs-svc-blocks p, .cs-svc-blocks ul { margin: 0 0 .75rem; }
@media (max-width: 767px) { .cs-svc-blocks > div { grid-template-columns: 1fr; gap: .5rem; } }

/* Header shadow when it slides back in on scroll up */
@media (prefers-reduced-motion: no-preference) {
  #masthead .kadence-sticky-header, #mobile-header .kadence-sticky-header { transition: transform .3s ease, box-shadow .3s ease; }
}
.kadence-sticky-header.item-is-stuck { box-shadow: 0 2px 10px rgba(0,0,0,.18); }

/* Core step styles, needed on pages whose own styles don't include them (First meeting, Fees) */
.cs-steps{list-style:none;margin:0;padding:0;counter-reset:step;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem}
.cs-steps li{counter-increment:step;border-top:1px solid var(--global-palette2);padding-top:1.25rem;display:flex;flex-direction:column}
.cs-steps li:before{content:counter(step,decimal-leading-zero);display:block;font-size:var(--global-kb-font-size-xl);font-weight:600;color:var(--global-palette2);line-height:1;margin-bottom:.75rem}
.cs-steps .cs-step-cost{font-weight:600;color:var(--global-palette3);margin-top:auto;padding-top:.5rem}
.cs-band--dark .cs-steps .cs-step-cost{color:var(--global-palette4)}
@media(max-width:767px){.cs-steps{grid-template-columns:minmax(0,1fr);gap:1.5rem}}
.cs-steps.cs-steps--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1.5rem; }
@media (max-width: 1024px) { .cs-steps.cs-steps--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px)  { .cs-steps.cs-steps--5 { grid-template-columns: 1fr; } }

/* Local hero image: Elizabeth Quay bridge (from the live site) instead of the generic dark building */
.kb-row-layout-wrap.kb-row-layout-id9_eb322a-f1 { background-image: url('/wp-content/uploads/2025/06/contact-banner.webp'); background-position: center 40%; }
@media (max-width: 767px) {
  .kb-row-layout-wrap.kb-row-layout-id9_eb322a-f1 { background-image: url('/wp-content/uploads/2025/06/contact-banner-800.webp'); }
}

/* Credentials band */
.cs-trust--credentials { gap: 1.25rem 2.5rem; }
.cs-trust--credentials li { flex: 1 1 12rem; }
.cs-trust--credentials small a { color: inherit; }
/* Darker overlay on the brighter Elizabeth Quay photo so the hero text keeps its contrast */
.kb-row-layout-wrap.kb-row-layout-id9_eb322a-f1 > .kt-row-layout-overlay {
  background: linear-gradient(90deg, rgba(43,40,35,.88) 0%, rgba(43,40,35,.74) 50%, rgba(43,40,35,.45) 100%) !important;
  opacity: 1 !important;
}
@media (max-width: 767px) {
  .kb-row-layout-wrap.kb-row-layout-id9_eb322a-f1 > .kt-row-layout-overlay { background: rgba(43,40,35,.8) !important; }
}

/* Booking boxes stay compact until a Calendly link is set (booking.js adds the iframe) */
.cs-booking-embed[data-calendly] { min-height: 0; padding: 1rem; }
.cs-booking-embed[data-calendly]:has(iframe) { min-height: 680px; padding: 0; }

/* Text-size control (A+ / A++): also enlarge FAQ questions and definition lists (booking details, profiles, scenarios) */
:root[data-text-size] main summary,
:root[data-text-size] main dt,
:root[data-text-size] main dd { font-size: calc(1em * var(--cs-text-scale, 1)) !important; }

/* =====================================================================================
   Part 4: approved visual improvements (VISUAL-SUGGESTIONS.md 1-3, 5-10)
   ===================================================================================== */

/* V1. Readable desktop menus: solid panel, sentence case, wider, grouped, one-line descriptions */
#site-navigation .header-menu-container ul ul.sub-menu { background: var(--global-palette3) !important; box-shadow: 0 12px 32px rgba(0,0,0,.25) !important; padding: .75rem 0; }
#site-navigation .header-menu-container ul ul li.menu-item > a {
  width: 300px; text-transform: none; letter-spacing: 0; font-size: 15px; line-height: 1.35; font-weight: 600;
  padding: .6rem 1.5rem; color: var(--global-palette9);
  /* cancel the legacy gradient-clipped text effect (home.css), which left the text transparent on hover */
  background-image: none; -webkit-background-clip: border-box; background-clip: border-box;
  -webkit-text-fill-color: currentColor;
}
#site-navigation .header-menu-container ul ul li.menu-item > a:hover,
#site-navigation .header-menu-container ul ul li.menu-item > a:focus-visible { background: rgba(255,255,255,.08); color: var(--global-palette4); }
#site-navigation ul.sub-menu.cs-mega { display: block; column-count: 2; column-gap: 0; width: 600px; }
#site-navigation ul.sub-menu.cs-mega > li { break-inside: avoid; }
#site-navigation ul.sub-menu.cs-mega > li.cs-menu-group--col { break-before: column; }
#site-navigation .cs-menu-title, #site-navigation .cs-menu-desc { display: block; }
#site-navigation .cs-menu-desc { font-weight: 400; font-size: 13.5px; color: rgba(255,255,255,.78); margin-top: .15rem; }
#site-navigation li.cs-menu-group > span {
  display: block; padding: .9rem 1.5rem .35rem; font-size: 12px; font-weight: 600; letter-spacing: .12em;
  text-transform: uppercase; color: var(--global-palette4);
}
#site-navigation li.cs-menu-group:first-child > span { padding-top: .35rem; }
/* phone and tablet drawer: keep it compact (titles only, group labels as small headings) */
#mobile-site-navigation .cs-menu-desc, .mobile-navigation .cs-menu-desc { display: none; }
.mobile-navigation li.cs-menu-group > span {
  display: block; padding: 1rem 0 .25rem 1rem; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
  color: var(--global-palette4); border-bottom: 0;
}

/* V2. "Our services": even 3 x 2 grid of cards */
.cs-svc-cards > .kt-row-column-wrap { grid-template-columns: minmax(0, 1fr) !important; }
.cs-svc-cards .kadence-column9_16e9d4-fb > .kt-inside-inner-col { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.cs-svc-cards .wp-block-kadence-infobox { margin: 0 !important; height: 100%; }
.cs-svc-cards .kt-blocks-info-box-link-wrap {
  display: flex !important; flex-direction: column-reverse; justify-content: flex-end; height: 100%;
  border: 1px solid var(--global-palette7) !important; border-left: 4px solid var(--global-palette2) !important;
  padding: 1.75rem 1.5rem 1.25rem !important; background: var(--global-palette9); transition: box-shadow .2s ease, border-color .2s ease;
}
.cs-svc-cards .kt-blocks-info-box-link-wrap:hover { box-shadow: 0 8px 24px rgba(69,64,56,.12); border-left-color: var(--global-palette1) !important; }
.cs-svc-cards .kt-blocks-info-box-media-container { margin: auto 0 0 !important; align-self: flex-start; padding-top: 1rem; }
.cs-svc-cards .kt-blocks-info-box-media { margin: 0 !important; padding: 0 !important; }
.cs-svc-cards .kt-blocks-info-box-title { font-size: 1.2rem !important; margin: 0 0 .5rem !important; }
.cs-svc-cards .kt-blocks-info-box-text { font-size: 16px !important; line-height: 1.6 !important; margin: 0 !important; }
.cs-svc-cards .kb-buttons-wrap { grid-column: 1 / -1; margin-top: .75rem; }
@media (max-width: 1024px) { .cs-svc-cards .kadence-column9_16e9d4-fb > .kt-inside-inner-col { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px)  { .cs-svc-cards .kadence-column9_16e9d4-fb > .kt-inside-inner-col { grid-template-columns: minmax(0, 1fr); gap: 1rem; } }

/* V3. "How it works": cards, larger text, highlighted "What you receive", 3 + 2 on desktop */
.cs-steps.cs-steps--5 { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1.5rem; }
.cs-steps.cs-steps--5 > li { grid-column: span 2; border-top: 0; padding: 1.5rem 1.5rem 1.25rem; background: var(--global-palette8); border-left: 4px solid var(--global-palette2); }
.cs-steps.cs-steps--5 > li:nth-child(4), .cs-steps.cs-steps--5 > li:nth-child(5) { grid-column: span 3; }
.cs-steps.cs-steps--5 > li:before { font-size: 2rem; margin-bottom: .5rem; color: var(--global-palette1); }
.cs-steps.cs-steps--5 h3 { font-size: 1.3rem; margin: 0 0 .5rem; }
.cs-steps.cs-steps--5 p { font-size: 17px; line-height: 1.6; margin: 0; }
.cs-steps.cs-steps--5 .cs-step-gets { margin-top: 1rem; padding: .75rem 1rem; background: var(--global-palette9); border-left: 3px solid var(--global-palette1); font-size: 16px; }
.cs-steps.cs-steps--5 .cs-step-gets strong { font-size: 13px; letter-spacing: .1em; text-transform: uppercase; margin-bottom: .25rem; color: var(--global-palette1); }
.cs-steps.cs-steps--5 .cs-step-cost { padding-top: .75rem; }
.cs-band--dark .cs-steps.cs-steps--5 > li { background: rgba(255,255,255,.06); border-left-color: var(--global-palette4); }
.cs-band--dark .cs-steps.cs-steps--5 > li:before { color: var(--global-palette4); }
.cs-band--dark .cs-steps.cs-steps--5 .cs-step-gets { background: rgba(0,0,0,.18); border-left-color: var(--global-palette4); }
.cs-band--dark .cs-steps.cs-steps--5 .cs-step-gets strong { color: var(--global-palette4); }
@media (max-width: 1024px) {
  .cs-steps.cs-steps--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cs-steps.cs-steps--5 > li, .cs-steps.cs-steps--5 > li:nth-child(4), .cs-steps.cs-steps--5 > li:nth-child(5) { grid-column: auto; }
  .cs-steps.cs-steps--5 > li:nth-child(5) { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
  .cs-steps.cs-steps--5 { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .cs-steps.cs-steps--5 > li:nth-child(5) { grid-column: auto; }
}

/* V4. Fee cards instead of the table */
.cs-ladder-cards.cs-fee-cards { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.cs-fee-cards .cs-cost--lead { display: block !important; font-size: 17px; padding: .75rem 1rem; background: var(--global-palette8); margin: .25rem 0 1rem; }
.cs-fee-cards h3 { font-size: 1.3rem; margin: 0 0 .5rem; }
.cs-fee-cards dt { font-size: 13px !important; letter-spacing: .08em; text-transform: uppercase; color: var(--global-palette1) !important; }
.cs-fee-cards dd { font-size: 16px; color: var(--global-palette6); }
.cs-fee-cards .cs-card__foot { padding-top: 1rem; }
@media (max-width: 1024px) { .cs-ladder-cards.cs-fee-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px)  { .cs-ladder-cards.cs-fee-cards { grid-template-columns: minmax(0, 1fr); } }

/* V5. Shorter home page */
body.home .cs-section { padding: 3.25rem 0; }
body.home .cs-section--tight { padding: 2.25rem 0; }
.cs-approach > summary { display: none; }
.cs-swipe-hint { display: none; }
@media (max-width: 767px) {
  body.home .cs-section { padding: 2.5rem 0; }
  .cs-approach { margin: 0 var(--global-content-edge-padding, 1rem); border: 1px solid var(--global-palette7); border-left: 4px solid var(--global-palette2); }
  .cs-approach > summary {
    display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 56px; padding: .75rem 1rem;
    cursor: pointer; font-weight: 600; font-size: 17px; color: var(--global-palette3); list-style: none;
  }
  .cs-approach > summary::-webkit-details-marker { display: none; }
  .cs-approach > summary::after { content: "+"; font-size: 1.5rem; line-height: 1; color: var(--global-palette1); }
  .cs-approach[open] > summary::after { content: "\2212"; }
  .cs-approach[open] { padding-bottom: 1rem; }
  .cs-approach .kt-row-column-wrap { padding-top: 1rem !important; padding-bottom: 0 !important; }
  .cs-swipe-hint { display: block; margin: -.5rem 0 1rem; font-size: 14px; color: var(--global-palette6); }
  .cs-grid.cs-swipe {
    display: flex !important; gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: .75rem;
    margin-right: calc(-1 * var(--global-content-edge-padding, 1rem)); padding-right: var(--global-content-edge-padding, 1rem);
    -webkit-overflow-scrolling: touch;
  }
  .cs-grid.cs-swipe > li { flex: 0 0 82%; scroll-snap-align: start; }
}

/* V6. Credentials as five equal tiles */
.cs-cred { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; }
.cs-cred > li { display: flex; flex-direction: column; gap: .5rem; padding: 1.25rem; background: var(--global-palette8); border-top: 3px solid var(--global-palette2); }
.cs-cred__icon { color: var(--global-palette1); line-height: 0; }
.cs-cred__title { font-size: 17px; line-height: 1.35; color: var(--global-palette3); font-weight: 600; }
.cs-cred__link { font-size: 14.5px; line-height: 1.45; color: var(--global-palette6) !important; margin-top: auto; }
@media (max-width: 1100px) { .cs-cred { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px)  { .cs-cred { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; } .cs-cred > li { padding: 1rem; } .cs-cred > li:last-child { grid-column: 1 / -1; } }

/* V7. Clearer Contact page: different photo from the home hero, visiting panel, map on request */
.kb-row-layout-wrap.kb-row-layout-id24_1b210b-d0 { background-image: url('/wp-content/uploads/2025/06/new-home-banner-scaled.webp') !important; background-position: center 35% !important; }
.kb-row-layout-wrap.kb-row-layout-id24_1b210b-d0 > .kt-row-column-wrap { min-height: 520px !important; padding-bottom: 4rem !important; }
.cs-visit__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 2.5rem; align-items: stretch; }
.cs-visit__addr { font-size: 18px; margin: 0 0 .75rem; }
.cs-visit__list { margin: 0 0 1.5rem; padding-left: 1.25rem; }
.cs-visit__list li { margin-bottom: .35rem; }
.cs-visit__actions { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; align-items: center; margin: 0; }
.cs-map { min-height: 320px; background: var(--global-palette9); border: 1px solid var(--global-palette7); display: flex; }
.cs-map__placeholder { margin: auto; text-align: center; padding: 2rem; max-width: 26rem; color: var(--global-palette6); }
.cs-map__placeholder .cs-icon { color: var(--global-palette1); margin-bottom: .5rem; }
.cs-map__placeholder p { margin: 0 0 1.25rem; }
.cs-map.is-loaded iframe { width: 100%; min-height: 360px; border: 0; display: block; }
@media (max-width: 767px) {
  .kb-row-layout-wrap.kb-row-layout-id24_1b210b-d0 > .kt-row-column-wrap { min-height: 0 !important; }
  .cs-visit__grid { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .cs-map { min-height: 240px; }
}

/* V8. Tidier phone header: one-line licence line */
@media (max-width: 1199px) {
  .cs-licence-line--mobile { font-size: 11px !important; line-height: 1.3 !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 0 0 4px !important; }
  .cs-licence-line--mobile a { min-height: 24px !important; vertical-align: middle; }
}
@media (max-width: 359px) { .cs-licence-line--mobile { white-space: normal; } }

/* V9. Card and label polish for older readers */
.cs-banner .cs-eyebrow { margin: 0 0 .5rem; }
.cs-persona-quote { font-size: 1.15rem; font-style: italic; }
.cs-section .cs-grid--2 > div > .cs-card { height: auto; }
.cs-tool-icon { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 50%; background: var(--global-palette8); color: var(--global-palette1); }
.cs-section--grey .cs-tool-icon { background: var(--global-palette9); }
.cs-tool-icon + h3 { margin-top: 1rem !important; }
body.page-id-tools .cs-card p, .cs-card:has(.cs-tool-icon) p { font-size: 17px; line-height: 1.6; }
.cs-card:has(.cs-tool-icon) .cs-card__meta { font-size: 15px; }
.cs-glance { background: var(--global-palette8); border-left: 4px solid var(--global-palette2); padding: 1.5rem 1.75rem; }
.cs-glance h2 { font-size: var(--global-kb-font-size-md); margin: 0 0 1rem; }
.cs-glance dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; margin: 0; }
.cs-glance dt { font-size: 13px; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; color: var(--global-palette1); margin-bottom: .25rem; }
.cs-glance dd { margin: 0; font-size: 17px; line-height: 1.5; color: var(--global-palette3); }
@media (max-width: 1024px) { .cs-glance dl { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 500px)  { .cs-glance dl { grid-template-columns: minmax(0, 1fr); } }

/* Review-pass fixes (part 4) */
#site-navigation ul.sub-menu.cs-mega { width: 660px; }
#site-navigation ul.sub-menu.cs-mega li.menu-item > a { width: 330px; }
#site-navigation ul.sub-menu.cs-mega > li.cs-menu-group--col > span { padding-top: .35rem; }
.cs-steps.cs-steps--5 > li:nth-child(n+4) h3 { min-height: 0; }
.cs-fee-cards dd { margin: 0 0 .75rem !important; padding: 0 !important; }
ul.cs-cred { padding: 0 !important; }
body.home #our-services > .kt-row-column-wrap,
body.home .kb-row-layout-id9_c2a55a-cc > .kt-row-column-wrap { padding-top: 3.25rem !important; padding-bottom: 3.25rem !important; }
@media (max-width: 767px) {
  body.home #our-services > .kt-row-column-wrap,
  body.home .kb-row-layout-id9_c2a55a-cc > .kt-row-column-wrap { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; }
}
@media (max-width: 767px) {
  .cs-svc-cards > .kt-row-column-wrap { padding-left: var(--global-content-edge-padding, 1rem) !important; padding-right: var(--global-content-edge-padding, 1rem) !important; }
  .cs-approach { margin: 1rem 0 0; border-color: rgba(255,255,255,.35); border-left-color: var(--global-palette4); }
  .cs-approach > summary { color: inherit; }
  .cs-approach > summary::after { color: var(--global-palette4); }
}
/* Small olive labels: darker olive for 4.5:1 contrast on white and light grey */
.cs-fee-cards dt, .cs-glance dt, .cs-steps.cs-steps--5 .cs-step-gets strong, #site-navigation li.cs-menu-group > span { color: #5c5d40 !important; }
.cs-band--dark .cs-steps.cs-steps--5 .cs-step-gets strong, #site-navigation li.cs-menu-group > span { color: var(--global-palette4) !important; }
.cs-banner__head .cs-eyebrow { margin: 0 0 .5rem; }
.cs-banner__head h1 { margin: 0; }
.mobile-navigation li.cs-menu-group > span { padding-left: 0 !important; }
:root[data-text-size] .cs-cred__title, :root[data-text-size] .cs-cred__link,
:root[data-text-size] .cs-approach > summary, :root[data-text-size] .cs-step-gets strong { font-size: calc(1em * var(--cs-text-scale, 1)) !important; }
:root[data-text-size] .cs-cred__title { font-size: calc(17px * var(--cs-text-scale, 1)) !important; }
:root[data-text-size] .cs-cred__link { font-size: calc(14.5px * var(--cs-text-scale, 1)) !important; }
:root[data-text-size] .cs-cred { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 767px) { :root[data-text-size] .cs-cred { grid-template-columns: minmax(0, 1fr); } }
.cs-cred__title { overflow-wrap: normal; word-break: normal; }
/* Keyboard users: a dropdown opens when its top-level link (or any item in it) has focus */
#site-navigation li.menu-item-has-children:focus-within > ul.sub-menu {
  opacity: 1 !important; visibility: visible !important; clip: auto !important; height: auto !important; overflow: visible !important; transform: none !important;
}
.cs-fee-cards { margin-top: 1.5rem; }
.cs-section--tight:has(.cs-glance) { padding-bottom: 0; }
@media (max-width: 767px) { .cs-approach .anime-reveal, .cs-approach .new-anime-reveal, .cs-approach .home-anime-reveal1 { opacity: 1 !important; transform: none !important; visibility: visible !important; } }
@media (max-width: 767px) {
  .cs-approach .kt-row-column-wrap { padding: .75rem 1rem 0 !important; row-gap: 0 !important; }
  .cs-approach .wp-block-kadence-column > .kt-inside-inner-col { padding-top: 0 !important; padding-bottom: 0 !important; }
  .cs-approach .home-divider-section, .cs-approach .divider-section { display: none; }
}
.cs-svc-cards .kt-blocks-info-box-link-wrap:focus-visible { outline: 3px solid var(--global-palette3) !important; outline-offset: -3px !important; }
@media (min-width: 768px) {
  .cs-approach .kt-row-column-wrap { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; }
  .kb-row-layout-id9_8bb06d-1b > .kt-row-column-wrap { padding-bottom: 1rem !important; }
}
/* Desktop: the three "Greater" blocks sit side by side instead of a tall zig-zag */
@media (min-width: 900px) {
  .cs-approach__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem; padding: 1rem 0 3.5rem; }
  .cs-approach__grid > .kb-row-layout-wrap > .kt-row-column-wrap { grid-template-columns: minmax(0, 1fr) !important; padding: 0 !important; row-gap: 1.5rem !important; }
  .cs-approach__grid .wp-block-kadence-column:has(> .kt-inside-inner-col:empty) { display: none; }
}
[data-cs-map-load][hidden] { display: none !important; }

/* =====================================================================================
   Part 5: review round 4 (REVIEW-ROUND-4.md)
   ===================================================================================== */

/* V1. Compact footer (licence details and general advice warning keep their full text) */
.site-top-footer-inner-wrap { padding-top: 1.75rem !important; padding-bottom: 0 !important; }
.site-top-footer-inner-wrap .kb-img { max-width: 180px; }
.kb-row-layout-idblock-8_1c149d-90 > .kt-row-column-wrap { padding-top: 1rem !important; padding-bottom: .5rem !important; row-gap: 1.25rem !important; }
.site-middle-footer-inner-wrap { padding-top: .5rem !important; padding-bottom: .5rem !important; }
.site-footer .wp-block-kadence-advancedheading.kt-adv-headingbfe110-51,
.site-footer .wp-block-kadence-advancedheading.kt-adv-heading4dfef4-06,
.site-footer .wp-block-kadence-advancedheading.kt-adv-headingb13662-52,
.site-footer .wp-block-kadence-advancedheading.kt-adv-headingfc9d40-3b { font-size: 16px !important; margin-bottom: .4rem !important; }
.kb-row-layout-idblock-9_90ad60-d7 { margin-top: 0 !important; }
.kb-row-layout-idblock-9_90ad60-d7 > .kt-row-column-wrap { padding-top: 1rem !important; padding-bottom: .5rem !important; }
.kb-row-layout-idblock-9_90ad60-d7 .kt-inside-inner-col { padding-top: 0 !important; }
.kb-row-layout-idblock-9_90ad60-d7 .kt-adv-heading2dd89e-7b { margin-bottom: .5rem !important; }
.cs-compliance { padding-top: 1.5rem !important; padding-bottom: .5rem !important; }
.cs-compliance__warning { margin-top: 1rem !important; padding-top: 1rem !important; }
.site-bottom-footer-inner-wrap { padding-top: .5rem !important; padding-bottom: .75rem !important; }
@media (max-width: 767px) {
  .kb-row-layout-idblock-8_1c149d-90 > .kt-row-column-wrap { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; column-gap: 1rem !important; }
  .site-top-footer-inner-wrap { padding-top: 1.25rem !important; }
  .cs-compliance__grid--licence { gap: 1rem !important; }
  .cs-compliance p { margin-bottom: .4rem; }
}

/* V2. Service pages: content and a side card that stays in view */
.cs-svc-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 3rem; align-items: start; }
.cs-svc-main { max-width: none; }
.cs-svc-aside { position: sticky; top: 120px; }
.cs-svc-aside__card { background: var(--global-palette8); border-top: 4px solid var(--global-palette2); padding: 1.5rem; }
.cs-svc-aside__card img { width: 96px; height: 120px; object-fit: cover; object-position: center 20%; display: block; margin-bottom: 1rem; }
.cs-svc-aside__card h2 { margin: 0 0 .25rem; }
.cs-svc-aside__role { font-size: 14px; color: var(--global-palette6); margin: 0 0 .75rem; }
.cs-svc-aside__card .cs-btn { margin: .5rem 0 1rem; }
.cs-svc-aside__links { font-size: 15px; line-height: 1.9; margin: 0; }
.cs-svc-aside__links a { color: var(--global-palette3); }
.cs-svc-layout .cs-svc-inline-book { display: none; }
.cs-link-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .75rem; }
.cs-link-cards li { margin: 0; }
.cs-link-cards a {
  display: flex; align-items: center; justify-content: space-between; gap: .75rem; min-height: 64px; height: 100%; padding: .9rem 1rem;
  border: 1px solid var(--global-palette7); border-left: 4px solid var(--global-palette2); background: var(--global-palette9);
  color: var(--global-palette3); font-weight: 600; text-decoration: none; line-height: 1.35;
}
.cs-link-cards a::after { content: "›"; font-size: 1.4rem; color: var(--global-palette1); line-height: 1; }
.cs-link-cards a:hover { border-left-color: var(--global-palette1); box-shadow: 0 6px 18px rgba(69,64,56,.1); }
@media (max-width: 900px) {
  .cs-svc-layout { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .cs-svc-aside { display: none; }
  .cs-svc-layout .cs-svc-inline-book { display: block; }
}

/* V3. How we help hub grouped like the menu */
.cs-hub-group { margin: 0 0 1.25rem; }
.cs-hub-grid + .cs-hub-group { margin-top: 3rem; }

/* V4. Calculators: Start first, steps compact */
.cs-calc-intro { display: flex; flex-direction: column; }
.cs-calc-intro > .cs-card__meta { order: 1; margin: 0 0 1rem; font-size: 16px; }
.cs-calc-intro > .cs-calc__nav { order: 2; margin: 0 0 2.5rem; }
.cs-calc-intro > h2 { order: 3; font-size: var(--global-kb-font-size-md); margin-bottom: 1rem; }
.cs-calc-intro > .cs-steps { order: 4; gap: 1.25rem; }
.cs-calc-intro .cs-steps li { padding-top: .9rem; }
.cs-calc-intro .cs-steps li:before { font-size: 1.5rem; margin-bottom: .4rem; }
.cs-calc-intro .cs-steps h3 { min-height: 0 !important; margin: 0 0 .35rem; font-size: 1.1rem; }
.cs-calc-intro .cs-steps p { margin: 0; }

/* V5. Glossary: two columns, sticky A to Z, back to top */
.cs-az-nav { position: sticky; top: 0; z-index: 5; background: var(--global-palette9); padding: .5rem 0; margin-bottom: 1rem; border-bottom: 1px solid var(--global-palette7); }
.cs-az-nav .cs-az { margin: 0; }
.cs-glossary [id] { scroll-margin-top: 90px; }
@media (min-width: 900px) {
  .cs-glossary { column-count: 2; column-gap: 3rem; }
  .cs-glossary > div { break-inside: avoid; }
}
.cs-backtop { margin-top: 1.5rem; }

/* V6. Accounting cards */
.cs-acct-icon { display: inline-flex; align-items: center; justify-content: center; width: 60px; height: 60px; border-radius: 50%; background: var(--global-palette8); color: var(--global-palette1); margin-bottom: 1rem; }
.cs-acct-cards .cs-card p { font-size: 16px; line-height: 1.65; }

/* V7. Phone breadcrumbs: one "‹ Parent" link */
@media (max-width: 767px) {
  .cs-crumbs li { display: none !important; }
  .cs-crumbs li:nth-last-child(2) { display: inline-flex !important; align-items: center; }
  .cs-crumbs li:nth-last-child(2)::before { content: "‹" !important; margin-right: .4rem; opacity: 1; font-size: 1.1rem; }
  .cs-crumbs li:only-child { display: inline-flex !important; }
}

/* V8. Home "Our services" on phones: inline "Read more ›" instead of the large arrow */
@media (max-width: 767px) {
  .cs-svc-cards .kt-blocks-info-box-media-container { display: none !important; }
  .cs-svc-cards .kt-infobox-textcontent::after { content: "Read more ›"; display: block; margin-top: .6rem; font-weight: 600; font-size: 15px; color: var(--global-palette3); }
  .cs-svc-cards .kt-blocks-info-box-link-wrap { padding: 1.25rem 1.25rem 1.1rem !important; }
}

/* V9. Smaller feedback tab below 1200px */
@media (max-width: 1199px) {
  .cs-feedback-tab { font-size: 12px !important; padding: .35rem .7rem !important; min-height: 28px !important; opacity: .92; }
}

/* V10. Fee estimator: the estimate beside the form on desktop */
@media (min-width: 1000px) {
  .cs-calc:has(input[name="fe-couple"]) { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 2.5rem; align-items: start; }
  .cs-calc:has(input[name="fe-couple"]) > form { grid-column: 1; }
  .cs-calc:has(input[name="fe-couple"]) > :not(form) { grid-column: 2; grid-row: 1; position: sticky; top: 120px; margin-top: 0 !important; background: var(--global-palette8); border-top: 4px solid var(--global-palette2); padding: 1.5rem; }
  .cs-calc:has(input[name="fe-couple"]):not(:has(> :not(form)))::after {
    content: "Your estimate appears here. Choose what you need help with, then select ‘Show my estimate’.";
    grid-column: 2; grid-row: 1; position: sticky; top: 120px; background: var(--global-palette8); border-top: 4px solid var(--global-palette2);
    padding: 1.5rem; color: var(--global-palette6); font-size: 16px; line-height: 1.6;
  }
}
.cs-svc-aside__card h2.cs-h3 { font-size: 1.35rem !important; line-height: 1.3; }
@media (min-width: 1000px) { .cs-calc:has(input[name="fe-couple"]) { max-width: none; } }
:root[data-text-size] .cs-svc-aside .cs-btn, :root[data-text-size] .cs-link-cards a { font-size: calc(16px * var(--cs-text-scale, 1)) !important; }
:root[data-text-size] .cs-calc:has(input[name="fe-couple"])::after { font-size: calc(16px * var(--cs-text-scale, 1)); }
.cs-prose ul.cs-link-cards { display: grid !important; padding-left: 0 !important; list-style: none !important; }
.cs-prose ul.cs-link-cards > li { padding-left: 0 !important; }
.cs-prose ul.cs-link-cards > li::before { content: none !important; display: none !important; }
.cs-link-cards a { width: 100%; box-sizing: border-box; }
@media (max-width: 767px) { .cs-prose ul.cs-link-cards { grid-template-columns: minmax(0, 1fr); } }

/* =====================================================================================
   Part 6: visual review round 5 (11 November 2026)
   ===================================================================================== */

/* R1. Largest text size also enlarges the menu, buttons, quick-link tiles and card links */
:root[data-text-size] #primary-menu > li > a,
:root[data-text-size] .header-button,
:root[data-text-size] .cs-tasks a,
:root[data-text-size] .cs-chevron-link,
:root[data-text-size] .cs-team-card__link { font-size: calc(15px * var(--cs-text-scale, 1)) !important; }
:root[data-text-size] .cs-btn, :root[data-text-size] a.cs-btn, :root[data-text-size] main .button { font-size: calc(16px * var(--cs-text-scale, 1)) !important; }
:root[data-text-size] #site-navigation .cs-menu-title { font-size: calc(15px * var(--cs-text-scale, 1)); }
:root[data-text-size] #site-navigation .cs-menu-desc { font-size: calc(13.5px * var(--cs-text-scale, 1)); }
:root[data-text-size] #site-navigation ul.sub-menu.cs-mega { width: calc(600px * var(--cs-text-scale, 1)); }
:root[data-text-size] #site-navigation .header-menu-container ul ul li.menu-item > a { width: calc(300px * var(--cs-text-scale, 1)); }
:root[data-text-size] .cs-svc-cards .kt-blocks-info-box-title { font-size: calc(18px * var(--cs-text-scale, 1)) !important; }

/* R2. No half-empty last rows: a last row of two cards shares the full width, a single last card is centred */
@media (min-width: 1025px) {
  .cs-grid--3, .cs-ladder-cards.cs-fee-cards { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; }
  .cs-grid--3 > *, .cs-ladder-cards.cs-fee-cards > * { grid-column: span 2; }
  .cs-grid--3 > :nth-child(3n+1):nth-last-child(2), .cs-grid--3 > :nth-child(3n+2):last-child,
  .cs-fee-cards > :nth-child(3n+1):nth-last-child(2), .cs-fee-cards > :nth-child(3n+2):last-child { grid-column: span 3; }
  .cs-grid--3 > :nth-child(3n+1):last-child, .cs-fee-cards > :nth-child(3n+1):last-child { grid-column: 3 / span 2; }
}
@media (min-width: 768px) and (max-width: 1100px) {
  .cs-cred { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; }
  .cs-cred > * { grid-column: span 2; }
  .cs-cred > :nth-child(3n+1):nth-last-child(2), .cs-cred > :nth-child(3n+2):last-child { grid-column: span 3; }
}

/* R3. Home "Our services": the same "Read more ›" link on every screen size (was a bare arrow on desktop) */
.cs-svc-cards .kt-blocks-info-box-media-container { display: none !important; }
.cs-svc-cards .kt-blocks-info-box-link-wrap { display: flex !important; flex-direction: column !important; justify-content: flex-start !important; align-items: stretch !important; height: 100%; }
.cs-svc-cards .kt-infobox-textcontent { display: flex; flex-direction: column; flex: 1 1 auto; }
.cs-svc-cards .kt-infobox-textcontent::after { content: "Read more ›"; display: block; margin-top: auto; padding-top: .9rem; font-weight: 600; font-size: 15px; color: var(--global-palette3); }
.cs-svc-cards .kt-blocks-info-box-link-wrap:hover .kt-infobox-textcontent::after { text-decoration: underline; }

/* R4. Buttons keep the body text size on phones; the Contact "Send" button is a proper primary button */
@media (max-width: 767px) {
  .cs-btn, a.cs-btn, main .wp-block-button__link, main .kb-button { font-size: 16px !important; min-height: 48px; }
}
.cs-form__submit .cs-btn[type="submit"] { min-width: 160px; font-size: 16px; }

/* R5. About and Private Wealth heroes: the photo sits lower and right, so no face is behind the logo */
@media (min-width: 768px) {
  .kb-row-layout-id20_51651e-62, .kb-row-layout-id22_463707-8f { background-position: 85% 22% !important; }
  .kb-row-layout-id20_51651e-62 > .kt-row-layout-overlay, .kb-row-layout-id22_463707-8f > .kt-row-layout-overlay {
    background: linear-gradient(180deg, rgba(58,54,47,.92) 0, rgba(58,54,47,.55) 170px, rgba(58,54,47,.55) 100%) !important; opacity: 1 !important;
  }
}

/* R6. Our adviser: Andrew as a wide feature, not one small card in an empty page */
.cs-team-grid:has(> li:only-child) { display: block !important; }
.cs-team-grid > li:only-child .cs-team-card { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); max-width: none; align-items: stretch; }
.cs-team-grid > li:only-child .cs-team-photo { height: 100%; }
.cs-team-grid > li:only-child .cs-team-photo img { width: 100%; height: 100%; max-height: 520px; object-fit: cover; object-position: 50% 25%; }
.cs-team-grid > li:only-child .cs-team-card__body { padding: 2.5rem; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.cs-team-grid > li:only-child .cs-team-card__name { font-size: 2rem; }
.cs-team-grid > li:only-child .cs-team-card__quals { font-size: 17px; }
.cs-team-grid > li:only-child .cs-team-card__summary { font-size: 18px; line-height: 1.6; max-width: 34em; }
.cs-team-grid > li:only-child .cs-team-card__link { margin-top: .5rem !important; }
.cs-team-grid > li:only-child .cs-team-card .cs-btn { margin-top: 1.25rem !important; }
@media (max-width: 767px) {
  .cs-team-grid > li:only-child .cs-team-card { grid-template-columns: minmax(0, 1fr); }
  .cs-team-grid > li:only-child .cs-team-photo img { max-height: 380px; }
  .cs-team-grid > li:only-child .cs-team-card__body { padding: 1.5rem; }
  .cs-team-grid > li:only-child .cs-team-card__name { font-size: 1.6rem; }
}
/* About: Andrew's card first, marked as the financial adviser */
.cs-team-first { position: relative; }
.cs-team-first::before { content: "Financial adviser"; position: absolute; z-index: 2; top: 0; left: 0; background: var(--cs-olive-aa, #5f6245); color: #fff; font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; padding: .35rem .7rem; }

/* =====================================================================================
   Part 7: improvements round 6 (11 November 2026)
   ===================================================================================== */

/* P1. Glossary terms linked in the text: a quiet dotted underline, the definition on hover */
main a.cs-gloss { color: inherit !important; text-decoration: underline dotted; text-decoration-thickness: 1px; text-underline-offset: .2em; cursor: help; }
main a.cs-gloss:hover, main a.cs-gloss:focus-visible { text-decoration-style: solid; }

/* P2. Phone swipe rows: a clearer peek of the next card, plus dots and a counter */
.cs-swipe-nav { display: none; }
@media (max-width: 767px) {
  .cs-grid.cs-swipe > li { flex-basis: 78%; }
  .cs-swipe-nav { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: .75rem; }
  .cs-swipe-dots { display: flex; gap: .15rem; }
  .cs-swipe-dot { width: 24px; height: 24px; padding: 0; border: 0; background: none; cursor: pointer; position: relative; }
  .cs-swipe-dot::before { content: ""; position: absolute; inset: 8px; border-radius: 50%; background: var(--global-palette7, #ccc); transition: background .2s, transform .2s; }
  .cs-swipe-dot.is-active::before { background: var(--global-palette1); transform: scale(1.25); }
  .cs-swipe-count { margin: 0 !important; font-size: 14px; color: var(--global-palette6); }
}
