/* Small additions on top of the shared MALYOMAR stylesheet (malyomar.css, copied unchanged). */
.site-top .wrap{flex-wrap:wrap;height:auto;min-height:34px;padding-top:4px;padding-bottom:4px}
.site-ft .ft-row{display:grid;grid-template-columns:1.2fr 1fr;gap:32px;padding:40px 0}
.site-ft .ft-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
@media(max-width:520px){.site-ft .ft-cols{grid-template-columns:1fr 1fr}}
.site-nav .nav-cta{display:none}
@media(max-width:600px){.site-nav .nav-cta{display:block}}
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;counter-reset:st}
@media(max-width:760px){.steps{grid-template-columns:1fr}}
.steps>div{border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface);padding:18px;counter-increment:st}
.steps>div::before{content:counter(st);display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--navy);color:#fff;font-weight:600;margin-bottom:10px}
.steps h3{font-size:17px;margin-bottom:6px}
.steps p{font-size:14px;color:var(--ink-2)}
@media(max-width:860px){.site-ft .ft-row{grid-template-columns:1fr}}

/* Desktop hero: ASME ATP lockup (reverse/white artwork) on a quiet glass panel, sized to its content.
   The <img> carries width/height attributes, so height:auto is required or it gets squashed. */
.hero-badge{justify-self:end;align-self:center;width:min(100%,340px);padding:30px 32px 26px;border:1px solid rgba(255,255,255,.16);border-radius:var(--r-l);background:linear-gradient(160deg,rgba(255,255,255,.08),rgba(255,255,255,.02));box-shadow:0 18px 40px -24px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.08)}
.hero-badge img{display:block;width:100%;height:auto;object-fit:contain}

/* course page */
.layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:32px;align-items:start}
@media(max-width:960px){.layout{grid-template-columns:1fr}}
.sticky{position:sticky;top:84px}
@media(max-width:960px){.sticky{position:static}}
.meta-row{display:flex;flex-wrap:wrap;gap:8px 18px;color:#C9D6E3;font-size:14px;margin-top:14px}
.meta-row b{color:#fff;font-weight:500}
details.sec{border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface)}
details.sec+details.sec{margin-top:10px}
details.sec>summary{cursor:pointer;padding:12px 16px;display:flex;justify-content:space-between;gap:12px;font-weight:600;color:var(--navy);list-style:none}
details.sec>summary::-webkit-details-marker{display:none}
details.sec>summary::before{content:'+';font-family:var(--mono);color:var(--ink-3);margin-right:4px}
details.sec[open]>summary::before{content:'–'}
details.sec>summary span:first-child{flex:1}
.outline{list-style:none;margin:0;padding:0 0 8px}
.outline li{display:flex;gap:10px;align-items:baseline;padding:7px 16px;border-top:1px solid var(--line-2);font-size:14px}
.outline .ic{font-family:var(--mono);font-size:12px;color:var(--ink-3);width:18px;flex:none}
.cohort{border:1px solid var(--line);border-radius:var(--r-m);padding:14px;background:var(--surface)}
.cohort+.cohort{margin-top:10px}
.cohort .when{font:600 20px/1.1 var(--display);color:var(--navy)}
.cohort .price{font:600 18px var(--body);color:var(--navy)}

/* checkout */
.pay{border:2px solid var(--navy);border-radius:var(--r-l);overflow:hidden;background:var(--surface)}
.pay>.hd{background:var(--navy);color:#fff;padding:12px 16px;display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.pay>.bd{padding:16px}
.opt{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:var(--r-m);padding:10px 12px;cursor:pointer}
.opt+.opt{margin-top:8px}
.opt:has(input:checked){border-color:var(--blue);background:var(--blue-soft)}
.field label{display:block;font-size:13px;font-weight:500;color:var(--ink-2);margin-bottom:4px}
.field+.field{margin-top:12px}

.tbl-wrap{overflow-x:auto}
.course-card .meta{gap:10px}
.course-card .meta .price{white-space:nowrap}
@media(max-width:600px){.site-hd .brand-sub,.site-hd .cta{display:none}.site-hd .wrap{gap:12px}}
/* Mobile hero: swap the large ASME card for a compact trust strip under the buttons */
.trust-strip{display:none}
@media(max-width:900px){
  .hero-badge,.hero .tag.asme{display:none}
  .trust-strip{display:flex;align-items:center;gap:12px;margin-top:22px;height:56px;padding:0 16px 0 12px;background:#fff;border-radius:var(--r-l);width:max-content;max-width:100%}
  .trust-strip img{height:38px;width:auto;flex:none;object-fit:contain}
  .trust-strip span{color:var(--ink,#132948);font-weight:600;font-size:14px;line-height:1.2}
}
.site-ft .ft-bot{border-top:1px solid #2A4A6E;padding:14px 0;font-size:13px;color:#8FA6BF;display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;justify-content:space-between}
.site-ft .ft-credit{font-size:13px;color:#8FA6BF}
/* course covers: drawn placeholder with an optional real image on top */
.cover{position:relative;overflow:hidden;aspect-ratio:16/7;display:flex;align-items:flex-end}
.cover>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;max-width:none}
.cover .cv-txt{position:relative;padding:14px 16px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0;max-width:100%}
.cover .cv-txt b{font:700 30px/1.05 var(--display);color:#fff;letter-spacing:.01em;overflow-wrap:anywhere}
.cover .cv-txt b.l{font-size:23px} .cover .cv-txt b.m{font-size:18px}
.cover .cv-txt i{display:block;width:36px;height:3px;border-radius:2px;background:var(--teal)}
.cover.asme .cv-txt i{background:var(--amber)}
.cover .cv-txt span{font-size:12px;color:#C9D6E3;letter-spacing:.04em;text-transform:uppercase}
.course-card .cc-cover{margin:-16px -16px 2px;border-radius:var(--r-m) var(--r-m) 0 0}
.course-hero{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:32px;align-items:center}
.hero-cover{border-radius:var(--r-m);border:1px solid rgba(255,255,255,.16)}
.hero-cover .cv-txt{padding:20px 22px} .hero-cover .cv-txt b{font-size:40px} .hero-cover .cv-txt b.l{font-size:30px} .hero-cover .cv-txt b.m{font-size:22px}
@media(max-width:960px){.course-hero{grid-template-columns:1fr}.hero-cover{max-width:420px}}
.old-ver{background:#FFD873;color:#132948;font-size:14px}
.old-ver .wrap{padding-top:8px;padding-bottom:8px}
.old-ver a{color:#132948;font-weight:600;text-decoration:underline}
@media(max-width:600px){#cohort-tbl th:last-child,#cohort-tbl td:last-child{display:none}#cohort-tbl td,#cohort-tbl th{padding-left:8px;padding-right:8px}}

/* ---------- marketing pages ---------- */
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--navy);color:#fff;padding:10px 14px;border-radius:var(--r-s)}
.skip:focus{top:10px}
.iso :focus-visible,.site-ft :focus-visible,.section.dark :focus-visible,.cta-band :focus-visible{outline-color:var(--amber)}
.site-top .wrap{justify-content:space-between}
.site-top .tb-links{display:flex;gap:16px;flex-wrap:wrap}
.site-top .tb-links a{color:#DCE6F0}
@media(max-width:600px){.site-top .tb-links{display:none}}
.eyebrow{display:inline-block;font:500 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--teal);margin-bottom:10px}
.iso .eyebrow,.section.dark .eyebrow,.cta-band .eyebrow{color:var(--amber)}
.feature{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);padding:20px;border-top:3px solid var(--navy)}
.feature.asme{border-top-color:var(--amber)} .feature.teal{border-top-color:var(--teal)} .feature.blue{border-top-color:var(--blue)}
.feature h3{font-size:19px;margin-bottom:8px}
.feature p{font-size:14.5px;color:var(--ink-2)}
.feature .ic{font:600 13px/1 var(--mono);color:var(--ink-3);display:block;margin-bottom:12px}
.ticks{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.ticks li{position:relative;padding-left:26px}
.ticks li::before{content:'';position:absolute;left:2px;top:.45em;width:12px;height:7px;border-left:2px solid var(--teal);border-bottom:2px solid var(--teal);transform:rotate(-45deg)}
.ticks.cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px}
@media(max-width:720px){.ticks.cols{grid-template-columns:1fr}}
.accred{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:28px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);padding:22px 26px}
.accred img{width:150px;height:auto}
.accred h2{font-size:24px;margin-bottom:6px}
.accred p{color:var(--ink-2);margin:0;max-width:70ch}
@media(max-width:860px){.accred{grid-template-columns:1fr;gap:16px}.accred img{width:130px}}
.cta-band{background:var(--navy);color:#C9D6E3;border-radius:var(--r-l);padding:34px 36px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;background-image:repeating-linear-gradient(30deg,rgba(255,255,255,.05) 0 1px,transparent 1px 34px),repeating-linear-gradient(150deg,rgba(255,255,255,.05) 0 1px,transparent 1px 34px)}
.cta-band h2{color:#fff;font-size:clamp(24px,3vw,30px)}
.cta-band p{margin:8px 0 0;max-width:62ch}
.cta-band .row{justify-content:flex-end}
.cta-band .btn:not(.accent):not(.primary){background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
@media(max-width:760px){.cta-band{grid-template-columns:1fr;padding:26px 22px}.cta-band .row{justify-content:flex-start}}
.people{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.pcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);padding:20px;display:flex;flex-direction:column;gap:12px}
.pcard img{width:88px;height:88px;border-radius:50%;object-fit:cover;object-position:top;background:var(--line-2)}
.pcard h3{font-size:19px}
.pcard .role{font-size:13.5px;color:var(--teal);font-weight:500;margin-top:2px}
.pcard p{font-size:14px;color:var(--ink-2);margin:0}
.pcard.lead{grid-column:1/-1;flex-direction:row;gap:24px;align-items:flex-start}
.pcard.lead img{width:140px;height:140px}
@media(max-width:640px){.pcard.lead{flex-direction:column}}
.faq details.sec>summary{font-family:var(--body);font-size:15.5px;padding:14px 16px}
.faq details.sec .ans{padding:0 16px 16px 34px;color:var(--ink-2)}
.faq details.sec .ans p+p{margin-top:8px}
.contact-list{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.contact-list li{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;font-size:15px}
.contact-list .k{font:500 12px/1.6 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3)}
.contact-list a{overflow-wrap:anywhere}
@media(max-width:420px){.contact-list li{grid-template-columns:1fr;gap:2px}}
.prose{max-width:72ch}
.prose p{color:var(--ink-2);font-size:16px}
.prose h2{margin:28px 0 10px} .prose h3{margin:22px 0 8px}
.prose ul{margin:0 0 1em;color:var(--ink-2)}
.prose li+li{margin-top:4px}
.split{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:40px;align-items:start}
@media(max-width:900px){.split{grid-template-columns:1fr;gap:28px}}
.stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden}
.stat-row>div{background:var(--surface);padding:16px 18px}
.stat-row b{display:block;font:600 28px/1.1 var(--display);color:var(--navy)}
.stat-row span{font-size:13px;color:var(--ink-2)}
@media(max-width:720px){.stat-row{grid-template-columns:1fr 1fr}}
.photo{border-radius:var(--r-l);overflow:hidden;border:1px solid var(--line);background:var(--line-2)}
.photo img{width:100%;height:100%;object-fit:cover}

/* forms */
.req{color:var(--red)}
.err{color:var(--red);font-size:13px;margin-top:5px}
.input[aria-invalid="true"]{border-color:var(--red)}
.form-errors{border-left:3px solid var(--red);background:var(--red-soft);padding:10px 14px;border-radius:0 var(--r-s) var(--r-s) 0;font-size:14px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}
.form-grid .full{grid-column:1/-1}
.form-grid .field+.field{margin-top:0}
@media(max-width:640px){.form-grid{grid-template-columns:1fr}}
.confirm{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--green);border-radius:var(--r-m);padding:24px}
.confirm h2,.confirm h3{outline:none}
.confirm .row{margin-top:16px}
.check-row{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--ink-2)}
.check-row input{margin-top:3px;width:16px;height:16px;flex:none}

/* course sales page */
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden}
.facts>div{background:var(--surface);padding:12px 14px}
.facts span{display:block;font-size:12px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em}
.facts b{font:600 18px/1.25 var(--display);color:var(--navy)}
.method{display:grid;gap:8px}
.method .bar{display:grid;grid-template-columns:52px minmax(0,1fr);gap:10px;align-items:center;font-size:14px}
.method .bar b{font:600 16px var(--display);color:var(--navy)}
.cohort .meta-l{font-size:13px;color:var(--ink-2);display:grid;gap:2px;margin:8px 0 12px}
.site-nav .dd a.on{background:var(--paper)}
@media(max-width:1080px){.site-nav>.mi>a.has-dd{pointer-events:none;color:var(--ink-3);font-size:12px;text-transform:uppercase;letter-spacing:.06em;padding-bottom:2px}}
.sum-cover{border-radius:var(--r-s)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ft-contact{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:4px}
.ft-social{display:flex;gap:16px;margin-top:14px;flex-wrap:wrap}
.site-ft .ft-cols{grid-template-columns:repeat(3,minmax(0,1fr))}
.quote-card{margin:0;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--amber);border-radius:var(--r-m);padding:20px 22px;display:flex;flex-direction:column;gap:14px}
.quote-card blockquote{margin:0;font-size:15.5px;line-height:1.6;color:var(--navy)}
.quote-card figcaption{font-size:13px;color:var(--ink-2);margin-top:auto}
.quote-card figcaption b{display:block;color:var(--navy);font-size:14.5px}
@media(max-width:1080px){.site-hd .cta{margin-left:auto}.site-hd .cta+.burger{margin-left:0}}
.site-top :focus-visible{outline-color:var(--amber)}
.eyebrow{color:#0A6466}

/* ---------- loading placeholders (skeletons) ----------
   Soft grey blocks with a left-to-right shimmer, in the same layout as the real content (see sk() in app.js).
   Lines are inline-blocks so each one takes exactly one line of the text it stands in for. */
.skel{display:block;border-radius:var(--r-s);background:var(--line-2) linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.7),rgba(255,255,255,0)) no-repeat;background-size:45% 100%;background-position:-100% 0;animation:skel 1.4s ease-in-out infinite}
@keyframes skel{to{background-position:200% 0}}
.skel.sk-line{display:inline-block;height:.8em;max-width:100%;vertical-align:middle;border-radius:4px}
.skel.sk-tag{display:inline-block;width:76px;height:22px;border-radius:11px}
.skel.sk-badge{display:inline-block;height:22px}
.skel.sk-btn{display:inline-block;height:28px;vertical-align:middle}
.skel.sk-2{display:none}
@media(max-width:600px){.skel-row .skel.sk-2{display:inline-block}}
.skel-card:hover{border-color:var(--line);box-shadow:none}
.cohort .skel.sk-btn{display:block;height:36px}
.iso .skel,.iso .cover.loading{background-color:rgba(255,255,255,.1);background-image:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.12),rgba(255,255,255,0))}
/* Cover images: the cover shimmers until its image has loaded, then the image fades in over it. */
.cover.loading{background:var(--line-2) linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.7),rgba(255,255,255,0)) no-repeat;background-size:45% 100%;background-position:-100% 0;animation:skel 1.4s ease-in-out infinite}
.cover.loading .cv-txt{visibility:hidden}
.cover>img{opacity:0;transition:opacity .2s ease-out}
.cover>img.in{opacity:1}
@media(prefers-reduced-motion:reduce){.skel,.cover.loading,.iso .skel,.iso .cover.loading{animation:none;background-image:none}.cover>img{transition:none}}
.skel.sk-btn.sk-lg{height:46px}
.skel-card .meta{min-height:calc(1.55em + 11px)}
