/* Shared site theme (by Astra) for the training and shop pages. Shop-only pieces live in shop.css. */
body:is(.page-training,.page-shop,.page-home) {
  --ink: #242521;
  --dark: #191b19;
  --cream: #f6f3ec;
  --gold: #876536;
  --muted: #60625b;
  --line: #d9d3c7;
  background: var(--cream);
  color: var(--ink);
  font-family: Barlow, Arial, sans-serif;
  line-height: 1.6;
}
body:is(.page-training,.page-shop,.page-home) :is(h1,h2,h3) { font-family: Barlow, Arial, sans-serif; }
body:is(.page-training,.page-shop,.page-home) :is(h1,h2) { font-weight:700; letter-spacing:-.035em; line-height:1.06; }
body:is(.page-training,.page-shop,.page-home) h1 { font-size:clamp(42px,4.3vw,64px); }
body:is(.page-training,.page-shop,.page-home) h2 { font-size:clamp(30px,3vw,44px); }
body:is(.page-training,.page-shop,.page-home) header { padding:19px 5%; min-height:105px; background:var(--dark); }
body:is(.page-training,.page-shop,.page-home) header nav { gap:22px; font-size:11px; letter-spacing:1px; }
body:is(.page-training,.page-shop,.page-home) header .brand { width:235px; height:69px; }
body:is(.page-training,.page-shop,.page-home) header nav a[aria-current=page] { border-bottom-color:#c7a873; }
body:is(.page-training,.page-shop,.page-home) :is(button,a,input,select,textarea,summary):focus-visible {
  outline:3px solid #a77c3d;
  outline-offset:4px;
  box-shadow:0 0 0 2px #fff;
}
body:is(.page-training,.page-shop,.page-home) :is(.button,.button.small) {
  min-height:48px; padding:13px 22px; background:#806032; border-color:#806032;
  font-size:14px; border-radius:4px; font-weight:600; color:#fff;
}
body:is(.page-training,.page-shop,.page-home) .button:hover { background:#664b27; border-color:#664b27; }
body:is(.page-training,.page-shop,.page-home) .text-link { font-size:14px; min-height:44px; }
body:is(.page-training,.page-shop,.page-home) .hero { min-height:510px; grid-template-columns:1.12fr 1fr; border-bottom:1px solid var(--line); }
body:is(.page-training,.page-shop,.page-home) .hero-copy { padding:52px 6% 40px 9%; }
body:is(.page-training,.page-shop,.page-home) .hero-credentials { gap:8px 18px; margin-bottom:25px; }
body:is(.page-training,.page-shop,.page-home) .hero-credentials .eyebrow { font-size:10px; color:#60625b; }
body:is(.page-training,.page-shop,.page-home) .lead { font-size:18px; max-width:460px; line-height:1.65; margin-bottom:26px; }
body:is(.page-training,.page-shop,.page-home) .hero-note { font-size:10px; letter-spacing:1.35px; margin-top:25px; color:#60625b; }
body:is(.page-training,.page-shop,.page-home) .hero-art { background:radial-gradient(ellipse at 50% 44%,#33352e 0%,#20231f 60%,#191b19 100%); padding:40px 25px 85px; }
body:is(.page-training,.page-shop,.page-home) .shield-frame { width:235px; }
body:is(.page-training,.page-shop,.page-home) .ring { width:350px; height:350px; }
body:is(.page-training,.page-shop,.page-home) .hero-art-label { color:#d4c19f; }
body:is(.page-training,.page-shop,.page-home) .hero-art-label small { color:#b8bdb2; }
body:is(.page-training,.page-shop,.page-home) .trust { background:#ede8dd; padding:27px 5%; border-bottom:1px solid var(--line); }
body:is(.page-training,.page-shop,.page-home) .trust>div { padding:5px 24px; border-color:#cfc5b3; align-items:center; }
body:is(.page-training,.page-shop,.page-home) .trust>div:first-child { padding-left:0; }
body:is(.page-training,.page-shop,.page-home) .trust .trust-number { border-radius:4px; background:transparent; border-color:#b9a682; font-family:Barlow,Arial,sans-serif; font-size:16px; font-weight:600; }
body:is(.page-training,.page-shop,.page-home) .trust strong { font-size:16px; }
body:is(.page-training,.page-shop,.page-home) .trust p { font-size:14px; }
body:is(.page-training,.page-shop,.page-home) .section { padding:64px 5%; }
body:is(.page-training,.page-shop,.page-home) .section-heading { margin-bottom:30px; gap:25px; }
body:is(.page-training,.page-shop,.page-home) .section-heading .eyebrow { margin-bottom:12px; }
body:is(.page-training,.page-shop,.page-home) .eyebrow { color:var(--gold); letter-spacing:1.7px; }
body:is(.page-training,.page-shop,.page-home) .class-guide { background:#eee8dc; border:0; border-left:3px solid #a68858; border-radius:0 6px 6px 0; padding:25px 28px; gap:35px; }
body:is(.page-training,.page-shop,.page-home) .class-guide h3 { font-size:23px; line-height:1.25; }
body:is(.page-training,.page-shop,.page-home) .class-guide p:not(.eyebrow) { font-size:14px; }
body:is(.page-training,.page-shop,.page-home) .guide-actions button { min-height:46px; border-color:#c6b99f; font-size:14px; background:#fffdf8; border-radius:4px; }
body:is(.page-training,.page-shop,.page-home) .catalog-layout { grid-template-columns:210px minmax(0,1fr); gap:28px; }
body:is(.page-training,.page-shop,.page-home) .catalog-layout>div { min-width:0; }
body:is(.page-training,.page-shop,.page-home) .filters { padding:23px 16px; border-radius:6px; background:#22251f; }
body:is(.page-training,.page-shop,.page-home) .filters :is(h3,label) { color:#d1b47e; font-size:11px; }
body:is(.page-training,.page-shop,.page-home) .category { font-size:13px; min-height:44px; color:#e0e1d8; }
body:is(.page-training,.page-shop,.page-home) .category.active { color:#fff; background:#a68a542e; border-left-color:#d1b47e; }
body:is(.page-training,.page-shop,.page-home) .filters select { min-height:44px; background:#30352d; font-size:13px; }
body:is(.page-training,.page-shop,.page-home) .reset { min-height:44px; font-size:12px; color:#e1c798; }
body:is(.page-training,.page-shop,.page-home) .filter-note p { font-size:12px; color:#c0c5b8; }
body:is(.page-training,.page-shop,.page-home) .filter-note strong { font-size:14px; }
body:is(.page-training,.page-shop,.page-home) .toolbar { gap:12px; }
body:is(.page-training,.page-shop,.page-home) .search { background:#fffdf9; border-radius:4px; border-color:#bfb8aa; min-height:48px; }
body:is(.page-training,.page-shop,.page-home) .search input { font-size:15px; }
body:is(.page-training,.page-shop,.page-home) .sort { font-size:12px; }
body:is(.page-training,.page-shop,.page-home) .sort select { min-height:48px; border-radius:4px; border-color:#bfb8aa; background:#fffdf9; font-size:13px; }
body:is(.page-training,.page-shop,.page-home) .results-line { font-size:12px; margin:18px 0; }
body:is(.page-training,.page-shop,.page-home) .cards { gap:22px; }
body:is(.page-training,.page-shop,.page-home) .card { border:1px solid #ded7ca; border-radius:6px; box-shadow:0 3px 12px #28271905; background:#fffdf9; }
body:is(.page-training,.page-shop,.page-home) .card:hover { box-shadow:0 8px 24px #28271912; }
body:is(.page-training,.page-shop,.page-home) .card-image { height:190px; }
body:is(.page-training,.page-shop,.page-home) .card-image img { filter:saturate(.75); }
body:is(.page-training,.page-shop,.page-home) .tag { font-size:10px; font-weight:600; padding:5px 9px; letter-spacing:1px; background:#f8f4eb; color:#414338; border-radius:2px; }
body:is(.page-training,.page-shop,.page-home) .card-body { padding:20px; }
body:is(.page-training,.page-shop,.page-home) .card h3 { font-size:19px; font-weight:700; line-height:1.22; letter-spacing:-.025em; }
body:is(.page-training,.page-shop,.page-home) .card p { font-size:14px; line-height:1.6; }
body:is(.page-training,.page-shop,.page-home) .card-meta { padding-top:8px; padding-bottom:17px; font-size:11px; flex-wrap:wrap; }
body:is(.page-training,.page-shop,.page-home) .card-meta strong { font-size:16px; color:#795a2d; }
body:is(.page-training,.page-shop,.page-home) .card button { min-height:46px; border-color:#b7a37e; color:#6c5029; font-size:13px; padding:11px 13px; background:#f9f5ed; border-radius:4px; }
body:is(.page-training,.page-shop,.page-home) .card button:hover { background:#ece3d2; }
body:is(.page-training,.page-shop,.page-home) .filter-chip { font-size:12px; min-height:36px; }
body:is(.page-training,.page-shop,.page-home) .catalog-note { font-size:12px; }
body:is(.page-training,.page-shop,.page-home) .how { background:#ede8dd; border-block:1px solid var(--line); }
body:is(.page-training,.page-shop,.page-home) .steps { gap:36px; }
body:is(.page-training,.page-shop,.page-home) .steps article { border-top:2px solid #b69863; padding-top:22px; }
body:is(.page-training,.page-shop,.page-home) .steps span { font-size:11px; color:#785b32; }
body:is(.page-training,.page-shop,.page-home) .steps h3 { font-size:22px; }
body:is(.page-training,.page-shop,.page-home) .steps p { font-size:15px; }
body:is(.page-training,.page-shop,.page-home) .about { background:#22251f; }
body:is(.page-training,.page-shop,.page-home) .about h2 { font-size:clamp(28px,2.8vw,40px); }
body:is(.page-training,.page-shop,.page-home) .about .eyebrow { color:#d1b47e; }
body:is(.page-training,.page-shop,.page-home) .about p:not(.eyebrow) { font-size:16px; color:#d5d8cd; }
body:is(.page-training,.page-shop,.page-home) .faq { background:#f6f3ec; }
body:is(.page-training,.page-shop,.page-home) .faq details { padding:22px 0; }
body:is(.page-training,.page-shop,.page-home) .faq summary { font-size:16px; line-height:1.5; }
body:is(.page-training,.page-shop,.page-home) .faq details p { font-size:15px; }
body:is(.page-training,.page-shop,.page-home) footer { background:#191b19; padding:48px 5% 25px; }
body:is(.page-training,.page-shop,.page-home) .footer-main { gap:45px; }
body:is(.page-training,.page-shop,.page-home) .footer-main p { color:#c1c5bb; font-size:14px; }
body:is(.page-training,.page-shop,.page-home) .footer-bottom { color:#b6bbae; font-size:12px; }
body:is(.page-training,.page-shop,.page-home) dialog { background:#fffdf8; border:1px solid #d1c4ac; border-radius:8px; padding:34px; }
body:is(.page-training,.page-shop,.page-home) dialog h2 { font-size:30px; }
body:is(.page-training,.page-shop,.page-home) dialog::backdrop { background:#11160fde; }
body:is(.page-training,.page-shop,.page-home) .close { width:44px; height:44px; border-radius:50%; background:#fffdf8; color:#292c25; top:10px; right:10px; line-height:1; }
body:is(.page-training,.page-shop,.page-home) .dialog-image { height:215px; }
body:is(.page-training,.page-shop,.page-home) .dialog-meta { flex-wrap:wrap; color:#76572c; }
body:is(.page-training,.page-shop,.page-home) .course-facts { font-size:14px; border-radius:4px; }
body:is(.page-training,.page-shop,.page-home) .preview-note { font-size:14px; color:#4d493d; }
body:is(.page-training,.page-shop,.page-home) form label { font-size:14px; }
body:is(.page-training,.page-shop,.page-home) :is(form input,form select,textarea) { font-size:16px; min-height:46px; border-color:#aaa99f; border-radius:4px; }
body:is(.page-training,.page-shop,.page-home) .form-fine { font-size:12px!important; }
@media (max-width:1150px) {
  body:is(.page-training,.page-shop,.page-home) header { flex-wrap:wrap; }
  body:is(.page-training,.page-shop,.page-home) .menu { display:block; color:#f5efe3; border-color:#8d805f; border-radius:4px; min-height:44px; }
  body:is(.page-training,.page-shop,.page-home) header nav { display:none; width:100%; }
  body:is(.page-training,.page-shop,.page-home) header nav.open { display:flex; flex-wrap:wrap; }
  body:is(.page-training,.page-shop,.page-home) .cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:700px) {
  body:is(.page-training,.page-shop,.page-home) header { padding:15px 6%; gap:15px; min-height:90px; }
  body:is(.page-training,.page-shop,.page-home) header .brand { width:210px; height:62px; }
  body:is(.page-training,.page-shop,.page-home) .hero { grid-template-columns:1fr; }
  body:is(.page-training,.page-shop,.page-home) .hero-copy { padding:34px 6% 32px; }
  body:is(.page-training,.page-shop,.page-home) h1 { font-size:clamp(34px,10.7vw,48px); }
  body:is(.page-training,.page-shop,.page-home) .hero-credentials { flex-direction:column; align-items:flex-start; gap:7px; margin-bottom:21px; }
  body:is(.page-training,.page-shop,.page-home) .lead { font-size:16px; }
  body:is(.page-training,.page-shop,.page-home) .hero-art { min-height:285px; padding:28px 20px 68px; }
  body:is(.page-training,.page-shop,.page-home) .shield-frame { width:155px; }
  body:is(.page-training,.page-shop,.page-home) .ring { width:220px; height:220px; }
  body:is(.page-training,.page-shop,.page-home) .hero-art-label { bottom:20px; }
  body:is(.page-training,.page-shop,.page-home) .trust { padding:9px 6%; }
  body:is(.page-training,.page-shop,.page-home) .trust>div,body:is(.page-training,.page-shop,.page-home) .trust>div:first-child { padding:18px 0; border-right:0; }
  body:is(.page-training,.page-shop,.page-home) .section { padding:42px 6%; }
  body:is(.page-training,.page-shop,.page-home) .class-guide { padding:22px 20px; gap:20px; }
  body:is(.page-training,.page-shop,.page-home) .catalog-layout { grid-template-columns:1fr; gap:22px; }
  body:is(.page-training,.page-shop,.page-home) .filters { padding:18px; }
  body:is(.page-training,.page-shop,.page-home) .category { font-size:12px; padding:8px 10px; }
  body:is(.page-training,.page-shop,.page-home) .cards { grid-template-columns:1fr; gap:22px; }
  body:is(.page-training,.page-shop,.page-home) .card-image { height:200px; }
  body:is(.page-training,.page-shop,.page-home) .card h3 { font-size:22px; }
  body:is(.page-training,.page-shop,.page-home) .card-meta { font-size:12px; }
  body:is(.page-training,.page-shop,.page-home) .toolbar { flex-wrap:wrap; }
  body:is(.page-training,.page-shop,.page-home) .sort select { min-width:0; }
  body:is(.page-training,.page-shop,.page-home) .footer-main { gap:28px; }
  body:is(.page-training,.page-shop,.page-home) .footer-bottom { font-size:11px; }
  body:is(.page-training,.page-shop,.page-home) dialog { padding:27px 20px; width:calc(100% - 24px); max-height:92dvh; }
  body:is(.page-training,.page-shop,.page-home) dialog h2 { font-size:27px; }
  body:is(.page-training,.page-shop,.page-home) .dialog-image { height:165px; }
  body:is(.page-training,.page-shop,.page-home) .course-facts { grid-template-columns:1fr; }
}

/* Training usability refinements; shared theme rules above remain unchanged. */
body.page-training :is(.hero-copy,.hero-art,.section-heading>div,.trust>div,.about>div,.faq>div,.footer-main>div) { min-width:0; }
body.page-training :is(h1,h2,h3) { overflow-wrap:break-word; }
body.page-training :is(button,select,input:not([type=hidden]),summary) { min-height:44px; }
body.page-training :is(.filter-chip,.close,.menu) { min-width:44px; }
body.page-training .filter-chip { min-height:44px; padding:10px 13px; }
body.page-training header nav>a { min-width:44px; min-height:44px; display:inline-flex; align-items:center; justify-content:center; }
body.page-training .footer-links a { min-height:44px; display:flex; align-items:center; max-width:100%; }
body.page-training .footer-links { gap:4px 16px; }
body.page-training .contact-email { display:inline-flex; align-items:center; min-height:44px; max-width:100%; overflow-wrap:anywhere; }
body.page-training .faq summary { min-height:44px; padding:10px 0; }
body.page-training .faq details { padding:10px 0; }
body.page-training .faq details p { padding-bottom:10px; }
body.page-training .search input { font-size:16px; min-height:46px; }
body.page-training .toolbar { flex-wrap:wrap; }
body.page-training .search { min-width:180px; }
body.page-training .sort { flex-shrink:0; }
body.page-training .results-line { gap:12px; flex-wrap:wrap; }
body.page-training .card-meta { gap:8px 12px; }
body.page-training .skip:focus { min-width:44px; min-height:44px; }
body.page-training #review .button { margin-top:8px; }
body.page-training dialog { overscroll-behavior:contain; }
body.page-training dialog :is(input,select,textarea) { max-width:100%; }
@media (min-width:701px) and (max-width:1000px) {
  body.page-training .catalog-layout { grid-template-columns:1fr; }
  body.page-training #categories { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px; }
  body.page-training .category { border:1px solid #68705e; border-radius:3px; padding:9px 13px; }
  body.page-training .category.active { border-color:#d1b47e; }
  body.page-training .filters select { max-width:340px; }
  body.page-training .reset { margin-left:14px; }
  body.page-training .filter-note { display:none; }
  body.page-training .hero { grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); }
  body.page-training h1 { font-size:clamp(34px,4.6vw,46px); }
  body.page-training .hero-copy { padding:38px 6%; }
  body.page-training .shield-frame { width:190px; }
  body.page-training .trust { gap:0; }
  body.page-training .trust>div { flex-direction:column; align-items:flex-start; padding-inline:18px; gap:12px; }
  body.page-training .class-guide { gap:24px; padding:24px; }
  body.page-training .about,body.page-training .faq { gap:30px; }
  body.page-training .footer-main { grid-template-columns:1fr 1fr; gap:30px; }
  body.page-training .footer-contact { grid-column:1/-1; }
}
@media (max-width:700px) {
  body.page-training header { flex-wrap:wrap; gap:12px; }
  body.page-training header .brand { width:min(210px,calc(100% - 94px)); height:auto; aspect-ratio:235/69; }
  body.page-training .menu { margin-left:auto; flex-shrink:0; }
  body.page-training header nav.open { display:grid; grid-template-columns:1fr 1fr; gap:6px 18px; }
  body.page-training header nav .button { grid-column:1/-1; }
  body.page-training .hero-actions { gap:10px 20px; }
  body.page-training .search { min-width:0; width:100%; }
  body.page-training .sort { width:100%; }
  body.page-training .sort select { max-width:none; }
  body.page-training .filters label { margin-top:18px; }
  body.page-training .class-guide { padding:20px 16px; }
  body.page-training .footer-brand .brand { width:min(270px,100%); height:auto; aspect-ratio:270/79; }
  body.page-training .footer-main { gap:24px; }
  body.page-training .course-facts { padding:15px; }
  body.page-training #review .button { width:100%; }
  body.page-training .dialog-meta { gap:8px 16px; }
}

/* Footer contact list: general, training and sales mailboxes. */
footer .footer-emails{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:0 0 14px;font-size:14px}
footer .footer-emails dt{color:#9ba197;text-transform:uppercase;letter-spacing:1.2px;font-size:11px;align-self:center}
footer .footer-emails dd{margin:0;overflow-wrap:anywhere}
footer .footer-emails a{display:inline-flex;align-items:center;min-height:32px;color:#eee9df;border-bottom:1px solid transparent}
footer .footer-emails a:hover{color:#e3c898;border-color:currentColor}
@media(max-width:700px){footer .footer-emails{grid-template-columns:1fr;gap:0}footer .footer-emails dt{margin-top:10px}footer .footer-emails dd{overflow-wrap:normal}}

/* Footer phone line (call or text). */
footer .footer-phone{margin:4px 0 12px;font-size:16px}
footer .footer-phone a{color:#eee9df;font-weight:600;display:inline-flex;align-items:center;min-height:36px}
footer .footer-phone a:hover{color:#e3c898}
footer .footer-phone span{color:#9ba197;font-size:13px}

.footer-bottom a { text-decoration: underline; text-decoration-color: #ffffff40; text-underline-offset: 3px; }
.footer-bottom a:hover { color: #e3c898; }
