/* P114 premium polish — 15 Oct 2026 */

/* 1. No floating "Book a journey" bar over checkout and account cards. */
body.p114-no-fab .scc-mobile-book,
body.p114-no-fab .hut-mobile-book { display: none !important; }

/* 2. Checkout social sign-in: reserved slot + calm, full-width provider button. */
.scc-checkout-auth > .p114-social-slot { display: block; width: 100%; }
.scc-checkout-auth > .p114-social-slot:empty { min-height: var(--p114-social-slot, 132px); }
.scc-checkout-auth .scc-social-entry {
  box-sizing: border-box; margin: 0 0 16px; padding: 14px; min-height: 132px;
  border: 1px solid #dfe6e2; border-radius: 14px; background: #f7faf8; text-align: center;
}
body .scc-checkout-auth .scc-social-entry button {
  box-sizing: border-box; display: flex; align-items: center; justify-content: center; gap: 10px;
  width: 100%; min-height: 48px; margin: 0 0 8px; padding: 10px 16px;
  border: 1px solid #cfd8d3; border-radius: 12px; background: #fff; color: #14191e;
  font: inherit; font-weight: 700; font-size: 1rem; line-height: 1.2;
  box-shadow: none; transform: none; text-shadow: none; cursor: pointer;
}
body .scc-checkout-auth .scc-social-entry button:hover { background: #f1f5f3; filter: none; }
body .scc-checkout-auth .scc-social-entry button:focus-visible { outline: 3px solid #c99a39; outline-offset: 2px; }
.scc-checkout-auth .scc-social-entry p { margin: 2px 0 0; font-size: .875rem; line-height: 1.45; color: #4a5a54; }
.scc-checkout-auth .scc-social-entry [role=status]:empty { display: none; }

/* 3. SCC cookie sheet: compact bottom sheet on phones with the choice buttons always in reach. */
@media (max-width: 600px) {
  .scc-brand-scc .consent-centre__panel {
    max-height: min(76dvh, 640px); padding: 20px 18px 0; overscroll-behavior: contain;
  }
  .scc-brand-scc .consent-centre__panel h2 { font-size: 1.25rem; line-height: 1.25; margin: 2px 0 8px; }
  .scc-brand-scc #consent-copy { font-size: .9375rem; line-height: 1.5; margin: 0 0 12px; }
  .scc-brand-scc .consent-centre__summary { margin-bottom: 10px; }
  .scc-brand-scc .consent-centre__policy { margin: 8px 0; }
  .scc-brand-scc .scc-consent-agency { font-size: .8125rem; line-height: 1.45; padding: 10px 12px; margin: 10px 0 0; }
  .scc-brand-scc .consent-centre__actions {
    position: sticky; bottom: 0; z-index: 1; margin: 12px -18px 0; padding: 12px 18px calc(12px + env(safe-area-inset-bottom));
    display: grid; grid-template-columns: 1fr 1fr; gap: 10px; background: #fff; border-top: 1px solid #e3e9e6;
  }
  .scc-brand-scc .consent-centre__actions .consent-button { min-height: 48px; margin: 0; width: 100%; }
}

/* 4. Slot heights measured live (15 Oct): SCC/HUT Google panel 142–144px, satellites 132px. */
.scc-brand-scc .scc-checkout-auth > .p114-social-slot:empty,
.scc-brand-hut .scc-checkout-auth > .p114-social-slot:empty { min-height: 144px; }

/* 5. PT/MC/JC journey search: the address fields grow once the place search, status line and map
      button load (102px -> 175/188px), pushing the date row out of view. Reserve the final height. */
@media (max-width: 767px) {
  .brand-PT form.journey-search > .search-field[data-scc-google-address-field],
  .brand-JC form.journey-search > .search-field[data-scc-google-address-field] { min-height: 188px; }
  .brand-MC form.journey-search > .search-field[data-scc-google-address-field] { min-height: 175px; }
}

/* 6. SCC redesign v2 sets the cookie centre to a full-screen panel; on phones use a bottom sheet over the page. */
@media (max-width: 600px) {
  body.p114-redesign-v2--scc .consent-centre { align-items: end; border-top: 0; }
  body.p114-redesign-v2--scc .consent-centre__panel {
    height: auto; max-height: min(78dvh, 660px); padding: 22px 18px 0; overflow-y: auto; overscroll-behavior: contain;
    border-top: 5px solid var(--p114-scc-lime, #8fd14f); border-radius: 20px 20px 0 0; box-shadow: 0 -14px 40px rgba(6, 30, 24, .28);
  }
}

/* 7. The checkout auth card styles every .scc-account-button as a filled brand button with brand-coloured
      text (!important); the provider button must read as a neutral, outlined "Continue with Google". */
body .scc-checkout-auth .scc-social-entry button.scc-account-button {
  color: #14191e !important; -webkit-text-fill-color: #14191e; background: #fff !important;
  border: 1px solid #cfd8d3 !important; box-shadow: none !important;
}
body .scc-checkout-auth .scc-social-entry button.scc-account-button:hover { background: #f1f5f3 !important; }

/* 8. 15 Oct 2026: the floating mobile "Book a journey" bar is retired on SCC/HUT for a cleaner phone experience
      (footer markup removed; this rule covers cached pages). */
.scc-mobile-book, .hut-mobile-book { display: none !important; }

/* 9. Contact page: price-first callout above the enquiry wizard, and the inline nudge for pre-booking questions. */
.contact-price-first {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px;
  margin: 0 0 20px; padding: 18px 20px; border-radius: 14px;
  border: 1px solid rgba(0,0,0,.1); border-inline-start: 5px solid var(--brand, #006b4d); background: rgba(0,0,0,.035);
}
.contact-price-first > div { flex: 1 1 280px; min-width: 0; }
.contact-price-first b { display: block; margin: 0 0 4px; font-size: 1.05rem; line-height: 1.25; }
.contact-price-first p { margin: 0; font-size: .9375rem; line-height: 1.45; opacity: .9; }
.contact-price-first .content-button { flex: 0 0 auto; min-height: 48px; white-space: nowrap; }
@media (max-width: 600px) { .contact-price-first .content-button { width: 100%; justify-content: center; } }
.contact-price-nudge {
  margin: 12px 0 0; padding: 12px 14px; border-radius: 10px; font-size: .9375rem; line-height: 1.45;
  background: rgba(0,0,0,.045); border: 1px solid rgba(0,0,0,.08);
}
.contact-price-nudge a { font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }

/* 10. 15 Oct 2026 — SCC home facts strip. The redesign removed the strip's dark panel but the older rule kept
       the labels near-white, so they disappeared on the cream hero (1.08:1). Centred, icon-led, readable at all widths. */
body .home-featured-hero__facts.p114-facts,
body.p114-redesign-v2--scc .scc-home-v2 .home-featured-hero__facts.p114-facts {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(8px, 2vw, 16px);
  width: 100%; max-width: 860px; margin: clamp(20px, 3vw, 32px) auto 0; padding: 0;
  border: 0; border-radius: 0; background: none; box-shadow: none; backdrop-filter: none; color: #2f4a40;
}
body .home-featured-hero__facts.p114-facts > span,
body.p114-redesign-v2--scc .scc-home-v2 .home-featured-hero__facts.p114-facts > span {
  display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 6px;
  min-width: 0; min-height: 0; padding: clamp(12px, 2.4vw, 18px) clamp(6px, 1.6vw, 14px);
  border: 1px solid #d6e2dc; border-radius: 14px; background: #fff; color: #2f4a40; text-align: center;
  box-shadow: 0 6px 18px rgba(8, 40, 29, .06);
}
body .home-featured-hero__facts.p114-facts svg {
  width: clamp(34px, 6vw, 42px); height: clamp(34px, 6vw, 42px); padding: clamp(7px, 1.4vw, 9px);
  border-radius: 50%; background: #e6f1ec; color: #006b4d; flex: 0 0 auto;
}
body .home-featured-hero__facts.p114-facts b,
body.p114-redesign-v2--scc .scc-home-v2 .home-featured-hero__facts.p114-facts b {
  margin: 0; color: #07563f; font-size: clamp(1.25rem, 3.4vw, 1.6rem); font-weight: 800; line-height: 1.1;
}
body .home-featured-hero__facts.p114-facts small {
  display: block; color: #2f4a40; font-size: clamp(.8125rem, 1.8vw, .9375rem); font-weight: 600; line-height: 1.3;
  overflow-wrap: anywhere;
}
@media (max-width: 360px) {
  body .home-featured-hero__facts.p114-facts,
  body.p114-redesign-v2--scc .scc-home-v2 .home-featured-hero__facts.p114-facts { grid-template-columns: 1fr; max-width: 320px; }
  body .home-featured-hero__facts.p114-facts > span,
  body.p114-redesign-v2--scc .scc-home-v2 .home-featured-hero__facts.p114-facts > span { flex-direction: row; justify-content: center; text-align: start; gap: 10px; }
}

/* 11. Live route board (all five brands): the brand accent was used unchanged as text on cream, behind white button
       text, and as small text on the dark route cards; no single shade passes all three. Each brand keeps its hue:
       a darker shade on light surfaces/buttons, a lighter one on the dark cards (all >= 5.2:1, WCAG AA). */
.p114-home-routes[data-brand="scc"], .p114-landing-routes[data-brand="scc"], .p114-route-hub[data-brand="scc"] { --p114-ac-light: #835e1c; --p114-ac-dark: #b38a40; }
.p114-home-routes[data-brand="hut"], .p114-landing-routes[data-brand="hut"], .p114-route-hub[data-brand="hut"] { --p114-ac-light: #7f5f22; --p114-ac-dark: #c1984a; }
.p114-home-routes[data-brand="pt"],  .p114-landing-routes[data-brand="pt"],  .p114-route-hub[data-brand="pt"]  { --p114-ac-light: #c6171d; --p114-ac-dark: #e56a6e; }
.p114-home-routes[data-brand="mc"],  .p114-landing-routes[data-brand="mc"],  .p114-route-hub[data-brand="mc"]  { --p114-ac-light: #12633b; --p114-ac-dark: #6ea087; }
.p114-home-routes[data-brand="jc"],  .p114-landing-routes[data-brand="jc"],  .p114-route-hub[data-brand="jc"]  { --p114-ac-light: #0055cc; --p114-ac-dark: #5c92de; }
/* text on cream / white (body prefix: the plugin stylesheet loads after this file) */
body .p114-home-routes .p114-home-routes__head p,
body .p114-landing-routes header p, body .p114-landing-routes .p114-landing-routes__all span,
body .p114-route-hub .p114-live-chip, body .p114-route-hub .p114-route-guides__eyebrow, body .p114-route-hub .p114-route-eyebrow,
body .p114-route-hub .p114-route-assumption strong { color: var(--p114-ac-light, currentColor); }
/* white text on accent buttons */
body .p114-home-routes .p114-home-routes__cta, body .p114-landing-routes .p114-landing-routes__quick,
body .p114-route-hub .p114-route-quick, body .p114-route-hub .p114-route-submit, body .p114-route-hub .p114-route-quote button,
body .p114-route-hub .p114-route-filters button.is-active { background: var(--p114-ac-light, #14201e); border-color: var(--p114-ac-light, #14201e); color: #fff; }
/* accent text on the dark route cards */
body .p114-landing-routes article > small, body .p114-landing-routes h3 i,
body .p114-route-hub .p114-route-number { color: var(--p114-ac-dark, currentColor); }

/* 12. HUT service pages: "Checked sources" eyebrow on the sand panel (4.37:1 -> 6:1). */
.scc-brand-hut .content-sources .content-eyebrow { color: #6f5300; }

/* 13. Contact wizard: upcoming step numbers were light grey on white (3.65:1). */
.contact-progress__item:not(.is-active):not(.is-complete) span { color: #5f6b66; }

/* 14. Affiliate programme page (all brands): the section eyebrow colour is tuned for the hero but reused on the
       light panels below (gold, pale pink or cyan on cream, 1.3-2.2:1). Light panels get the brand's darker shade;
       MC hero eyebrow/button and JC light hero/steps corrected. All >= 5.2:1. */
body.scc-brand-scc .scc-affiliates__eyebrow:not(.scc-affiliates__hero .scc-affiliates__eyebrow) { color: #835e1c; }
body.scc-brand-hut .scc-affiliates__eyebrow:not(.scc-affiliates__hero .scc-affiliates__eyebrow) { color: #7f5f22; }
.scc-affiliates--brand-pt .scc-affiliates__eyebrow:not(.scc-affiliates__hero .scc-affiliates__eyebrow) { color: #c6171d; }
.scc-affiliates--brand-mc .scc-affiliates__eyebrow:not(.scc-affiliates__hero .scc-affiliates__eyebrow) { color: #12633b; }
.scc-affiliates--brand-jc .scc-affiliates__eyebrow { color: #0055cc; }
main.scc-affiliates--brand-mc .scc-affiliates__hero .scc-affiliates__eyebrow { color: #dfc88f; }
main.scc-affiliates--brand-mc .scc-affiliates__hero .scc-affiliates__primary { --aff-dark: #062a1d; }
main.scc-affiliates--brand-jc .scc-affiliates__section-head p,
main.scc-affiliates--brand-jc .scc-affiliates__steps article > b { color: #0055cc; }
