/*
Theme Name: SLM Driving School v5.53
Theme URI: https://slmdrivingschool.ca/
Author: SLM Driving School
Description: A fast, accessible WordPress and WooCommerce theme created for SLM Driving School.
Version: 5.61
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: slm-driving-school
*/

:root {
  --cd-red: #1688a8;
  --cd-red-dark: #0e6179;
  --cd-ink: #191919;
  --cd-muted: #666a70;
  --cd-line: #e6e9ef;
  --cd-soft: #f6f8fb;
  --cd-white: #fff;
  --cd-radius: 20px;
  --cd-shadow: 0 16px 50px rgba(22, 32, 51, .10);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--cd-ink);
  background: var(--cd-white);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 17px;
  line-height: 1.65;
}
a { color: var(--cd-red); text-decoration-thickness: 1px; text-underline-offset: 3px; }
h1, h2, h3, h4, h5, h6 { color: var(--cd-ink); }
#main-content h1, #main-content h2, #main-content h3,
#main-content h4, #main-content h5, #main-content h6 { color: #191919 !important; }
#main-content .cd-page-title h1, #main-content .cd-cta h2 { color: #fff !important; }
#main-content .cd-page-title .page-title { color: #fff !important; }
#main-content .cd-section-head h2,
#main-content .cd-program-grid h3 { color: #191919 !important; }
#main-content .cd-hero h1 span { color: var(--cd-red) !important; }
#main-content p { color: #666a70; }
#main-content .cd-quote-card p { color: #fff; }
#main-content .cd-cta p { color: rgba(255,255,255,.85); }
img { max-width: 100%; height: auto; }
.cd-wrap { width: min(1160px, calc(100% - 40px)); margin-inline: auto; }
.cd-narrow { width: min(820px, calc(100% - 40px)); margin-inline: auto; }

.cd-topbar { background: var(--cd-red); color: #fff; font-size: 14px; }
.cd-topbar .cd-wrap { min-height: 42px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.cd-topbar a { color: #fff; text-decoration: none; }
.cd-topbar-links { display: flex; flex-wrap: wrap; gap: 20px; }

.cd-header { position: sticky; z-index: 100; top: 0; background: rgba(255,255,255,.96); border-bottom: 1px solid var(--cd-line); backdrop-filter: blur(12px); }
.admin-bar .cd-header { top: 32px; }
.cd-header-inner { min-height: 158px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.cd-brand { display: flex; align-items: center; gap: 16px; color: #191919 !important; text-decoration: none; font-weight: 900; letter-spacing: -.025em; }
.cd-brand .custom-logo { width: auto; height: 145px; max-width: 220px; max-height: 145px; object-fit: contain; }
.cd-brand-fallback { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--cd-red); font-size: 13px; line-height: 1; text-align: center; }
.cd-brand-name { color: #202124; font-size: 34px; line-height: 1; text-transform: uppercase; }
.cd-nav { display: flex; align-items: center; gap: 28px; }
.cd-nav ul { display: flex; align-items: center; gap: 25px; margin: 0; padding: 0; list-style: none; }
.cd-nav a { color: var(--cd-ink); font-size: 15px; font-weight: 700; text-decoration: none; }
.cd-nav a:hover, .cd-nav .current-menu-item > a { color: var(--cd-red); }
.cd-nav-toggle { display: none; border: 0; border-radius: 10px; padding: 10px 12px; color: #fff; background: var(--cd-red); font-size: 22px; line-height: 1; cursor: pointer; }
.cd-header .cd-nav-toggle { color: #fff !important; background: var(--cd-red) !important; }

.cd-button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button {
  display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 12px 22px;
  border: 2px solid var(--cd-red) !important; border-radius: 999px !important; color: #fff !important;
  background: var(--cd-red) !important; font-weight: 800 !important; line-height: 1.2; text-decoration: none;
  transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.cd-button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover { transform: translateY(-2px); background: var(--cd-red-dark) !important; box-shadow: 0 10px 24px rgba(22,136,168,.22); }
.cd-button-outline { color: var(--cd-red) !important; background: transparent !important; }
.cd-button-outline:hover { color: #fff !important; background: var(--cd-red) !important; }

.cd-hero { position: relative; overflow: hidden; padding: 84px 0 70px; background: linear-gradient(120deg, #fff 0%, #fff 55%, #eef9fc 100%); }
.cd-hero::after { content: ""; position: absolute; width: 430px; height: 430px; right: -160px; top: -160px; border: 78px solid rgba(22,136,168,.07); border-radius: 50%; }
.cd-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.15fr .85fr; gap: 64px; align-items: center; }
.cd-kicker { margin: 0 0 14px; color: var(--cd-red); font-size: 14px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.cd-hero h1 { max-width: 760px; margin: 0 0 22px; font-size: clamp(43px, 6vw, 76px); line-height: 1.02; letter-spacing: -.055em; }
.cd-hero h1 span { color: var(--cd-red); }
.cd-hero-copy { max-width: 680px; color: var(--cd-muted); font-size: 19px; }
.cd-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.cd-trust { display: flex; flex-wrap: wrap; gap: 18px; margin: 30px 0 0; padding: 0; list-style: none; color: var(--cd-muted); font-size: 14px; font-weight: 700; }
.cd-trust li::before { content: "✓"; margin-right: 7px; color: var(--cd-red); font-weight: 950; }
.cd-hero-card { position: relative; padding: 32px; border: 1px solid #c7e8f0; border-radius: 30px; background: #fff; box-shadow: var(--cd-shadow); }
.cd-hero-photo-wrap { overflow: hidden; margin: -22px -22px 26px; border-radius: 22px; aspect-ratio: 16 / 10; background: var(--cd-soft); }
.cd-hero-photo { width: 100%; height: 100%; object-fit: cover; display: block; }
.cd-road-sign { width: 96px; height: 96px; display: grid; place-items: center; margin-bottom: 20px; border: 8px solid var(--cd-red); border-radius: 50%; background: #fff; color: var(--cd-red); font-size: 27px; font-weight: 950; line-height: .92; text-align: center; transform: rotate(-3deg); }
.cd-hero-card h2 { margin: 0 0 10px; font-size: 30px; line-height: 1.15; }
.cd-hero-card p { margin: 0; color: var(--cd-muted); }
.cd-stat-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-top: 24px; }
.cd-stat { padding: 17px; border-radius: 15px; background: var(--cd-soft); }
.cd-stat strong { display: block; color: var(--cd-red); font-size: 20px; }
.cd-stat span { color: var(--cd-muted); font-size: 13px; }

.cd-section { padding: 82px 0; }
.cd-section-soft { background: var(--cd-soft); }
.cd-section-head { max-width: 720px; margin-bottom: 35px; }
.cd-section-head.center { margin-inline: auto; text-align: center; }
.cd-section h2 { margin: 0 0 13px; font-size: clamp(32px, 4vw, 48px); line-height: 1.12; letter-spacing: -.035em; }
.cd-section-head p { margin: 0; color: var(--cd-muted); }
.cd-feature-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.cd-feature { padding: 28px 25px; border: 1px solid var(--cd-line); border-radius: var(--cd-radius); background: #fff; }
.cd-icon { width: 48px; height: 48px; display: grid; place-items: center; margin-bottom: 17px; border-radius: 14px; color: #fff; background: var(--cd-red); font-size: 22px; }
.cd-feature h3 { margin: 0 0 8px; font-size: 19px; line-height: 1.3; }
.cd-feature p { margin: 0; color: var(--cd-muted); font-size: 15px; }
.cd-photo-grid { display: grid; grid-template-columns: 1.25fr 1fr 1fr; gap: 18px; margin-top: 26px; }
.cd-photo-card { position: relative; overflow: hidden; min-height: 330px; margin: 0; border-radius: var(--cd-radius); background: #191919; box-shadow: var(--cd-shadow); }
.cd-photo-card img { width: 100%; height: 100%; min-height: 330px; display: block; object-fit: cover; transition: transform .35s ease; }
.cd-photo-card:hover img { transform: scale(1.025); }
.cd-photo-card::after { content: ""; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, rgba(0,0,0,.82)); }
.cd-photo-card figcaption { position: absolute; z-index: 1; left: 22px; right: 22px; bottom: 20px; color: #fff; }
.cd-photo-card figcaption strong, .cd-photo-card figcaption span { display: block; }
.cd-photo-card figcaption strong { font-size: 19px; }
.cd-photo-card figcaption span { color: rgba(255,255,255,.82); font-size: 14px; }

.cd-course-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.cd-course { position: relative; display: flex; flex-direction: column; overflow: hidden; padding: 28px; border: 1px solid var(--cd-line); border-radius: var(--cd-radius); background: #fff; box-shadow: 0 8px 30px rgba(22,32,51,.06); }
.cd-course-featured { border-color: var(--cd-red); }
.cd-badge { align-self: flex-start; margin-bottom: 17px; padding: 5px 10px; border-radius: 999px; color: var(--cd-red); background: #eef9fc; font-size: 12px; font-weight: 900; text-transform: uppercase; }
.cd-course h3 { margin: 0 0 8px; font-size: 23px; line-height: 1.2; }
.cd-price { margin: 5px 0 14px; color: var(--cd-red); font-size: 29px; font-weight: 900; }
.cd-course p { flex: 1; color: var(--cd-muted); font-size: 15px; }
.cd-course .cd-button { align-self: flex-start; margin-top: 10px; }

.cd-split { display: grid; grid-template-columns: 1fr 1fr; gap: 58px; align-items: center; }
.cd-checks { display: grid; gap: 12px; margin: 24px 0 0; padding: 0; list-style: none; }
.cd-checks li { position: relative; padding-left: 32px; }
.cd-checks li::before { content: "✓"; position: absolute; left: 0; top: 0; width: 23px; height: 23px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--cd-red); font-size: 13px; font-weight: 900; }
.cd-quote-card { padding: 36px; border-radius: 28px; color: #fff; background: var(--cd-ink); box-shadow: var(--cd-shadow); }
.cd-quote-card strong { display: block; margin-bottom: 12px; color: #81d4e8; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; }
.cd-quote-card blockquote { margin: 0; font-size: 25px; font-weight: 750; line-height: 1.4; }

.cd-cta { padding: 62px 0; color: #fff; background: var(--cd-red); }
.cd-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.cd-cta h2 { margin: 0 0 8px; color: #fff; font-size: clamp(30px, 4vw, 46px); }
.cd-cta p { margin: 0; color: rgba(255,255,255,.85); }
.cd-cta .cd-button { color: var(--cd-red) !important; border-color: #fff !important; background: #fff !important; white-space: nowrap; }

.cd-content { padding: 66px 0 90px; }
.cd-page-title { padding: 58px 0; color: #fff; background: linear-gradient(120deg, var(--cd-ink), #2c3547); }
.cd-page-title h1 { margin: 0; color: #fff; font-size: clamp(35px, 5vw, 55px); letter-spacing: -.04em; }
.cd-page-kicker { margin: 0 0 8px; color: #8dd6e6; font-size: 13px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.cd-entry-content h2, .cd-entry-content h3 { line-height: 1.2; }
.cd-entry-content { overflow-wrap: anywhere; }
.cd-entry-content > *:first-child { margin-top: 0; }
.cd-inner-split { display: grid; grid-template-columns: 1fr .9fr; gap: 58px; align-items: center; }
.cd-inner-split h2, .cd-narrow h2 { margin: 0 0 18px; color: var(--cd-ink); font-size: clamp(32px, 4vw, 48px); line-height: 1.12; letter-spacing: -.035em; }
.cd-page-photo { overflow: hidden; min-height: 420px; margin: 0; border-radius: 28px; background: var(--cd-soft); box-shadow: var(--cd-shadow); }
.cd-page-photo img { width: 100%; height: 100%; min-height: 420px; display: block; object-fit: cover; }
.cd-program-grid, .cd-link-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.cd-program-grid article, .cd-link-grid a { padding: 26px; border: 1px solid var(--cd-line); border-radius: var(--cd-radius); background: #fff; box-shadow: 0 8px 26px rgba(22,32,51,.05); }
.cd-program-grid h3 { margin: 0 0 8px; color: var(--cd-ink); }
.cd-program-grid p { margin: 0; color: var(--cd-muted); }
.cd-product-block { margin-top: 46px; }
.cd-link-grid a { color: var(--cd-ink); text-decoration: none; transition: transform .2s ease, border-color .2s ease; }
.cd-link-grid a:hover { border-color: var(--cd-red); transform: translateY(-2px); }
.cd-link-grid strong, .cd-link-grid span { display: block; }
.cd-link-grid strong { margin-bottom: 6px; color: var(--cd-red); font-size: 19px; }
.cd-link-grid span { color: var(--cd-muted); font-size: 15px; }
.cd-resource-heading { margin: 42px 0 18px; color: var(--cd-ink); font-size: 26px; }
.cd-terms h2 { margin-top: 34px; color: var(--cd-ink); font-size: 25px; }
.cd-terms h2:first-child { margin-top: 0; }
.cd-contact-list { display: grid; gap: 12px; margin-top: 28px; }
.cd-contact-list a { display: flex; justify-content: space-between; gap: 18px; padding: 18px 20px; border: 1px solid var(--cd-line); border-radius: 14px; color: var(--cd-ink); text-decoration: none; }
.cd-contact-list a:hover { border-color: var(--cd-red); }
.cd-contact-list span { color: var(--cd-red); font-weight: 800; }
.cd-form-wrap { max-width: 820px; margin: 52px auto 0; padding: 32px; border: 1px solid var(--cd-line); border-radius: 24px; background: #fff; box-shadow: var(--cd-shadow); }
.cd-form-wrap h2 { margin-top: 0; color: var(--cd-ink); }
.cd-form-wrap .wpforms-field-label { color: var(--cd-ink) !important; }
.cd-form-wrap input:not([type="submit"]), .cd-form-wrap select, .cd-form-wrap textarea { border: 1px solid #cfd3da !important; border-radius: 10px !important; }
.cd-form-wrap input:focus, .cd-form-wrap select:focus, .cd-form-wrap textarea:focus { border-color: var(--cd-red) !important; box-shadow: 0 0 0 3px rgba(199,31,55,.12) !important; }
.cd-form-wrap .wpforms-submit { color: #fff !important; border: 2px solid var(--cd-red) !important; border-radius: 999px !important; background: var(--cd-red) !important; font-weight: 800 !important; }
.cd-native-form { display: grid; gap: 20px; }
.cd-native-form label { display: grid; gap: 8px; color: var(--cd-ink); font-weight: 750; }
.cd-native-form label > span { display: inline; color: var(--cd-red); }
.cd-native-form input, .cd-native-form select, .cd-native-form textarea { width: 100%; min-height: 48px; padding: 11px 13px; color: var(--cd-ink); background: #fff; font: inherit; }
.cd-native-form textarea { min-height: 110px; resize: vertical; }
.cd-native-form .cd-consent { display: flex; grid-template-columns: none; align-items: flex-start; gap: 10px; font-weight: 600; }
.cd-native-form .cd-consent input { width: 20px; min-height: 20px; margin-top: 2px; }
.cd-native-form .cd-button { justify-self: start; cursor: pointer; }
.cd-form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.cd-schedule-status { margin: 28px 0; padding: 24px; border-radius: 16px; background: var(--cd-soft); color: var(--cd-ink); font-size: 1.15rem; font-weight: 800; text-align: center; text-transform: uppercase; }
@media (max-width: 640px) { .cd-form-row { grid-template-columns: 1fr; } }
.cd-commerce-wrap { overflow-x: auto; }
.cd-licence-grid { display: grid; grid-template-columns: 1fr; gap: 30px; }
.cd-licence-grid figure { margin: 0; overflow: hidden; border: 1px solid var(--cd-line); border-radius: var(--cd-radius); background: #fff; box-shadow: var(--cd-shadow); }
.cd-licence-grid img { display: block; width: 100%; height: auto; }

.woocommerce ul.products li.product { overflow: hidden; padding: 20px !important; border: 1px solid var(--cd-line); border-radius: var(--cd-radius); background: #fff; }
.woocommerce span.onsale { background: var(--cd-red); }
.woocommerce div.product p.price, .woocommerce div.product span.price, .woocommerce ul.products li.product .price { color: var(--cd-red); font-weight: 900; }
.woocommerce ul.products li.product a,
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce div.product .product_title,
.woocommerce div.product .woocommerce-tabs h2,
.woocommerce div.product .related h2 { color: var(--cd-ink) !important; }
.woocommerce ul.products li.product a:hover .woocommerce-loop-product__title { color: var(--cd-red) !important; }
.woocommerce nav.woocommerce-pagination a,
.woocommerce .woocommerce-breadcrumb a,
.woocommerce table.shop_table a { color: var(--cd-red) !important; }
.woocommerce #main-content a:not(.button),
.woocommerce-page #main-content a:not(.button),
.wc-block-components-product-name,
.wc-block-cart-item__product a,
.wc-block-components-totals-coupon-link,
.woocommerce-info a,
.woocommerce-message a,
.woocommerce-error a { color: var(--cd-red) !important; }
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product a.woocommerce-loop-product__link,
.woocommerce div.product .product_title,
.wc-block-grid__product-title { color: var(--cd-ink) !important; }
.woocommerce input:focus,
.woocommerce select:focus,
.woocommerce textarea:focus,
.wc-block-components-text-input input:focus { border-color: var(--cd-red) !important; box-shadow: 0 0 0 2px rgba(199,31,55,.14) !important; outline-color: var(--cd-red) !important; }
.woocommerce nav.woocommerce-pagination ul li span.current { color: #fff !important; background: var(--cd-red) !important; }
.woocommerce a.button,
.woocommerce-page #main-content a.button,
.woocommerce button.button,
.woocommerce input.button { color: #fff !important; }

.cd-footer { padding: 58px 0 25px; color: rgba(255,255,255,.72); background: #101726; }
.cd-footer-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 50px; }
.cd-footer-brand { display: inline-flex; align-items: center; gap: 16px; margin-bottom: 18px; color: #fff; text-decoration: none; }
.cd-footer-logo-wrap { display: grid; place-items: center; overflow: hidden; width: 112px; height: 112px; padding: 12px; border: 2px solid rgba(255,255,255,.2); border-radius: 50%; background: #fff; }
.cd-footer-logo { display: block; width: 72%; height: 72%; border-radius: 0; object-fit: contain; object-position: center; transform: translateY(-2px); }
.cd-footer-brand h2 { margin: 0; }
.cd-footer h2, .cd-footer h3 { margin-top: 0; color: #fff; }
.cd-footer h2 { font-size: 24px; }
.cd-footer h3 { font-size: 16px; }
.cd-footer a { color: rgba(255,255,255,.82); text-decoration: none; }
.cd-footer ul { margin: 0; padding: 0; list-style: none; }
.cd-footer li { margin-bottom: 8px; }
.cd-copyright { margin-top: 42px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.12); font-size: 13px; }

.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

@media (max-width: 980px) {
  .cd-hero-grid, .cd-split, .cd-inner-split { grid-template-columns: 1fr; }
  .cd-hero-grid { gap: 40px; }
  .cd-feature-grid { grid-template-columns: repeat(2, 1fr); }
  .cd-photo-grid { grid-template-columns: 1fr 1fr; }
  .cd-photo-card-wide { grid-column: 1 / -1; }
  .cd-course-grid { grid-template-columns: repeat(2, 1fr); }
  .cd-header .cd-nav-toggle { display: grid !important; place-items: center; width: 52px !important; height: 52px !important; min-width: 52px !important; min-height: 52px !important; margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 10px !important; color: #fff !important; background: var(--cd-red) !important; font-size: 25px !important; line-height: 1 !important; box-shadow: none !important; }
  .cd-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; padding: 20px; border-top: 1px solid var(--cd-line); background: #fff; box-shadow: 0 18px 30px rgba(22,32,51,.1); }
  .cd-nav.is-open { display: block; }
  .cd-nav ul { align-items: stretch; flex-direction: column; gap: 0; }
  .cd-nav li { border-bottom: 1px solid var(--cd-line); }
  .cd-nav a { display: block; padding: 13px 4px; }
}

@media (max-width: 700px) {
  body { font-size: 16px; }
  .cd-wrap, .cd-narrow { width: min(100% - 28px, 1160px); }
  .cd-topbar .cd-wrap { justify-content: center; padding: 8px 0; }
  .cd-topbar-links { justify-content: center; gap: 8px 17px; }
  .cd-topbar-tagline { display: none; }
  .cd-header-inner { min-height: 124px; }
  .cd-brand { gap: 9px; }
  body .cd-header .cd-brand-name { display: block !important; color: #202124 !important; font-size: 20px; }
  .cd-brand .custom-logo { width: auto; height: 105px; max-width: 125px; max-height: 105px; }
  .cd-hero { padding: 58px 0 48px; }
  .cd-hero h1 { font-size: 44px; }
  .cd-hero-card { padding: 26px; }
  .cd-section { padding: 60px 0; }
  .cd-feature-grid, .cd-course-grid, .cd-footer-grid { grid-template-columns: 1fr; }
  .cd-program-grid, .cd-link-grid { grid-template-columns: 1fr; }
  .cd-page-photo, .cd-page-photo img { min-height: 300px; }
  .cd-contact-list a { align-items: flex-start; flex-direction: column; gap: 3px; }
  .cd-photo-grid { grid-template-columns: 1fr; }
  .cd-photo-card-wide { grid-column: auto; }
  .cd-photo-card, .cd-photo-card img { min-height: 280px; }
  .cd-cta-inner { align-items: flex-start; flex-direction: column; }
  .cd-footer-grid { gap: 30px; }
  .cd-footer-logo-wrap { width: 96px; height: 96px; padding: 11px; }
  .cd-footer-logo { width: 66px; height: 66px; object-position: center; transform: translateY(-2px); }
  .admin-bar .cd-header { top: 46px; }
}

/* Final brand-colour guard: older imported/custom styles used blue headings,
 * including a mobile-only rule. Keep all customer-facing card and store
 * headings neutral charcoal at every breakpoint. */
html body #main-content .cd-feature-grid .cd-feature h3,
html body #main-content .cd-course-grid .cd-course h3,
html body #main-content .cd-program-grid h3,
html body #main-content .cd-section-head h2,
html body #main-content .woocommerce-loop-product__title,
html body #main-content .wc-block-grid__product-title,
html body #main-content div.product .product_title { color: #191919 !important; }

html body .cd-header .cd-brand,
html body .cd-header .cd-brand-name { color: #191919 !important; }

html body #main-content .cd-page-title h1,
html body #main-content .cd-page-title .page-title { color: #fff !important; }

.cd-bde-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin: 34px 0; }
.cd-bde-options article { position: relative; overflow: hidden; padding: 18px; border: 1px solid var(--cd-line); border-radius: var(--cd-radius); background: #fff; }
.cd-bde-options img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 12px; }
.cd-bde-options h3 { color: #191919 !important; }
.cd-bde-options .cd-price { margin-bottom: 8px; color: var(--cd-red); font-size: 24px; font-weight: 900; }
.cd-bde-options .cd-button { margin: 8px 12px 0 0; }
.cd-bde-options .cd-text-link { display: inline-block; margin-top: 14px; }
.cd-bde-options p, .cd-bde-details p { color: #666a70; }
.cd-sold-out { display: inline-block; padding: 6px 11px; border-radius: 999px; background: var(--cd-red); color: #fff; font-weight: 800; }
.cd-bde-details { margin: 34px 0; padding: 28px; border-radius: var(--cd-radius); background: var(--cd-soft); }
.cd-bde-details h2 { color: #191919 !important; }
.cd-service-note { padding: 14px 16px; border-left: 4px solid var(--cd-red); background: #fff; }

.cd-home-bde { padding-top: 68px; background: linear-gradient(180deg, #fff 0%, #fff6f7 100%); }
.cd-home-bde-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 34px; }
.cd-home-bde-card { position: relative; overflow: hidden; border: 1px solid var(--cd-line); border-radius: 24px; background: #fff; box-shadow: 0 14px 36px rgba(25,25,25,.08); }
.cd-home-bde-featured { border: 2px solid var(--cd-red); }
.cd-home-bde-card > img { width: 100%; aspect-ratio: 16 / 10; display: block; object-fit: cover; }
.cd-home-bde-card > .cd-badge { position: absolute; z-index: 2; top: 16px; left: 16px; }
.cd-home-bde-body { padding: 25px; }
.cd-home-bde-body h3 { margin: 0 0 8px; color: #191919 !important; font-size: 27px; }
.cd-home-bde-body p { min-height: 72px; color: #666a70; }
.cd-home-bde-body .cd-price { color: var(--cd-red); font-size: 25px; font-weight: 900; }
.cd-home-bde-body .cd-sold-out { margin-right: 12px; }
.cd-text-link { color: var(--cd-red) !important; font-weight: 800; }
.cd-bde-location-note { max-width: 980px; margin: 28px auto 0; padding: 15px 18px; border-left: 4px solid var(--cd-red); background: #fff; color: #666a70; }

@media (max-width: 700px) {
  .cd-bde-options { grid-template-columns: 1fr; }
  .cd-home-bde-grid { grid-template-columns: 1fr; }
  .cd-home-bde-body p { min-height: 0; }
}


/* =========================================================
   SLM DRIVING SCHOOL — distinct visual identity (v1.1)
   Sister-site functionality, intentionally different design.
   ========================================================= */

:root{
  --slm-navy:#123b55;
  --slm-blue:#1d7898;
  --slm-teal:#23a7b8;
  --slm-sky:#eaf7fb;
  --slm-ink:#18313e;
  --slm-muted:#60727d;
  --slm-border:#d6e7ed;
  --slm-white:#ffffff;
  --slm-shadow:0 14px 36px rgba(18,59,85,.10);
}

/* Global */
body{
  color:var(--slm-ink);
  background:#fbfdfe;
}
a{color:var(--slm-blue);}
a:hover{color:var(--slm-navy);}
.cd-container{max-width:1180px;}

/* Header: SLM uses a white/navy editorial header rather than the SLM Driving School look */
.cd-site-header{
  background:rgba(255,255,255,.98);
  border-bottom:1px solid var(--slm-border);
  box-shadow:0 4px 18px rgba(18,59,85,.06);
}
.cd-brand-name{
  color:var(--slm-navy)!important;
  letter-spacing:.03em;
  font-weight:800;
}
.cd-site-header .custom-logo{
  max-height:74px;
  width:auto;
}
.cd-main-nav a{
  color:var(--slm-ink)!important;
  font-weight:700;
  border-radius:10px;
}
.cd-main-nav a:hover,
.cd-main-nav .current-menu-item > a{
  color:var(--slm-blue)!important;
  background:var(--slm-sky);
}
.cd-header-cta,
.cd-btn,
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button{
  background:linear-gradient(135deg,var(--slm-blue),var(--slm-teal))!important;
  border:none!important;
  color:white!important;
  border-radius:12px!important;
  box-shadow:0 8px 18px rgba(29,120,152,.18);
}
.cd-btn-outline{
  background:white!important;
  color:var(--slm-blue)!important;
  border:2px solid var(--slm-blue)!important;
  box-shadow:none!important;
}

/* Hero: editorial two-column panel instead of SLM Driving School' more commercial banner */
.cd-hero{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 86% 18%, rgba(35,167,184,.18), transparent 26%),
    linear-gradient(135deg,#f8fdff 0%,#e9f7fb 100%);
  border-bottom:1px solid var(--slm-border);
}
.cd-hero:before{
  content:"";
  position:absolute;
  width:330px;
  height:330px;
  border:46px solid rgba(29,120,152,.07);
  border-radius:50%;
  right:-100px;
  top:-130px;
}
.cd-hero-inner{
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);
  gap:56px;
  align-items:center;
  padding-top:76px;
  padding-bottom:76px;
}
.cd-hero-copy{
  max-width:700px;
}
.cd-eyebrow{
  color:var(--slm-blue)!important;
  letter-spacing:.16em;
  font-weight:800;
}
.cd-hero h1{
  color:var(--slm-navy)!important;
  font-size:clamp(2.6rem,5vw,5.1rem);
  line-height:.98;
  letter-spacing:-.045em;
}
.cd-hero h1 em,
.cd-hero h1 strong{
  color:var(--slm-teal)!important;
  font-style:normal;
}
.cd-hero p{
  color:var(--slm-muted);
  font-size:1.18rem;
  line-height:1.75;
}
.cd-hero-media{
  background:#fff;
  border:1px solid var(--slm-border);
  border-radius:28px 8px 28px 8px;
  box-shadow:var(--slm-shadow);
  padding:18px;
  transform:rotate(1deg);
}
.cd-hero-media img{
  border-radius:20px 6px 20px 6px;
}

/* SLM uses alternating section rhythm */
.cd-section{
  padding-top:78px;
  padding-bottom:78px;
}
.cd-section:nth-of-type(even){
  background:#f4fafc;
}
.cd-section-title{
  color:var(--slm-navy);
  letter-spacing:-.02em;
}
.cd-section-title:after{
  content:"";
  display:block;
  width:72px;
  height:4px;
  border-radius:99px;
  margin-top:14px;
  background:linear-gradient(90deg,var(--slm-blue),var(--slm-teal));
}

/* Cards: more editorial + less "catalog" than SLM Driving School */
.cd-card,
.cd-package-card,
.woocommerce ul.products li.product{
  border:1px solid var(--slm-border)!important;
  border-radius:20px 6px 20px 6px!important;
  box-shadow:0 8px 24px rgba(18,59,85,.06)!important;
  background:#fff!important;
  overflow:hidden;
}
.cd-card:hover,
.cd-package-card:hover,
.woocommerce ul.products li.product:hover{
  transform:translateY(-4px);
  box-shadow:var(--slm-shadow)!important;
}
.cd-card h3,
.cd-package-card h3,
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  color:var(--slm-navy)!important;
}
.price,
.woocommerce-Price-amount{
  color:var(--slm-blue)!important;
}

/* Feature / trust strips */
.cd-feature-strip{
  background:var(--slm-navy)!important;
  color:white;
}
.cd-feature-strip strong{color:white;}
.cd-feature-strip a{color:#bdeef4;}

/* Forms */
input,select,textarea{
  border-radius:10px!important;
  border:1px solid var(--slm-border)!important;
}
input:focus,select:focus,textarea:focus{
  border-color:var(--slm-teal)!important;
  box-shadow:0 0 0 3px rgba(35,167,184,.12)!important;
}

/* Footer: navy, cleaner and more corporate */
.cd-site-footer{
  background:var(--slm-navy)!important;
  color:#dce9ee!important;
  border-top:6px solid var(--slm-teal);
}
.cd-site-footer h2,
.cd-site-footer h3{
  color:white!important;
}
.cd-site-footer a{
  color:#d8f3f7!important;
}
.cd-site-footer a:hover{
  color:white!important;
}
.cd-footer-logo{
  max-width:150px;
  border-radius:18px 6px 18px 6px;
}

/* Mobile: intentionally different, compact header */
@media (max-width:900px){
  .cd-hero-inner{
    grid-template-columns:1fr;
    gap:28px;
    padding-top:44px;
    padding-bottom:46px;
  }
  .cd-hero-media{
    max-width:540px;
    margin-inline:auto;
    transform:none;
  }
  .cd-site-header .custom-logo{max-height:62px;}
}
@media (max-width:640px){
  .cd-section{padding-top:54px;padding-bottom:54px;}
  .cd-hero h1{font-size:clamp(2.45rem,14vw,4rem);}
  .cd-hero-media{border-radius:22px 6px 22px 6px;}
}

.slm-local-section{background:#fff!important;}
.slm-local-grid{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:54px;
  align-items:start;
}
.slm-local-points{
  display:grid;
  gap:14px;
}
.slm-local-points>div{
  display:grid;
  gap:4px;
  padding:18px 20px;
  background:var(--slm-sky);
  border-left:4px solid var(--slm-teal);
  border-radius:4px 14px 14px 4px;
}
.slm-local-points strong{color:var(--slm-navy);}
.slm-local-points span{color:var(--slm-muted);}
@media(max-width:760px){
  .slm-local-grid{grid-template-columns:1fr;gap:28px;}
}


/* SLM v1.2 — locations, Google reviews and current MTO licences */
.slm-location-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px;
}
.slm-location-grid article{
  position:relative;
  background:#fff;
  border:1px solid var(--slm-border);
  border-radius:24px 8px 24px 8px;
  padding:28px;
  box-shadow:0 9px 28px rgba(18,59,85,.07);
}
.slm-location-label{
  display:inline-block;
  color:var(--slm-blue);
  font-weight:800;
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:8px;
}
.slm-location-grid h3{color:var(--slm-navy);margin:.2rem 0 .65rem;}
.slm-location-grid p{color:var(--slm-muted);margin:0;}

.slm-reviews-section{
  background:linear-gradient(180deg,#f6fbfd 0%,#eef8fb 100%)!important;
}
.slm-google-rating{
  display:flex;
  gap:12px;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  margin-top:16px;
}
.slm-google-rating strong{
  color:#f4a700;
  font-size:1.15rem;
}
.slm-google-rating span{color:var(--slm-muted);}
.slm-review-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  margin-top:32px;
}
.slm-review-card{
  background:#fff;
  border:1px solid var(--slm-border);
  border-radius:18px 6px 18px 6px;
  padding:24px;
  box-shadow:0 10px 26px rgba(18,59,85,.06);
}
.slm-review-stars{
  color:#f4a700;
  letter-spacing:.08em;
  margin-bottom:12px;
}
.slm-review-card blockquote{
  margin:0 0 12px;
  color:var(--slm-navy);
  font-size:1.05rem;
  font-weight:750;
  line-height:1.5;
}
.slm-review-card p{color:var(--slm-muted);font-size:.94rem;}
.slm-review-card strong{color:var(--slm-blue);font-size:.88rem;}

.slm-mto-page .cd-licence-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:28px;
}
.slm-licence-card{
  background:#fff;
  border:1px solid var(--slm-border);
  border-radius:22px 6px 22px 6px;
  padding:16px;
  box-shadow:var(--slm-shadow);
}
.slm-licence-card img{
  width:100%;
  height:auto;
  display:block;
  border-radius:12px 4px 12px 4px;
}
.slm-licence-card figcaption{
  display:grid;
  gap:5px;
  padding:16px 6px 4px;
}
.slm-licence-card figcaption strong{color:var(--slm-navy);}
.slm-licence-card figcaption span{color:var(--slm-muted);font-size:.92rem;}

@media(max-width:960px){
  .slm-review-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:700px){
  .slm-location-grid,
  .slm-review-grid,
  .slm-mto-page .cd-licence-grid{grid-template-columns:1fr;}
}


/* ==========================================================
   SLM Driving School v1.3 — approved mockup direction
   ========================================================== */
:root{
  --slm-deep:#073766;
  --slm-blue:#0b5ca8;
  --slm-bright:#2a9df4;
  --slm-pale:#eef7ff;
}
.cd-topbar{
  background:#fff!important;
  color:var(--slm-deep)!important;
  border-bottom:1px solid #e6edf5;
}
.cd-topbar .cd-wrap{
  min-height:38px;
  justify-content:flex-end;
}
.cd-topbar-tagline{display:none!important;}
.cd-topbar a{
  color:var(--slm-deep)!important;
  font-weight:700;
}
.cd-header{
  background:#fff!important;
  box-shadow:0 4px 14px rgba(2,35,68,.07);
}
.cd-header-inner{
  min-height:86px!important;
}
.cd-brand{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
}
.cd-brand .custom-logo{
  width:105px!important;
  max-width:105px!important;
  max-height:82px!important;
  object-fit:contain!important;
}
.slm-brand-copy{
  display:flex;
  flex-direction:column;
  line-height:1.05;
}
.slm-brand-copy .cd-brand-name{
  color:var(--slm-deep)!important;
  font-size:25px!important;
  letter-spacing:.01em!important;
}
.slm-brand-copy small{
  margin-top:5px;
  color:var(--slm-deep);
  font-size:14px;
}
.cd-nav a{
  color:#102f52!important;
  font-size:15px!important;
  font-weight:700!important;
}
.cd-nav a:hover,
.cd-nav .current-menu-item>a{
  color:var(--slm-blue)!important;
}
.slm-home-hero{
  position:relative;
  min-height:610px;
  overflow:hidden;
  background:#061f38;
}
.slm-home-hero-media,
.slm-home-hero-media img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.slm-home-hero-media img{
  object-fit:cover;
  object-position:center;
}
.slm-home-hero-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(2,26,49,.98) 0%,rgba(2,31,59,.88) 24%,rgba(2,31,59,.42) 47%,rgba(2,31,59,.02) 70%);
}
.slm-home-hero-content{
  position:relative;
  z-index:2;
  min-height:610px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  color:#fff;
}
.slm-home-eyebrow{
  margin:0 0 20px;
  font-size:15px;
  font-weight:800;
  letter-spacing:.25em;
  color:#b8ddff!important;
}
.slm-home-hero h1{
  max-width:630px;
  margin:0 0 18px;
  color:#fff!important;
  font-size:clamp(52px,5.2vw,80px);
  line-height:.98;
  letter-spacing:-.045em;
}
.slm-home-hero h1 span{color:#56b4ff!important;}
.slm-home-hero-content>p:not(.slm-home-eyebrow){
  max-width:610px;
  margin:0 0 28px;
  color:#f3f7fb!important;
  font-size:19px;
  line-height:1.55;
}
.slm-home-hero .cd-button{
  border-radius:12px!important;
  background:#087de0!important;
  box-shadow:none!important;
}
.slm-home-hero .cd-button-outline{
  background:rgba(3,24,44,.65)!important;
  border:2px solid #fff!important;
  color:#fff!important;
}
.slm-benefit-strip{
  background:#fff;
  border-bottom:1px solid #dbe5ef;
}
.slm-benefit-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
}
.slm-benefit-grid article{
  display:flex;
  gap:16px;
  align-items:center;
  padding:25px 20px;
  border-right:1px solid #dfe6ee;
}
.slm-benefit-grid article:last-child{border-right:0;}
.slm-benefit-grid article>span{
  display:grid;
  place-items:center;
  width:54px;
  height:54px;
  flex:0 0 54px;
  color:var(--slm-blue);
  font-size:28px;
  font-weight:900;
}
.slm-benefit-grid strong{
  display:block;
  color:var(--slm-deep);
  font-size:17px;
}
.slm-benefit-grid small{
  display:block;
  margin-top:4px;
  color:#657587;
  line-height:1.35;
}
.slm-service-showcase{
  padding:22px 0 34px;
  background:#fff;
}
.slm-service-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}
.slm-service-card{
  position:relative;
  overflow:hidden;
  min-height:265px;
  border-radius:8px;
  background:var(--slm-deep);
  text-decoration:none!important;
  box-shadow:0 8px 22px rgba(4,45,83,.12);
}
.slm-service-card img{
  width:100%;
  height:185px;
  display:block;
  object-fit:cover;
}
.slm-service-card>div{
  min-height:82px;
  padding:14px 16px;
  background:linear-gradient(135deg,#073766,#075698);
}
.slm-service-card h3{
  margin:0 0 4px;
  color:#fff!important;
  font-size:20px;
}
.slm-service-card p{
  margin:0;
  color:#e8f4ff!important;
  font-size:14px;
  line-height:1.35;
}
.cd-home-bde{
  background:#f5f9fd!important;
}
.cd-home-bde-card>img,
.cd-photo-card img,
.cd-page-photo img,
.cd-bde-options article>img{
  object-fit:cover!important;
}
.cd-home-bde-card,
.cd-photo-card,
.cd-bde-options article{
  border-radius:12px!important;
}
.cd-section-title:after{background:var(--slm-blue)!important;}
@media(max-width:1100px){
  .slm-benefit-grid,
  .slm-service-grid{grid-template-columns:repeat(2,1fr);}
  .slm-home-hero-overlay{
    background:linear-gradient(90deg,rgba(2,26,49,.96),rgba(2,26,49,.72) 58%,rgba(2,26,49,.22));
  }
}
@media(max-width:760px){
  .cd-topbar .cd-wrap{justify-content:center;}
  .cd-header-inner{min-height:76px!important;}
  .cd-brand .custom-logo{width:76px!important;max-width:76px!important;max-height:66px!important;}
  .slm-brand-copy .cd-brand-name{font-size:17px!important;}
  .slm-brand-copy small{font-size:11px;}
  .slm-home-hero{min-height:560px;}
  .slm-home-hero-content{min-height:560px;padding-top:36px;padding-bottom:36px;}
  .slm-home-hero-media img{object-position:58% center;}
  .slm-home-hero-overlay{
    background:linear-gradient(90deg,rgba(2,26,49,.96) 0%,rgba(2,26,49,.86) 55%,rgba(2,26,49,.55) 100%);
  }
  .slm-home-hero h1{font-size:46px;max-width:520px;}
  .slm-home-hero-content>p:not(.slm-home-eyebrow){font-size:17px;}
  .slm-benefit-grid,
  .slm-service-grid{grid-template-columns:1fr;}
  .slm-benefit-grid article{border-right:0;border-bottom:1px solid #dfe6ee;}
  .slm-service-card img{height:220px;}
}


/* SLM v1.4 contact corrections */
.slm-phone-link,
.cd-topbar a[href^="tel:"],
.cd-header a[href^="tel:"],
a[href^="tel:"] .phone-icon,
.cd-phone,
.cd-phone-button{
  color:#0b5ca8!important;
}
.cd-phone-button{
  background:#0b5ca8!important;
  border-color:#0b5ca8!important;
  color:#fff!important;
}
.cd-phone-button svg{
  fill:#fff!important;
  stroke:#fff!important;
}


/* SLM v1.4.1 — transparent top phone link with blue SVG icon */
.cd-topbar .slm-phone-link,
.cd-header .slm-phone-link,
.slm-phone-link{
  display:inline-flex!important;
  align-items:center!important;
  gap:8px!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  padding:0!important;
  color:#0b5ca8!important;
  text-decoration:none!important;
}
.slm-phone-link:hover,
.slm-phone-link:focus{
  background:transparent!important;
  color:#074b8a!important;
}
.slm-phone-icon{
  width:22px!important;
  height:22px!important;
  flex:0 0 22px!important;
  fill:#0b5ca8!important;
  stroke:none!important;
}
.slm-phone-link:hover .slm-phone-icon,
.slm-phone-link:focus .slm-phone-icon{
  fill:#074b8a!important;
}


/* SLM v1.7 storefront image reliability */
.woocommerce ul.products li.product img.slm-store-product-image,
.woocommerce-page ul.products li.product img.slm-store-product-image{
  width:100%!important;
  aspect-ratio:4/3!important;
  height:auto!important;
  object-fit:cover!important;
  display:block!important;
  margin:0 0 1em!important;
  background:#fff!important;
}


/* SLM v1.8 — Square digital-wallet compatibility.
   Square/Google Pay/Apple Pay must keep their own native styling. */
#wc-square-digital-wallet button,
#wc-square-digital-wallets button,
.wc-square-digital-wallet button,
.wc-square-digital-wallets button,
[class*="square"][class*="wallet"] button,
[class*="google-pay"] button,
[class*="gpay"] button,
.gpay-card-info-container,
.google-pay-button,
.apple-pay-button{
  background:revert!important;
  background-color:revert!important;
  background-image:revert!important;
  border:revert!important;
  border-radius:revert!important;
  box-shadow:none!important;
  color:revert!important;
  padding:revert!important;
  min-height:revert!important;
  transform:none!important;
}


/* SLM v2.0 anti-spam + content sections */
.slm-hp{
  position:absolute!important;
  left:-10000px!important;
  top:auto!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
}
.cf-turnstile{margin:16px 0;}
.slm-journey-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}
.slm-journey-grid article{
  background:#fff;
  border:1px solid rgba(10,83,145,.12);
  border-radius:18px;
  padding:24px;
  box-shadow:0 10px 30px rgba(18,45,72,.06);
}
.slm-journey-grid article>strong{
  display:inline-flex;width:38px;height:38px;border-radius:50%;
  align-items:center;justify-content:center;background:#0b5ca8;color:#fff;
  margin-bottom:12px;
}
.slm-faq-section details{
  background:#fff;border:1px solid rgba(10,83,145,.12);
  border-radius:14px;padding:16px 18px;margin:12px 0;
}
.slm-faq-section summary{font-weight:700;cursor:pointer;color:#17324d;}
.slm-faq-section details p{margin:12px 0 0;}
@media(max-width:900px){.slm-journey-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:600px){.slm-journey-grid{grid-template-columns:1fr;}}


/* SLM v2.1 — distinct package cards */
.woocommerce ul.products li.product img.slm-store-product-image,
.woocommerce-page ul.products li.product img.slm-store-product-image{
  width:100%!important;
  aspect-ratio:4/3!important;
  object-fit:cover!important;
  object-position:center!important;
  display:block!important;
}


/* SLM v2.2 */
.slm-security-note{font-size:.88rem;color:#516476;margin:10px 0 16px;display:flex;gap:7px;align-items:center}
.woocommerce ul.products li.product img.slm-store-product-image,
.woocommerce-page ul.products li.product img.slm-store-product-image{width:100%!important;aspect-ratio:16/10!important;object-fit:cover!important;object-position:center!important;}


/* SLM v2.3 — visible protection on WPForms */
.slm-wpforms-security{
  margin:14px 0 8px;
}
.wpforms-container .slm-security-note,
.slm-wpforms-security .slm-security-note{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  visibility:visible!important;
  opacity:1!important;
  font-size:14px!important;
  line-height:1.4!important;
  color:#516476!important;
  margin:8px 0 12px!important;
}


/* Social media, floating WhatsApp and Back to Top */
.cd-social-block{margin-top:20px}.cd-social-block h3{margin-bottom:10px}.cd-social-links{display:flex;gap:10px;flex-wrap:wrap}.cd-social{width:42px;height:42px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#fff;color:#16243a;text-decoration:none!important;transition:transform .18s ease,opacity .18s ease}.cd-social svg,.cd-floating-whatsapp svg{width:23px;height:23px;fill:currentColor}.cd-social:hover{transform:translateY(-2px);opacity:.9}.cd-social:focus-visible,.cd-floating-whatsapp:focus-visible,.cd-back-to-top:focus-visible{outline:3px solid #fff;outline-offset:3px}.cd-whatsapp,.cd-floating-whatsapp{background:#25D366;color:#fff}.cd-floating-whatsapp,.cd-back-to-top{position:fixed;right:20px;width:52px;height:52px;border-radius:50%;z-index:9998;display:flex;align-items:center;justify-content:center;box-shadow:0 5px 18px rgba(0,0,0,.22)}.cd-floating-whatsapp{bottom:20px;text-decoration:none!important}.cd-back-to-top{bottom:84px;border:0;background:var(--slm-blue,#1d7898);color:#fff;font-size:26px;line-height:1;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease,visibility .2s}.cd-back-to-top.is-visible{opacity:1;visibility:visible;transform:none}.screen-reader-text{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}@media(max-width:600px){.cd-floating-whatsapp,.cd-back-to-top{right:14px;width:48px;height:48px}.cd-floating-whatsapp{bottom:14px}.cd-back-to-top{bottom:72px}}@media(prefers-reduced-motion:reduce){.cd-social,.cd-back-to-top{transition:none}}

/* v2.9: high-visibility official social icon styling */
.cd-social.cd-facebook{background:#1877F2!important;color:#fff!important}.cd-social.cd-instagram{background:radial-gradient(circle at 30% 107%,#fdf497 0 5%,#fd5949 45%,#d6249f 60%,#285AEB 90%)!important;color:#fff!important}.cd-social.cd-whatsapp{background:#25D366!important;color:#fff!important}.cd-social{box-shadow:0 2px 8px rgba(0,0,0,.22);border:0!important}.cd-social svg{fill:#fff!important;width:24px;height:24px}.cd-back-to-top{background:#1688a8!important;color:#fff!important}


/* v3.0 — restored StickOTTAWA manual-transmission page */
.slm-stick-hero{align-items:center}.slm-stick-pricing{padding-top:28px;padding-bottom:30px}.slm-stick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.slm-stick-grid article{position:relative;background:#fff;border:1px solid var(--cd-line);border-radius:var(--cd-radius);padding:28px;box-shadow:0 12px 35px rgba(20,35,50,.08)}.slm-stick-grid article.featured{border:2px solid var(--cd-red);transform:translateY(-5px)}.slm-stick-grid .cd-price{font-size:2rem;font-weight:800;color:var(--cd-red);margin:12px 0}.slm-stick-grid .cd-price small{font-size:.9rem;font-weight:600;color:var(--cd-muted)}.slm-stick-badge{position:absolute;right:18px;top:16px;background:var(--cd-red);color:#fff;border-radius:999px;padding:5px 10px;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.slm-stick-learn{padding-top:34px}.slm-stick-cta{margin-top:34px;padding:28px;border-radius:var(--cd-radius);background:var(--cd-ink);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:22px}.slm-stick-cta h2,.slm-stick-cta p{color:#fff;margin-top:0}.slm-stick-cta p{margin-bottom:0}@media(max-width:820px){.slm-stick-grid{grid-template-columns:1fr}.slm-stick-grid article.featured{transform:none}.slm-stick-cta{align-items:flex-start;flex-direction:column}}

/* Service-area footer: natural local SEO without keyword stuffing */
.cd-service-areas{margin-top:28px;padding:18px 0;border-top:1px solid rgba(255,255,255,.14);text-align:center;line-height:1.65}
.cd-service-areas strong{display:block;color:#fff;font-size:15px;margin-bottom:5px}
.cd-service-areas span{display:block;color:rgba(255,255,255,.76);font-size:13px;max-width:1000px;margin:0 auto}


/* v3.4 — StickOTTAWA official logo integration */
.slm-stick-brand{padding-top:8px;padding-bottom:30px;text-align:center}
.slm-stick-brand img{display:block;width:min(100%,980px);height:auto;margin:0 auto;border-radius:18px;background:#fff;box-shadow:0 12px 34px rgba(20,35,50,.08)}
@media(max-width:720px){.slm-stick-brand{padding-bottom:20px}.slm-stick-brand img{border-radius:12px}}


/* SLM v3.5 — BDE waiting-list actions */
.cd-waitlist-wrap{margin-top:14px;display:flex;flex-direction:column;align-items:flex-start;gap:7px}.cd-waitlist-button{display:inline-flex;align-items:center;justify-content:center;padding:11px 16px;border:2px solid #0b78a0;border-radius:10px;background:#fff;color:#0b5f82!important;font-weight:800;text-decoration:none}.cd-waitlist-button:hover,.cd-waitlist-button:focus{background:#eaf8fc;color:#083e56!important}.cd-waitlist-note{margin:0!important;min-height:0!important;font-size:.92rem;color:#666a70}.cd-waitlist-context{padding:14px 16px;border-left:4px solid #0b78a0;background:#eef9fc;margin:0 0 22px}.cd-waitlist-context strong{color:#0b5f82}

/* v4.0 installment-payment notice */
.cd-installment-banner{margin:0 0 24px;padding:15px 18px;border:1px solid #e4e4e4;border-radius:10px;background:#fff;font-size:15px;line-height:1.5}.cd-installment-banner strong{color:#135ea8}.cd-installment-product{margin:14px 0;padding:12px 14px;border-left:4px solid #135ea8;background:#fafafa;font-size:14px;line-height:1.5}


/* Mobile single-product overflow fix — prevents horizontal page wiggle */
.woocommerce div.product,
.woocommerce-page div.product,
.woocommerce div.product .woocommerce-product-gallery,
.woocommerce div.product .summary,
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product form.cart,
.woocommerce div.product .product_meta {
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
.woocommerce div.product img,
.woocommerce div.product .woocommerce-product-gallery img {
  max-width:100%!important;
  height:auto!important;
}
.woocommerce div.product .product_title,
.woocommerce div.product .woocommerce-product-details__short-description,
.woocommerce div.product .woocommerce-Tabs-panel,
.woocommerce div.product .summary p,
.woocommerce div.product .summary li {
  overflow-wrap:anywhere;
  word-break:normal;
}
@media (max-width: 768px) {
  body.single-product .cd-content,
  body.single-product .cd-wrap,
  body.single-product #main-content,
  body.single-product .woocommerce {
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow-x:clip!important;
  }
  body.single-product .cd-wrap { padding-left:14px!important; padding-right:14px!important; }
  .woocommerce div.product div.images,
  .woocommerce div.product div.summary {
    float:none!important;
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
  }
  .woocommerce div.product .product_title { font-size:clamp(30px,9vw,44px)!important; line-height:1.05!important; }
  .woocommerce div.product form.cart .button { max-width:100%!important; white-space:normal!important; }
}


/* Form document uploads */
.cd-upload-panel { margin: 14px 0 18px; padding: 16px; border: 1px solid var(--cd-line); border-radius: 12px; background: var(--cd-soft); }
.cd-upload-panel[hidden] { display: none !important; }
.cd-upload-panel p { margin: 0 0 10px; }
.cd-upload-panel label { display: block; margin: 10px 0; }
.cd-upload-panel input[type="file"] { width: 100%; max-width: 100%; padding: 9px; background: var(--cd-white); border: 1px solid var(--cd-line); border-radius: 8px; }
.cd-upload-panel small, .cd-required-note { color: var(--cd-muted); }

/* SLM v4.7 — homepage hero contrast + prominent BDE waiting-list buttons */
#main-content .slm-home-hero h1,
#main-content .slm-home-hero h1 > br:first-of-type {
  color:#fff !important;
}
#main-content .slm-home-hero h1 span {
  color:#56b4ff !important;
}
#main-content .slm-home-hero-content > p:not(.slm-home-eyebrow) {
  color:#f3f7fb !important;
}
#main-content .cd-home-bde .cd-waitlist-button,
#main-content .cd-bde-options .cd-waitlist-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 18px;
  border:2px solid #1688a8;
  border-radius:10px;
  background:#1688a8 !important;
  color:#fff !important;
  font-weight:800;
  text-decoration:none;
  box-shadow:none;
}
#main-content .cd-home-bde .cd-waitlist-button:hover,
#main-content .cd-home-bde .cd-waitlist-button:focus,
#main-content .cd-bde-options .cd-waitlist-button:hover,
#main-content .cd-bde-options .cd-waitlist-button:focus {
  background:#0e6179 !important;
  border-color:#0e6179;
  color:#fff !important;
}

/* SLM v4.8 — service-card text contrast */
#main-content .slm-service-card h3,
#main-content .slm-service-card h3 * {
  color:#63c7ff !important;
}
#main-content .slm-service-card p,
#main-content .slm-service-card p * {
  color:#fff !important;
}

/* Footer logos fill the badge at desktop and mobile sizes. */
.cd-footer .cd-footer-logo-wrap {
  padding: 0;
  border: 0;
  flex-shrink: 0;
}
.cd-footer .cd-footer-logo-wrap .cd-footer-logo {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  margin: 0;
  padding: 0;
  border-radius: 0;
  object-fit: contain;
  object-position: center;
  transform: none;
}

/* Optional BDE services */
.cd-bde-services{margin:32px 0;clear:both}
.cd-bde-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.cd-bde-service-grid article{padding:22px;border:1px solid #d9dfe5;border-radius:14px;background:#fff}
.cd-bde-language-info{margin:28px 0 36px;padding:26px;border:1px solid #d9dfe5;border-radius:16px;background:#fff;clear:both}
.cd-bde-language-info h2{margin:0 0 12px;font-size:clamp(1.65rem,3vw,2.25rem);line-height:1.15}
.cd-bde-language-info p{margin:10px 0;line-height:1.55}
.cd-bde-language-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px;margin:20px 0;padding:18px;border-radius:12px;background:#f7f9fa}
.cd-bde-language-list span{display:block;line-height:1.45}
.cd-bde-language-note{margin-bottom:0!important}
@media(max-width:800px){.cd-bde-language-info{padding:20px}.cd-bde-language-list{grid-template-columns:1fr;padding:16px}}
.cd-bde-service-fields{display:block;clear:both;flex:0 0 100%;width:100%;min-width:0;margin:20px 0;padding:20px;border:1px solid #d9dfe5;border-radius:14px}
.cd-bde-service-fields legend{font-size:1.2rem;font-weight:700;padding:0 8px}
.cd-bde-service-choice{display:flex!important;align-items:flex-start;gap:12px;margin:16px 0;cursor:pointer}
.cd-bde-service-choice input[type=checkbox]{width:20px!important;height:20px!important;min-width:20px;margin:4px 0 0;flex:0 0 20px}
.cd-bde-service-choice span span{display:block;margin-top:6px;font-weight:400;line-height:1.5}
@media(max-width:800px){.cd-bde-service-grid{grid-template-columns:1fr}.cd-bde-service-fields{padding:14px}}

.cd-roadtest-inclusions{font-size:.95rem;line-height:1.5;margin:12px 0}.cd-bde-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:800px){.cd-bde-service-grid{grid-template-columns:1fr}}

.cd-winchester-travel-card{display:grid;grid-template-columns:minmax(180px,1fr) minmax(0,2fr);gap:24px;margin:28px 0;padding:24px;border:1px solid #d9dfe5;border-radius:16px;background:#fff;text-align:left}.cd-winchester-travel-image img{width:100%;height:auto;display:block;border-radius:12px}.cd-winchester-travel-card h2{margin-top:0}@media(max-width:650px){.cd-winchester-travel-card{grid-template-columns:1fr;padding:18px}}

/* Compact descriptions across all catalogue products. */
ul.products li.product .woocommerce-product-details__short-description,
ul.products li.product .product-short-description,
ul.products li.product .product-description,
ul.products li.product .cd-roadtest-inclusions { display:none; }
.cd-package-description { margin: 12px 0; }
.cd-package-description summary { cursor:pointer; font-weight:600; }
.cd-package-description[open] summary { margin-bottom:12px; }

/* v5.25: WooCommerce checkout action-button label visibility */
.wc-block-checkout__actions .wc-block-components-button,
.wc-block-checkout__actions .wc-block-components-button .wc-block-components-button__text,
.wc-block-components-checkout-place-order-button,
.wc-block-components-checkout-place-order-button .wc-block-components-button__text {
  color: #fff !important;
  opacity: 1 !important;
  visibility: visible !important;
  -webkit-text-fill-color: #fff !important;
}
.wc-block-checkout__actions .wc-block-components-button {
  background: var(--cd-red) !important;
}
.wc-block-checkout__actions .wc-block-components-button:hover,
.wc-block-checkout__actions .wc-block-components-button:focus {
  background: var(--cd-red-dark) !important;
  color: #fff !important;
}

/* SLM v5.44: keep homepage hero CTAs side-by-side on mobile */
.slm-home-hero .cd-actions{
  display:flex!important;
  flex-wrap:nowrap!important;
  width:100%;
  max-width:780px;
  gap:12px;
}
.slm-home-hero .cd-actions .cd-button{
  flex:1 1 0!important;
  min-width:0!important;
  display:flex!important;
  align-items:center;
  justify-content:center;
  text-align:center;
  white-space:normal;
}
@media(max-width:760px){
  .slm-home-hero .cd-actions{gap:8px!important;}
  .slm-home-hero .cd-actions .cd-button{
    padding:14px 10px!important;
    font-size:15px!important;
    line-height:1.2!important;
  }
}

/* v5.49: compact road-test travel cards */
.cd-winchester-travel-card{display:grid!important;grid-template-columns:220px minmax(0,1fr)!important;gap:20px!important;align-items:center!important;margin:18px 0!important;padding:16px!important;min-height:0!important;height:auto!important}
.cd-winchester-travel-card>div{min-height:0!important;height:auto!important}
.cd-winchester-travel-image{width:220px!important;height:150px!important;overflow:hidden!important;border-radius:10px!important}
.cd-winchester-travel-image img{width:220px!important;height:150px!important;object-fit:cover!important;margin:0!important;border-radius:10px!important}
.cd-winchester-travel-card h2{font-size:28px!important;line-height:1.12!important;margin:0 0 8px!important}
.cd-winchester-travel-card details{margin:0 0 10px!important}
.cd-winchester-travel-card .cd-button{margin-top:6px!important}
@media(max-width:650px){.cd-winchester-travel-card{grid-template-columns:1fr!important}.cd-winchester-travel-image,.cd-winchester-travel-image img{width:100%!important;height:180px!important}.cd-winchester-travel-card h2{font-size:24px!important}}

/* v5.51: standard catalogue-sized mixed BDE and road-centre cards. */
.cd-mixed-bde .cd-bde-options,
.slm-road-centres-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin:34px 0; align-items:stretch; }
.cd-mixed-bde .cd-bde-options > article { min-width:0; width:auto; margin:0; padding:18px; }
.cd-mixed-bde .cd-bde-options > article > img { display:block; width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; }
.slm-road-centres-grid > .cd-winchester-travel-card,
.slm-road-centres-grid > .cd-service-note { display:flex!important; flex-direction:column; gap:16px!important; min-width:0; margin:0!important; padding:18px!important; border:1px solid var(--cd-line); border-radius:var(--cd-radius); background:#fff; }
.slm-road-centres-grid .cd-winchester-travel-image { width:100%!important; height:auto!important; aspect-ratio:16/10; flex-shrink:0; }
.slm-road-centres-grid .cd-winchester-travel-image img { width:100%!important; height:100%!important; object-fit:cover!important; }
.slm-road-centres-grid .cd-winchester-travel-card > div:last-child { display:flex; flex-direction:column; flex:1; align-items:flex-start; }
.slm-road-centres-grid .cd-winchester-travel-card h2,
.slm-road-centres-grid > .cd-service-note h3,
.cd-mixed-bde .cd-bde-options h3 { font-size:20px!important; line-height:1.3!important; margin:0 0 12px!important; overflow-wrap:anywhere; }
.slm-road-centres-grid .cd-button { max-width:100%; white-space:normal; margin-top:auto!important; }
@media(max-width:900px) {
 .cd-mixed-bde .cd-bde-options,.slm-road-centres-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:650px) {
 .cd-mixed-bde .cd-bde-options,.slm-road-centres-grid { grid-template-columns:minmax(0,1fr); }
}


/* v5.52: keep all Courses & Packages card images at one consistent size. */
.cd-product-block .woocommerce ul.products li.product img,
.cd-product-block .woocommerce-page ul.products li.product img,
.cd-mixed-bde .cd-bde-options > article > img,
.slm-road-centres-grid .cd-winchester-travel-image {
  width:100%!important;
  height:auto!important;
  aspect-ratio:16/10!important;
  object-fit:cover!important;
  object-position:center!important;
}
.slm-road-centres-grid .cd-winchester-travel-image { overflow:hidden!important; }
.slm-road-centres-grid .cd-winchester-travel-image img {
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center!important;
}


/* v5.53: balanced training gallery on tablet widths. */
@media (min-width:701px) and (max-width:980px) {
  .cd-photo-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
  .cd-photo-card-wide { grid-column:auto; }
  .cd-photo-card, .cd-photo-card img { min-height:250px; height:250px; }
  .cd-photo-card figcaption { left:16px; right:16px; bottom:16px; }
  .cd-photo-card figcaption strong { font-size:17px; line-height:1.2; }
  .cd-photo-card figcaption span { margin-top:4px; font-size:12px; line-height:1.3; }
}

.cd-bde-language-info > .cd-package-description{margin-top:18px}
.cd-bde-language-details{padding-top:12px}
