/* Training Center: builds on solutions.css product components. No styles are loaded from a CDN. */
.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.inline-link { color: #9fdcff; text-decoration: underline; text-underline-offset: 3px; }
.inline-link:hover { color: #fff; }
.training-more { margin-top: 26px; }
.dash-list { list-style: none; margin: 0; padding: 0; }
.dash-list li { position: relative; padding-left: 18px; margin-top: 8px; color: #c8dbea; font-size: 13px; line-height: 1.7; }
.dash-list li::before { content: ''; position: absolute; left: 0; top: .8em; width: 8px; height: 2px; background: #5bc2ff; }
.product-section h4 { font-family: Exo, Arial, sans-serif; font-size: 13px; letter-spacing: .4px; text-transform: uppercase; color: #8fd6ff; margin: 0 0 10px; }

/* Vendor wordmarks are typeset placeholders for official logos. */
.vendor-mark { display: inline-flex; align-items: baseline; gap: 8px; font-family: Exo, Arial, sans-serif; font-weight: 700; line-height: 1; letter-spacing: .5px; }
.vendor-mark b { font-weight: 700; }
.vendor-mark i { font-style: normal; color: #4f6f8a; }
.vendor-broadcom b { color: #ff3355; font-size: 17px; letter-spacing: 1.5px; }
.vendor-broadcom > span { color: #f1f6fb; font-size: 17px; }
.vendor-palo b { color: #fa6a3c; font-size: 19px; letter-spacing: -.2px; text-transform: lowercase; }
.vendor-palo > span { color: #d6e2ec; font-size: 10px; letter-spacing: 2.5px; font-family: 'Open Sans', Arial, sans-serif; }
.vendor-sonicwall b { color: #f4f8ff; font-size: 18px; letter-spacing: 2px; }
.vendor-sonicwall em { font-style: normal; color: #ff8a2a; }
.vendor-mark.large b, .vendor-mark.large > span:not(:empty) { font-size: 22px; }
.vendor-palo.large > span { font-size: 12px; }

/* Shared Training Center navigation. */
.training-subnav { position: relative; z-index: 3; border-block: 1px solid #27649475; background: linear-gradient(90deg, #061c30, #072640 50%, #061c30); }
.training-subnav > div { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; padding-block: 11px; }
.training-subnav a { padding: 8px 14px; border: 1px solid transparent; border-radius: 20px; color: #c5d9e9; font-size: 12px; font-weight: 700; transition: color .2s, background .2s, border-color .2s; }
.training-subnav a:hover { color: #fff; background: #0d3150; }
.training-subnav a[aria-current] { color: #fff; border-color: #4fb5ec; background: #0d3352; box-shadow: 0 0 14px #2aa3ff33; }
.training-subnav .subnav-cta { margin-left: auto; color: #84d6ff; }

/* Overview hero. */
.training-hero { padding-bottom: 34px; }
.training-hero-glow { position: absolute; inset: 0; z-index: -1; background: radial-gradient(ellipse 55% 60% at 78% 45%, #0b5a9a55, transparent 70%), radial-gradient(ellipse 40% 50% at 10% 0%, #0d3d6a66, transparent 70%), linear-gradient(180deg, #031323, #041a2e 70%, #031323); animation: training-glow 14s ease-in-out infinite alternate; }
@keyframes training-glow { from { opacity: .75; } to { opacity: 1; } }
.training-hero-grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: 48px; align-items: center; padding-top: 18px; }
.training-hero-grid > * { min-width: 0; }
.training-hero-copy h1 { font-family: Exo, Arial, sans-serif; font-size: clamp(42px, 4.6vw, 70px); line-height: 1.05; letter-spacing: -1px; color: #e3f2ff; }
.training-hero-copy h1 span { background: linear-gradient(90deg, #4fc3ff, #8ee3ff 55%, #3a9dff); -webkit-background-clip: text; background-clip: text; color: transparent; }
.training-hero-copy .product-hero-lead { max-width: 520px; font-size: 17px; }
.training-assurances { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, max-content)); gap: 14px 30px; padding: 0; margin: 30px 0 0; }
.training-assurances li { display: flex; align-items: center; gap: 10px; font-size: 11px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: #b6dcf6; }
.training-hero-visual { position: relative; padding: 0 0 40px 30px; }
.training-hero-photo { margin: 0; border: 1px solid #4ca8da; border-radius: 10px; overflow: hidden; box-shadow: 0 0 40px #007bc433, 0 30px 60px #0007; aspect-ratio: 16 / 10.5; background: #021322; }
.training-hero-photo img { width: 100%; height: 100%; object-fit: cover; opacity: .9; }
.training-hero-card { position: absolute; padding: 14px 18px; border: 1px solid #4fa6d8; border-radius: 8px; background: #04213fe6; box-shadow: 0 0 22px #1884e050, 0 16px 32px #0008; }
.training-hero-card p { font-family: Exo, Arial, sans-serif; font-size: 16px; color: #e8f5ff; margin-top: 6px; }
.training-hero-card p i { font-style: normal; color: #4fb5ec; margin: 0 4px; }
.training-hero-partners { left: 0; top: 26px; }
.training-hero-next { right: 18px; bottom: 6px; max-width: 300px; }
.training-hero-next > span:last-child { display: block; font-size: 12px; color: #9fd2f3; margin-top: 4px; }

/* Vendor catalog cards. */
.vendor-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.vendor-card { --accent: #5bc2ff; display: flex; flex-direction: column; border: 1px solid #2c6085; border-radius: 10px; overflow: hidden; background: linear-gradient(160deg, #08243a, #031323 70%); box-shadow: 0 20px 40px #0005; transition: transform .25s, border-color .25s, box-shadow .25s; }
.vendor-card-broadcom-symantec { --accent: #ff4d6a; }
.vendor-card-palo-alto { --accent: #fa6a3c; }
.vendor-card-sonicwall { --accent: #ff8a2a; }
.vendor-card:hover, .vendor-card:focus-within { transform: translateY(-4px); border-color: color-mix(in srgb, var(--accent) 70%, #5bc2ff); box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 30%, transparent), 0 24px 50px #0008, 0 0 40px color-mix(in srgb, var(--accent) 18%, transparent); }
.vendor-card-art { display: block; position: relative; aspect-ratio: 16 / 8; overflow: hidden; border-bottom: 1px solid #234c6c; }
.vendor-card-art::after { content: ''; position: absolute; inset: auto 0 0; height: 3px; background: linear-gradient(90deg, transparent, var(--accent), transparent); opacity: .8; }
.vendor-card-art img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.vendor-card:hover .vendor-card-art img { transform: scale(1.04); }
.vendor-card-body { display: flex; flex-direction: column; flex: 1; padding: 24px 26px 26px; }
.vendor-card-body h3 { font-size: 22px; margin: 16px 0 6px; }
.vendor-card-body h3 a:hover { color: #9fdcff; }
.vendor-card-tagline { color: #9fd2f3 !important; font-size: 13px !important; font-weight: 600; }
.vendor-card-body > p:not(.vendor-card-tagline):not(.vendor-card-count) { margin: 12px 0 18px; font-size: 13px; }
.vendor-card-body .check-list { margin-top: 4px; }
.vendor-card-count { margin-top: auto !important; padding-top: 18px; font-size: 11px !important; letter-spacing: 1px; text-transform: uppercase; color: #8cb6d4 !important; }
.vendor-card-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.vendor-card-actions .button, .course-record-actions .button { font-size: 10px; padding: 11px 15px; gap: 12px; min-height: 42px; }

/* Process, why and testimonial blocks. */
.training-steps h3 { font-size: 18px; }
.why-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.why-grid-four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.why-grid article { padding: 26px; border: 1px solid #234c6c; border-radius: 8px; background: linear-gradient(140deg, #0a2a44, #041527 75%); transition: border-color .25s, transform .25s; }
.why-grid article:hover { border-color: #4fb5ec; transform: translateY(-3px); }
.why-grid h3 { font-size: 18px; margin: 18px 0 10px; }
.why-grid p { font-size: 13px; }
.training-quote-figure { margin: 34px 0 0; padding: 26px 30px; border-left: 3px solid #4ac1ff; background: #09253b; }
.training-quote-figure blockquote { margin: 0; }
.training-quote-figure blockquote p { font-family: Exo, Arial, sans-serif; font-size: 21px !important; line-height: 1.5 !important; color: #e3f2ff !important; }
.training-quote-figure figcaption { margin-top: 12px; font-size: 12px; color: #9fbdd6; }
.training-quote-figure figcaption strong { color: #d5ebfb; }

/* Schedule rows, shared by every page. */
.session-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.session-row { display: grid; grid-template-columns: 86px minmax(0, 1fr) auto; gap: 24px; align-items: center; padding: 18px 22px; border: 1px solid #2a5a7f; border-radius: 8px; background: linear-gradient(110deg, #0a2a44, #041527 70%); transition: border-color .2s, box-shadow .2s; }
.session-row:hover { border-color: #4fb5ec; box-shadow: 0 0 24px #1a8fe02b; }
.session-date { display: flex; flex-direction: column; align-items: center; padding: 10px 0; border: 1px solid #3d7aa5; border-radius: 6px; background: #041a2d; text-align: center; }
.session-date span { font-size: 11px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: #ff9b52; }
.session-date strong { font-family: Exo, Arial, sans-serif; font-size: 30px; line-height: 1.1; color: #f0f8ff; }
.session-date small { font-size: 10px; color: #8fb3cf; }
.session-provider { font-size: 11px !important; font-weight: 700; letter-spacing: 1.3px; text-transform: uppercase; color: #8fd6ff !important; }
.session-provider span { color: #9eb9cf; font-weight: 600; }
.provider-sonicwall { color: #ffad6b !important; }
.provider-palo-alto { color: #ff9874 !important; }
.provider-broadcom-symantec { color: #ff8197 !important; }
.session-main h3 { font-size: 17px; margin: 4px 0 8px; }
.session-meta { display: flex; flex-wrap: wrap; gap: 4px 22px; margin: 0; }
.session-meta div { display: flex; gap: 6px; font-size: 12px; }
.session-meta dt { color: #7f9fb9; }
.session-meta dd { margin: 0; color: #d4e6f4; }
.session-actions { display: flex; align-items: center; gap: 16px; }
.session-actions .button { font-size: 10px; padding: 10px 14px; gap: 10px; min-height: 40px; }
.session-status { display: inline-block; padding: 5px 10px; border-radius: 14px; font-size: 10px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; white-space: nowrap; border: 1px solid #3d739a; color: #b7e7ff; background: #0b2b44; }
.status-guaranteed { border-color: #3fae8b; color: #a6f0d4; background: #0b3330; }
.session-empty { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; padding: 26px 28px; border: 1px dashed #3d7aa5; border-radius: 8px; background: #061f34; }
.session-empty p { flex: 1 1 280px; font-size: 14px !important; color: #d4e6f4 !important; }

/* Vendor page hero. */
.vendor-hero { padding-bottom: 0; background: radial-gradient(ellipse 55% 70% at 85% 40%, #0b4d8255, transparent 70%), #031323; }
.vendor-hero-palo { background: radial-gradient(ellipse 50% 60% at 85% 45%, #fa582d22, transparent 70%), radial-gradient(ellipse 60% 70% at 70% 30%, #0b4d8240, transparent 70%), #031323; }
.vendor-hero-sonicwall { background: radial-gradient(ellipse 50% 60% at 85% 45%, #ff7a1a20, transparent 70%), radial-gradient(ellipse 60% 70% at 70% 30%, #0b4d8245, transparent 70%), #031323; }
.vendor-hero-broadcom { background: radial-gradient(ellipse 50% 60% at 85% 45%, #ff2e5520, transparent 70%), radial-gradient(ellipse 60% 70% at 70% 30%, #0b4d8245, transparent 70%), #031323; }
.vendor-hero-grid { display: grid; grid-template-columns: 1fr .95fr; gap: 50px; align-items: center; padding: 14px 0 44px; }
.vendor-hero-grid > * { min-width: 0; }
.vendor-hero-copy h1 { font-family: Exo, Arial, sans-serif; font-size: clamp(36px, 3.7vw, 56px); line-height: 1.08; letter-spacing: -.8px; margin-top: 18px; color: #e6f3ff; }
.vendor-hero-sub { margin-top: 14px; font-family: Exo, Arial, sans-serif; font-size: clamp(17px, 1.5vw, 21px); color: #8fd6ff; }
.vendor-hero-palo .vendor-hero-sub { color: #ffb08f; }
.vendor-hero-sonicwall .vendor-hero-sub { color: #ffbe86; }
.vendor-hero-copy .product-hero-lead { max-width: 560px; }
.vendor-hero-visual { position: relative; }
.vendor-hero-visual > img { width: 100%; height: auto; border: 1px solid #3b7aa5; border-radius: 10px; box-shadow: 0 0 40px #007bc425, 0 26px 50px #0007; }
.vendor-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 14px 0 0; position: relative; border: 1px solid #3d7aa5; border-radius: 8px; background: #052038f0; box-shadow: 0 14px 30px #0008; }
.vendor-stats div { padding: 14px 16px; border-right: 1px solid #2a5a7f; }
.vendor-stats div:last-child { border: 0; }
.vendor-stats dt { font-family: Exo, Arial, sans-serif; font-size: 22px; color: #eaf6ff; }
.vendor-stats dd { margin: 4px 0 0; font-size: 10px; letter-spacing: .6px; text-transform: uppercase; color: #9fc4de; }

/* Expandable course records (Broadcom). */
.catalog-filter { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 26px; }
.catalog-filter button, .schedule-view button { padding: 9px 16px; border: 1px solid #3d739a; border-radius: 20px; background: #06213a; color: #c8ddee; font-size: 12px; font-weight: 700; transition: background .2s, border-color .2s, color .2s; }
.catalog-filter button span { margin-left: 6px; color: #7fb4d8; font-weight: 600; }
.catalog-filter button:hover, .schedule-view button:hover { border-color: #66beff; color: #fff; }
.catalog-filter button[aria-pressed="true"], .schedule-view button[aria-pressed="true"] { background: linear-gradient(175deg, #2a9ff0, #0063c6); border-color: #a0dcff; color: #fff; }
.catalog-filter button[aria-pressed="true"] span { color: #d8f0ff; }
.course-group + .course-group { margin-top: 34px; }
.course-group-title { font-size: 13px !important; letter-spacing: 1.6px; text-transform: uppercase; color: #8cd5ff; margin-bottom: 14px !important; }
.course-record { border: 1px solid #2a5a7f; border-radius: 8px; background: linear-gradient(120deg, #0a2a44, #041527 70%); transition: border-color .2s, box-shadow .2s; }
.course-record + .course-record { margin-top: 14px; }
.course-record:hover, .course-record[open] { border-color: #4fb5ec; box-shadow: 0 0 26px #1a8fe022; }
.course-record > summary { list-style: none; display: flex; gap: 24px; align-items: flex-start; padding: 22px 26px; cursor: pointer; }
.course-record > summary::-webkit-details-marker { display: none; }
.course-record-head { flex: 1; min-width: 0; }
.course-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.course-tags span { padding: 4px 10px; border: 1px solid #36678d; border-radius: 14px; font-size: 10px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; color: #a9d6f3; background: #072238; }
.course-record-title { display: block; margin-top: 12px; font-family: Exo, Arial, sans-serif; font-size: 19px; line-height: 1.35; color: #eaf6ff; }
.course-record-summary { display: block; margin-top: 8px; font-size: 13px; line-height: 1.75; color: #aec3d6; }
.course-toggle { flex: 0 0 36px; height: 36px; border: 1px solid #4fa6d8; border-radius: 50%; position: relative; margin-top: 4px; transition: transform .25s, background .25s; }
.course-toggle::before, .course-toggle::after { content: ''; position: absolute; left: 50%; top: 50%; width: 14px; height: 2px; background: #8fd6ff; transform: translate(-50%, -50%); }
.course-toggle::after { transform: translate(-50%, -50%) rotate(90deg); transition: transform .25s; }
.course-record[open] .course-toggle { background: #0d3352; }
.course-record[open] .course-toggle::after { transform: translate(-50%, -50%) rotate(0); }
.course-record-body { padding: 4px 26px 26px; border-top: 1px solid #234c6c; }
.course-record-columns { display: grid; grid-template-columns: 1.1fr 1fr; gap: 40px; padding-top: 22px; }
.course-record-columns > * { min-width: 0; }
.course-record-columns h4:not(:first-child) { margin-top: 22px; }
.course-record-columns p { font-size: 13px; }
.course-outline { margin-top: 26px; padding-top: 22px; border-top: 1px solid #234c6c; }
.course-outline ol, .syllabus-column ol { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 34px; }
.course-outline li, .syllabus-column li { break-inside: avoid; display: flex; gap: 12px; padding: 7px 0; font-size: 13px; color: #cfe1ef; border-bottom: 1px solid #17405f; }
.course-outline li span, .syllabus-column li span, .palo-theme li span { flex: 0 0 auto; font-family: Exo, Arial, sans-serif; font-size: 12px; color: #5fc0ff; }
.course-record-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; margin-top: 24px; }

/* Palo Alto. */
.palo-course { display: grid; grid-template-columns: .85fr 1.15fr; gap: 50px; align-items: start; }
.palo-course > * { min-width: 0; }
.palo-course-intro h2 { margin-top: 4px; }
.palo-themes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.palo-theme { padding: 22px; border: 1px solid #2a5a7f; border-top: 2px solid #fa6a3c; border-radius: 8px; background: linear-gradient(140deg, #0c2236, #041527 75%); transition: transform .25s, border-color .25s; }
.palo-theme:hover { transform: translateY(-3px); border-color: #fa8a63; }
.palo-theme h3 { font-size: 17px; margin: 14px 0 10px; }
.palo-theme ul { list-style: none; margin: 0; padding: 0; }
.palo-theme li { display: flex; gap: 10px; padding: 6px 0; font-size: 12px; line-height: 1.6; color: #cfe1ef; border-top: 1px solid #17405f; }
.palo-theme li span { color: #ff9874; }
.palo-appendices { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 30px; padding: 18px 22px; border: 1px solid #2c5574; border-radius: 8px; background: #061c30; }
.palo-appendices ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0; }
.palo-appendices li { padding: 6px 12px; border: 1px solid #4a6b86; border-radius: 16px; font-size: 12px; color: #d7e6f2; }
.outcome-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.outcome-grid article { padding-top: 20px; border-top: 2px solid #fa6a3c; }
.outcome-grid span { font-family: Exo, Arial, sans-serif; color: #ff9874; font-size: 14px; }
.outcome-grid h3 { font-size: 18px; margin: 10px 0; }
.outcome-grid p { font-size: 13px; }
.option-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.option-grid-four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.option-grid article { padding: 26px; border: 1px solid #2c6085; border-radius: 8px; background: radial-gradient(ellipse at top left, #0d3a5c, #041527 70%); transition: transform .25s, border-color .25s; }
.option-grid article:hover { transform: translateY(-3px); border-color: #4fb5ec; }
.option-grid h3 { font-size: 18px; margin: 16px 0 10px; }
.option-grid p { font-size: 13px; }

/* SonicWall. */
.sw-course-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; }
.sw-course { position: relative; display: flex; flex-direction: column; padding: 30px; border: 1px solid #335f80; border-radius: 12px; overflow: hidden; background: linear-gradient(150deg, #0c2a43, #041527 65%); box-shadow: 0 22px 44px #0006; transition: transform .25s, border-color .25s, box-shadow .25s; }
.sw-course::before { content: ''; position: absolute; inset: 0 0 auto; height: 3px; background: linear-gradient(90deg, #ff7a1a, #ffb067 50%, transparent); }
.sw-course-snsp::before { background: linear-gradient(90deg, #4fc3ff, #ff8a2a 60%, transparent); }
.sw-course:hover { transform: translateY(-4px); border-color: #ff9a4a; box-shadow: 0 26px 50px #0008, 0 0 36px #ff7a1a1f; }
.sw-course-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.sw-level { white-space: nowrap; padding: 6px 12px; border: 1px solid #a8622b; border-radius: 16px; font-size: 10px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: #ffc999; background: #2a1708; }
.sw-code { font-family: Exo, Arial, sans-serif; font-size: 54px; line-height: .9; color: transparent; -webkit-text-stroke: 1px #ff9a4a88; }
.sw-course h3 { font-size: 23px; margin: 14px 0 12px; }
.sw-course h3 a:hover { color: #ffcf9f; }
.sw-course > p { font-size: 13px; }
.sw-relation { display: flex; gap: 12px; align-items: flex-start; margin-top: 16px !important; padding: 14px 16px; border: 1px solid #2f5c7e; border-radius: 6px; background: #061f34; }
.sw-relation img { flex: 0 0 22px; margin-top: 3px; }
.sw-relation strong { color: #ffd2a8; }
.sw-facts { margin: 18px 0; }
.sw-facts div { display: grid; grid-template-columns: 112px 1fr; gap: 14px; padding: 10px 0; border-bottom: 1px solid #1b4566; }
.sw-facts dt { font-size: 10px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: #ffad6b; padding-top: 2px; }
.sw-facts dd { margin: 0; font-size: 12px; line-height: 1.7; color: #cfe1ef; }
.sw-chips { display: flex; flex-wrap: wrap; gap: 7px; list-style: none; padding: 0; margin: 10px 0 0; }
.sw-chips li { padding: 5px 11px; border: 1px solid #36678d; border-radius: 14px; font-size: 11px; color: #d2e6f5; background: #072238; }
.sw-course .vendor-card-actions { margin-top: auto; padding-top: 24px; }
.sw-path { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; list-style: none; padding: 0; margin: 30px 0 0; border: 1px solid #2c5574; border-radius: 10px; background: #061c30; overflow: hidden; }
.sw-path li { position: relative; display: flex; gap: 14px; align-items: center; padding: 18px 22px; }
.sw-path li + li { border-left: 1px solid #2c5574; }
.sw-path li > span { flex: 0 0 34px; height: 34px; display: grid; place-items: center; border: 1px solid #ff9a4a; border-radius: 50%; font-family: Exo, Arial, sans-serif; color: #ffbe86; }
.sw-path strong { display: block; font-size: 13px; color: #eaf6ff; }
.sw-path p { font-size: 12px !important; line-height: 1.5 !important; }
.topic-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.topic-grid article { position: relative; padding: 22px; border: 1px solid #234c6c; border-radius: 8px; background: linear-gradient(140deg, #0a2a44, #041527 75%); transition: transform .25s, border-color .25s; }
.topic-grid article:hover { transform: translateY(-3px); border-color: #ff9a4a; }
.topic-level { position: absolute; top: 22px; right: 18px; font-size: 9px; font-weight: 700; letter-spacing: 1px; color: #ffad6b; }
.topic-grid h3 { font-size: 16px; margin: 16px 0 8px; }
.topic-grid p { font-size: 12px; }

/* SonicWall hero and infographic panels, after the supplied Designer (10) reference. */
.sw-hero-title { margin-top: 6px !important; }
.sw-hero-title > span { display: block; }
.sw-hero-brand { font-size: clamp(46px, 5.4vw, 82px); line-height: 1; letter-spacing: 3px; text-transform: uppercase; font-weight: 400; color: #f4f8ff; }
.sw-hero-brand em { font-style: normal; font-weight: 700; color: #fff; position: relative; }
.sw-hero-brand em::after { content: ''; position: absolute; left: 4%; right: -2%; bottom: 2px; height: 4px; border-radius: 50%; background: linear-gradient(90deg, transparent, #ff7a1a 30%, #ffb067 70%, transparent); box-shadow: 0 0 14px #ff7a1a99; }
.sw-hero-title > span:last-child { margin-top: 20px; font-size: clamp(34px, 3.5vw, 54px); }
.sw-hero-tagline { text-transform: uppercase; letter-spacing: .8px; font-size: clamp(14px, 1.2vw, 17px) !important; color: #5fc6ff !important; }
.sw-hero-features { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; padding: 0; margin: 30px 0 0; border-block: 1px solid #2a5a7f; }
.sw-hero-features li { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 14px 6px; text-align: center; font-size: 10px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: #c7e6fb; }
.sw-hero-features li + li { border-left: 1px solid #2a5a7f; }
.sw-hero-art { position: relative; }
.sw-hero-art > img { width: 100%; height: auto; border: 1px solid #3b7aa5; border-radius: 10px; box-shadow: 0 0 40px #007bc425, 0 26px 50px #0007; }
.sw-shield { position: absolute; left: 50%; top: 6%; width: 92px; height: 104px; transform: translateX(-50%); display: grid; place-items: center; clip-path: polygon(50% 0, 100% 14%, 100% 55%, 50% 100%, 0 55%, 0 14%); background: linear-gradient(180deg, #ffb067, #ff7a1a 45%, #a84200); filter: drop-shadow(0 0 16px #ff7a1aaa); }
.sw-shield::before { content: ''; position: absolute; inset: 4px; clip-path: inherit; background: radial-gradient(ellipse at 50% 35%, #2a1606, #0b0c10 75%); }
.sw-shield span { position: relative; margin-top: -10px; font: 700 10px/1.2 Exo, Arial, sans-serif; letter-spacing: .8px; text-transform: uppercase; text-align: center; color: #ffe2c6; }
.sw-hero-services { display: flex; margin: 12px 0 0; flex-wrap: wrap; justify-content: center; gap: 6px; list-style: none; margin: 0; padding: 0; }
.sw-hero-services li { padding: 5px 10px; border: 1px solid #a8622b; border-radius: 14px; background: #1a1006e0; font-size: 10px; font-weight: 700; letter-spacing: .5px; color: #ffd2a8; }
.sw-panels { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.sw-panel { display: flex; flex-direction: column; border: 1px solid #2f5c7e; border-radius: 10px; overflow: hidden; background: linear-gradient(170deg, #0c2a43, #041527 70%); box-shadow: 0 18px 36px #0006; transition: transform .25s, border-color .25s, box-shadow .25s; scroll-margin-top: 120px; }
.sw-panel:hover { transform: translateY(-3px); border-color: #ff9a4a; box-shadow: 0 22px 44px #0008, 0 0 30px #ff7a1a1c; }
.product-section .sw-panel-head { margin: 0; padding: 13px 18px; font-size: 15px; letter-spacing: .6px; text-transform: uppercase; color: #fff; background: linear-gradient(90deg, #e2580b, #ff8a2a 55%, #c94a06); box-shadow: inset 0 -1px 0 #ffffff33; }
.sw-panel > p { margin: 16px 18px 0; font-size: 13px; }
.sw-panel .sw-panel-note { margin-top: auto; padding: 14px 18px 18px; font-size: 11px; color: #8fb3cf; }
.sw-ticks { list-style: none; margin: 0; padding: 14px 18px 20px; }
.sw-ticks li { position: relative; padding: 7px 0 7px 26px; font-size: 13px; line-height: 1.5; color: #d6e8f6; border-bottom: 1px solid #17405f; }
.sw-ticks li:last-child { border: 0; }
.sw-ticks li::before { content: '✓'; position: absolute; left: 0; top: 8px; width: 17px; height: 17px; display: grid; place-items: center; border-radius: 50%; background: #ff7a1a; color: #fff; font-size: 10px; font-weight: 700; }
.sw-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; list-style: none; margin: 16px 18px 0; padding: 0; }
.sw-tiles li { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 16px 8px; border: 1px solid #2f5c7e; border-radius: 8px; background: #061f34; text-align: center; font-size: 11px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; color: #c7e6fb; }
.sw-delivery { list-style: none; margin: 0; padding: 8px 18px 18px; }
.sw-delivery li { display: flex; gap: 14px; align-items: flex-start; padding: 12px 0; border-bottom: 1px solid #17405f; }
.sw-delivery li:last-child { border: 0; }
.sw-delivery img { flex: 0 0 28px; margin-top: 2px; }
.sw-delivery strong { display: block; font-size: 14px; color: #eaf6ff; }
.sw-delivery span { display: block; margin-top: 3px; font-size: 12px; line-height: 1.55; color: #a9c4da; }

/* Interactive lab diagram. Without JavaScript every lab area is listed. */
.lab-layout { display: grid; grid-template-columns: 1.1fr .9fr; gap: 36px; align-items: start; }
.lab-layout > * { min-width: 0; }
.lab-diagram { margin: 0; padding: 18px; border: 1px solid #2f6187; border-radius: 12px; background: radial-gradient(ellipse at center, #0b2d4a, #031323 75%); }
.lab-diagram svg { display: block; width: 100%; height: auto; }
.lab-diagram figcaption { margin-top: 8px; font-size: 11px; color: #8fb3cf; text-align: center; }
.lab-links path { fill: none; stroke: #3d86b8; stroke-width: 2; stroke-dasharray: 6 7; transition: stroke .3s; }
.lab-links path.is-active { stroke: #ff9a4a; stroke-width: 3; animation: lab-flow 1.4s linear infinite; }
@keyframes lab-flow { to { stroke-dashoffset: -26; } }
.lab-node { cursor: default; transition: opacity .3s; }
.lab-node rect, .lab-node circle { fill: #0a2b47; stroke: #6fc6ff; stroke-width: 1.5; transition: stroke .3s, fill .3s; }
.lab-node path { fill: none; stroke: #6fc6ff; stroke-width: 1.5; }
.lab-node text { fill: #a9dcff; font: 700 12px Arial, sans-serif; letter-spacing: 1.4px; }
.lab-node.lab-fw rect:first-child { stroke: #ff9a4a; }
.lab-node.lab-fw rect:nth-child(2) { fill: #ff7a1a; stroke: none; }
.lab-node.lab-fw g rect { fill: #0a0f15; stroke: #556a80; stroke-width: 1; }
.js-lab .lab-node { cursor: pointer; }
.js-lab .lab-node:not(.is-active):not(.lab-fw) { opacity: .55; }
.lab-node.is-active rect, .lab-node.is-active circle { stroke: #ff9a4a; fill: #2a1a0c; }
.lab-node.is-active path { stroke: #ffb067; }
.lab-node.is-active text { fill: #ffd2a8; }
.lab-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.lab-tabs button { padding: 9px 14px; border: 1px solid #3d739a; border-radius: 20px; background: #06213a; color: #c8ddee; font-size: 12px; font-weight: 700; transition: background .2s, border-color .2s; }
.lab-tabs button:hover { border-color: #ff9a4a; }
.lab-tabs button[aria-selected="true"] { background: linear-gradient(175deg, #ff8a2a, #c75308); border-color: #ffc28a; color: #fff; }
.lab-zone { padding: 24px; border: 1px solid #2f5c7e; border-radius: 10px; background: linear-gradient(140deg, #0c2a43, #041527 75%); }
.lab-zone + .lab-zone { margin-top: 14px; }
.js-lab .lab-zone + .lab-zone { margin-top: 0; }
.lab-zone-head { display: flex; align-items: center; gap: 12px; }
.lab-zone-head h3 { font-size: 20px; }
.lab-zone > p { margin-top: 10px; font-size: 13px; }
.lab-zone-modules { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 16px; }

/* Course detail pages. */
.course-hero-grid { display: grid; grid-template-columns: 1.3fr .7fr; gap: 50px; align-items: center; padding: 18px 0 46px; }
.course-hero-grid > * { min-width: 0; }
.course-hero-eyebrow { margin-top: 18px; color: #ffbe86 !important; }
.course-hero h1 { font-family: Exo, Arial, sans-serif; font-size: clamp(32px, 3.2vw, 48px); line-height: 1.12; letter-spacing: -.6px; color: #e6f3ff; }
.course-hero .product-hero-lead { max-width: 680px; }
.course-facts { margin: 0; border: 1px solid #3d7aa5; border-radius: 10px; background: #052038e6; box-shadow: 0 0 30px #007bc422, 0 20px 40px #0007; }
.course-facts div { padding: 16px 20px; border-bottom: 1px solid #234c6c; }
.course-facts div:last-child { border: 0; }
.course-facts dt { display: flex; align-items: center; gap: 10px; font-size: 10px; font-weight: 700; letter-spacing: 1.3px; text-transform: uppercase; color: #ffad6b; }
.course-facts dd { margin: 6px 0 0; font-size: 14px; color: #e3f0fa; }
.course-overview { display: grid; grid-template-columns: 1.2fr .8fr; gap: 60px; align-items: start; }
.course-overview > * { min-width: 0; }
.course-overview h2 { margin-bottom: 10px; }
.course-aside { padding: 28px; border: 1px solid #2f5c7e; border-top: 2px solid #ff9a4a; border-radius: 8px; background: #061c30; }
.course-aside h3 { font-size: 15px; letter-spacing: .5px; text-transform: uppercase; color: #ffbe86; }
.course-aside h3:not(:first-child) { margin-top: 22px; }
.course-aside p, .course-aside li { font-size: 13px; }
.course-aside p { margin-top: 8px; }
.syllabus-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.syllabus-column { padding: 26px; border: 1px solid #2a5a7f; border-radius: 10px; background: linear-gradient(140deg, #0a2a44, #041527 75%); }
.syllabus-column-ilt { border-top: 2px solid #ff9a4a; }
.syllabus-column ol { columns: 1; margin-top: 16px; }
.syllabus-head { display: flex; align-items: center; gap: 14px; }
.syllabus-head h3 { font-size: 20px; margin-top: 4px; }
.certification-panel { display: flex; gap: 28px; align-items: center; padding: 34px 38px; border: 1px solid #3d7aa5; border-radius: 12px; background: radial-gradient(ellipse at 0% 50%, #12456b, #061c30 60%); box-shadow: 0 0 40px #007bc420; }
.certification-panel img { flex: 0 0 56px; }
.certification-panel h2 { font-size: clamp(22px, 2vw, 30px); margin-bottom: 10px; }

/* Upcoming courses page. */
.schedule-hero { padding-bottom: 40px; background: radial-gradient(ellipse 60% 80% at 85% 20%, #0b4d8255, transparent 70%), linear-gradient(180deg, #031323, #052036); }
.schedule-hero-grid { display: grid; grid-template-columns: 1.3fr .7fr; gap: 50px; align-items: end; padding-top: 14px; }
.schedule-hero-grid > * { min-width: 0; }
.schedule-hero h1 { font-family: Exo, Arial, sans-serif; font-size: clamp(34px, 3.6vw, 54px); line-height: 1.1; letter-spacing: -.8px; color: #e6f3ff; }
.schedule-hero .product-hero-lead { max-width: 640px; }
.schedule-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; border: 1px solid #3d7aa5; border-radius: 10px; background: #052038e6; }
.schedule-summary div { padding: 16px; border-right: 1px solid #234c6c; }
.schedule-summary div:last-child { border: 0; }
.schedule-summary dt { font-family: Exo, Arial, sans-serif; font-size: 24px; color: #eaf6ff; }
.schedule-summary div:last-child dt { font-size: 15px; padding-top: 6px; }
.schedule-summary dt a:hover { color: #8fd6ff; }
.schedule-summary dd { margin: 4px 0 0; font-size: 10px; letter-spacing: .6px; text-transform: uppercase; color: #9fc4de; }
.schedule-section { padding-top: 40px; }
.schedule-tools { display: grid; grid-template-columns: 1fr; gap: 18px; padding: 24px; margin-bottom: 26px; border: 1px solid #2f6187; border-radius: 12px; background: linear-gradient(120deg, #0a2a44, #041527 70%); box-shadow: 0 18px 40px #0005; }
.schedule-tools label, .schedule-tools legend, .schedule-view-label { display: block; font-size: 10px; font-weight: 700; letter-spacing: 1.3px; text-transform: uppercase; color: #8fd6ff; margin-bottom: 8px; padding: 0; }
.schedule-search input, .schedule-selects select, .quote-form input, .quote-form select, .quote-form textarea { width: 100%; min-height: 46px; padding: 11px 14px; border: 1px solid #3d6f95; border-radius: 6px; background: #031424; color: #eef7ff; font: 14px/1.4 'Open Sans', Arial, sans-serif; transition: border-color .2s, box-shadow .2s; }
.schedule-search input::placeholder, .quote-form input::placeholder { color: #7f9cb4; }
.schedule-search input:focus, .schedule-selects select:focus, .quote-form input:focus, .quote-form select:focus, .quote-form textarea:focus { outline: none; border-color: #66c6ff; box-shadow: 0 0 0 3px #2aa3ff40; }
.schedule-providers { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; border: 0; }
.schedule-providers legend { width: 100%; }
.schedule-providers label { margin: 0; padding: 0; text-transform: none; letter-spacing: 0; font-size: 12px; }
.schedule-providers input { position: absolute; opacity: 0; pointer-events: none; }
.schedule-providers span { display: inline-block; padding: 9px 16px; border: 1px solid #3d739a; border-radius: 20px; background: #06213a; color: #c8ddee; font-weight: 700; cursor: pointer; transition: background .2s, border-color .2s; }
.schedule-providers label:hover span { border-color: #66beff; }
.schedule-providers input:checked + span { background: linear-gradient(175deg, #2a9ff0, #0063c6); border-color: #a0dcff; color: #fff; }
.schedule-providers input:focus-visible + span { outline: 2px solid #75c7ff; outline-offset: 3px; }
.schedule-selects { display: grid; grid-template-columns: 1fr 1fr auto; gap: 16px; align-items: end; }
.schedule-view { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.schedule-view-label { width: 100%; }
.schedule-status { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-top: 14px; border-top: 1px solid #234c6c; }
.schedule-status p { font-size: 13px; color: #c8ddee; }
.schedule-reset { padding: 0; border: 0; background: none; color: #8fd6ff; font-size: 12px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.schedule-reset:hover { color: #fff; }
.schedule-calendar { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; }
.calendar-month { padding: 20px; border: 1px solid #2a5a7f; border-radius: 10px; background: linear-gradient(140deg, #0a2a44, #041527 75%); }
.calendar-month h3 { font-size: 18px; padding-bottom: 12px; margin-bottom: 6px; border-bottom: 1px solid #234c6c; }
.calendar-month ol { list-style: none; margin: 0; padding: 0; }
.calendar-month li { display: grid; grid-template-columns: 64px 1fr; gap: 12px; padding: 12px 0; border-bottom: 1px solid #17405f; }
.calendar-month li:last-child { border: 0; }
.calendar-month time { font-family: Exo, Arial, sans-serif; font-size: 14px; color: #ffbe86; }
.calendar-month a { font-size: 13px; color: #e3f0fa; line-height: 1.5; }
.calendar-month a:hover { color: #8fd6ff; text-decoration: underline; }
.calendar-month small { display: block; margin-top: 2px; font-size: 11px; color: #8fb3cf; }
.schedule-results + .product-callout { margin-top: 30px; }

/* Training quote request form. */
.quote-layout { display: grid; grid-template-columns: 1.55fr .9fr; gap: 40px; align-items: start; }
.quote-layout > * { min-width: 0; }
.quote-form { padding: 32px; border: 1px solid #2f6187; border-radius: 12px; background: linear-gradient(150deg, #0a2a44, #041527 70%); box-shadow: 0 22px 44px #0006; }
.quote-form-head { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; flex-wrap: wrap; }
.quote-form-head h2 { font-size: 26px; }
.quote-form-head p { font-size: 12px; }
.quote-form fieldset { margin: 24px 0 0; padding: 22px 0 0; border: 0; border-top: 1px solid #234c6c; }
.quote-form legend { padding: 0 12px 0 0; font-family: Exo, Arial, sans-serif; font-size: 15px; letter-spacing: .5px; text-transform: uppercase; color: #8fd6ff; }
.field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 20px; margin-top: 8px; }
.field { min-width: 0; }
.field-wide { grid-column: 1 / -1; }
.quote-form label { display: block; margin-bottom: 7px; font-size: 13px; font-weight: 600; color: #dbeaf6; }
.quote-form label span { color: #ff9b9b; }
.quote-form select optgroup { background: #031424; color: #8fd6ff; }
.quote-form select option { color: #eef7ff; background: #031424; }
.quote-form textarea { resize: vertical; min-height: 120px; }
.quote-form [aria-invalid="true"] { border-color: #ff7b7b; box-shadow: 0 0 0 3px #ff5a5a26; }
.field-hint { margin-top: 6px; font-size: 11px !important; color: #8fb3cf !important; line-height: 1.5 !important; }
.field-error { margin-top: 6px; font-size: 12px !important; color: #ffb3b3 !important; line-height: 1.5 !important; }
.field-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.quote-submit { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 24px; margin-top: 28px; padding-top: 24px; border-top: 1px solid #234c6c; }
.quote-submit .button { min-width: 250px; justify-content: space-between; }
.quote-note { flex: 1 1 240px; font-size: 12px !important; line-height: 1.6 !important; }
.form-status { margin-top: 16px; font-size: 13px !important; color: #a6f0d4 !important; }
.form-status:empty { display: none; }
.form-status[data-error="true"] { color: #ffb3b3 !important; }
.quote-nojs { margin-top: 16px; padding: 14px 16px; border-left: 3px solid #83c6e9; background: #0c2c42; font-size: 12px !important; }
.js-ready .quote-nojs { display: none; }
.quote-aside { padding: 30px; border: 1px solid #2f5c7e; border-radius: 12px; background: #061c30; }
.quote-aside h2 { font-size: 22px; }
.quote-aside h3 { font-size: 16px; margin-top: 26px; }
.quote-selection { margin-bottom: 24px; padding: 18px; border: 1px solid #4fa6d8; border-radius: 8px; background: #082a46; box-shadow: 0 0 22px #1884e033; }
.quote-selection p { margin-top: 6px; font-family: Exo, Arial, sans-serif; font-size: 16px; color: #eaf6ff; }
.quote-selection > span:last-child { display: block; margin-top: 4px; font-size: 12px; color: #ffbe86; }
.quote-contact { list-style: none; margin: 18px 0 0; padding: 0; }
.quote-contact li { display: flex; gap: 14px; align-items: center; padding: 14px 0; border-top: 1px solid #1b4566; }
.quote-contact span { display: block; font-size: 10px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: #8fd6ff; }
.quote-contact a { font-size: 14px; color: #eaf6ff; overflow-wrap: anywhere; }
.quote-contact a:hover { color: #8fd6ff; }
.quote-steps { margin: 12px 0 24px; padding-left: 20px; }
.quote-steps li { margin-top: 10px; font-size: 13px; line-height: 1.7; color: #c8dbea; }
.quote-steps li::marker { color: #5bc2ff; font-family: Exo, Arial, sans-serif; }

/* Responsive layouts. */
@media (max-width: 1300px) {
  .topic-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .why-grid-four, .option-grid-four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vendor-card-body { padding: 22px; }
  .outcome-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
}
@media (max-width: 1080px) {
  .vendor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vendor-grid > :last-child { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; }
  .vendor-grid > :last-child .vendor-card-art { aspect-ratio: auto; height: 100%; border-bottom: 0; border-right: 1px solid #234c6c; }
  .training-hero-grid, .vendor-hero-grid { gap: 32px; }
  .palo-course { grid-template-columns: 1fr; gap: 30px; }
  .lab-layout { grid-template-columns: 1fr; }
  .sw-course { padding: 26px; }
  .course-hero-grid { grid-template-columns: 1fr; gap: 26px; }
  .course-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .course-facts div:nth-child(odd) { border-right: 1px solid #234c6c; }
  .course-facts div:nth-child(3) { border-bottom: 0; }
  .schedule-hero-grid { grid-template-columns: 1fr; gap: 26px; }
  .quote-layout { grid-template-columns: 1fr; }
  .course-overview { gap: 36px; }
}
@media (max-width: 900px) {
  .training-subnav .subnav-cta { margin-left: 0; }
  .training-hero-grid, .vendor-hero-grid { grid-template-columns: 1fr; }
  .training-hero-visual { padding: 0 0 30px; max-width: 640px; }
  .training-hero-partners { left: 14px; top: 14px; }
  .vendor-hero-visual { max-width: 640px; }
  .sw-course-grid, .syllabus-grid { grid-template-columns: 1fr; }
  .course-overview { grid-template-columns: 1fr; }
  .why-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .session-row { grid-template-columns: 76px minmax(0, 1fr); }
  .session-actions { grid-column: 1 / -1; flex-wrap: wrap; justify-content: flex-start; padding-top: 12px; border-top: 1px solid #1b4566; }
  .session-actions .button { margin-left: auto; }
  .course-record-columns { grid-template-columns: 1fr; gap: 22px; }
}
@media (max-width: 800px) {
  .vendor-grid { grid-template-columns: 1fr; }
  .vendor-grid > :last-child { display: flex; }
  .vendor-grid > :last-child .vendor-card-art { aspect-ratio: 16 / 8; height: auto; border-right: 0; border-bottom: 1px solid #234c6c; }
  .option-grid { grid-template-columns: 1fr; }
  .schedule-selects { grid-template-columns: 1fr 1fr; }
  .schedule-view { grid-column: 1 / -1; }
  .sw-path { grid-template-columns: 1fr; }
  .sw-path li + li { border-left: 0; border-top: 1px solid #2c5574; }
}
@media (max-width: 600px) {
  .training-subnav > div { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; padding-block: 9px; }
  .training-subnav a { flex: 0 0 auto; padding: 7px 12px; font-size: 11px; }
  .training-hero-copy h1 { font-size: 40px; }
  .training-hero-copy .product-hero-lead { font-size: 14px; }
  .training-assurances { grid-template-columns: 1fr 1fr; gap: 12px 16px; }
  .training-assurances li { font-size: 9px; gap: 7px; }
  .training-assurances img { width: 22px; height: 22px; }
  .training-hero-card { padding: 10px 13px; }
  .training-hero-card p { font-size: 13px; }
  .training-hero-next { position: relative; right: auto; bottom: auto; max-width: none; margin-top: 12px; }
  .training-hero-visual { padding-bottom: 0; }
  .hero-product-actions .button { flex: 1 1 100%; justify-content: space-between; }
  .vendor-card-actions .button { flex: 1 1 100%; justify-content: space-between; }
  .why-grid, .why-grid-four, .option-grid-four, .topic-grid, .outcome-grid, .palo-themes { grid-template-columns: 1fr; }
  .vendor-stats { margin-top: 10px; }
  .vendor-stats div { padding: 10px; }
  .vendor-stats dt { font-size: 17px; }
  .vendor-stats dd { font-size: 9px; }
  .vendor-hero-copy h1 { font-size: 34px; }
  .course-record > summary { padding: 18px; gap: 14px; }
  .course-record-title { font-size: 16px; }
  .course-record-body { padding: 4px 18px 20px; }
  .course-outline ol { columns: 1; }
  .course-toggle { flex-basis: 30px; height: 30px; }
  .session-row { grid-template-columns: 64px minmax(0, 1fr); gap: 16px; padding: 16px; }
  .session-date strong { font-size: 24px; }
  .session-main h3 { font-size: 15px; }
  .session-actions { gap: 12px; }
  .session-actions .button { flex: 1 1 100%; margin-left: 0; justify-content: space-between; }
  .sw-course { padding: 22px 18px; }
  .sw-code { font-size: 40px; }
  .sw-course h3 { font-size: 20px; }
  .sw-facts div { grid-template-columns: 1fr; gap: 4px; }
  .lab-diagram { padding: 10px; }
  .lab-zone { padding: 20px 18px; }
  .lab-zone-modules { grid-template-columns: 1fr; gap: 14px; }
  .course-facts { grid-template-columns: 1fr; }
  .course-facts div:nth-child(odd) { border-right: 0; }
  .course-facts div:nth-child(3) { border-bottom: 1px solid #234c6c; }
  .certification-panel { flex-direction: column; align-items: flex-start; padding: 26px 22px; gap: 16px; }
  .schedule-summary { grid-template-columns: 1fr 1fr; }
  .schedule-summary div:last-child { grid-column: 1 / -1; border-top: 1px solid #234c6c; }
  .schedule-summary div:nth-child(2) { border-right: 0; }
  .schedule-tools { padding: 18px; }
  .schedule-selects { grid-template-columns: 1fr; }
  .quote-form { padding: 22px 18px; }
  .field-grid { grid-template-columns: 1fr; }
  .quote-submit .button { width: 100%; min-width: 0; }
  .quote-aside { padding: 24px 20px; }
  .session-empty { padding: 22px 18px; }
  .session-empty .button { width: 100%; justify-content: space-between; }
  .training-quote-figure { padding: 20px; }
  .training-quote-figure blockquote p { font-size: 18px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .vendor-card:hover, .why-grid article:hover, .option-grid article:hover, .topic-grid article:hover, .sw-course:hover, .palo-theme:hover { transform: none; }
  .vendor-card:hover .vendor-card-art img { transform: none; }
}
@media (max-width: 1300px) {
  .sw-panels { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .sw-panels { grid-template-columns: 1fr; }
  .sw-hero-brand { font-size: 44px; letter-spacing: 2px; }
  .sw-hero-title > span:last-child { font-size: 32px; }
  .sw-hero-features { grid-template-columns: 1fr 1fr; }
  .sw-hero-features li:nth-child(3) { border-left: 0; }
  .sw-hero-features li:nth-child(n+3) { border-top: 1px solid #2a5a7f; }
  .sw-shield { width: 64px; height: 72px; top: 4%; }
  .sw-shield span { font-size: 7px; }
  .sw-hero-services { justify-content: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  .sw-panel:hover { transform: none; }
}

/* Overview "at a glance" panels, after the supplied Designer (7) reference. */
.glance-section { padding-top: 0; }
.glance-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.glance-panel { border: 1px solid #2f6187; border-radius: 10px; overflow: hidden; background: linear-gradient(170deg, #0a2a44, #041527 70%); box-shadow: 0 18px 36px #0005; transition: transform .25s, border-color .25s; }
.glance-panel:hover { transform: translateY(-3px); border-color: #4fb5ec; }
.glance-head { display: flex; gap: 12px; align-items: center; padding: 16px 18px; border-bottom: 1px solid #2f6187; background: linear-gradient(90deg, #0d3d63, #082640); }
.product-section .glance-head h3 { font-size: 15px; letter-spacing: .6px; text-transform: uppercase; color: #eaf6ff; }
.product-section .glance-head p { font-size: 11px; line-height: 1.4; color: #8fc6ea; margin-top: 2px; }
.glance-panel > ul, .glance-panel > ol { margin: 0; padding: 14px 18px 18px; }
.glance-links { list-style: none; }
.glance-links li + li { margin-top: 8px; }
.glance-links a { display: flex; justify-content: space-between; align-items: center; padding: 10px 12px; border: 1px solid #2a5a7f; border-radius: 6px; background: #072238; font-size: 13px; font-weight: 600; color: #d8ebf8; transition: border-color .2s, background .2s; }
.glance-links a:hover { border-color: #66beff; background: #0d3352; color: #fff; }
.glance-links a span { font-size: 18px; color: #6fc6ff; }
.glance-path { list-style: none; display: grid; gap: 8px; padding-bottom: 6px !important; }
.glance-path li { display: flex; gap: 12px; align-items: center; padding: 10px 12px; border-radius: 6px; font-size: 12px; color: #fff; background: linear-gradient(90deg, #c75308, #ff8a2a); }
.glance-path li + li { background: linear-gradient(90deg, #a83a00, #e2580b); }
.glance-path span { font-family: Exo, Arial, sans-serif; font-size: 15px; }
.glance-exams { list-style: none; padding-top: 6px !important; }
.glance-exams li { margin-top: 10px; font-size: 12px; line-height: 1.5; color: #b9d0e2; }
.glance-exams strong { display: inline-block; margin-right: 6px; padding: 2px 8px; border: 1px solid #ff6e86; border-radius: 12px; font-family: Exo, Arial, sans-serif; color: #ffb3c0; }
.glance-panel .check-list li { font-size: 13px; margin-top: 10px; }
.glance-delivery { list-style: none; }
.glance-delivery li { display: flex; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid #17405f; font-size: 13px; color: #d6e8f6; }
.glance-delivery li:last-child { border: 0; }
@media (max-width: 1300px) { .glance-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .glance-grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .glance-panel:hover { transform: none; } }
