/**
 * Home page redesign (index_2.html direction) — BuildX/Landspire industrial style.
 * SCOPED under `.home-v2` so it only affects the front page and never leaks to inner pages.
 * Content is Drupal-managed; this file only styles the markup.
 */
.home-v2{
  --red:#9F1D21;
  --red-dark:#7c1316;
  --red-soft:#faeeee;
  --red-line:#ecc9ca;
  --dark:#12151a;
  --dark-2:#1a1e25;
  --ink:#252a33;
  --muted:#68707e;
  --line:#e7e9ed;
  --soft:#f6f7f9;
  font-family:'Poppins','Segoe UI',system-ui,sans-serif;
  color:var(--ink);
  background:#fff;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
.home-v2 *{margin:0;padding:0;box-sizing:border-box}
.home-v2 h1,.home-v2 h2,.home-v2 h3,.home-v2 h4{font-family:'Oswald','Arial Narrow','Segoe UI',sans-serif;color:var(--dark);line-height:1.15;font-weight:600;letter-spacing:.01em;text-transform:uppercase}
.home-v2 img{max-width:100%;display:block}
.home-v2 a{text-decoration:none;color:inherit}
.home-v2 .i{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.home-v2 .container{width:min(1400px,94%);margin:0 auto;max-width:none}
.home-v2 section{padding:100px 0}

/* labels */
.home-v2 .label{display:inline-flex;align-items:center;gap:14px;font-family:'Poppins','Segoe UI',sans-serif;font-size:.83rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin-bottom:16px}
.home-v2 .label::after{content:"";width:60px;height:1.5px;background:var(--red-line)}
.home-v2 .label.center::before{content:"";width:60px;height:1.5px;background:var(--red-line)}
.home-v2 .h-lg{font-size:clamp(2rem,3.6vw,3rem)}
.home-v2 .split-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:56px;flex-wrap:wrap}
.home-v2 .split-head p{color:var(--muted);max-width:460px;font-size:.95rem}
.home-v2 .center-head{text-align:center;max-width:760px;margin:0 auto 56px}
.home-v2 .center-head p{color:var(--muted);margin-top:14px;font-size:.95rem}

/* buttons */
.home-v2 .btn{display:inline-flex;align-items:center;gap:12px;font-family:'Oswald','Arial Narrow',sans-serif;font-weight:500;font-size:.9rem;letter-spacing:.12em;text-transform:uppercase;padding:16px 32px;transition:.25s;cursor:pointer;border:none}
.home-v2 .btn .i{width:16px;height:16px;transition:.25s}
.home-v2 .btn:hover .i{transform:translateX(5px)}
.home-v2 .btn-red{background:var(--red);color:#fff}
.home-v2 .btn-red:hover{background:var(--dark)}
.home-v2 .btn-dark{background:var(--dark);color:#fff}
.home-v2 .btn-dark:hover{background:var(--red)}
.home-v2 .btn-line{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.4)}
.home-v2 .btn-line:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.home-v2 .txt-link{display:inline-flex;align-items:center;gap:10px;font-family:'Oswald','Arial Narrow',sans-serif;font-weight:500;font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dark);border-bottom:2px solid var(--red);padding-bottom:4px;transition:.25s}
.home-v2 .txt-link .i{width:15px;height:15px}
.home-v2 .txt-link:hover{color:var(--red)}

/* topbar */
.home-v2 .topbar{background:var(--dark);color:#9aa2b1;font-size:.8rem;padding:9px 0}
.home-v2 .topbar .container{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.home-v2 .topbar span{display:inline-flex;align-items:center;gap:8px}
.home-v2 .topbar .i{width:14px;height:14px;color:var(--red)}
.home-v2 .topbar a{color:#fff}
.home-v2 .topbar b{color:#fff;font-weight:500}
.home-v2 .topbar .grp{display:flex;gap:26px;flex-wrap:wrap}

/* header */
/* NB: no backdrop-filter — it clips absolutely-positioned children (the hover
   dropdown / search popup) to the header box. Use a near-opaque background instead. */
.home-v2 header{position:sticky;top:0;z-index:490;background:rgba(255,255,255,.97);border-bottom:1px solid rgba(0,0,0,.06);transition:.3s}
.home-v2 header.scrolled{box-shadow:0 8px 30px rgba(0,0,0,.08)}
/* Inner-page chrome wrappers: display:contents so the wrapper is NOT the sticky
   containing block (header must stick over the whole page), and no white box paints. */
.home-v2.hv2-chrome{display:contents}
/* Height of the sticky header, exposed so sticky page furniture can clear it.
   139px = 110px logo + 2x14px nav padding + 1px border; the logo shrinks at the
   two breakpoints below. --wcsb-toolbar-h mirrors the header's own admin-toolbar
   offsets a few lines down. */
:root{--wcsb-header-h:139px;--wcsb-toolbar-h:0px}
@media(max-width:1120px){:root{--wcsb-header-h:103px}}
@media(max-width:640px){:root{--wcsb-header-h:87px}}
body.toolbar-fixed{--wcsb-toolbar-h:39px}
body.toolbar-horizontal.toolbar-tray-open{--wcsb-toolbar-h:79px}
body.toolbar-vertical.toolbar-tray-open{--wcsb-toolbar-h:39px}
:root{--wcsb-sticky-top:calc(var(--wcsb-header-h) + var(--wcsb-toolbar-h) + 20px)}
/* Logged-in admins: push the sticky header below the Drupal admin toolbar so it
   doesn't slide under it and hide the top of the page. */
body.toolbar-fixed .home-v2 header{top:39px}
body.toolbar-horizontal.toolbar-tray-open .home-v2 header{top:79px}
body.toolbar-vertical.toolbar-tray-open .home-v2 header{top:39px}
.home-v2 .nav{display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:24px}
.home-v2 .logo img{height:110px;width:auto}
.home-v2 header .menu{display:flex;align-items:center;gap:6px;list-style:none}
.home-v2 header .menu>li{position:relative}
.home-v2 header .menu a{font-family:'Poppins','Segoe UI',sans-serif;font-size:18px;font-weight:500;padding:10px 15px;border-radius:999px;color:#2a2e36;transition:.25s;display:block}
.home-v2 header .menu a:hover{color:var(--red);background:var(--red-soft)}
.home-v2 header .menu a.active,.home-v2 header .menu a.is-active{color:var(--red);background:var(--red-soft);font-weight:600}
.home-v2 header .menu .caret{font-size:10px;margin-left:4px;opacity:.6}
.home-v2 header .menu .dropdown{position:absolute;top:calc(100% + 8px);left:0;background:#fff;min-width:220px;border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 50px rgba(18,21,26,.12);padding:6px;opacity:0;visibility:hidden;transform:translateY(10px);transition:.25s;list-style:none}
.home-v2 header .menu li:hover .dropdown{opacity:1;visibility:visible;transform:none}
.home-v2 header .menu .dropdown a{border-radius:10px}
.home-v2 .nav-icons{display:flex;align-items:center;gap:6px}
.home-v2 .icon-btn{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);background:#fff;cursor:pointer;transition:.25s;position:relative;color:#2a2e36}
.home-v2 .icon-btn:hover{border-color:var(--red);background:var(--red-soft);color:var(--red)}
.home-v2 .icon-btn .i{width:18px;height:18px;stroke-width:1.8}
.home-v2 .cart-badge{position:absolute;top:-3px;right:-3px;background:var(--red);color:#fff;font-size:10px;font-weight:600;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-style:normal}
.home-v2 .hamburger{display:none}

/* hero */
.home-v2 .hero{position:relative;margin:14px 14px 0;border-radius:28px;background:var(--dark);overflow:hidden;color:#fff}
.home-v2 .bg-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.5s ease}
.home-v2 .bg-slide.on{opacity:1;animation:hv2kb 7s ease-out forwards}
@keyframes hv2kb{from{transform:scale(1)}to{transform:scale(1.12)}}
.home-v2 .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,21,26,.78) 0%,rgba(18,21,26,.66) 45%,rgba(18,21,26,.85) 100%);z-index:1;pointer-events:none}
.home-v2 .hero-dots{position:absolute;bottom:88px;left:50%;transform:translateX(-50%);z-index:3;display:flex;gap:9px}
.home-v2 .hero-dots span{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.35);cursor:pointer;transition:.3s}
.home-v2 .hero-dots span.on{background:var(--red);width:26px;border-radius:999px}
.home-v2 .hero-inner{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;padding:120px 0 170px;max-width:920px;margin:0 auto}
.home-v2 .hero-pill{display:inline-flex;align-items:center;gap:9px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:999px;color:#f2d5d6;font-size:.83rem;font-weight:600;letter-spacing:.1em;padding:9px 22px;margin-bottom:26px}
.home-v2 .hero-pill::before{content:"";width:8px;height:8px;border-radius:50%;background:#e0575c}
.home-v2 .hero h1{color:#fff;font-size:clamp(2.8rem,5.6vw,4.8rem);font-weight:700;line-height:1.12;margin-bottom:26px;text-shadow:0 4px 30px rgba(0,0,0,.45)}
.home-v2 .hero h1 .mark{color:#fff}
.home-v2 .hero .lead{color:#dfe3ea;font-size:1.1rem;max-width:640px;margin:0 auto 28px;text-shadow:0 2px 16px rgba(0,0,0,.5)}
.home-v2 .hero-checks{list-style:none;display:flex;gap:12px 28px;flex-wrap:wrap;margin-bottom:42px;justify-content:center}
.home-v2 .hero-checks li{display:flex;gap:10px;align-items:center;font-size:.89rem;font-weight:500;color:#eef1f5}
.home-v2 .hero-checks .tick{width:22px;height:22px;border-radius:50%;background:var(--red);display:grid;place-items:center;flex:none}
.home-v2 .hero-checks .tick .i{width:11px;height:11px;stroke-width:3.2}
.home-v2 .hero-actions{display:flex;gap:16px;flex-wrap:wrap;align-items:center;justify-content:center}
.home-v2 .pill-line{display:inline-flex;align-items:center;gap:10px;border:1.5px solid rgba(255,255,255,.4);border-radius:999px;color:#fff;padding:13px 32px;font-weight:600;font-size:.92rem;transition:.25s}
.home-v2 .pill-line:hover{border-color:#fff;background:rgba(255,255,255,.08)}
/* hero checklist rendered from node body <ul> */
.home-v2 .hero-checks-html ul{list-style:none;display:flex;gap:12px 28px;flex-wrap:wrap;margin:0 auto 42px;justify-content:center;padding:0}
.home-v2 .hero-checks-html li{display:flex;gap:10px;align-items:center;font-size:.89rem;font-weight:500;color:#eef1f5}
.home-v2 .hero-checks-html li::before{content:"";width:22px;height:22px;border-radius:50%;background:var(--red);flex:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");background-size:12px;background-repeat:no-repeat;background-position:center}
.home-v2 .hero-checks-html p{display:none}

/* standards strip */
.home-v2 .hero-strip{position:relative;z-index:5;width:min(1400px,94%);margin:-62px auto 0;background:#fff;border-radius:18px;border:1px solid var(--line);box-shadow:0 30px 70px rgba(18,21,26,.14);overflow:hidden}
.home-v2 .hero-strip .strip-inner{display:grid;grid-template-columns:repeat(5,1fr);padding:0;width:100%}
.home-v2 .hero-strip .item{display:flex;align-items:center;gap:14px;padding:24px;border-right:1px solid var(--line);font-family:'Poppins','Segoe UI',sans-serif;font-weight:600;font-size:.86rem;line-height:1.4;color:var(--dark)}
.home-v2 .hero-strip .item:last-child{border-right:none}
.home-v2 .hero-strip .ico{width:44px;height:44px;border-radius:12px;background:var(--red-soft);color:var(--red);display:grid;place-items:center;flex:none}
.home-v2 .hero-strip .ico .i{width:20px;height:20px}
.home-v2 .hero-strip .ico img,.home-v2 .hero-strip .ico svg{width:20px;height:20px}

/* about */
.home-v2 .pill{display:inline-flex;align-items:center;gap:9px;background:var(--red-soft);color:var(--dark);font-size:.85rem;font-weight:600;letter-spacing:.1em;padding:9px 22px;border-radius:999px}
.home-v2 .pill::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--red)}
.home-v2 .about-grid{display:grid;grid-template-columns:1.62fr 1fr;gap:50px;align-items:stretch}
/* Keep the overlapping feat-card above the photo at all times — otherwise the
   reveal transform on .about-photo briefly stacks it over the card on load. */
.home-v2 .about-left{position:relative;z-index:2}
.home-v2 .about-left .pill{margin-bottom:20px}
.home-v2 .about-left h2{text-transform:none;font-weight:600;font-size:clamp(2rem,3.4vw,2.9rem);max-width:640px;margin-bottom:44px}
.home-v2 .about-mid{display:grid;grid-template-columns:.72fr 1.28fr;gap:44px;align-items:start}
.home-v2 .counter b{font-family:'Oswald','Arial Narrow',sans-serif;font-size:clamp(3.4rem,6vw,5rem);font-weight:700;color:var(--red);line-height:1;display:block}
.home-v2 .counter span{color:var(--muted);font-size:.95rem;display:block;margin-top:6px;line-height:1.5}
.home-v2 .btn-pill{display:inline-flex;align-items:center;gap:12px;background:var(--red);color:#fff;border-radius:999px;padding:10px 10px 10px 26px;font-weight:600;font-size:.92rem;margin-top:28px;transition:.25s;border:none;cursor:pointer;font-family:'Poppins','Segoe UI',sans-serif}
.home-v2 .btn-pill .cir{width:38px;height:38px;border-radius:50%;background:#fff;color:var(--red);display:grid;place-items:center;transition:.25s}
.home-v2 .btn-pill .cir .i{width:15px;height:15px;transform:rotate(-45deg)}
.home-v2 .btn-pill:hover{background:var(--dark)}
.home-v2 .btn-pill:hover .cir{transform:rotate(45deg)}
.home-v2 .about-right>p{color:var(--muted);font-size:.97rem;max-width:560px}
.home-v2 .feat-card{background:#f7f4ee;border-radius:18px;padding:30px;display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:28px;position:relative;z-index:2;margin-right:-170px}
.home-v2 .feat{display:flex;gap:16px;align-items:flex-start}
.home-v2 .feat .fi{flex:none;width:52px;height:52px;color:var(--red);position:relative}
.home-v2 .feat .fi .i{width:40px;height:40px;stroke-width:1.4}
.home-v2 .feat .fi::after{content:"";position:absolute;left:6px;bottom:2px;width:14px;height:14px;border-radius:50%;background:var(--red-line);z-index:-1}
.home-v2 .feat h4{text-transform:none;font-size:1.12rem;margin-bottom:6px;font-weight:600}
.home-v2 .feat p{color:var(--muted);font-size:.85rem}
.home-v2 .about-photo{border-radius:20px;overflow:hidden;min-height:500px;background:#eef0f4;position:relative;z-index:1}
.home-v2 .about-photo img{width:100%;height:100%;object-fit:cover}

/* stats band */
.home-v2 .stats{background:var(--dark);padding:0}
.home-v2 .stats .container{display:grid;grid-template-columns:repeat(4,1fr)}
.home-v2 .stat{padding:52px 34px;border-right:1px solid rgba(255,255,255,.08);text-align:center}
.home-v2 .stat:first-child{border-left:1px solid rgba(255,255,255,.08)}
.home-v2 .stat b{font-family:'Oswald','Arial Narrow',sans-serif;font-size:clamp(2.4rem,4vw,3.6rem);font-weight:700;color:var(--red);display:block;line-height:1.1;letter-spacing:.02em}
.home-v2 .stat b em{font-style:normal;color:#fff}
.home-v2 .stat span{color:#9aa2b1;font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;font-family:'Oswald','Arial Narrow',sans-serif}

/* programs */
.home-v2 .sec-head{text-align:center;margin-bottom:56px}
.home-v2 .sec-head .pill{margin-bottom:18px}
.home-v2 .sec-head h2{text-transform:none;font-weight:600;font-size:clamp(2rem,3.4vw,2.9rem)}
.home-v2 .sec-head p{color:var(--muted);margin-top:12px}
.home-v2 .progs-dark{background:#fff;position:relative}
.home-v2 .progs-head{position:relative;display:flex;gap:44px;align-items:flex-end;margin-bottom:56px;flex-wrap:wrap}
.home-v2 .progs-head .pill{margin-bottom:16px}
.home-v2 .progs-head .hwrap{flex:1;min-width:300px}
.home-v2 .progs-head h2{text-transform:none;color:var(--dark);font-weight:600;font-size:clamp(2rem,3.4vw,2.8rem);max-width:820px}
.home-v2 .pnav{display:flex;gap:10px;flex:none;margin-bottom:6px}
.home-v2 .parrow{width:50px;height:50px;border-radius:50%;border:1px solid var(--line);background:#fff;display:grid;place-items:center;cursor:pointer;transition:.25s;color:var(--dark)}
.home-v2 .parrow:hover{background:var(--red);border-color:var(--red);color:#fff}
.home-v2 .parrow .i{width:17px;height:17px}
.home-v2 .parrow.prev .i{transform:rotate(180deg)}
.home-v2 .pviewport{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;padding-bottom:8px}
.home-v2 .pviewport::-webkit-scrollbar{display:none}
.home-v2 .ptrack{display:flex;gap:24px}
.home-v2 .pkard{background:#fff;border:1px solid var(--line);border-radius:20px;padding:12px;display:flex;flex-direction:column;transition:.35s;flex:0 0 calc((100% - 48px)/3);scroll-snap-align:start}
.home-v2 .pkard:hover{transform:translateY(-8px);border-color:var(--red-line)}
.home-v2 .pkard .img{border-radius:14px;overflow:hidden;aspect-ratio:16/10;flex:none}
.home-v2 .pkard img{width:100%;height:100%;object-fit:cover;transition:.5s}
.home-v2 .pkard:hover img{transform:scale(1.06)}
.home-v2 .pkard .body{padding:18px 14px 14px;display:flex;flex-direction:column;flex:1}
.home-v2 .pkard .trow{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}
.home-v2 .pkard h3{text-transform:none;font-size:1.2rem;font-weight:600;line-height:1.3}
.home-v2 .pkard .no{font-family:'Oswald','Arial Narrow',sans-serif;font-weight:600;font-size:1.7rem;color:#d7dae0;line-height:1;flex:none}
.home-v2 .pkard .pdesc{color:var(--muted);font-size:.87rem;flex:1}
.home-v2 .pkard .pm{margin-top:12px;display:flex;gap:7px;align-items:center;font-size:.78rem;color:var(--muted)}
.home-v2 .pkard .pm .i{width:13px;height:13px;color:var(--red);flex:none}
.home-v2 .pkard .pm b{color:var(--dark);font-weight:500}

/* Programs carousel: reshape the existing shared training-card markup into vertical cards (home only). */
.home-v2 .ptrack > *{flex:0 0 calc((100% - 48px)/3);min-width:0;scroll-snap-align:start;max-width:calc((100% - 48px)/3)}
.home-v2 .ptrack .product-row{flex-direction:column;flex-wrap:nowrap;border:1px solid var(--line)!important;border-radius:20px;box-shadow:none!important;margin:0;overflow:hidden;height:100%;background:#fff;transition:.35s}
.home-v2 .ptrack .product-row:hover{transform:translateY(-8px);border-color:var(--red-line)!important}
.home-v2 .ptrack .train-left,.home-v2 .ptrack .train-right{width:100%;max-width:100%;flex:0 0 auto;padding:0}
.home-v2 .ptrack .train-left .image-effect{aspect-ratio:16/10;overflow:hidden}
.home-v2 .ptrack .train-left img{width:100%;height:100%;object-fit:cover;transition:.5s}
.home-v2 .ptrack .product-row:hover .train-left img{transform:scale(1.06)}
.home-v2 .ptrack .train-right{padding:20px 18px 18px;display:flex;flex-direction:column;gap:8px}
.home-v2 .ptrack .train-right h3{text-transform:none;font-size:1.18rem;font-weight:600;line-height:1.3;margin:0}
.home-v2 .ptrack .train-right .pra-wrap{color:var(--muted);font-size:.86rem;margin:0;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.home-v2 .ptrack .date-add{margin:4px 0 0;gap:8px;flex-wrap:nowrap;align-items:flex-start}
.home-v2 .ptrack .date-add span{font-size:.78rem;color:var(--muted);display:flex;align-items:flex-start;gap:7px;padding:0}
.home-v2 .ptrack .date-add svg{margin-top:1px}
.home-v2 .ptrack .date-add svg{width:14px;height:14px;flex:none}
.home-v2 .ptrack .train-providers-list{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.home-v2 .ptrack .train-provider-item{display:flex;align-items:center;gap:7px;font-size:.8rem;color:var(--dark)}
.home-v2 .ptrack .train-provider-item svg{width:14px;height:14px;color:var(--red)}
/* add-to-cart button styled as pill (home) */
.home-v2 .ptrack .button--add-to-cart,.home-v2 .ptrack input[type="submit"],.home-v2 .ptrack .commerce-order-item-add-to-cart-form input.button{background:var(--red);color:#fff;border:none;border-radius:999px;padding:11px 22px;font-family:'Oswald','Arial Narrow',sans-serif;text-transform:uppercase;letter-spacing:.06em;font-size:.82rem;font-weight:600;cursor:pointer;transition:.25s;margin-top:6px}
.home-v2 .ptrack .button--add-to-cart:hover,.home-v2 .ptrack input[type="submit"]:hover{background:var(--dark)}
.home-v2 .ptrack .field--name-quantity,.home-v2 .ptrack .form-item-quantity{display:none}

/* ATP */
.home-v2 .atp{background:var(--dark);margin:14px 14px 0;border-radius:28px;overflow:hidden}
.home-v2 .atp .split-head h2{color:#fff}
.home-v2 .atp .split-head p{color:#9aa2b1}
/* Eyebrow readable on the dark ATP band. */
.home-v2 .atp .label{color:#fff}
.home-v2 .atp .label::after{background:rgba(255,255,255,.4)}
.home-v2 .atp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(480px,100%),1fr));gap:24px}
.home-v2 .atp-card{background:#fff;border-radius:18px;padding:34px;transition:.3s;position:relative;overflow:hidden;border:1px solid transparent;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.home-v2 .atp-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--red);transform:scaleY(0);transform-origin:top;transition:.3s}
.home-v2 .atp-card:hover{transform:translateY(-8px);border-color:var(--red-line);box-shadow:0 40px 80px rgba(159,29,33,.28)}
.home-v2 .atp-card:hover::before{transform:scaleY(1)}
.home-v2 .atp-head{display:flex;align-items:center;gap:16px;padding-bottom:22px;border-bottom:1px solid var(--line);margin-bottom:22px}
.home-v2 .atp-logo{height:58px;max-width:150px;object-fit:contain;flex:none}
.home-v2 .atp-head h3{font-size:1.15rem;line-height:1.3;color:var(--dark)}
.home-v2 .atp-head .who{color:var(--red);font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.home-v2 .atp-badge{margin-left:auto;display:inline-flex;align-items:center;gap:7px;background:var(--red);color:#fff;border-radius:999px;font-family:'Oswald','Arial Narrow',sans-serif;font-size:.68rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;padding:8px 15px;flex:none}
.home-v2 .atp-badge .i{width:12px;height:12px;color:#fff}
.home-v2 .atp-body{display:grid;grid-template-columns:1fr 1fr;gap:20px 18px}
.home-v2 .atp-item{display:flex;gap:13px;align-items:center}
.home-v2 .atp-item .ico{flex:none;width:42px;height:42px;border-radius:12px;background:var(--red);color:#fff;display:grid;place-items:center;transition:.3s}
.home-v2 .atp-item .ico .i{width:17px;height:17px}
.home-v2 .atp-item small{display:block;font-family:'Oswald','Arial Narrow',sans-serif;font-size:.68rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:#9aa2b1}
.home-v2 .atp-item b,.home-v2 .atp-item a{font-weight:500;font-size:15px;color:var(--ink);word-break:break-word;line-height:1.5;display:block}
.home-v2 .atp-item a:hover{color:var(--red)}
.home-v2 .atp-cta{margin-top:44px;display:flex;justify-content:center}
.home-v2 .atp .btn-red:hover{background:#fff;color:var(--red)}

/* FAQ */
.home-v2 .faq{background:var(--dark);padding:0;overflow:hidden;margin:0 14px;border-radius:28px}
.home-v2 .faq-wrap{display:grid;grid-template-columns:.85fr 1.15fr;min-height:560px}
/* Stretch to fill the full column height so the image always reaches the bottom edge
   (no dark gap under it), matching the height of the questions/content column. */
.home-v2 .faq-photo{position:relative;background:#22252d}
/* The image field is wrapped in .image-effect (global: position:relative, no height),
   which collapses to 0 and hides the absolutely-positioned img — make it fill the photo. */
.home-v2 .faq-photo .image-effect{position:absolute;inset:0}
.home-v2 .faq-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.home-v2 .faq-right .pill{margin-bottom:16px;align-self:flex-start}
.home-v2 .faq-right{padding:96px 7vw 96px 64px;display:flex;flex-direction:column;justify-content:center}
.home-v2 .faq-kicker{display:flex;align-items:center;gap:9px;color:#e58e91;font-size:.78rem;font-weight:600;letter-spacing:.28em;text-transform:uppercase;margin-bottom:10px}
.home-v2 .faq-kicker::before{content:"✦";letter-spacing:0}
.home-v2 .faq-right h2{text-transform:none;color:#fff;font-weight:600;font-size:clamp(1.9rem,3.2vw,2.7rem);margin-bottom:34px}
.home-v2 .qgrid{display:grid;grid-template-columns:1fr;gap:14px;align-items:start}
.home-v2 .acc{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:12px;overflow:hidden;transition:.3s}
.home-v2 .acc:hover{border-color:rgba(255,255,255,.25)}
.home-v2 .acc.open{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.25)}
.home-v2 .acc button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:18px 20px;background:none;border:none;cursor:pointer;font-family:'Poppins','Segoe UI',sans-serif;font-weight:600;font-size:.92rem;color:#fff;text-align:left;transition:.3s}
.home-v2 .acc button h3{margin:0;font-family:'Poppins','Segoe UI',sans-serif;font-size:1.18rem;font-weight:600;line-height:1.3;color:inherit;text-transform:none}
.home-v2 .acc .chev{flex:none;width:22px;height:22px;display:grid;place-items:center;color:#aab0bc;transition:.35s}
.home-v2 .acc .chev .i{width:16px;height:16px}
.home-v2 .acc.open .chev{transform:rotate(180deg);color:#e58e91}
.home-v2 .acc .panel{max-height:0;overflow:hidden;transition:max-height .35s ease}
.home-v2 .acc .panel p{padding:0 20px 18px;color:#fff;font-size:.88rem}

/* gallery */
.home-v2 .gallery{background:#fff}
.home-v2 .gal-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:215px;gap:16px}
.home-v2 .gal-grid .gal-item{overflow:hidden;position:relative;background:#e7e9ed;display:block;border-radius:16px}
.home-v2 .gal-grid .gal-item > a{display:block;width:100%;height:100%}
.home-v2 .gal-grid img{width:100%;height:100%;object-fit:cover;transition:.5s;display:block}
.home-v2 .gal-grid .gal-item:hover img{transform:scale(1.08)}
.home-v2 .gal-grid .gal-item::after{content:"";position:absolute;inset:0;background:linear-gradient(190deg,transparent 55%,rgba(18,21,26,.6));opacity:0;transition:.35s;pointer-events:none}
.home-v2 .gal-grid .gal-item:hover::after{opacity:1}
.home-v2 .gal-grid .zoom{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.6);width:52px;height:52px;background:var(--red);color:#fff;display:grid;place-items:center;opacity:0;transition:.35s;z-index:2;pointer-events:none}
.home-v2 .gal-grid .gal-item:hover .zoom{opacity:1;transform:translate(-50%,-50%) scale(1)}

/* blogs */
.home-v2 .blogs-head{text-align:center;margin-bottom:56px}
.home-v2 .blogs-head .pill{margin-bottom:18px}
.home-v2 .blogs-head h2{text-transform:none;font-weight:600;font-size:clamp(2rem,3.4vw,2.9rem)}
.home-v2 .blogs-head p{color:var(--muted);margin-top:12px}
/* Cards flow in a centred row that adapts to however many posts the view returns:
   3 posts sit a third each, 2 posts split the row in half, 1 post stays half-width
   and centred — instead of a fixed 3-column grid leaving empty columns. */
.home-v2 .blog-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:30px}
/* min-width:0 is load-bearing. A flex item's automatic minimum size is its
   min-content width, and for these cards that is the intrinsic width of the
   photo inside — so a post uploaded at 1240px wide took a wider column than
   one uploaded at 650px and the row came out uneven. Zeroing it lets
   flex-basis decide, and every card is the same width whatever the artwork. */
.home-v2 .blog-grid .bcard{flex:1 1 300px;max-width:calc((100% - 30px)/2);min-width:0}
.home-v2 .bcard{display:block;transition:.35s}
.home-v2 .bcard:hover{transform:translateY(-8px)}
.home-v2 .bcard .imgwrap{border-radius:20px;overflow:hidden;position:relative;aspect-ratio:16/11;background:#eef0f4}
.home-v2 .bcard img{width:100%;height:100%;object-fit:cover;transition:.5s}
.home-v2 .bcard:hover img{transform:scale(1.06)}
.home-v2 .bcard .cat{position:absolute;top:16px;left:16px;background:var(--red);color:#fff;font-size:.74rem;font-weight:600;padding:6px 16px;border-radius:999px}
.home-v2 .bcard .bmeta{display:flex;gap:7px;align-items:center;color:var(--muted);font-size:.84rem;margin:18px 0 8px}
.home-v2 .bcard .bmeta .i{width:15px;height:15px;color:var(--red);flex:none}
.home-v2 .bcard .bmeta b{color:var(--red);font-weight:600}
.home-v2 .bcard h3{text-transform:none;font-family:'Poppins','Segoe UI',sans-serif;font-size:1.35rem;font-weight:600;margin-bottom:8px;transition:.25s}
.home-v2 .bcard:hover h3{color:var(--red)}
.home-v2 .bcard p{color:var(--muted);font-size:.9rem}

/* enroll */
.home-v2 .enroll{position:relative;background:var(--dark);overflow:hidden;padding:120px 0;margin:0 14px;border-radius:28px}
.home-v2 .enroll .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.18}
.home-v2 .enroll .wm{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:'Oswald','Arial Narrow',sans-serif;font-weight:700;font-size:clamp(6rem,18vw,15rem);color:rgba(255,255,255,.04);letter-spacing:.05em;white-space:nowrap;text-transform:uppercase;pointer-events:none}
.home-v2 .enroll .container{position:relative;z-index:2;text-align:center}
.home-v2 .enroll .small{font-family:'Oswald','Arial Narrow',sans-serif;color:#c9cfda;font-size:1rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:10px}
.home-v2 .enroll h2{color:#fff;font-size:clamp(2.6rem,6vw,4.6rem);font-weight:700;display:inline-block;border-bottom:3px solid var(--red);padding-bottom:18px;margin-bottom:44px}
.home-v2 .enroll-form{max-width:920px;margin:0 auto;text-align:left}

/* footer */
.home-v2 footer{background:var(--dark);position:relative;padding:0;margin:14px;border-radius:28px;overflow:hidden}
/* Inner pages: breathing room between the last content section and the footer card. */
.home-v2.hv2-chrome footer{margin-top:64px}

/* Inner-page primary / add-to-cart buttons — match the home red button style.
   (Home-page buttons are scoped higher under `.home-v2 .ptrack`, so they win there.)
   `.form-actions` selectors match the specificity of the theme's own .form-actions
   .button rule and load later, so they win. */
.button--primary,
.button--add-to-cart,
.form-actions .button--primary,
.form-actions .button--add-to-cart,
input[type="submit"].button--primary{
  background:#9F1D21;color:#fff;border:none;border-radius:999px;
  padding:13px 30px;font-family:'Oswald','Arial Narrow','Segoe UI',sans-serif;
  font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:.9rem;
  line-height:1.2;cursor:pointer;transition:.25s;box-shadow:none;
}
.button--primary:hover,
.button--add-to-cart:hover,
.form-actions .button--primary:hover,
.form-actions .button--add-to-cart:hover,
input[type="submit"].button--primary:hover{background:#12151a;color:#fff}

/* Training-card date/location meta on inner listing pages (e.g. /trainings): the
   home-scoped icon sizing doesn't reach here, so the SVG renders full-size and looks
   congested. Constrain it and align the row. */
.date-add .ser-date,
.date-add .ser-location,
.date-add span > svg{width:15px;height:15px;flex:none}
.date-add span{display:inline-flex;align-items:center;gap:8px;font-size:.88rem}
.date-add.row{align-items:center;row-gap:6px}
.home-v2 footer .bg{position:absolute;top:0;left:0;right:0;height:100%;object-fit:cover;width:100%;opacity:.12}
.home-v2 .foot-card{position:relative;z-index:2;background:transparent;margin:0 auto;width:min(1400px,94%);padding:70px 0 0}
.home-v2 .foot-top{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.3fr;gap:44px;padding-bottom:50px}
.home-v2 .foot-top h4{color:#fff;font-size:1.05rem;margin-bottom:22px;position:relative;padding-bottom:12px}
.home-v2 .foot-top h4::after{content:"";position:absolute;left:0;bottom:0;width:36px;height:3px;background:var(--red)}
.home-v2 .foot-top ul{list-style:none;display:grid;gap:12px;font-size:.9rem;color:#a9b1c2}
.home-v2 .foot-top ul a{display:inline-flex;align-items:center;gap:10px;transition:.2s}
.home-v2 .foot-top ul a .i{width:14px;height:14px;color:var(--red)}
.home-v2 .foot-top ul a:hover{color:#e58e91;padding-left:4px}
/* Quick Links & Training Programs are Drupal menu blocks (ul.menu) that output no icon —
   add a red arrow marker (like the HTML ic-arrow) instead of a bullet and lighten the text. */
.home-v2 .foot-top .menu,.home-v2 .foot-top .menu li{list-style:none;margin:0;padding:0}
.home-v2 .foot-top .menu{gap:0}
.home-v2 .foot-top .menu li::marker{content:""}
.home-v2 .foot-top .menu a{color:#a9b1c2;font-size:14px;padding:8px 0;border-radius:0;background:none}
.home-v2 .foot-top .menu a::before{content:"";width:14px;height:14px;flex:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239F1D21' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3Cpolyline points='12 5 19 12 12 19'/%3E%3C/svg%3E") center/contain no-repeat}
.home-v2 .foot-top .menu a:hover{color:#e58e91;padding-left:4px;background:none}
.home-v2 .foot-brand img{height:82px;width:auto;margin-bottom:18px;background:#fff;padding:10px 14px;border-radius:12px}
.home-v2 .foot-brand p{font-size:.9rem;color:#a9b1c2;max-width:300px;margin-bottom:20px}
.home-v2 .socials{display:flex;gap:10px}
.home-v2 .socials a{width:42px;height:42px;border-radius:10px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);display:grid;place-items:center;color:#fff;transition:.25s;font-family:'Poppins',sans-serif;font-size:.72rem;letter-spacing:.05em}
.home-v2 .socials a:hover{background:var(--red);border-color:var(--red);color:#fff}
.home-v2 .foot-contact li{display:flex;gap:11px;align-items:flex-start;color:#a9b1c2}
.home-v2 .foot-contact .i{width:16px;height:16px;color:var(--red);margin-top:5px}
.home-v2 .foot-contact a{color:#e6e9ef}
.home-v2 .foot-contact a:hover{color:#e58e91}
.home-v2 .news-form{display:flex;margin-top:18px;border:1px solid var(--line)}
.home-v2 .news-form input{flex:1;background:#fff;border:none;padding:13px 16px;color:var(--ink);font-family:inherit;font-size:.87rem;outline:none}
.home-v2 .news-form button{background:var(--red);color:#fff;border:none;width:50px;cursor:pointer;transition:.25s;display:grid;place-items:center}
.home-v2 .news-form button:hover{background:var(--dark)}
.home-v2 .news-form .i{width:16px;height:16px}
.home-v2 .fmap{width:100%;height:240px;border:0;border-radius:16px;margin:6px 0 34px;filter:grayscale(25%);display:block}
.home-v2 .foot-bottom{border-top:1px solid rgba(255,255,255,.12);padding:22px 0;font-size:.82rem;color:#8a93a5}
.home-v2 .foot-bottom .row{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;align-items:center;margin:0}
.home-v2 .foot-bottom img{height:28px;background:#fff;padding:3px 6px;border-radius:6px;width:auto;display:inline-block;vertical-align:middle}
.home-v2 .foot-bottom .spun{display:flex;align-items:center;gap:10px}

/* ---- flatten Drupal view/row wrappers so cards become direct grid/flex items ---- */
.home-v2 .atp-grid > .views-row,
.home-v2 .gal-grid > .views-row,
.home-v2 .qgrid > .views-row,
.home-v2 .blog-grid .views-element-container,
.home-v2 .blog-grid .view,
.home-v2 .blog-grid .view-content,
.home-v2 .blog-grid > .views-row{display:contents}
.home-v2 .gal-grid .gal-item > a,.home-v2 .gal-grid .gal-item picture{display:block;width:100%;height:100%}
.home-v2 .gal-grid .gal-item img{width:100%;height:100%;object-fit:cover}

/* ---- real Drupal main menu restyled into pill nav ---- */
.home-v2 .hv2-menu .navbar-collapse{display:block!important}
.home-v2 .hv2-menu .navbar-nav{display:flex;align-items:center;gap:2px;list-style:none;margin:0;padding:0}
.home-v2 .hv2-menu .nav-item{list-style:none;position:relative}
.home-v2 .hv2-menu .nav-link{font-family:'Poppins','Segoe UI',sans-serif;font-size:15px;font-weight:500;padding:10px 15px;border-radius:999px;color:#2a2e36;transition:.25s;display:block;text-transform:none;letter-spacing:0}
.home-v2 .hv2-menu .nav-link:hover,.home-v2 .hv2-menu .nav-link.active,.home-v2 .hv2-menu .nav-item.active>.nav-link{color:var(--red);background:var(--red-soft)}
.home-v2 .hv2-menu .dropdown-menu{position:absolute;top:calc(100% + 6px);left:0;background:#fff;min-width:210px;border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 50px rgba(18,21,26,.12);padding:6px;list-style:none;opacity:0;visibility:hidden;transform:translateY(10px);transition:.25s;display:block}
.home-v2 .hv2-menu .nav-item:hover .dropdown-menu{opacity:1;visibility:visible;transform:none}
.home-v2 .hv2-menu .dropdown-item{padding:9px 14px;border-radius:10px;display:block;color:#2a2e36;font-size:.92rem}
.home-v2 .hv2-menu .dropdown-item:hover{background:var(--red-soft);color:var(--red)}

/* ---- header icons (search / account / cart) ---- */
.home-v2 .nav-icons{align-items:center}
.home-v2 .hv2-search{position:relative}
.home-v2 .hv2-search-pop{position:absolute;right:0;top:calc(100% + 10px);background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 50px rgba(18,21,26,.14);padding:12px;min-width:280px;opacity:0;visibility:hidden;transform:translateY(8px);transition:.25s;z-index:60}
.home-v2 .hv2-search:hover .hv2-search-pop,.home-v2 .hv2-search:focus-within .hv2-search-pop{opacity:1;visibility:visible;transform:none}
.home-v2 .hv2-search-pop input[type="text"],.home-v2 .hv2-search-pop input[type="search"]{width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 12px;font-family:inherit}
.home-v2 .hv2-account,.home-v2 .hv2-cart{position:relative;display:flex;align-items:center}
.home-v2 .hv2-cart a,.home-v2 .hv2-account > ul > li > a,.home-v2 .hv2-account a.trigger{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:#2a2e36;transition:.25s;font-size:0}
.home-v2 .hv2-cart a::before{content:"";width:19px;height:19px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'/%3E%3Ccircle cx='20' cy='21' r='1'/%3E%3Cpath d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'/%3E%3Ccircle cx='20' cy='21' r='1'/%3E%3Cpath d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'/%3E%3C/svg%3E") center/contain no-repeat}
.home-v2 .hv2-cart a:hover,.home-v2 .hv2-account a:hover{border-color:var(--red);background:var(--red-soft);color:var(--red)}
.home-v2 .hv2-account ul{list-style:none;display:flex;gap:6px;margin:0;padding:0}
.home-v2 .hv2-account .cart-block__summary,.home-v2 .hv2-cart .cart-block__contents{position:absolute;right:0;top:calc(100% + 10px)}

/* ============ CONTACT PAGE (scoped .contact-v2, inner page) ============ */
.contact-v2{--red:#9F1D21;--dark:#12151a;--line:#e7e9ed;--muted:#68707e;padding:80px 0 90px;background:#fff;font-family:'Poppins','Segoe UI',sans-serif}
.contact-v2 *{box-sizing:border-box}
.contact-v2 .container{width:min(1400px,94%);margin:0 auto}
.contact-v2 .i{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;display:block}
.contact-v2 .contact-head{text-align:center;max-width:720px;margin:0 auto 46px}
.contact-v2 .pill{display:inline-flex;align-items:center;gap:9px;background:#faeeee;color:var(--dark);font-size:.8rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:8px 20px;border-radius:999px;margin-bottom:16px}
.contact-v2 .pill::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--red)}
.contact-v2 .contact-head h2{font-family:'Oswald','Arial Narrow',sans-serif;font-size:clamp(1.9rem,3.4vw,2.7rem);font-weight:600;color:var(--dark);line-height:1.15;margin:0}
.contact-v2 .contact-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:0;align-items:stretch}
/* Get-in-touch info panel (dark) — joins flush with the form card (rounded outer corners only). */
.contact-v2 .contact-info{background:var(--dark);border-radius:22px 0 0 22px;padding:40px 32px;display:flex;flex-direction:column;gap:28px}
.contact-v2 .contact-info .cinfo-title{color:#fff;font-family:'Oswald','Arial Narrow',sans-serif;font-size:1.6rem;font-weight:600;line-height:1.2;margin:0 0 2px}
.contact-v2 .cinfo-card{display:flex;gap:16px;align-items:flex-start}
.contact-v2 .cinfo-card .ico{flex:none;width:50px;height:50px;border-radius:13px;background:var(--red);color:#fff;display:grid;place-items:center}
.contact-v2 .cinfo-card .ct small{display:block;font-family:'Oswald','Arial Narrow',sans-serif;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#9aa2b1;margin-bottom:6px}
.contact-v2 .cinfo-card .ct a,.contact-v2 .cinfo-card .ct .hours{color:#e6e9ef;font-size:.95rem;line-height:1.65;display:block;text-decoration:none}
.contact-v2 .cinfo-card .ct a:hover{color:#e58e91}
.contact-v2 .cinfo-card .ct .hours *{color:#e6e9ef!important;font-size:.95rem}
/* Form card */
.contact-v2 .contact-form-wrap{background:#fff;border:1px solid var(--line);border-left:none;border-radius:0 22px 22px 0;padding:30px 32px;box-shadow:0 30px 70px rgba(18,21,26,.07)}
.contact-v2 .contact-form-wrap h3{font-family:'Oswald','Arial Narrow',sans-serif;font-size:1.4rem;font-weight:600;color:var(--dark);margin:0 0 16px;line-height:1.2}
.contact-v2 .contact-form-wrap label{display:block;font-size:.82rem;font-weight:600;color:var(--dark);margin-bottom:5px}
.contact-v2 .contact-form-wrap .form-item{margin:0 0 12px}
.contact-v2 .contact-form-wrap input[type="text"],
.contact-v2 .contact-form-wrap input[type="email"],
.contact-v2 .contact-form-wrap input[type="tel"],
.contact-v2 .contact-form-wrap textarea,
.contact-v2 .contact-form-wrap select{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 14px;font-family:inherit;font-size:.92rem;color:var(--dark);background:#f8f9fb;transition:.2s;outline:none}
.contact-v2 .contact-form-wrap input:focus,
.contact-v2 .contact-form-wrap textarea:focus{border-color:var(--red);background:#fff;box-shadow:0 0 0 3px rgba(159,29,33,.09)}
.contact-v2 .contact-form-wrap textarea{min-height:92px;resize:vertical}
.contact-v2 .contact-form-wrap .form-actions{margin-top:6px}
/* Submit button — matches the home-page .btn-pill (red rounded pill, Poppins, dark hover). */
.contact-v2 .contact-form-wrap .form-actions input[type="submit"],
.contact-v2 .contact-form-wrap .webform-button--submit,
.contact-v2 .contact-form-wrap .form-actions .button{background:var(--red)!important;color:#fff!important;border:none!important;border-radius:999px!important;padding:14px 36px!important;font-family:'Poppins','Segoe UI',sans-serif!important;font-weight:600!important;letter-spacing:0!important;text-transform:none!important;font-size:.95rem!important;line-height:1.2!important;cursor:pointer;transition:.25s;box-shadow:none!important;white-space:nowrap!important;width:auto!important;max-width:none!important;display:inline-block!important}
.contact-v2 .contact-form-wrap .form-actions input[type="submit"]:hover,
.contact-v2 .contact-form-wrap .webform-button--submit:hover,
.contact-v2 .contact-form-wrap .form-actions .button:hover{background:var(--dark)!important;color:#fff!important}
@media(max-width:900px){
  .contact-v2{padding:56px 0 64px}
  .contact-v2 .contact-grid{grid-template-columns:1fr}
  .contact-v2 .contact-info{padding:32px 26px;border-radius:22px 22px 0 0}
  .contact-v2 .contact-form-wrap{padding:30px 22px;border-radius:0 0 22px 22px;border-left:1px solid var(--line);border-top:none}
}

/* reveal */
.home-v2 .reveal{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s ease}
.home-v2 .reveal.show{opacity:1;transform:none}

/* Inner-page content safeguard: `.animate-section` starts at opacity:0 and is revealed
   by a scroll-observer in main.js. If that JS is halted (e.g. an earlier slider error),
   content would stay invisible — so gently reveal it on load via CSS as a guaranteed
   fallback. The JS `.active` class still applies its own transition when it runs. */
.animate-section{animation:wcsbSafeReveal .7s ease-out .2s forwards}
@keyframes wcsbSafeReveal{to{opacity:1;transform:translate(0,0)}}
.animate-section.active{opacity:1;transform:translate(0,0)}

/* responsive */
@media(max-width:1120px){
  .home-v2 .hero-inner{padding:90px 0 150px}
  .home-v2 .hero-strip .strip-inner{grid-template-columns:1fr 1fr}
  .home-v2 .hero-strip .item{border-bottom:1px solid var(--line)}
  /* Programs carousel cards are `.ptrack > *` (not `.pkard`) — 2 per view on tablet. */
  .home-v2 .pkard,.home-v2 .ptrack > *{flex-basis:calc((100% - 24px)/2)!important;max-width:calc((100% - 24px)/2)!important}
  .home-v2 .logo img{height:74px}
  .home-v2 .feat-card{margin-right:0}
  .home-v2 .about-grid,.home-v2 .about-mid{grid-template-columns:1fr;gap:40px}
  .home-v2 .about-photo{min-height:380px}
  .home-v2 .stats .container{grid-template-columns:1fr 1fr}
  .home-v2 .blog-grid{max-width:720px;margin:0 auto}
  .home-v2 .gal-grid{grid-template-columns:repeat(2,1fr)}
  .home-v2 .foot-top{grid-template-columns:1fr 1fr}
  /* Mobile dropdown menu: positioned under the (sticky) header so it tracks the header
     height automatically instead of a fragile fixed top offset. */
  .home-v2 header .menu{position:absolute;left:0;right:0;top:100%;background:#fff;flex-direction:column;align-items:stretch;padding:16px;gap:2px;border-bottom:1px solid var(--line);box-shadow:0 30px 60px rgba(18,21,26,.15);transform:translateY(-8px);opacity:0;visibility:hidden;transition:.3s;z-index:50;max-height:75vh;overflow:auto}
  .home-v2 header .menu.open{transform:none;opacity:1;visibility:visible;pointer-events:auto}
  /* The closed menu is only *visually* hidden. The `.dropdown` rule below sets
     visibility:visible inside it, which overrides the parent's visibility:hidden, so
     its links stayed hit-testable while being invisible (opacity comes from the
     parent and does not affect hit testing). Sitting under the sticky header at
     z-index 50 and up to 75vh tall, that invisible panel swallowed taps over the
     page content — tapping the PDF reader's page arrows could land on
     "Become An ATP" instead. pointer-events:none takes the whole closed subtree
     out of hit testing without changing anything visual. */
  .home-v2 header .menu:not(.open){pointer-events:none}
  .home-v2 header .menu .dropdown{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;padding-left:14px}
  .home-v2 .faq-wrap{grid-template-columns:1fr}
  .home-v2 .faq-photo{min-height:320px;position:relative}
  .home-v2 .faq-right{padding:64px 6vw}
  .home-v2 .hamburger{display:grid}
}
@media(max-width:640px){
  .home-v2 section{padding:64px 0}
  .home-v2 .hero h1{font-size:clamp(2.4rem,11vw,3.2rem)}
  .home-v2 .hero-strip .strip-inner{grid-template-columns:1fr}
  .home-v2 .stats .container{grid-template-columns:1fr 1fr}
  .home-v2 .stat{padding:34px 20px}
  .home-v2 .atp-body{grid-template-columns:1fr}
  /* Training/programs carousel: one card + a peek so it's readable and clearly scrollable. */
  .home-v2 .pkard,.home-v2 .ptrack > *{flex-basis:86%!important;max-width:86%!important}
  /* About feature card ("Regulatory Aligned" etc.) stacks to a single column. */
  .home-v2 .feat-card{grid-template-columns:1fr;padding:24px;gap:20px}
  .home-v2 .about-mid{gap:28px}
  .home-v2 .logo img{height:58px}
  .home-v2 .blog-grid{max-width:420px}
  .home-v2 .blog-grid .bcard{max-width:100%}
  .home-v2 .atp-badge{display:none}
  .home-v2 .gal-grid{grid-auto-rows:170px}
  .home-v2 .foot-top{grid-template-columns:1fr}
  .home-v2 .foot-card{padding:44px 26px 0}
}
@media(max-width:575px){
  /* Programs carousel: exactly ONE full training card per view (no side peeks);
     swipe/arrows move to the next one. */
  .home-v2 .pkard,.home-v2 .ptrack > *{flex-basis:100%!important;max-width:100%!important;scroll-snap-align:center!important}
  .home-v2 .gal-grid{grid-template-columns:1fr}
}

/* ---------------------------------------------------------------------------
   Training listing cards (#service) — August 2026 fixes
   --------------------------------------------------------------------------- */

/* Date / location row: `.service-section` sets `line-height: 0` (an old
   inline-gap hack). Any text inside it that wraps to a second line therefore
   draws on top of the first — which is what made "23 June, 2026" render as an
   unreadable overlap. Give the row a real line-height; the hack still applies
   to everything else in the section. */
#service .date-add,
#service .date-add span,
#service .date-add time,
#service .date-add .datetime{line-height:1.45}
/* Keep each entry on a single line. `.col-6` capped the date at 50% of the card —
   about 24px short of "23 June, 2026" — so the year dropped to a second line.
   Sizing the spans to their content leaves both comfortably on one line; if a
   longer date or location ever does not fit, the row wraps them onto separate
   lines rather than breaking a value in half. */
#service .date-add > span{flex:0 1 auto;width:auto;max-width:100%;white-space:nowrap;align-items:center}
/* Drop the bootstrap grid gutter on this row (negative row margin + 15px column
   padding). It cancels out to the same left edge as the title above, but frees
   ~30px, which is what lets the date and the location share one line. */
#service .date-add.row{margin-left:0;margin-right:0}
#service .date-add > span{padding-left:0;padding-right:0}

/* Add to cart: the site-wide add-to-cart style is the red pill defined above
   (`.button--add-to-cart`), used on the home page and on every product detail
   page. On this listing it was being smothered by `.service-sec-wrapper
   .form-actions`, which painted its own square red box plus offset corner rules
   via ::before/::after and forced the real button transparent. Strip the wrapper
   back to a plain container so the standard pill shows through. */
#service .train-right > form.commerce-order-item-add-to-cart-form{width:100%}
#service .service-sec-wrapper .form-actions{
	width:auto;
	margin:12px 0 0;
	padding:0;
	background:transparent;
	border:0;
	line-height:normal;
}
#service .service-sec-wrapper .form-actions:hover{background:transparent}
#service .service-sec-wrapper .form-actions::before,
#service .service-sec-wrapper .form-actions::after{content:none}
#service .service-sec-wrapper .form-actions input[type="submit"]{
	width:auto;
	background:#9F1D21;
	color:#fff;
}
#service .service-sec-wrapper .form-actions:hover input[type="submit"]{color:#fff}
#service .service-sec-wrapper .form-actions input[type="submit"]:hover{background:#12151a;color:#fff}

/* Provider detail page: the training cards there all belong to the provider being
   viewed, so repeating "Approved Training Provider" names on every card is noise.
   Done in CSS rather than in the card template because commerce product renders are
   render-cached without a route context — a Twig/preprocess condition would leak
   whichever page happened to warm the cache first. */
#service.provider-trainings-static .train-providers-list{display:none}
