/*
Theme Name: Lincoln-Martí
Theme URI: https://lincolnmarti.com/
Author: ITNRD / Fabbi LLC
Description: Lightweight, builder-free theme for Lincoln-Martí Schools. Native header and footer (English/Spanish via Polylang), full-width pages for the native "lmx" page designs, gallery archives and WooCommerce support. Replaces Hello Elementor + Elementor Pro Theme Builder.
Version: 1.0.12
Requires at least: 6.3
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: lincolnmarti
*/

/* ==========================================================================
   MAINTAINER MAP (Ctrl-F the tags)
   [TOKENS] colors/sizes — same palette as the page designs (lm-native.css)
   [BASE] reset + typography for pages that are NOT native designs
   [HEADER] [TOPBAR] [BRAND] [NAV] [MOBILE-NAV]
   [PAGE] title band + readable content (Spanish pages, cart, checkout…)
   [CARDS] gallery archive grid     [SINGLE] older gallery posts
   [SHOP] uniform store (hero, category pills, cards, product page)   [FOOTER]   [TOC]   [CONSENT] cookie banner
   Native page designs (class "lmx") carry their own CSS inside the page; this file only frames them.
   ========================================================================== */

/* [TOKENS] */
:root{
  --lm-navy:#12263f; --lm-blue:#1b3a6b; --lm-blue-2:#24508f; --lm-red:#c0392b; --lm-red-deep:#a02a1d;
  --lm-amber:#f2a63b; --lm-ground:#f5f8fc; --lm-sky:#eaf2fb; --lm-line:#dfe6f0; --lm-ink:#15202e; --lm-muted:#51627a;
  --lm-font:"Work Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --lm-wrap:1180px; --lm-radius:14px;
}

/* [BASE] */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:16px}
body{margin:0;background:#fff;color:var(--lm-ink);font-family:var(--lm-font);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
img,svg,video{max-width:100%;height:auto}
img{border-style:none}
/* Element defaults kept close to Hello Elementor's reset so the native "lmx" page designs (built on
   top of it) look the same. Theme-specific heading/link colors are scoped to .lm-* areas below. */
a{color:var(--lm-blue-2);text-underline-offset:3px}
h1,h2,h3,h4,h5,h6{margin-block-start:.5rem;margin-block-end:1rem;line-height:1.2;font-weight:500;color:inherit}
p{margin-block-start:0;margin-block-end:.9rem}
.lm-prose a:hover,.lm-card a:hover .lm-card-title{color:var(--lm-red)}
.lm-prose h1,.lm-prose h2,.lm-prose h3,.lm-prose h4,.lm-archive h2,.lm-shop h1,.lm-shop h2{color:var(--lm-navy);font-weight:700;text-wrap:balance}
/* Form fields on theme pages (checkout, account, search). Native pages style their own. */
.lm-prose input[type=text],.lm-prose input[type=email],.lm-prose input[type=tel],.lm-prose input[type=password],.lm-prose input[type=number],.lm-prose input[type=search],.lm-prose input[type=url],.lm-prose select,.lm-prose textarea,
.lm-shop input[type=text],.lm-shop input[type=email],.lm-shop input[type=search],.lm-shop select,.lm-shop textarea,.search-form .search-field{width:100%;padding:.65em .85em;border:1px solid #c8d3e0;border-radius:8px;background:#fff;color:var(--lm-ink);line-height:1.4}
.lm-prose input:focus,.lm-prose select:focus,.lm-prose textarea:focus,.lm-shop input:focus,.lm-shop select:focus{border-color:var(--lm-blue-2);outline:2px solid rgba(36,80,143,.25);outline-offset:0}
.search-form{display:flex;gap:8px;max-width:520px;margin-top:1rem}
.search-form label{flex:1}
.search-form .search-submit{background:var(--lm-navy);color:#fff;border:0;border-radius:8px;padding:.65em 1.1em;font-weight:700;cursor:pointer}
button,input,select,textarea{font:inherit}
:focus-visible{outline:3px solid var(--lm-amber);outline-offset:2px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.lm-container{max-width:var(--lm-wrap);margin:0 auto;padding:0 24px}
.lm-skip{position:absolute;left:12px;top:-60px;z-index:1000;background:var(--lm-navy);color:#fff;padding:10px 16px;border-radius:8px;font-weight:700;text-decoration:none}
.lm-skip:focus{top:12px;color:#fff}
.lm-main{display:block;outline:none}
.lm-ic{flex:none}

/* [HEADER] */
.lm-header{position:relative;z-index:50;background:#fff;box-shadow:0 1px 0 var(--lm-line)}

/* [TOPBAR] */
.lm-topbar{background:var(--lm-blue);color:#fff;font-size:.9rem}
.lm-topbar-in{display:flex;align-items:center;justify-content:center;gap:18px;min-height:44px;flex-wrap:wrap;padding-top:6px;padding-bottom:6px}
.lm-topbar-msg{margin:0;letter-spacing:.08em;text-transform:uppercase;font-size:.82rem}
.lm-topbar-btn{background:var(--lm-red);color:#fff;text-decoration:none;font-weight:700;padding:6px 14px;border-radius:999px;font-size:.82rem}
.lm-topbar-btn:hover{background:var(--lm-red-deep);color:#fff}
.lm-lang{position:absolute;right:24px;display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:4px 14px 4px 8px;border:1px solid rgba(255,255,255,.45);border-radius:999px;background:rgba(255,255,255,.12);color:#fff;text-decoration:none;font-weight:700;font-size:.88rem;line-height:1}
.lm-lang:hover,.lm-lang:focus-visible{background:#fff;color:var(--lm-blue);border-color:#fff}
.lm-lang:focus-visible{outline:3px solid var(--lm-amber);outline-offset:2px}
/* language flag (1.0.9) */
.lm-lang .lm-flag{width:24px;height:16px;flex:none;border-radius:3px;box-shadow:0 0 0 1px rgba(0,0,0,.18)}
.lm-lang span{letter-spacing:.06em;white-space:nowrap}
.lm-topbar{position:relative}

/* [BRAND] */
.lm-brand-in{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:14px;padding-bottom:14px}
.lm-logo{display:block;flex:none}
.lm-logo-img{display:block;width:260px;height:auto}
.lm-brand-info{display:flex;align-items:center;gap:28px}
.lm-info{display:flex;align-items:center;gap:10px;color:var(--lm-ink);text-decoration:none;line-height:1.25}
.lm-info small{display:block;color:var(--lm-muted);font-size:.8rem}
.lm-info b{font-size:.95rem}
.lm-info:hover b{color:var(--lm-red)}
.lm-info-ic{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:var(--lm-sky);color:var(--lm-blue-2)}
.lm-cta{display:inline-flex;align-items:center;justify-content:center;background:var(--lm-red);color:#fff;text-decoration:none;font-weight:700;padding:12px 20px;border-radius:10px;box-shadow:0 8px 18px -10px rgba(192,57,43,.9);white-space:nowrap}
.lm-cta:hover{background:var(--lm-red-deep);color:#fff}
.lm-burger{display:none;align-items:center;gap:8px;background:var(--lm-navy);color:#fff;border:0;border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer}

/* [NAV] desktop */
.lm-nav{border-top:1px solid var(--lm-line)}
.lm-nav-in{display:flex;justify-content:center}
.lm-nav-extra{display:none}
.lm-menu,.lm-menu ul{list-style:none;margin:0;padding:0}
.lm-menu{display:flex;flex-wrap:wrap;justify-content:center}
.lm-menu li{position:relative}
.lm-menu>li{display:flex;align-items:center}
.lm-menu a{display:block;color:var(--lm-ink);text-decoration:none;font-weight:600;font-size:.95rem;padding:14px 12px}
.lm-menu a:hover,.lm-menu .current-menu-item>a,.lm-menu .current-menu-ancestor>a{color:var(--lm-red)}
.lm-sub-toggle{display:inline-grid;place-items:center;width:22px;height:28px;margin-left:-8px;margin-right:4px;padding:0;border:0;background:none;color:var(--lm-muted);cursor:pointer}
.lm-sub-toggle span{width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s}
.lm-menu .sub-menu{position:absolute;left:0;top:100%;min-width:250px;background:#fff;border:1px solid var(--lm-line);border-radius:12px;box-shadow:0 18px 40px -18px rgba(18,38,63,.35);padding:8px;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .15s,transform .15s,visibility .15s;z-index:60}
.lm-menu .sub-menu a{padding:9px 12px;border-radius:8px;font-weight:500}
.lm-menu .sub-menu a:hover{background:var(--lm-ground)}
.lm-menu .sub-menu li{display:flex;align-items:center;flex-wrap:wrap}
.lm-menu .sub-menu li>a{flex:1}
.lm-menu .sub-menu .sub-menu{left:100%;top:-9px}
.lm-menu li:hover>.sub-menu,.lm-menu li:focus-within>.sub-menu,.lm-menu li.is-open>.sub-menu{opacity:1;visibility:visible;transform:none}
.lm-menu li.is-open>.lm-sub-toggle span{transform:rotate(225deg) translateY(-2px)}
.lm-menu>li:last-child>.sub-menu,.lm-menu>li:nth-last-child(2)>.sub-menu{left:auto;right:0}
.lm-menu>li:nth-last-child(-n+2) .sub-menu .sub-menu{left:auto;right:100%}

/* [MOBILE-NAV] */
@media (max-width:1080px){
  .lm-brand-info .lm-info{display:none}
  .lm-burger{display:inline-flex}
  .lm-nav{display:none;border-top:1px solid var(--lm-line);max-height:calc(100vh - 120px);overflow-y:auto}
  .lm-nav.is-open{display:block}
  .lm-nav-in{display:block;padding-top:8px;padding-bottom:18px}
  .lm-menu{display:block}
  .lm-menu>li,.lm-menu .sub-menu li{display:flex;flex-wrap:wrap;align-items:center;border-bottom:1px solid var(--lm-line)}
  .lm-menu li>a{flex:1;padding:14px 4px}
  .lm-sub-toggle{width:44px;height:44px;margin:0}
  .lm-menu .sub-menu,.lm-menu .sub-menu .sub-menu{position:static;display:none;width:100%;min-width:0;border:0;border-radius:0;box-shadow:none;padding:0 0 8px 14px;opacity:1;visibility:visible;transform:none;background:none}
  .lm-menu li:hover>.sub-menu,.lm-menu li:focus-within>.sub-menu{display:none}
  .lm-menu li.is-open>.sub-menu{display:block}
  .lm-menu .sub-menu li{border-bottom:0}
  .lm-menu .sub-menu a{padding:10px 4px}
  .lm-nav-extra{display:flex;flex-direction:column;gap:12px;margin-top:16px}
  .lm-nav-phone{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--lm-navy);text-decoration:none}
}
@media (max-width:700px){
  .lm-logo-img{width:190px}
  .lm-brand-info .lm-cta{display:none}
  .lm-topbar-in{justify-content:flex-start;gap:10px}
  .lm-lang{position:static;margin-left:auto;padding:4px 10px 4px 6px;gap:6px}
}

/* [PAGE] non-native pages: title band + readable content */
.lm-page-head{background:linear-gradient(150deg,var(--lm-navy) 0%,var(--lm-blue) 100%);color:#e9f0fa;padding:48px 0 44px}
.lm-page-title{color:#fff;font-size:clamp(1.9rem,4vw,2.8rem);font-weight:800;letter-spacing:-.02em;margin:0}
.lm-eyebrow{margin:0 0 10px;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--lm-amber)}
.lm-eyebrow a{color:inherit;text-decoration:none}
.lm-meta{margin:10px 0 0;color:#c9d6ea;font-size:.92rem}
.lm-archive-desc{margin-top:12px;max-width:65ch;color:#dfe8f5}
.lm-prose{max-width:860px;padding-top:40px;padding-bottom:64px}
.woocommerce-cart .lm-prose,.woocommerce-checkout .lm-prose,.woocommerce-account .lm-prose{max-width:var(--lm-wrap)}
.lm-prose h2{font-size:1.6rem;margin-top:1.6em}
.lm-prose h3{font-size:1.25rem;margin-top:1.4em}
.lm-prose ul,.lm-prose ol{padding-left:1.3em}
.lm-prose li{margin:.3em 0}
.lm-prose img{border-radius:10px}
.lm-prose table{width:100%;border-collapse:collapse;margin:1.2em 0}
.lm-prose th,.lm-prose td{border:1px solid var(--lm-line);padding:10px;text-align:left}
.lm-prose blockquote{margin:1.4em 0;padding:4px 0 4px 18px;border-left:4px solid var(--lm-amber);color:var(--lm-muted)}
.lm-prose .gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin:1.4em 0}
.lm-prose .gallery-item{margin:0}
.lm-prose .gallery-item img{width:100%;aspect-ratio:4/3;object-fit:cover}
.lm-prose .wp-block-image,.lm-prose figure{margin:1.2em 0}
.lm-prose iframe{max-width:100%}
.lm-prose .aligncenter{display:block;margin-left:auto;margin-right:auto}
.lm-prose .alignleft{float:left;margin:0 18px 12px 0}
.lm-prose .alignright{float:right;margin:0 0 12px 18px}
.lm-prose::after{content:"";display:table;clear:both}
.lm-post-nav{display:flex;justify-content:space-between;gap:20px;padding-bottom:56px;font-weight:600}
.lm-post-nav a{text-decoration:none}

/* [CARDS] gallery archive grid */
.lm-archive>.lm-container{padding-top:40px;padding-bottom:64px}
.lm-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:22px}
.lm-card a{display:flex;flex-direction:column;height:100%;background:#fff;border:1px solid var(--lm-line);border-radius:var(--lm-radius);overflow:hidden;color:var(--lm-ink);text-decoration:none;box-shadow:0 1px 2px rgba(18,38,63,.05),0 12px 30px -14px rgba(18,38,63,.18);transition:transform .2s,box-shadow .2s}
.lm-card a:hover{transform:translateY(-2px);box-shadow:0 1px 2px rgba(18,38,63,.05),0 18px 36px -14px rgba(18,38,63,.28)}
.lm-card-img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--lm-sky)}
.lm-card-body{display:flex;flex-direction:column;gap:6px;padding:16px 18px 18px}
.lm-card-title{font-weight:700;line-height:1.3;color:var(--lm-navy)}
.lm-card time{color:var(--lm-muted);font-size:.88rem}
.nav-links{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:36px}
.nav-links .page-numbers{display:inline-grid;place-items:center;min-width:42px;height:42px;padding:0 12px;border:1px solid var(--lm-line);border-radius:10px;text-decoration:none;font-weight:600;color:var(--lm-ink)}
.nav-links .page-numbers.current{background:var(--lm-navy);border-color:var(--lm-navy);color:#fff}
.lm-empty{color:var(--lm-muted)}
.lm-card-img--empty{display:grid;place-items:center;background:radial-gradient(420px 220px at 85% 0%,rgba(242,166,59,.35),transparent 60%),linear-gradient(150deg,var(--lm-navy),var(--lm-blue-2))}
.lm-card-img--empty span{color:rgba(255,255,255,.9);font-size:2.2rem;font-weight:800;letter-spacing:-.02em}

/* [LEGACY] old Divi posts converted to plain HTML (2026-09-28): toggles, blurbs, CTA boxes, images */
.lm-prose .lm-toggle{border:1px solid var(--lm-line);border-radius:12px;margin:0 0 12px;background:#fff}
.lm-prose .lm-toggle summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px}
.lm-prose .lm-toggle summary::-webkit-details-marker{display:none}
.lm-prose .lm-toggle summary::after{content:"";width:9px;height:9px;border-right:2px solid var(--lm-blue-2);border-bottom:2px solid var(--lm-blue-2);transform:rotate(45deg);transition:transform .2s;flex:none}
.lm-prose .lm-toggle[open] summary::after{transform:rotate(225deg)}
.lm-prose .lm-toggle summary h2,.lm-prose .lm-toggle summary h3,.lm-prose .lm-toggle summary h4{margin:0;font-size:1.1rem}
.lm-prose .lm-toggle-body{padding:0 18px 16px}
.lm-prose .lm-blurb,.lm-prose .lm-cta-box{border:1px solid var(--lm-line);border-radius:12px;padding:18px 20px;margin:0 0 16px;background:var(--lm-ground)}
.lm-prose .lm-blurb h3,.lm-prose .lm-cta-box h3{margin-top:0}
.lm-prose .lm-blurb img{max-width:120px;margin-bottom:10px}
.lm-prose .lm-divi-img{margin:1.2em 0;text-align:center}
.lm-prose .lm-divi-img img{display:inline-block}
.lm-prose .lm-divi-btn{display:inline-block;background:var(--lm-red);color:#fff;text-decoration:none;font-weight:700;padding:10px 18px;border-radius:10px}
.lm-prose .lm-divi-btn:hover{background:var(--lm-red-deep);color:#fff}
.lm-prose .gallery-item a{display:block;border-radius:10px;overflow:hidden}
.lm-prose .gallery-caption{font-size:.85rem;color:var(--lm-muted)}

/* [SHOP] WooCommerce — uniform store (redesigned 1.0.7)
   [STORE-HERO] navy band + tartan texture (the school plaid)   [STORE-CATS] category pills
   [STORE-GRID] product cards   [PDP] product page   [BUTTONS] shared WooCommerce buttons */
.lm-shop{background:var(--lm-ground);padding:0 0 72px}
.lm-shop-single{padding-top:8px}
.lm-shop-main{padding-top:28px}

/* [STORE-HERO] */
.lm-store-hero{position:relative;overflow:hidden;background:var(--lm-navy);color:#fff;padding:40px 0 44px;isolation:isolate}
.lm-store-hero::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.22;background:
  repeating-linear-gradient(90deg,transparent 0 46px,rgba(192,57,43,.9) 46px 58px,transparent 58px 70px,rgba(242,166,59,.55) 70px 72px,transparent 72px 118px),
  repeating-linear-gradient(0deg,transparent 0 46px,rgba(192,57,43,.9) 46px 58px,transparent 58px 70px,rgba(242,166,59,.55) 70px 72px,transparent 72px 118px);
  -webkit-mask-image:linear-gradient(100deg,transparent 35%,#000 85%);mask-image:linear-gradient(100deg,transparent 35%,#000 85%)}
.lm-store-crumbs{font-size:.85rem;color:#b9c7dc;margin:0 0 18px}
.lm-store-crumbs a{color:#fff;text-decoration:none}
.lm-store-crumbs a:hover{text-decoration:underline}
.lm-store-eyebrow{margin:0 0 8px;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--lm-amber)}
.lm-store-hero .lm-store-title{margin:0;max-width:18ch;font-size:clamp(2rem,4.4vw,3.1rem);line-height:1.08;font-weight:800;letter-spacing:-.01em;color:#fff;text-wrap:balance}
.lm-store-lede{margin:14px 0 0;max-width:58ch;font-size:1.08rem;color:#d3deee}
.lm-store-trust{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:24px 0 0;padding:0}
.lm-store-trust li{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);font-size:.92rem;font-weight:600}
.lm-store-trust .lm-sico{color:var(--lm-amber);flex:none}
.lm-store-crumbs-single{color:var(--lm-muted);margin:14px 0 0}
.lm-store-crumbs-single a{color:var(--lm-blue-2)}

/* [STORE-CATS] */
.lm-store-cats{background:#fff;border-bottom:1px solid var(--lm-line)}
.lm-store-cats ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:14px 0}
@media (max-width:860px){.lm-store-cats ul{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:12px 0}.lm-store-cats ul::-webkit-scrollbar{display:none}}
.lm-store-cats a{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 16px;border:1px solid var(--lm-line);border-radius:999px;background:#fff;color:var(--lm-navy);font-weight:600;font-size:.95rem;text-decoration:none;white-space:nowrap}
.lm-store-cats a:hover{border-color:var(--lm-blue-2);color:var(--lm-blue-2)}
.lm-store-cats a[aria-current="page"]{background:var(--lm-navy);border-color:var(--lm-navy);color:#fff}
.lm-store-count{font-size:.78rem;font-weight:700;color:var(--lm-muted);background:var(--lm-ground);border-radius:999px;padding:1px 7px}
.lm-store-cats a[aria-current="page"] .lm-store-count{background:rgba(255,255,255,.18);color:#fff}

/* toolbar: result count + sorting */
.lm-shop-archive .woocommerce-result-count{float:none;display:inline-block;margin:0 0 18px;color:var(--lm-muted);font-size:.92rem}
.lm-shop-archive .woocommerce-ordering{float:right;margin:0 0 18px}
.lm-shop-archive .woocommerce-ordering select{width:auto;min-height:44px;padding:.45em 2.2em .45em .9em;border:1px solid var(--lm-line);border-radius:10px;background-color:#fff;font:inherit;font-size:.92rem;color:var(--lm-ink)}

/* [STORE-GRID] */
.woocommerce ul.products{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:0 0 8px;padding:0;clear:both}
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none}
.woocommerce ul.products li.product,.woocommerce-page ul.products li.product{position:relative;float:none;width:auto!important;margin:0!important;display:flex;flex-direction:column;background:#fff;border:1px solid var(--lm-line);border-radius:18px;padding:12px 12px 16px!important;transition:transform .2s ease}
.woocommerce ul.products li.product::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 18px 40px -22px rgba(18,38,63,.45);opacity:0;transition:opacity .2s ease;pointer-events:none}
.woocommerce ul.products li.product:hover{transform:translateY(-3px)}
.woocommerce ul.products li.product:hover::after{opacity:1}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link{display:flex;flex-direction:column;flex:1;color:inherit;text-decoration:none}
.woocommerce ul.products li.product a img{width:100%;aspect-ratio:1/1;object-fit:contain;background:#f3f6fa;border-radius:12px;padding:10px;margin:0 0 14px}
.lm-card-cat{display:block;padding:0 4px;margin:0 0 4px;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--lm-red)}
.woocommerce ul.products li.product .woocommerce-loop-product__title{padding:0 4px!important;margin:0 0 6px;color:var(--lm-navy);font-size:1.02rem!important;font-weight:700;line-height:1.3}
.woocommerce ul.products li.product .price{display:block;padding:0 4px;margin:0 0 14px;color:var(--lm-ink);font-size:1.05rem;font-weight:700}
.woocommerce ul.products li.product .price del{color:var(--lm-muted);font-weight:500}
.woocommerce ul.products li.product .button{display:flex;align-items:center;justify-content:center;min-height:44px;margin:auto 4px 0!important;background:#fff;color:var(--lm-red);border:1.5px solid var(--lm-red);border-radius:10px;padding:.55em 1em;font-size:.95rem}
.woocommerce ul.products li.product .button:hover,.woocommerce ul.products li.product .button:focus-visible{background:var(--lm-red);color:#fff}
.woocommerce ul.products li.product .added_to_cart{display:block;padding:8px 4px 0;font-size:.9rem;font-weight:600}
.woocommerce nav.woocommerce-pagination ul{border:0}
.woocommerce nav.woocommerce-pagination ul li{border:0;margin:0 3px}
.woocommerce nav.woocommerce-pagination ul li a,.woocommerce nav.woocommerce-pagination ul li span{min-width:44px;min-height:44px;display:grid;place-items:center;border-radius:10px;background:#fff;border:1px solid var(--lm-line)}
.woocommerce nav.woocommerce-pagination ul li span.current{background:var(--lm-navy);color:#fff}

/* [PDP] product page */
.woocommerce div.product{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:28px 48px;align-items:start}
.woocommerce div.product div.images,.woocommerce div.product div.summary,.woocommerce-page div.product div.images,.woocommerce-page div.product div.summary{float:none;width:auto;margin:0}
.woocommerce div.product .woocommerce-tabs,.woocommerce div.product .related,.woocommerce div.product .upsells{grid-column:1/-1}
.woocommerce div.product div.images{background:#fff;border:1px solid var(--lm-line);border-radius:20px;padding:24px}
.woocommerce div.product div.images img{max-height:560px;width:auto;margin:0 auto;border-radius:12px;object-fit:contain}
.woocommerce div.product div.images .flex-control-thumbs{margin-top:14px;display:flex;gap:10px}
.woocommerce div.product div.images .flex-control-thumbs li{width:72px!important;float:none}
.woocommerce div.product div.images .flex-control-thumbs img{border:1px solid var(--lm-line);border-radius:10px;padding:4px;background:#f3f6fa}
.woocommerce div.product div.images .woocommerce-product-gallery__trigger{top:18px;right:18px}
.woocommerce div.product div.summary{background:#fff;border:1px solid var(--lm-line);border-radius:20px;padding:30px 32px}
.lm-pdp-cat{display:inline-block;margin:0 0 8px;font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--lm-red);text-decoration:none}
.lm-pdp-cat:hover{text-decoration:underline}
.woocommerce div.product .product_title{margin:0 0 10px;font-size:clamp(1.8rem,3vw,2.4rem);line-height:1.1;letter-spacing:-.01em}
.woocommerce div.product p.price,.woocommerce div.product span.price{color:var(--lm-red);font-size:1.6rem;font-weight:800;margin:0 0 20px}
.woocommerce div.product form.cart{margin:0 0 22px}
.woocommerce div.product form.cart .variations{margin:0 0 12px;border:0}
.woocommerce div.product form.cart .variations th,.woocommerce div.product form.cart .variations td{display:block;padding:0;text-align:left;line-height:1.4}
.woocommerce div.product form.cart .variations th label{font-size:.9rem;font-weight:700;color:var(--lm-navy)}
.woocommerce div.product form.cart .variations td{padding:8px 0 12px}
.woocommerce div.product form.cart .reset_variations{font-size:.85rem}
.woo-variation-swatches .variable-items-wrapper .variable-item:not(.radio-variable-item){min-width:48px;min-height:44px;height:auto!important;width:auto!important;border-radius:10px!important;box-shadow:0 0 0 1px #c8d3e0!important;background:#fff}
.woo-variation-swatches .variable-items-wrapper .variable-item .variable-item-span{padding:0 12px;font-weight:600;color:var(--lm-ink)}
.woo-variation-swatches .variable-items-wrapper .variable-item:not(.radio-variable-item):hover{box-shadow:0 0 0 2px var(--lm-blue-2)!important}
.woo-variation-swatches .variable-items-wrapper .variable-item:not(.radio-variable-item).selected{background:var(--lm-navy);box-shadow:0 0 0 2px var(--lm-navy)!important}
.woo-variation-swatches .variable-items-wrapper .variable-item.selected .variable-item-span{color:#fff}
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart,.woocommerce div.product form.cart:not(.variations_form){display:flex;flex-wrap:wrap;gap:10px;align-items:stretch}
.woocommerce div.product form.cart div.quantity{float:none;margin:0}
.woocommerce div.product form.cart .quantity .qty{width:4.2em;min-height:52px;height:100%;border:1px solid #c8d3e0;border-radius:10px;font-size:1rem}
.woocommerce div.product form.cart .button{float:none;flex:1;min-height:52px;font-size:1.05rem}
.lm-pdp-trust{list-style:none;margin:0;padding:18px 0 0;border-top:1px solid var(--lm-line);display:grid;gap:10px}
.lm-pdp-trust li{display:flex;gap:10px;align-items:flex-start;font-size:.95rem;color:var(--lm-ink)}
.lm-pdp-trust .lm-sico{color:var(--lm-blue-2);flex:none;margin-top:2px}
.woocommerce div.product .woocommerce-tabs{margin-top:16px}
.woocommerce div.product .woocommerce-tabs ul.tabs{padding:0;margin:0 0 16px;display:flex;gap:8px}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,.woocommerce div.product .woocommerce-tabs ul.tabs li::before,.woocommerce div.product .woocommerce-tabs ul.tabs li::after{display:none}
.woocommerce div.product .woocommerce-tabs ul.tabs li{margin:0;padding:0;border:1px solid var(--lm-line);border-radius:999px;background:#fff}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{padding:10px 18px;color:var(--lm-navy)}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{background:var(--lm-navy);border-color:var(--lm-navy)}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:#fff}
.woocommerce div.product .woocommerce-tabs .panel{background:#fff;border:1px solid var(--lm-line);border-radius:16px;padding:22px 26px}
.woocommerce div.product .woocommerce-tabs .panel>h2:first-child{font-size:1.15rem;margin:0 0 10px}
.woocommerce table.shop_attributes{border:0;margin:0}
.woocommerce table.shop_attributes th,.woocommerce table.shop_attributes td{border:0;padding:8px 0;background:none!important;font-style:normal}
.woocommerce table.shop_attributes th{width:160px;color:var(--lm-navy)}
.woocommerce div.product .related>h2,.woocommerce div.product .upsells>h2{font-size:1.5rem;margin:28px 0 18px}

/* [BUTTONS] shared (cart, checkout, messages) */
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #respond input#submit,.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce-page .wc-block-components-button:not(.is-link){background:var(--lm-red);color:#fff;border-radius:10px;font-weight:700;padding:.8em 1.3em}
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover,.woocommerce-page .wc-block-components-button:not(.is-link):hover{background:var(--lm-red-deep);color:#fff}
.woocommerce a.button.disabled,.woocommerce button.button.disabled,.woocommerce button.button:disabled,.woocommerce button.button:disabled[disabled],.woocommerce button.button.alt.disabled,.woocommerce button.button.alt:disabled,.woocommerce button.button.alt:disabled[disabled],.woocommerce button.button.alt.disabled:hover{background:var(--lm-red);color:#fff;opacity:.45}
.woocommerce .quantity .qty{padding:.55em;border:1px solid var(--lm-line);border-radius:8px}
.woocommerce-message,.woocommerce-info{border-top-color:var(--lm-blue-2);border-radius:12px;background:#fff}
.woocommerce-message::before,.woocommerce-info::before{color:var(--lm-blue-2)}
.woocommerce span.onsale{background:var(--lm-red);min-height:auto;min-width:auto;line-height:1;padding:8px 12px;border-radius:999px;top:18px;left:18px}

@media (max-width:1024px){.woocommerce ul.products{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:860px){
  .woocommerce ul.products{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .woocommerce div.product{grid-template-columns:1fr;gap:20px}
  .woocommerce div.product div.summary{position:static;padding:22px 20px}
  .woocommerce div.product div.images{padding:14px}
  .woocommerce div.product div.images img{max-height:420px}
  .lm-shop-archive .woocommerce-ordering{float:none;display:block}
  .lm-store-hero{padding:28px 0 32px}
  .lm-store-trust li{font-size:.86rem;padding:7px 12px}
}
@media (max-width:420px){.woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:.95rem!important}.woocommerce ul.products li.product .button{font-size:.88rem}}

/* [CONSENT] cookie banner (functions.php [CONSENT], assets/theme.js) */
.lm-cc{position:fixed;left:84px;bottom:18px;z-index:99990;width:min(440px,calc(100vw - 104px));background:#fff;color:var(--lm-ink);border:1px solid var(--lm-line);border-radius:16px;box-shadow:0 22px 50px -18px rgba(18,38,63,.45);padding:18px 20px 16px;font-size:.93rem;line-height:1.5}
.lm-cc[hidden]{display:none}
.lm-cc-t{margin:0 0 4px;font-weight:800;color:var(--lm-navy);font-size:1rem}
.lm-cc-p{margin:0 0 14px;color:var(--lm-muted)}
.lm-cc-p a{color:var(--lm-blue-2);font-weight:600}
.lm-cc-b{display:flex;gap:10px;flex-wrap:wrap}
.lm-cc-btn{flex:1 1 150px;min-height:44px;border-radius:10px;font:inherit;font-weight:700;cursor:pointer;border:1.5px solid var(--lm-navy)}
.lm-cc-no{background:#fff;color:var(--lm-navy)}
.lm-cc-no:hover{background:var(--lm-ground)}
.lm-cc-yes{background:var(--lm-navy);color:#fff}
.lm-cc-yes:hover{background:var(--lm-blue);border-color:var(--lm-blue)}
.lm-cc-btn:focus-visible,.lm-cc-p a:focus-visible{outline:3px solid var(--lm-amber);outline-offset:2px}
.lm-legal .lm-cc-open{color:#fff;text-decoration:none}
.lm-legal .lm-cc-open:hover{text-decoration:underline}
@media (max-width:600px){.lm-cc{left:10px;right:10px;bottom:10px;width:auto;padding:16px}}
@media print{.lm-cc{display:none!important}}

/* [FOOTER] */
.lm-footer{background:var(--lm-ground);border-top:1px solid var(--lm-line);color:var(--lm-ink);font-size:.95rem}
.lm-footer-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr) 1.3fr;gap:36px;padding-top:56px;padding-bottom:44px}
.lm-footer-logo{display:inline-block;margin-bottom:14px}
.lm-footer-logo .lm-logo-img{width:220px}
.lm-footer-brand p{color:var(--lm-muted);max-width:36ch}
.lm-footer-h{font-size:.8rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--lm-red);margin:4px 0 14px}
.lm-footer ul{list-style:none;margin:0;padding:0}
.lm-footer-col li{margin:0 0 9px}
.lm-footer-col a{color:var(--lm-ink);text-decoration:none}
.lm-footer-col a:hover{color:var(--lm-red);text-decoration:underline}
.lm-footer-contact li{display:flex;gap:10px;align-items:flex-start}
.lm-footer-contact .lm-ic{color:var(--lm-blue-2);margin-top:3px;width:18px;height:18px}
.lm-footer .lm-footer-btn{display:inline-block;margin-top:8px;background:var(--lm-navy);color:#fff;text-decoration:none;font-weight:700;padding:10px 18px;border-radius:10px}
.lm-footer .lm-footer-btn:hover{background:var(--lm-blue-2);color:#fff}
.lm-social{display:flex;gap:10px;margin-top:6px!important}
.lm-social a{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#fff;border:1px solid var(--lm-line);color:var(--lm-navy)}
.lm-social a:hover{background:var(--lm-navy);color:#fff}
.lm-footer-bottom{background:var(--lm-navy);color:#c9d6ea;font-size:.88rem}
.lm-footer-bottom-in{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 24px;padding-top:16px;padding-bottom:16px}
.lm-footer-bottom p{margin:0}
.lm-legal{display:flex;flex-wrap:wrap;gap:6px 18px}
.lm-legal a{color:#fff;text-decoration:none}
.lm-legal a:hover{text-decoration:underline;color:#fff}
@media (max-width:1080px){.lm-footer-grid{grid-template-columns:repeat(2,1fr)}.lm-footer-brand{grid-column:1/-1}}
@media (max-width:600px){.lm-footer-grid{grid-template-columns:1fr;gap:28px}}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media print{.lm-header,.lm-footer{display:none}}

/* ---------------------------------------------------------------------------
 * [TOC] "On this page" table of contents on hand-coded (lmx) pages (1.0.6)
 * Markup lives in the page content: <nav class="lmx-toc wp-block-rank-math-toc-block">…
 * ------------------------------------------------------------------------ */
.lmx .lmx-toc{padding:28px 0 0}
.lmx .lmx-toc .lmx-wrap>*{max-width:100%}
.lmx .lmx-toc-t{margin:0 0 10px;font-size:.78rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#5b6b82}
.lmx .lmx-toc ol{margin:0;padding:18px 22px 18px 44px;background:#fff;border:1px solid #dce4f0;border-radius:14px;columns:2 320px;column-gap:40px;counter-reset:none}
.lmx .lmx-toc li{margin:0 0 8px;padding-left:4px;break-inside:avoid;color:#8a97ab;font-size:.9rem;font-weight:700;line-height:1.4}
.lmx .lmx-toc li::marker{color:#8a97ab}
.lmx .lmx-toc a{color:#1b3a6b;font-weight:600;font-size:.97rem;text-decoration:none;border-bottom:1px solid transparent}
.lmx .lmx-toc a:hover,.lmx .lmx-toc a:focus-visible{border-bottom-color:currentColor}
.lmx h2[id^="toc-"],.lmx [id^="toc-"]{scroll-margin-top:24px}
@media (max-width:640px){.lmx .lmx-toc{padding-top:20px}.lmx .lmx-toc ol{padding:14px 16px 14px 36px}.lmx .lmx-toc a{font-size:.93rem}}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}

/* [TOPBAR] phones (1.0.10): keep message, video button and ES/EN on ONE line. */
@media (max-width:480px){
  .lm-topbar-in{flex-wrap:nowrap;gap:8px;padding-left:14px;padding-right:14px}
  .lm-topbar-msg{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.72rem;letter-spacing:.04em}
  .lm-topbar-btn{flex:none;white-space:nowrap;padding:6px 11px;font-size:.76rem}
  .lm-lang{flex:none;min-height:32px;font-size:.8rem}
}
/* very small phones (≤360px): smaller logo so the Menu button stays on screen (1.0.10) */
@media (max-width:360px){.lm-logo-img{width:136px}.lm-topbar-msg{font-size:.68rem}.lm-burger{padding-left:11px;padding-right:11px;gap:6px}}

/* [FINDER-MOBILE] Campus finder on phones/tablets (1.0.11): the list is a scrollable box that shows
   3 schools at a time (height set by theme.js; this is the no-JS fallback). Map stays above it. */
@media (max-width:860px){
  body #lm-locator .lmx-panel{position:relative}
  body #lm-locator .lmx-panel .lmx-list{max-height:min(820px,80vh);overflow-y:auto;-webkit-overflow-scrolling:touch;border-top:1px solid #dfe6f0;border-bottom:1px solid #dfe6f0}
  body #lm-locator .lmx-panel .lmx-list .lmx-count{position:sticky;top:-10px;z-index:2;background:#f5f8fc;margin:-10px -10px 8px;padding:12px 16px 10px;border-bottom:1px solid #dfe6f0}
  body #lm-locator .lmx-panel::after{content:"";position:absolute;left:0;right:0;bottom:0;height:44px;background:linear-gradient(rgba(245,248,252,0),rgba(245,248,252,.96));pointer-events:none;transition:opacity .2s}
  body #lm-locator .lmx-panel.lm-list-end::after{opacity:0}
  /* compact school cards so 3 fit in the box */
  body #lm-locator .lmx-list .lmx-st{padding:10px;gap:10px;margin-bottom:8px}
  body #lm-locator .lmx-list .lmx-th{display:none} /* campus photo hidden on phones: gives the text the full width */
  body #lm-locator .lmx-list .lmx-st h3{font-size:.95rem;margin:0 0 5px}
  body #lm-locator .lmx-list .lmx-st h3 span{display:inline;margin:0 0 0 6px;font-size:.72rem}
  body #lm-locator .lmx-list .lmx-tags{margin:0 0 5px;gap:4px}
  body #lm-locator .lmx-list .lmx-tags li{font-size:.68rem;padding:2px 6px}
  body #lm-locator .lmx-list .lmx-ln{font-size:.8rem;line-height:1.35;margin-bottom:2px;background-size:13px;padding-left:18px}
  body #lm-locator .lmx-list .lmx-ic-tel,body #lm-locator .lmx-list .lmx-ic-clock{display:inline-block;margin-right:12px}
  body #lm-locator .lmx-list .lmx-st-f{margin-top:6px;gap:8px}
  body #lm-locator .lmx-list .lmx-dir{padding:7px 12px;font-size:.8rem}
  body #lm-locator .lmx-list .lmx-acc img,body #lm-locator .lmx-list .lmx-gs{width:26px;height:26px}
}

/* [QUICK-BAR] quick contact bar fixed at the bottom on phones (1.0.12) */
.lm-qbar,.lm-qsheet{display:none}
@media (max-width:860px){
  body.lm-has-qbar{padding-bottom:calc(68px + env(safe-area-inset-bottom))}
  .lm-qbar{position:fixed;left:0;right:0;bottom:0;z-index:9000;display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);border-top:1px solid var(--lm-line);box-shadow:0 -10px 24px -14px rgba(18,38,63,.4)}
  .lm-qbar-btn{display:flex;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:0 6px;border-radius:12px;font-weight:700;font-size:.86rem;line-height:1.1;text-decoration:none;text-align:center;border:1.5px solid var(--lm-navy)}
  .lm-qbar-btn .lm-ic{width:18px;height:18px;flex:none}
  .lm-qbar-call{background:var(--lm-red);border-color:var(--lm-red);color:#fff}
  .lm-qbar-find{background:#fff;color:var(--lm-navy)}
  .lm-qbar-enroll{background:var(--lm-navy);color:#fff}
  .lm-qbar-btn:focus-visible{outline:3px solid var(--lm-amber);outline-offset:2px}
  body:has(#lm-cc:not([hidden])) .lm-qbar,body:has(.lm-burger[aria-expanded="true"]) .lm-qbar,body.lm-typing .lm-qbar{display:none}
  /* keep other floating buttons above the bar */
  body.lm-has-qbar .userway_buttons_wrapper{bottom:calc(78px + env(safe-area-inset-bottom))!important}
  body.lm-has-qbar .grecaptcha-badge{bottom:calc(78px + env(safe-area-inset-bottom))!important}
  /* campus list (city pages with several campuses) */
  .lm-qsheet:not([hidden]){display:block;position:fixed;inset:0;z-index:9500}
  .lm-qsheet-bg{position:absolute;inset:0;background:rgba(18,38,63,.55)}
  .lm-qsheet-box{position:absolute;left:0;right:0;bottom:0;max-height:78vh;overflow-y:auto;background:#fff;border-radius:18px 18px 0 0;padding:14px 16px calc(18px + env(safe-area-inset-bottom))}
  .lm-qsheet-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 8px}
  .lm-qsheet-t{margin:0;font-weight:800;font-size:1.05rem;color:var(--lm-navy)}
  .lm-qsheet-x{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:var(--lm-ground);color:var(--lm-navy);cursor:pointer}
  .lm-qsheet-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
  .lm-qsheet-list a{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:52px;padding:10px 14px;border:1px solid var(--lm-line);border-radius:12px;text-decoration:none;color:var(--lm-ink)}
  .lm-qsheet-n{font-weight:600;font-size:.92rem}
  .lm-qsheet-p{flex:none;font-weight:800;color:var(--lm-red);font-size:.92rem}
  body.lm-qsheet-open{overflow:hidden}
  body.lm-qsheet-open .userway_buttons_wrapper{display:none!important}
}
@media print{.lm-qbar,.lm-qsheet{display:none!important}}
