/*
Theme Name: LWA Driving School Theme
Author: ChatGPT
Description: LWA Driving School brochure and SEO theme. v10.7.1: reduced sidebar body text to 0.9rem (headings unchanged). v10.7.0: fluid page/post/archive H1 sizing via clamp() (was browser-default 2em); added a prefers-reduced-motion guard that neutralises transition/animation easing for users who request it. v10.6.1: consolidated the action-green into a single --lwa-cta token and darkened it to #1e7e34 so button text passes WCAG AA (was 3.1:1, now 5.1:1); tidied the contact form's hardcoded teal into the existing --lwa-green token. v10.6.0: base content typography now applies to every page and single post (headings scale, paragraph rhythm, branded content links, lists, blockquote) so all pages look designed, not just bespoke ones; replaced emoji (header, footer, 404) with inline SVG icons via a lwa_icon() helper. v10.5.1: tightened desktop nav spacing (smaller link padding, gap and letter-spacing) so the menu fits one line. v10.5.0: Varela Round restored as the site-wide font (enqueued from Google Fonts with preconnect; form controls inherit it too). v10.4.2: transparent Jeep cutout in mobile header. v10.4.0: mobile-only vehicle image in header right column. v10.3.x: full-bleed sidebar ad, £40/hr prices meta, nested .entry-content fix, social-image filter + og:image:alt + publisher logo dimensions.
Version: 10.7.1
Text Domain: lwa-driving
*/

:root{
  --lwa-red:#e53935;
  --lwa-amber:#f6ad55;
  --lwa-green:#2a9d8f;


  /* Extra accents */
  --lwa-blue:#2563eb;
  --lwa-sky:#0ea5e9;
  --lwa-purple:#7c3aed;
  --lwa-pink:#ec4899;
  --lwa-teal:#14b8a6;
  --lwa-lime:#84cc16;
  --lwa-navy:#0f172a;

  /* Core palette */
  --lwa-bg:#ffffff;
  --lwa-surface:#ffffff;
  --lwa-text:#222222;
  --lwa-muted:#6b7280;
  --lwa-border:#eeeeee;
  --lwa-border-soft:#f2f2f2;

  /* Action / CTA green — single source of truth for buttons.
     #1e7e34 clears WCAG AA on white (5.1:1); the old #28a745 was 3.1:1. */
  --lwa-cta:#1e7e34;
  --lwa-cta-hover:#166028;
  --lwa-cta-tint:#f3fff6;

  /* Layout */
  --lwa-container:1080px;
  --lwa-space-1:8px;
  --lwa-space-2:12px;

  /* Radius + shadows */
  --lwa-radius-sm:12px;
  --lwa-radius-md:16px;
  --lwa-radius-lg:22px;
  --lwa-shadow-sm:0 6px 16px rgba(0,0,0,.08);
  --lwa-shadow-md:0 18px 40px rgba(0,0,0,.12);

  /* Components */
  --lwa-logo-max:294px;
}

*{box-sizing:border-box}

html,body{
  margin:0;
  padding:0;
  background:var(--lwa-bg);
  color:var(--lwa-text);
  font-family:"Varela Round",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  line-height:1.6;
}

/* Form controls don't inherit font-family by default — keep the whole site on Varela Round. */
button, input, select, optgroup, textarea {
  font-family: inherit;
}

body{
  min-height:100vh;
  display:flex;
  flex-direction:column;
}

/* =============================================================
   Responsive media baseline (prevents mobile horizontal scroll)
   Many WP blocks (gallery/image/embeds) output width attributes.
   Without a max-width rule, those can exceed the viewport.
   ============================================================= */

img,
video{
  max-width:100%;
  height:auto;
}

iframe,
embed,
object{
  max-width:100%;
}

figure{
  max-width:100%;
}

/* Prevent long words/URLs in content/widgets from forcing horizontal scroll */
.entry-content,
.sidebar{
  overflow-wrap:anywhere;
  word-break:break-word;
}

/* =============================================================
   Base content typography — applies to every page and single
   post so content looks designed site-wide, not just on the
   bespoke pages. More specific rules (.page-slug-the-car, blog
   cards) still override this. Scoped to .page/.single so it
   never touches blog-index card excerpts.
   ============================================================= */
.page .entry-content,
.single .entry-content{ line-height:1.7; }

.page .entry-content > :first-child,
.single .entry-content > :first-child{ margin-top:0; }

.page .entry-content p,
.single .entry-content p{ margin:0 0 1rem; }

.page .entry-content h2,
.single .entry-content h2{
  font-size:clamp(1.5rem, 1.2rem + 1.1vw, 1.9rem);
  line-height:1.25;
  margin:2.4rem 0 0.75rem;
}
.page .entry-content h3,
.single .entry-content h3{
  font-size:1.3rem;
  line-height:1.3;
  margin:2rem 0 0.6rem;
}
.page .entry-content h4,
.single .entry-content h4{
  font-size:1.1rem;
  line-height:1.35;
  margin:1.6rem 0 0.5rem;
}

/* Content links (leave pill/CTA buttons alone) */
.page .entry-content a:not(.lwa-pill-btn):not(.lwa-green-btn):not(.wp-block-button__link),
.single .entry-content a:not(.lwa-pill-btn):not(.lwa-green-btn):not(.wp-block-button__link){
  color:#c62828;
  text-decoration:underline;
  text-underline-offset:2px;
  text-decoration-thickness:1px;
  transition:color .15s ease;
}
.page .entry-content a:not(.lwa-pill-btn):not(.lwa-green-btn):not(.wp-block-button__link):hover,
.single .entry-content a:not(.lwa-pill-btn):not(.lwa-green-btn):not(.wp-block-button__link):focus{
  color:#8e1c1c;
}

/* Lists */
.page .entry-content ul,
.page .entry-content ol,
.single .entry-content ul,
.single .entry-content ol{
  margin:0 0 1.25rem;
  padding-left:1.3rem;
}
.page .entry-content li,
.single .entry-content li{ margin-bottom:0.35rem; }

/* Blockquote */
.page .entry-content blockquote,
.single .entry-content blockquote{
  margin:1.5rem 0;
  padding:0.4rem 0 0.4rem 1.1rem;
  border-left:4px solid var(--lwa-red);
  color:var(--lwa-muted);
  font-style:italic;
}
.page .entry-content blockquote p:last-child,
.single .entry-content blockquote p:last-child{ margin-bottom:0; }

/* Content images: gentle rounding to match the card aesthetic */
.page .entry-content .wp-block-image img,
.single .entry-content .wp-block-image img{ border-radius:12px; }

/* =============================================================
   Gutenberg wide/full alignment support

   If a block (often galleries) is set to Full Width inside our
   padded .container, WordPress may output width:100vw but the
   centering margins aren't always present (or get overridden),
   which creates a consistent ~16px horizontal overflow.
   These rules restore the expected behaviour.
   ============================================================= */

.entry-content .alignfull{
  width:100vw;
  max-width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
}

@media (max-width:768px){
  /* Full-width blocks: avoid vw rounding/overflow on mobile.
     Expand to include the .container padding, then pull back with negative margins. */
  .entry-content .alignfull{
    width:calc(100% + 32px) !important;
    max-width:calc(100% + 32px) !important;
    margin-left:-16px !important;
    margin-right:-16px !important;
    padding-left:16px;
    padding-right:16px;
    box-sizing:border-box;
  }

  /* Wide blocks should not exceed the content column on mobile */
  .entry-content .alignwide{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }
}

/* Gutenberg galleries: ensure they wrap and never overflow */
.wp-block-gallery,
.wp-block-gallery.has-nested-images{
  max-width:100%;
  box-sizing:border-box;
}

.wp-block-gallery.has-nested-images{
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
}

.wp-block-gallery.has-nested-images figure,
.wp-block-gallery figure,
.wp-block-gallery .wp-block-image{
  max-width:100%;
  box-sizing:border-box;
}

.wp-block-gallery.has-nested-images img,
.wp-block-gallery img,
.wp-block-image img{
  max-width:100%;
  height:auto;
}

/* =============================================================
   Accessibility: skip link + keyboard focus
   ============================================================= */

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

/* =============================================================
   Header: top bar + account area
   ============================================================= */

.lwa-top-bar{
  background:linear-gradient(90deg, #0f172a 0%, #1f2a44 100%);
  color:#fff;
  padding:0.6rem 0;
  font-size:0.85rem;
}

.lwa-top-bar-content{
  max-width:var(--lwa-container);
  margin:0 auto;
  padding:0 2rem;
  display:flex;
  justify-content: flex-end;
  align-items:center;
  gap:16px;
}

.lwa-top-bar-left{
  display:flex;
  gap:1.5rem;
  align-items:center;
  flex-wrap:wrap;
}

.lwa-top-bar-item{
  display:flex;
  align-items:center;
  gap:0.5rem;
  color:rgba(255,255,255,.92);
  text-decoration:none;
  transition:color .25s ease;
  white-space:nowrap;
}

.lwa-top-bar-item:hover{ color:#ffd93d; }

.lwa-top-icon{
  width:16px;
  height:16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#ffd93d;
  flex:0 0 16px;
}

.lwa-top-icon svg{
  width:16px;
  height:16px;
  display:block;
}


.lwa-top-bar-right{
  display:flex;
  gap:0.6rem;
  align-items:center;
}

.lwa-top-social{
  display:flex;
  gap:0.6rem;
  list-style:none;
  margin:0;
  padding:0;
}

.lwa-top-social a{
  width:28px;
  height:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,0.1);
  border-radius:6px;
  color:#fff;
  text-decoration:none;
  transition:all .25s ease;
  font-size:0.9rem;
  font-weight:800;
}

.lwa-top-social a:hover{
  background:var(--lwa-red);
  transform:translateY(-2px);
}

.lwa-header-actions{
  display:flex;
  align-items:center;
  gap:0.75rem;
}

.lwa-btn-book{
  padding:0.7rem 1.6rem;
  background:linear-gradient(135deg, var(--lwa-red), var(--lwa-amber));
  color:#fff;
  border:none;
  border-radius:10px;
  font-weight:800;
  font-size:0.9rem;
  cursor:pointer;
  transition:all .25s ease;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:0.5rem;
  box-shadow:0 4px 12px rgba(229, 57, 53, 0.22);
  position:relative;
  overflow:hidden;
}

.lwa-btn-book::before{
  content:'';
  position:absolute;
  top:50%;
  left:50%;
  width:0;
  height:0;
  border-radius:50%;
  background:rgba(255, 255, 255, 0.25);
  transform:translate(-50%, -50%);
  transition:width .45s ease, height .45s ease;
}

.lwa-btn-book:hover::before{
  width:280px;
  height:280px;
}

.lwa-btn-book:hover{
  transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(229, 57, 53, 0.28);
}

.skip-link.screen-reader-text{
  position:absolute;
  left:-9999px;
  top:auto;
  width:1px;
  height:1px;
  overflow:hidden;
}

.skip-link.screen-reader-text:focus{
  left:12px;
  top:12px;
  width:auto;
  height:auto;
  padding:10px 14px;
  background:#fff;
  color:#000;
  border:2px solid var(--lwa-green);
  border-radius:12px;
  z-index:100000;
}

:where(a, button, .lwa-pill-btn, .lwa-mobile-menu-btn):focus-visible{
  outline:3px solid var(--lwa-green);
  outline-offset:2px;
}

:where(a, button, .lwa-pill-btn, .lwa-mobile-menu-btn):focus:not(:focus-visible){
  outline:none;
}

.lwa-header{
  background:var(--lwa-surface);
  box-shadow:0 2px 12px rgba(0,0,0,0.08);
  position:sticky;
  top:0;
  z-index:50;
}

/* Keep sticky header below WP admin bar */
body.admin-bar .lwa-header{ top:32px; }
@media (max-width:782px){
  body.admin-bar .lwa-header{ top:46px; }
}

.lwa-header::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:6px;
  background:linear-gradient(90deg, var(--lwa-red) 0%, var(--lwa-amber) 35%, #ffd93d 65%, #51cf66 100%);
}

.lwa-header-inner{
  max-width:var(--lwa-container);
  margin:0 auto;
  padding:1.1rem 2rem 0.9rem;
  display:flex;
  flex-direction:column;
  gap:0.75rem;
}

.lwa-header-top{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto minmax(0, 1fr);
  align-items:center;
  column-gap:2.25rem;
}

.lwa-header-left,
.lwa-header-right{
  display:flex;
  align-items:center;
  gap:0.75rem;
  min-width:0;
}

.lwa-header-left{ justify-content:flex-start; }

.lwa-header-right{
  justify-content:flex-end;
  justify-self:end;
}

.lwa-logo-section{
  display:flex;
  align-items:center;
  justify-content:center;
  justify-self:center;
}

.lwa-logo-link,
.custom-logo-link{
  display:flex;
  align-items:center;
}

.lwa-logo,
.custom-logo{
  height:60px;
  width:auto;
  display:block;
  max-width:min(var(--lwa-logo-max),56vw);
  transition:transform 0.3s ease;
}

.lwa-logo:hover,
.custom-logo:hover{
  transform:scale(1.02);
}

.lwa-desktop-nav{
  display:flex;
  justify-content:center;
  width:100%;
}

.lwa-main-nav{
  display:flex;
  list-style:none;
  gap:0.1rem;
  align-items:center;
  justify-content:center;
  margin:0;
  padding:0;
  flex-wrap:wrap;
}

.lwa-main-nav > li{
  position:relative;
}

.lwa-main-nav > li > a{
  position:relative;
  padding:0.7rem 0.78rem;
  color:var(--lwa-text);
  text-decoration:none;
  font-size:0.95rem;
  font-weight:700;
  letter-spacing:0;
  border-radius:10px;
  transition:all 0.25s ease;
  display:inline-block;
  white-space:nowrap;
}

.lwa-main-nav > li > a::after{
  content:'';
  position:absolute;
  bottom:8px;
  left:50%;
  transform:translateX(-50%) scaleX(0);
  width:60%;
  height:2px;
  background:var(--lwa-amber);
  transition:transform 0.3s ease;
}

.lwa-main-nav > li > a:hover{
  color:var(--lwa-navy);
}

.lwa-main-nav > li > a:hover::after{
  transform:translateX(-50%) scaleX(1);
}

.lwa-main-nav li.current-menu-item > a,
.lwa-main-nav li.current-menu-ancestor > a,
.lwa-main-nav li.current_page_item > a,
.lwa-main-nav li.current_page_ancestor > a{
  background:transparent;
  color:var(--lwa-green);
  font-weight:900;
}

.lwa-main-nav li.current-menu-item > a::after,
.lwa-main-nav li.current-menu-ancestor > a::after,
.lwa-main-nav li.current_page_item > a::after,
.lwa-main-nav li.current_page_ancestor > a::after{
  display:none;
}

/* Dropdowns */
.lwa-main-nav .sub-menu{
  display:block;
  position:absolute;
  top:calc(100% + 10px);
  left:0;
  min-width:220px;
  margin:0;
  padding:10px;
  list-style:none;
  background:var(--lwa-surface);
  border:1px solid var(--lwa-border);
  border-radius:14px;
  box-shadow:0 10px 26px rgba(0,0,0,0.12);
  z-index:99;

  /* hidden by default */
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(-2px);
  transition:opacity 0.15s ease, transform 0.15s ease, visibility 0s linear 0.15s;
}

/* Hover bridge to prevent dropdown closing when moving into submenu */
.lwa-main-nav .sub-menu::before{
  content:"";
  position:absolute;
  left:-12px;
  right:-12px;
  top:-22px;
  height:22px;
  background:transparent;
}

.lwa-main-nav li:hover > .sub-menu,
.lwa-main-nav li:focus-within > .sub-menu{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
  transition:opacity 0.15s ease, transform 0.15s ease, visibility 0s;
}
.lwa-main-nav .sub-menu li a{
  display:block;
  padding:0.65rem 0.85rem;
  border-radius:10px;
  text-decoration:none;
  color:var(--lwa-text);
  font-weight:700;
}

.lwa-main-nav .sub-menu li a:hover{
  background:var(--lwa-border-soft);
  color:var(--lwa-navy);
}

.lwa-main-nav .sub-menu li.current-menu-item > a{
  background:transparent;
  color:var(--lwa-green);
  font-weight:900;
}

/* Mobile menu button */
.lwa-mobile-menu-btn{
  display:none;
  flex-direction:column;
  gap:5px;
  background:transparent;
  border:none;
  cursor:pointer;
  padding:0.5rem;
  border-radius:12px;
}

.lwa-mobile-menu-btn span[aria-hidden="true"]{
  width:26px;
  height:2.5px;
  background:var(--lwa-navy);
  border-radius:2px;
  transition:all 0.3s ease;
}

.lwa-mobile-menu-btn:hover span[aria-hidden="true"]{
  background:var(--lwa-amber);
}

.lwa-mobile-menu-btn.active span:nth-child(1){
  transform:rotate(45deg) translate(6px, 6px);
}

.lwa-mobile-menu-btn.active span:nth-child(2){
  opacity:0;
}

.lwa-mobile-menu-btn.active span:nth-child(3){
  transform:rotate(-45deg) translate(7px, -7px);
}

/* Off-canvas mobile nav */
.lwa-mobile-nav{
  display:none;
  position:fixed;
  top:0;
  right:0;
  width:100%;
  max-width:360px;
  height:100vh;
  background:var(--lwa-surface);
  box-shadow:-4px 0 20px rgba(0,0,0,0.15);
  padding:5rem 2rem 2rem;
  /* IMPORTANT: Don't move the panel off-screen with translateX.
     Some mobile browsers count transformed, fixed elements in the scrollable area
     (especially on longer pages), creating left/right "wiggle".
     We keep it anchored in-viewport and hide it using clip-path instead. */
  -webkit-clip-path:inset(0 0 0 100%);
  clip-path:inset(0 0 0 100%);
  pointer-events:none;
  transition:clip-path 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  will-change:clip-path;
  z-index:999;
  overflow-y:auto;
}

/* Close button (inside off-canvas menu) */
.lwa-mobile-close{
  position:absolute;
  top:16px;
  right:16px;
  width:44px;
  height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:14px;
  border:1px solid rgba(0,0,0,0.12);
  background:#fff;
  cursor:pointer;
  box-shadow:0 8px 22px rgba(0,0,0,0.10);
}

.lwa-mobile-close span{
  font-size:20px;
  line-height:1;
  color:var(--lwa-navy);
}

.lwa-mobile-close:hover span{
  color:var(--lwa-green);
}

/* Mobile menu CTA (Contact us) */
.lwa-mobile-contact-wrap{
  margin:0 0 1.25rem;
}

.lwa-mobile-contact-btn{
  width:100%;
  justify-content:center;
}

.lwa-mobile-contact-icon{
  display:inline-flex;
  width:18px;
  height:18px;
}

.lwa-mobile-contact-icon svg{
  width:18px;
  height:18px;
  display:block;
}

.lwa-mobile-nav.active{
  -webkit-clip-path:inset(0 0 0 0);
  clip-path:inset(0 0 0 0);
  pointer-events:auto;
}

.lwa-mobile-nav-list{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:0.25rem;
  margin:0;
  padding:0;
}

.lwa-mobile-nav-list a{
  padding:0.72rem 1rem;
  color:var(--lwa-text);
  text-decoration:none;
  font-size:0.90rem;
  font-weight:700;
  border-radius:12px;
  transition:all 0.3s ease;
  display:block;
}

.lwa-mobile-nav-list a:hover{
  background:var(--lwa-navy);
  color:#fff;
  transform:translateX(5px);
}

.lwa-mobile-nav-list li.current-menu-item > a,
.lwa-mobile-nav-list li.current-menu-ancestor > a,
.lwa-mobile-nav-list li.current_page_item > a,
.lwa-mobile-nav-list li.current_page_ancestor > a{
  background:transparent;
  color:var(--lwa-green);
  font-weight:900;
}

.lwa-mobile-nav-list .sub-menu{
  list-style:none;
  margin:6px 0 10px 16px;
  padding:0 0 0 10px;
  border-left:2px solid var(--lwa-border);
}

.lwa-mobile-nav-list .sub-menu a{
  font-size:0.84rem;
  padding:0.58rem 0.95rem;
  font-weight:600;
}

/* Overlay */
.lwa-overlay{
  display:none;
  position:fixed;
  top:0;
  left:0;
  right:0;
  bottom:0;
  background:rgba(0, 0, 0, 0.5);
  z-index:998;
  opacity:0;
  transition:opacity 0.3s ease;
}

.lwa-overlay.active{
  display:block;
  opacity:1;
}

/* Mobile header vehicle image — fills the empty right grid column on mobile.
   Pinned to column 3 so the logo (col 1) and burger (col 2) keep their spots. */
.lwa-header-jeep{ display:none; }

@media (max-width:968px){
  .lwa-header-jeep{
    display:flex;
    grid-column:3;
    align-items:center;
    justify-content:flex-end;
    justify-self:end;
    min-width:0;
  }
  .lwa-header-jeep img{
    height:46px;
    width:auto;
    max-width:38vw;
    display:block;
    border-radius:8px;
  }
}

@media (max-width:640px){
  .lwa-header-jeep img{ height:40px; }
}

@media (max-width:968px){
  .lwa-top-bar{ display:none; }
  .lwa-desktop-nav{ display:none; }
  .lwa-header-left{ display:none; }
  .lwa-mobile-menu-btn{ display:flex; }
  .lwa-mobile-nav{ display:block; }

  /* Make the change unmistakable on mobile, even if other CSS is injected/overriding */
  .lwa-mobile-nav-list a{ font-size:0.90rem !important; padding:0.72rem 1rem !important; }
  .lwa-mobile-nav-list .sub-menu a{ font-size:0.84rem !important; padding:0.58rem 0.95rem !important; }
  .lwa-mobile-contact-btn{ font-size:0.88rem !important; }
}

@media (max-width:640px){
  .lwa-header-inner{ padding:1rem 1.25rem 0.8rem; }
  .lwa-logo,
  .custom-logo{ height:50px; }
}

body.lwa-nav-open{ overflow:hidden; }

.container{
  max-width:var(--lwa-container);
  margin:16px auto;
  padding:0 16px;
  flex:1 0 auto;
}

.layout{
  display:grid;
  grid-template-columns:3fr 1fr;
  gap:24px;
  min-width:0;
}

.layout > *{min-width:0;}


@media (max-width:992px){
  .layout{grid-template-columns:1fr}
}

/* =============================================================
   
Blog index/archive layout
   ============================================================= */

.lwa-blog-header{
  margin:0 0 18px;
}

.lwa-blog-header h1{
  margin:0 0 6px;
}

/* Fluid main-heading sizing — page, post and archive titles scale
   smoothly instead of the browser-default static 2em. */
.lwa-blog-header h1,
.lwa-page > h1,
.entry-header h1{
  font-size:clamp(1.9rem, 1.4rem + 2vw, 2.6rem);
  line-height:1.2;
}

.lwa-post-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(320px, 1fr));
  gap:1.5rem;
}

@media (max-width:380px){
  .lwa-post-grid{grid-template-columns:1fr}
}

.lwa-blog-pagination{
  margin-top:1.5rem;
}

.lwa-blog-pagination .nav-links{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:center;
}

.lwa-blog-pagination a,
.lwa-blog-pagination span{
  display:inline-block;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid var(--lwa-border);
  text-decoration:none;
}

.lwa-blog-pagination span.current{
  background:var(--lwa-green);
  border-color:var(--lwa-green);
  color:#fff;
}

.sidebar .widget{
  /* Neutral wrapper – card styling handled by inner .lwa-box */
  background:transparent;
  border:none;
  border-radius:0;
  box-shadow:none;
  padding:0;
  margin-bottom:20px;
}

.sidebar .widget .widget-title,
.sidebar .widget .widgettitle{
  font-size:0.9rem;
  margin-top:0;
  margin-bottom:6px;
  line-height:1.25;
  font-weight:700;
}

.sidebar .widget a{text-decoration:none}
.sidebar figure img,.sidebar img,.sidebar iframe{max-width:100%;height:auto}
.sidebar .widget>:last-child{margin-bottom:0}

/* Sidebar overflow fix: prevent Gutenberg alignwide/alignfull blocks inside widgets from creating horizontal scroll */
.sidebar .alignwide,
.sidebar .alignfull{
  width:100% !important;
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
}

.sidebar *{
  box-sizing:border-box;
  min-width:0;
}

.sidebar svg{max-width:100%;height:auto}

.sidebar a,
.sidebar p,
.sidebar li{
  overflow-wrap:anywhere;
  word-break:break-word;
}

/* Slightly smaller body text throughout the sidebar (headings keep their size) */
.sidebar p,
.sidebar li,
.sidebar .lwa-box,
.sidebar .widget{
  font-size:0.9rem;
}
.sidebar .lwa-muted{
  font-size:0.85rem;
}

/* =============================================================
   MODERN FOOTER
   ============================================================= */

/* Footer needs !important to override late-loaded plugin/WP styles */
.lwa-footer{
  background:linear-gradient(135deg, #2b2d42 0%, #1a1c2e 100%);
  color:#fff;
  position:relative;
  overflow:hidden;
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  min-height:400px;
  margin-top:48px;

  flex:0 0 auto; /* prevent flexbox shrinking on mobile */
}

.lwa-footer::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:4px;
  background:linear-gradient(90deg, var(--lwa-red) 0%, var(--lwa-amber) 35%, #ffd93d 65%, #51cf66 100%);
}

.lwa-footer::after{
  content:'';
  position:absolute;
  top:-100px;
  right:-100px;
  width:400px;
  height:400px;
  background:radial-gradient(circle, rgba(229,57,53,0.12) 0%, transparent 70%);
  border-radius:50%;
  pointer-events:none;
}

.lwa-footer-content{
  max-width:var(--lwa-container);
  margin:0 auto;
  padding:64px 16px 32px;
  position:relative;
  z-index:1;
}

.lwa-footer-top{
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr;
  gap:48px;
  margin-bottom:48px;
  padding-bottom:48px;
  border-bottom:1px solid rgba(255,255,255,0.10);
}

.lwa-footer-brand{
  display:flex;
  flex-direction:column;
  gap:18px;
}

.lwa-footer-logo .custom-logo{
  height:80px;
  width:auto;
  filter:brightness(0) invert(1);
  transition:transform .25s ease;
}

.lwa-footer-logo .custom-logo:hover{ transform:scale(1.04); }

.lwa-footer-logo .custom-logo-link{ display:inline-flex; }

.lwa-footer-logo-text{
  font-weight:800;
  font-size:26px;
  color:#fff;
  text-decoration:none;
}

.lwa-footer-about{
  color:rgba(255,255,255,0.82);
  font-size:0.95rem;
  line-height:1.7;
  max-width:420px;
}

/* Social */
.lwa-footer-social{
  list-style:none;
  display:flex;
  gap:14px;
  margin:6px 0 0;
  padding:0;
}

.lwa-footer-social a,
.lwa-social-icon{
  width:44px;
  height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,0.10);
  border-radius:10px;
  color:#fff;
  text-decoration:none;
  font-size:1.05rem;
  font-weight:800;
  transition:all .25s ease;
  backdrop-filter:blur(10px);
}

.lwa-footer-social a:hover,
.lwa-social-icon:hover{
  background:linear-gradient(135deg, var(--lwa-red), var(--lwa-amber));
  transform:translateY(-3px);
  box-shadow:0 4px 12px rgba(229,57,53,0.35);
}

/* Columns */
.lwa-footer-column h3{
  font-size:1.2rem;
  font-weight:800;
  margin:0 0 18px;
  color:#fff;
  position:relative;
  padding-bottom:12px;
}

.lwa-footer-column h3::after{
  content:'';
  position:absolute;
  bottom:0;
  left:0;
  width:40px;
  height:3px;
  background:linear-gradient(90deg, var(--lwa-red), var(--lwa-amber));
  border-radius:2px;
}

.lwa-footer-links{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:12px;
}

.lwa-footer-links a,
.lwa-footer-link{
  color:rgba(255,255,255,0.82);
  text-decoration:none;
  font-size:0.95rem;
  transition:all .25s ease;
  display:inline-flex;
  align-items:center;
  gap:8px;
}

.lwa-footer-links a::before,
.lwa-footer-link::before{
  content:'→';
  opacity:0;
  transform:translateX(-10px);
  transition:all .25s ease;
}

.lwa-footer-links a:hover,
.lwa-footer-link:hover{
  color:#ffd93d;
  transform:translateX(5px);
}

.lwa-footer-links a:hover::before,
.lwa-footer-link:hover::before{
  opacity:1;
  transform:translateX(0);
}

/* Contact */
.lwa-footer-contact-item{
  display:flex;
  align-items:flex-start;
  gap:14px;
  margin-bottom:18px;
  color:rgba(255,255,255,0.82);
}

.lwa-contact-icon{
  width:40px;
  height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,0.10);
  border-radius:8px;
  font-size:1.1rem;
  flex-shrink:0;
}

.lwa-contact-label{
  font-size:0.8rem;
  color:rgba(255,255,255,0.6);
  margin-bottom:4px;
}

.lwa-contact-value{
  font-size:0.95rem;
  color:#fff;
  font-weight:700;
}

.lwa-contact-value a{ color:#fff; text-decoration:none; }
.lwa-contact-value a:hover{ color:#ffd93d; }

/* Bottom */
.lwa-footer-bottom{
  padding-top:28px;
  border-top:1px solid rgba(255,255,255,0.10);
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:18px;
}

.lwa-footer-copyright{
  color:rgba(255,255,255,0.7);
  font-size:0.9rem;
}

.lwa-footer-legal{
  display:flex;
  gap:28px;
}

.lwa-footer-legal a{
  color:rgba(255,255,255,0.7);
  text-decoration:none;
  font-size:0.9rem;
  transition:color .25s ease;
}

.lwa-footer-legal a:hover{ color:#ffd93d; }

.lwa-footer-certifications{
  display:flex;
  align-items:center;
  gap:14px;
}

.lwa-cert-badge{
  padding:8px 12px;
  background:rgba(255,255,255,0.10);
  border-radius:10px;
  font-size:0.85rem;
  color:rgba(255,255,255,0.92);
  font-weight:700;
  display:flex;
  align-items:center;
  gap:8px;
  backdrop-filter:blur(10px);
}

@media (max-width:1024px){
  .lwa-footer-top{ grid-template-columns:1fr 1fr; gap:40px; }
}

@media (max-width:768px){
  .lwa-footer-content{ padding:48px 16px 28px; }
  .lwa-footer-top{ grid-template-columns:1fr; gap:28px; }
  .lwa-footer-brand{ text-align:center; align-items:center; }
  .lwa-footer-about{ text-align:center; }
  .lwa-footer-column h3::after{ left:50%; transform:translateX(-50%); }
  .lwa-footer-links{ align-items:center; }
  .lwa-footer-contact-item{ flex-direction:column; align-items:center; text-align:center; }
  .lwa-footer-bottom{ flex-direction:column; text-align:center; }
  .lwa-footer-legal{ flex-direction:column; gap:12px; }
  .lwa-footer-certifications{ flex-direction:column; }
}

.entry-content>:last-child{margin-bottom:0}
.entry-content img,
.entry-content video,
.entry-content iframe{max-width:100%;height:auto}

/* ============================================================
   CF7 CARD + PILL STYLES
   ============================================================ */

.lwa-form{
  background:#fff;
  border:1px solid #e9e9e9;
  border-radius:16px;
  box-shadow:0 8px 24px rgba(0,0,0,.06);
  padding:16px;
  margin:0 0 20px;
}

.lwa-form .grid{
  display:grid;
  gap:14px;
  grid-template-columns:1fr 1fr;
}
.lwa-form .grid .full{grid-column:1 / -1}

@media (max-width:700px){
  .lwa-form .grid{grid-template-columns:1fr}
}

.lwa-form .field label{
  display:block;
  font-weight:600;
  margin:0 0 6px;
}

.lwa-form input[type=text],
.lwa-form input[type=email],
.lwa-form input[type=tel],
.lwa-form input[type=date],
.lwa-form textarea{
  width:100%;
  padding:10px 12px;
  border:1px solid #ddd;
  border-radius:10px;
  font:inherit;
  line-height:1.4;
  background:#fff;
}

.lwa-form textarea{resize:vertical}

.lwa-form .actions{margin-top:6px}

.lwa-form .btn-primary{
  padding:10px 14px;
  border-radius:12px;
  border:1px solid #eaeaea;
  background:#fff;
  cursor:pointer;
  font-weight:700;
  transition:all .2s ease;
}

.lwa-form .btn-primary:hover,
.lwa-form .btn-primary:focus{
  border-color:#ccc;
  background:linear-gradient(90deg,var(--lwa-green),#3bb37e);
  color:#fff;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.sent .wpcf7-response-output{
  margin:12px 0 0;
  border-radius:10px;
}

.lwa-form .wpcf7-checkbox .wpcf7-list-item{
  display:inline-block;
  margin:0 10px 8px 0;
}

.lwa-form .wpcf7-checkbox .wpcf7-list-item label{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 14px;
  border:2px solid #ddd;
  border-radius:999px;
  cursor:pointer;
  user-select:none;
  line-height:1.2;
  background:#fff;
  transition:all .2s ease;
}

.lwa-form .wpcf7-checkbox .wpcf7-list-item input[type=checkbox]{
  position:absolute;
  opacity:0;
  width:1px;
  height:1px;
  overflow:hidden;
}

.lwa-form .wpcf7-checkbox .wpcf7-list-item .wpcf7-list-item-label{
  font-weight:500;
  color:#333;
}

.lwa-form .wpcf7-checkbox .wpcf7-list-item label.selected.is-yes{
  border-color:var(--lwa-green);
  box-shadow:0 0 0 3px rgba(42,157,143,.25);
  background:#f6fffa;
}

.lwa-form .wpcf7-checkbox .wpcf7-list-item label.selected.is-yes .wpcf7-list-item-label{
  color:var(--lwa-green);
  font-weight:700;
}

.lwa-form .wpcf7-checkbox .wpcf7-list-item label.selected.is-no{
  border-color:#e53935;
  box-shadow:0 0 0 3px rgba(229,57,53,.25);
  background:#fff6f6;
}

.lwa-form .wpcf7-checkbox .wpcf7-list-item label.selected.is-no .wpcf7-list-item-label{
  color:#e53935;
  font-weight:700;
}

.lwa-form .wpcf7-checkbox .wpcf7-list-item label:hover{border-color:#ccc}

/* ============================================================
   SIDEBAR VISIBILITY HELPERS
   ============================================================ */

body.lwa-sidebar-hide-keep .sidebar{
  visibility:hidden;
  pointer-events:none;
}

body.lwa-sidebar-remove .sidebar{display:none}

body.lwa-sidebar-remove .layout{
  display:block;
}

body.lwa-sidebar-hide-keep .layout,
body.lwa-sidebar-remove .layout{
  max-width:1100px;
  margin-left:auto;
  margin-right:auto;
}

/* ============================================================
   BUTTONS / BOXES / WIDGETS / REVIEWS
   ============================================================ */

.lwa-btn,
.lwa-btn-gradient{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0.6rem 1.4rem;
  border-radius:999px;
  font-weight:600;
  text-decoration:none;
  border:0;
  cursor:pointer;
  font-size:0.95rem;
}

.lwa-btn,
.lwa-btn-gradient{
  background:linear-gradient(135deg,#28a745,#ffc107,#dc3545);
  color:#fff;
}

.lwa-btn:hover,
.lwa-btn-gradient:hover{
  opacity:0.9;
}

.wp-block-button__link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0.6rem 1.4rem;
  border-radius:999px;
  font-weight:600;
  text-decoration:none;
  border:0;
  cursor:pointer;
  font-size:0.95rem;
  background:linear-gradient(135deg,#28a745,#ffc107,#dc3545);
  color:#fff;
}

.wp-block-button__link:hover{
  opacity:0.9;
}

.lwa-box{
  background:#ffffff;
  border-radius:18px;
  padding:20px 22px;
  margin:0 0 20px;

  box-shadow:0 14px 35px rgba(0,0,0,0.08);
  border:1px solid rgba(0,0,0,0.05);
  border-top:4px solid var(--lwa-box-accent, var(--lwa-green));

  position:relative;
  overflow:hidden;
  transition:transform .15s ease-out,
             box-shadow .15s ease-out,
             border-top-color .15s ease-out;
}

.lwa-box + .lwa-box{
  margin-top:16px;
}

.lwa-box h3{
  margin:0 0 8px;
  font-weight:700;
  font-size:1.05rem;
}

.lwa-muted{
  color:var(--lwa-muted);
  font-size:.95rem;
}



/* ===========================================
   LWA card colour variants (lwa-box)
   =========================================== */

/* Amber card */
.lwa-box.lwa-box-amber{ --lwa-box-accent: var(--lwa-amber); --lwa-box-grad-a: rgba(255, 193, 7, .38); --lwa-box-grad-b: rgba(255,255,255,.20); }

/* Red card */
.lwa-box.lwa-box-red{ --lwa-box-accent: var(--lwa-red); --lwa-box-grad-a: rgba(244, 67, 54, .35); --lwa-box-grad-b: rgba(255,255,255,.22); }

/* Explicit green card */
.lwa-box.lwa-box-green{ --lwa-box-accent: var(--lwa-green); --lwa-box-grad-a: rgba(76, 175, 80, .35); --lwa-box-grad-b: rgba(255,255,255,.20); }

/* Facebook reviews – blue top bar */
.lwa-box.lwa-box-facebook{ --lwa-box-accent: #1877f2; --lwa-box-grad-a: rgba(24, 119, 242, .30); --lwa-box-grad-b: rgba(255,255,255,.22); }

/* Google reviews – Google green top bar */
.lwa-box.lwa-box-google{ --lwa-box-accent: #0f9d58; --lwa-box-grad-a: rgba(15, 157, 88, .26); --lwa-box-grad-b: rgba(255,255,255,.22); }

/* Extra palette variants (supports color="blue" and color="lwa-blue" etc.) */
.lwa-box.lwa-box-blue,
.lwa-box.lwa-box-lwa-blue{ --lwa-box-accent: var(--lwa-blue); --lwa-box-grad-a: rgba(37, 99, 235, .28); --lwa-box-grad-b: rgba(255,255,255,.20); }

.lwa-box.lwa-box-sky,
.lwa-box.lwa-box-lwa-sky{ --lwa-box-accent: var(--lwa-sky); --lwa-box-grad-a: rgba(14, 165, 233, .26); --lwa-box-grad-b: rgba(255,255,255,.20); }

.lwa-box.lwa-box-purple,
.lwa-box.lwa-box-lwa-purple{ --lwa-box-accent: var(--lwa-purple); --lwa-box-grad-a: rgba(124, 58, 237, .26); --lwa-box-grad-b: rgba(255,255,255,.20); }

.lwa-box.lwa-box-pink,
.lwa-box.lwa-box-lwa-pink{ --lwa-box-accent: var(--lwa-pink); --lwa-box-grad-a: rgba(236, 72, 153, .24); --lwa-box-grad-b: rgba(255,255,255,.20); }

.lwa-box.lwa-box-teal,
.lwa-box.lwa-box-lwa-teal{ --lwa-box-accent: var(--lwa-teal); --lwa-box-grad-a: rgba(20, 184, 166, .24); --lwa-box-grad-b: rgba(255,255,255,.20); }

.lwa-box.lwa-box-lime,
.lwa-box.lwa-box-lwa-lime{ --lwa-box-accent: var(--lwa-lime); --lwa-box-grad-a: rgba(132, 204, 22, .22); --lwa-box-grad-b: rgba(255,255,255,.20); }

.lwa-box.lwa-box-navy,
.lwa-box.lwa-box-lwa-navy{ --lwa-box-accent: var(--lwa-navy); --lwa-box-grad-a: rgba(15, 23, 42, .22); --lwa-box-grad-b: rgba(255,255,255,.16); }

/* ===========================================
   LWA Sidebar – Modern Cards (sidebar only)
   Works with Sidebar Builder + [lwa_box] + optional inner markup classes.
   =========================================== */

/* Apply card skin only inside common sidebar containers */
.sidebar .lwa-box,
#secondary .lwa-box,
.widget-area .lwa-box,
.lwa-sidebar-builder .lwa-box{
  --lwa-card-radius:16px;
  --lwa-card-shadow:0 4px 16px rgba(0,0,0,0.10);
  --lwa-card-shadow-hover:0 8px 30px rgba(0,0,0,0.12);
  --lwa-card-border:1px solid rgba(0,0,0,0.05);

  background:#fff;
  border:var(--lwa-card-border);
  border-top:none;
  border-radius:var(--lwa-card-radius);
  padding:1.15rem 1.15rem 1.05rem;
  box-shadow:var(--lwa-card-shadow);
  transition:transform .25s ease, box-shadow .25s ease;
}

.sidebar .lwa-box:hover,
#secondary .lwa-box:hover,
.widget-area .lwa-box:hover,
.lwa-sidebar-builder .lwa-box:hover{
  transform:translateY(-4px);
  box-shadow:var(--lwa-card-shadow-hover);
}

/* Advertisement block — matches the sidebar card skin (radius, border,
   shadow, hover). Full border kept on all sides since the ad has no
   coloured top accent like the .lwa-box cards do. */
.sidebar .lwa-sidebar-ad,
#secondary .lwa-sidebar-ad,
.widget-area .lwa-sidebar-ad,
.lwa-sidebar-builder .lwa-sidebar-ad{
  background:#fff;
  border:1px solid rgba(0,0,0,0.05);
  border-radius:16px;
  overflow:hidden;           /* clip full-bleed image to the card radius */
  box-shadow:0 4px 16px rgba(0,0,0,0.10);
  transition:transform .25s ease, box-shadow .25s ease;
  text-align:center;
  margin-bottom:20px;
}

.sidebar .lwa-sidebar-ad:hover,
#secondary .lwa-sidebar-ad:hover,
.widget-area .lwa-sidebar-ad:hover,
.lwa-sidebar-builder .lwa-sidebar-ad:hover{
  transform:translateY(-4px);
  box-shadow:0 8px 30px rgba(0,0,0,0.12);
}

.lwa-sidebar-ad-label{
  font-size:0.65rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  font-weight:700;
  color:#9aa0a6;
  padding:0.6rem 0.75rem 0.5rem;
  margin:0;
}

.lwa-sidebar-ad a{
  display:block;
  line-height:0;
}

.lwa-sidebar-ad img{
  display:block;
  width:100%;
  height:auto;
  margin:0;
}

/* Header row */
.lwa-card-header{
  display:flex;
  align-items:center;
  gap:.75rem;
  margin:0 0 1rem;
}

.lwa-card-icon{
  width:44px;
  height:44px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.35rem;
  /* Solid accent (uses existing lwa-box variant variable) */
  background:var(--lwa-box-accent, var(--lwa-red));
  color:#fff;
  flex:0 0 44px;
}

/* Solid icon colours for special variants */
.lwa-box.lwa-box-facebook .lwa-card-icon{ background:#1877f2; }
.lwa-box.lwa-box-google .lwa-card-icon{ background:#0f9d58; }

.lwa-card-title{
  font-size:1.15rem;
  font-weight:800;
  margin:0;
}

.lwa-card-content{
  color:var(--lwa-muted);
  font-size:.95rem;
}

/* Full-width buttons */
.lwa-btn-primary,
.lwa-btn-secondary{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding:1rem;
  border-radius:12px;
  text-decoration:none;
  font-weight:800;
  line-height:1;
  box-sizing:border-box;
  white-space:nowrap;
}

.lwa-btn-primary{
  /* Solid accent button */
  background:var(--lwa-box-accent, var(--lwa-red));
  color:#fff;
  box-shadow:0 4px 12px rgba(229,57,53,0.25);
}

.lwa-btn-primary:hover{ transform:translateY(-2px); }

.lwa-btn-secondary{
  background:#fff;
  color:#111;
  border:2px solid #111;
  margin-top:.75rem;
}

/* Prices rows */
.lwa-price-item{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:.75rem 0;
  border-bottom:1px solid rgba(0,0,0,0.06);
}
.lwa-price-item:last-child{ border-bottom:none; }

.lwa-price-label{ color:#111; font-weight:600; }
.lwa-price-value{ font-size:1.15rem; font-weight:800; color:var(--lwa-red); }

/* Hours rows */
.lwa-hours{ display:flex; flex-direction:column; gap:.6rem; }
.lwa-hour-item{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:.75rem;
  background:#f8f9fa;
  border-radius:10px;
}
.lwa-hour-day{ font-weight:800; color:#111; }
.lwa-hour-time{ color:var(--lwa-muted); font-size:.92rem; }

/* Areas tags grid */
.lwa-areas-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:.5rem;
}
.lwa-area-tag{
  padding:.5rem .75rem;
  background:#f8f9fa;
  border-radius:10px;
  font-size:.88rem;
  text-align:center;
  transition:transform .2s ease, background .2s ease;
}
.lwa-area-tag:hover{
  /* Solid hover accent */
  background:var(--lwa-box-accent, var(--lwa-green));
  color:#fff;
  transform:translateY(-2px);
}

/* Utility */
.lwa-pill-center{ text-align:center; }


/* Latest posts */
.lwa-latest-posts{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin-top:6px;
}

.lwa-latest-post{
  padding:4px 0;
  border-bottom:1px dashed #eee;
}

.lwa-latest-post:last-child{border-bottom:none}

.lwa-latest-title a{
  text-decoration:none;
  color:inherit;
  font-size:.9rem;
}

.lwa-latest-title a:hover{
  text-decoration:underline;
}

.lwa-latest-meta{
  font-size:.78rem;
  color:#777;
  margin-top:1px;
}

/* ============================================================
   LWA BUTTONS
   ============================================================ */

.lwa-btn,
.lwa-pill-btn,
.lwa-green-btn,
.wp-block-button__link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0.6rem 1.4rem;
  border-radius:999px;
  font-weight:600;
  font-size:0.95rem;
  text-decoration:none !important;
  cursor:pointer;
  background:#fff;
  border:2px solid var(--lwa-cta);
  color:var(--lwa-cta) !important;
  transition:0.15s ease;
}

.lwa-btn:hover,
.lwa-pill-btn:hover,
.lwa-green-btn:hover,
.wp-block-button__link:hover{
  background:var(--lwa-cta-tint);
  box-shadow:0 0 10px rgba(30,126,52,0.25);
  border-color:var(--lwa-cta);
  color:var(--lwa-cta) !important;
}

/* ============================================================
   DOTTED DIVIDER WITH CAR
   ============================================================ */

.lwa-divider-wrap{
  position:relative;
  margin:2rem 0;
}

.lwa-divider-line{
  display:block;
  border-top:2px dotted #ccc;
}

.lwa-divider-car{
  position:absolute;
  top:50%;
  left:50%;
  width:60px;
  height:30px;
  transform:translate(-50%, -50%);
  background:#fff url("/wp-content/uploads/smallcaricon.png") center/contain no-repeat;
}

/* ============================================================
   SCHOOLS PAGE PHOTO GALLERY
   ============================================================ */

.lwa-school-gallery{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1rem;
  margin-top:1.5em;
}

.lwa-school-gallery figure{
  margin:0;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}

.lwa-school-gallery img{
  width:100%;
  aspect-ratio:16/9;
  object-fit:cover;
  border-radius:12px;
}

.lwa-school-gallery figcaption{
  text-align:center;
  font-size:0.9rem;
  color:#555;
  margin-top:0.4em;
}

@media (max-width:768px){
  .lwa-school-gallery{
    grid-template-columns:1fr;
  }
}

/* ============================================================
   "THE CAR" PAGE
   ============================================================ */


.page-slug-the-car .page .entry-content{
  max-width:900px;
  margin:0 auto 3rem;
  overflow-wrap:anywhere;
  word-break:break-word;
}

.page-slug-the-car .entry-content > p:first-of-type,
.page-slug-the-car .entry-content > p:nth-of-type(2){
  font-size:1.05rem;
  line-height:1.8;
}

.page-slug-the-car h2.wp-block-heading{
  font-size:1.6rem;
  margin-top:2.5rem;
  margin-bottom:0.75rem;
}

.page-slug-the-car .entry-content p{
  line-height:1.7;
  margin-bottom:1rem;
}

.page-slug-the-car .entry-content ul.wp-block-list{
  list-style:none;
  padding-left:0;
  margin:0 0 1.5rem;
}

.page-slug-the-car .entry-content ul.wp-block-list li{
  position:relative;
  padding-left:1.6rem;
  margin-bottom:0.35rem;
}

.page-slug-the-car .entry-content ul.wp-block-list li::before{
  content:"✔";
  position:absolute;
  left:0;
  top:0;
  color:var(--lwa-cta);
  font-size:0.9rem;
  line-height:1.5;
}

.page-slug-the-car .lwa-divider-wrap{
  margin:2.5rem 0;
}

.page-slug-the-car .lwa-school-gallery{
  margin-top:1.5rem;
}

.page-slug-the-car .lwa-school-gallery figure{
  background:#fff;
  border-radius:12px;
  padding:0.6rem;
  box-shadow:0 4px 12px rgba(0,0,0,0.05);
}

.page-slug-the-car .lwa-school-gallery figcaption{
  font-size:0.85rem;
  color:#555;
  margin-top:0.35rem;
}

/* CTA button */
.page-slug-the-car .entry-content a.lwa-pill-btn.lwa-green-btn{
  display:inline-flex;
  margin-top:0.5rem;
}

.page-slug-the-car .entry-content h2.wp-block-heading:last-of-type{
  margin-top:2.5rem;
}

.page-slug-the-car .entry-content h2.wp-block-heading:last-of-type,
.page-slug-the-car .entry-content h2.wp-block-heading:last-of-type + p,
.page-slug-the-car .entry-content h2.wp-block-heading:last-of-type + p + p{
  position:relative;
  z-index:1;
}

.page-slug-the-car .entry-content h2.wp-block-heading:last-of-type::before{
  content:"";
  position:absolute;
  inset:-1rem -1.5rem;
  background:linear-gradient(135deg,#f3fff6,#f5f9ff);
  border-radius:18px;
  z-index:-1;
}

@media (max-width:768px){
  .page-slug-the-car .entry-content h2.wp-block-heading:last-of-type::before{
    inset:-1rem 0 !important;
  }
}



/* ============================================================
   LWA — Reusable Card Component (for blog, widgets, etc.)
   ============================================================ */

.lwa-card{
  background:#ffffff;
  border-radius:16px;
  padding:16px 18px;
  box-shadow:0 8px 20px rgba(0,0,0,.06);
  border-top:4px solid #3cb44b;
  position:relative;
  overflow:hidden;
  transition:transform .16s ease-out, box-shadow .16s ease-out, border-top-color .16s ease-out;
}

.lwa-card:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(0,0,0,.08);
  border-top-color:#009a44;
}



/* ============================================================
   LWA — Card thumbnails (blog/archive)
   Keeps featured images consistent (no giant/tall thumbnails)
   ============================================================ */

.lwa-card__thumb{
  display:block;
  width:100%;
  overflow:hidden;
  border-radius:14px;
  aspect-ratio:16/9;
  background:var(--lwa-border-soft);
  margin:0 0 12px;
}

.lwa-card__thumb img,
.lwa-card__img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
/* ============================================
   LWA — Blog/archive card internals
   ============================================ */

/* Post titles inside cards */
.lwa-post-grid article.lwa-card .entry-title,
.lwa-post-grid article.lwa-card h2 {
  font-size: 1.2rem;
  margin: 0 0 0.5rem;
}

.lwa-post-grid article.lwa-card .entry-title a,
.lwa-post-grid article.lwa-card h2 a {
  text-decoration: none;
  color: #111111;
}

.lwa-post-grid article.lwa-card .entry-title a:hover,
.lwa-post-grid article.lwa-card h2 a:hover {
  text-decoration: none;
}

/* Meta line: date, author, categories */
.lwa-post-grid article.lwa-card .entry-meta {
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #777777;
  margin-bottom: 0.75rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
}

/* Categories can be output as plain links OR wrapped in lists.
   Make the pills bullet-proof (no list markers). */
.lwa-post-grid article.lwa-card .entry-meta,
.lwa-post-grid article.lwa-card .entry-meta ul,
.lwa-post-grid article.lwa-card .entry-meta ol {
  list-style: none;
  padding-left: 0;
}

.lwa-post-grid article.lwa-card .entry-meta .cat-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.5rem;
  align-items: center;
}

.lwa-post-grid article.lwa-card .entry-meta .cat-links ul,
.lwa-post-grid article.lwa-card .entry-meta .cat-links ol {
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.5rem;
}

.lwa-post-grid article.lwa-card .entry-meta .cat-links li {
  list-style: none;
  margin: 0;
  padding: 0;
}

.lwa-post-grid article.lwa-card .entry-meta .cat-links li::marker {
  content: "";
}

.lwa-post-grid article.lwa-card .entry-meta .cat-links li:before,
.lwa-post-grid article.lwa-card .entry-meta .cat-links a:before {
  content: none !important;
}

/* Category pill like a soft ribbon */
.lwa-post-grid article.lwa-card .entry-meta .cat-links a,
.lwa-post-grid article.lwa-card .cat-links a {
  display: inline-block;
  padding: 0.15rem 0.6rem;
  border-radius: 999px;
  background: #ffe8c9;       /* soft amber */
  color: #a45a00;
  font-weight: 600;
  text-decoration: none;
}

.lwa-post-grid article.lwa-card .entry-meta .cat-links a:hover,
.lwa-post-grid article.lwa-card .cat-links a:hover {
  background: #ffd7a1;
}

/* Excerpt text inside the card */
.lwa-post-grid article.lwa-card .entry-summary,
.lwa-post-grid article.lwa-card .entry-content {
  font-size: 0.95rem;
  line-height: 1.6;
  color: #333333;
}

.lwa-post-grid article.lwa-card .entry-summary p:last-child,
.lwa-post-grid article.lwa-card .entry-content p:last-child {
  margin-bottom: 1.1rem;
}

/* "Read more" button styled as CTA */
.lwa-post-grid article.lwa-card .more-link,
.lwa-post-grid article.lwa-card a.more-link {
  display: inline-block;
  padding: 0.45rem 1.2rem;
  border-radius: 999px;
  border: 1px solid #3cb44b;
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
  background: #3cb44b;
  color: #ffffff;
  line-height: 1.2;
}

.lwa-post-grid article.lwa-card .more-link:hover,
.lwa-post-grid article.lwa-card a.more-link:hover {
  background: #ffffff;
  color: #2c8e39;
}

/* Little arrow after Read more text */
.lwa-post-grid article.lwa-card .more-link::after,
.lwa-post-grid article.lwa-card a.more-link::after {
  content: " →";
}

/* Mobile tweaks */
@media (max-width: 480px) {
  .lwa-post-grid article.lwa-card .entry-title,
  .lwa-post-grid article.lwa-card h2 {
    font-size: 1.05rem;
  }
}

/* ============================================
   LWA — Single blog post layout (NEW SYSTEM)
   ============================================ */

/* The main article already has .lwa-card via PHP */
.single-post .site-main article.lwa-card {
  margin-bottom: 2rem;
}

/* Space after the title area on single posts */
.single-post .site-main article.lwa-card .entry-header {
  margin-bottom: 1rem;
}

/* Keep meta style consistent on single view */
.single-post .site-main article.lwa-card .entry-meta {
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #777;
  margin-bottom: 0.75rem;
}

/* =======================================================
   LWA – Blog Table of Contents & Takeaways blocks
   ======================================================= */

.lwa-toc {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-left: 4px solid var(--lwa-green);
  border-radius: 14px;
  padding: 18px 22px;
  margin: 1.2rem 0 2rem;
  box-shadow: 0 6px 16px rgba(0,0,0,0.04);
}

.lwa-toc h3 {
  margin: 0 0 0.6rem;
  font-size: 1.15rem;
  font-weight: 700;
  color: #111827;
  letter-spacing: 0.02em;
}

/* Remove default list styling */
.lwa-toc ul {
  margin: 0;
  padding-left: 0;
  list-style: none;
}

/* Numbered items using CSS counter */
.lwa-toc ul {
  counter-reset: section;
}

.lwa-toc li {
  margin: 4px 0;
}

.lwa-toc li a {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  text-decoration: none;
  font-size: 0.97rem;
  color: #065f46;
  font-weight: 600;
  transition: color 0.2s ease;
}

/* Small number bubble before each item */
.lwa-toc li a::before {
  counter-increment: section;
  content: counter(section) ".";
  font-size: 0.78rem;
  opacity: 0.8;
}

/* Hover effect */
.lwa-toc li a:hover {
  color: var(--lwa-green);
}

/* Takeaways box matches the card style */
.lwa-takeaways {
  background: #f9fafb;
  border-radius: 14px;
  padding: 18px 22px;
  margin: 1.2rem 0 2rem;
  border: 1px solid #e5e7eb;
}

.lwa-takeaways h3 {
  margin: 0 0 0.6rem;
  font-size: 1.15rem;
  font-weight: 700;
  color: #111827;
}

/* Takeaways list */
.lwa-takeaways ul {
  margin: 0;
  padding-left: 1.1rem;
}

.lwa-takeaways li {
  margin: 4px 0;
  font-size: 0.97rem;
}

/* Mobile tweaks */
@media (max-width: 600px) {
  .lwa-toc,
  .lwa-takeaways {
    padding: 16px 18px;
  }
}


/* ============================================================
   BREADCRUMBS — v10.2.0
   Visible breadcrumb nav rendered by lwa_breadcrumb() in templates.
   Mirrors the JSON-LD BreadcrumbList for consistency.
   ============================================================ */
.lwa-breadcrumb {
  margin: 0 0 1.25rem;
  font-size: 0.875rem;
  color: var(--lwa-navy);
}
.lwa-breadcrumb ol {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  padding: 0;
  margin: 0;
  gap: 0.4rem;
}
.lwa-breadcrumb li {
  display: inline-flex;
  align-items: center;
}
.lwa-breadcrumb li:not(:last-child)::after {
  content: '›';
  margin-left: 0.5rem;
  opacity: 0.5;
}
.lwa-breadcrumb a {
  color: var(--lwa-navy);
  opacity: 0.75;
  text-decoration: none;
  transition: opacity 0.15s ease;
}
.lwa-breadcrumb a:hover,
.lwa-breadcrumb a:focus {
  opacity: 1;
  text-decoration: underline;
}
.lwa-breadcrumb [aria-current='page'] {
  font-weight: 600;
}


/* ============================================================
   404 PAGE — v10.2.0
   Friendly recovery view rendered by 404.php.
   Body has lwa-sidebar-remove so layout is full-width automatically.
   ============================================================ */
.lwa-404 {
  padding: 1rem 0 3rem;
}
.lwa-404-content {
  max-width: 720px;
  margin: 0 auto;
}
.lwa-404-title {
  font-size: clamp(2rem, 4vw, 2.75rem);
  color: var(--lwa-red);
  margin: 0.5rem 0 0.75rem;
  line-height: 1.15;
}
.lwa-404-intro {
  font-size: 1.1rem;
  line-height: 1.55;
  margin: 0 0 2rem;
}
.lwa-404-links {
  list-style: none;
  padding: 0;
  margin: 0 0 2.5rem;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.5rem 1.25rem;
}
.lwa-404-links li {
  font-size: 1.05rem;
  padding: 0.6rem 0;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}
.lwa-404-links a {
  color: var(--lwa-navy);
  text-decoration: none;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}
.lwa-404-links a:hover,
.lwa-404-links a:focus {
  color: var(--lwa-red);
}
.lwa-404-search-title {
  margin: 2rem 0 0.75rem;
  font-size: 1.25rem;
}
.lwa-404 .search-form,
.lwa-404 #searchform {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 2rem;
}
.lwa-404 .search-form input[type="search"],
.lwa-404 #searchform input[type="text"] {
  flex: 1;
  padding: 0.65rem 0.9rem;
  font-size: 1rem;
  border: 2px solid rgba(15, 23, 42, 0.15);
  border-radius: 8px;
}
.lwa-404 .search-form input[type="submit"],
.lwa-404 #searchform input[type="submit"] {
  padding: 0.65rem 1.25rem;
  background: var(--lwa-red);
  color: #fff;
  border: 0;
  border-radius: 8px;
  font-weight: 700;
  cursor: pointer;
}
.lwa-404-back {
  margin-top: 1.5rem;
  font-size: 0.95rem;
}
.lwa-404-back a {
  color: var(--lwa-navy);
  opacity: 0.75;
  text-decoration: none;
}
.lwa-404-back a:hover {
  opacity: 1;
  text-decoration: underline;
}

/* =============================================================
   Inline SVG icons (replace emoji) — inherit colour via
   currentColor; sized per context.
   ============================================================= */
.lwa-icon{ display:inline-block; vertical-align:middle; flex:none; }
.lwa-btn-book svg{ width:18px; height:18px; }
.lwa-contact-icon svg{ width:20px; height:20px; }
.lwa-cert-badge svg{ width:16px; height:16px; }
.lwa-404-links svg{ width:20px; height:20px; }
.lwa-404-back a{ display:inline-flex; align-items:center; gap:0.4rem; }
.lwa-404-back svg{ width:18px; height:18px; }

/* =============================================================
   Respect the user's reduced-motion preference. Neutralises
   animation/transition easing and smooth scrolling without
   removing layout transforms (centering, ripple positioning).
   ============================================================= */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
    scroll-behavior:auto !important;
  }
}
