/* Fonts are self-hosted and preloaded in each page's <head>, so text doesn't flash in a fallback font */
@font-face { font-family: "Inter"; src: url(/assets/fonts/inter-latin.woff2) format("woff2"); font-weight: 400 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Poppins"; src: url(/assets/fonts/poppins-800-latin.woff2) format("woff2"); font-weight: 800; font-style: normal; font-display: swap; }

/* Tech Camp page style. Rules and reasoning: docs/style-guide.md.
   Use only these tokens; if a page needs a new value, change the guide first. */

:root {
  /* Colour */
  --blue: #0080ff;
  --blue-dark: #0058c9;
  --blue-light: #7fbfff;
  --gold: #ebb000;
  --tint: #e8f3ff;
  --navy: #091833;
  --ink: #1d2433;
  --text: #4a5263;
  --muted: #6b7385;
  --line: #eceef3;
  --line-strong: #d9dce3;
  --bg: #fff;
  --bg-alt: #f5f5f7;
  --on-dark: rgba(255, 255, 255, .85);
  --on-dark-line: rgba(255, 255, 255, .25);
  --glass: rgba(255, 255, 255, .1);
  --glass-dark: rgba(9, 24, 51, .45);
  --grad-blue: linear-gradient(135deg, var(--blue), var(--blue-dark));
  --scrim: linear-gradient(90deg, rgba(9, 24, 51, .94), rgba(9, 24, 51, .7) 45%, rgba(9, 24, 51, .25));
  --scrim-down: linear-gradient(180deg, rgba(9, 24, 51, .92), rgba(9, 24, 51, .75) 55%, rgba(9, 24, 51, .25));
  --scrim-photo: linear-gradient(90deg, rgba(9, 24, 51, .62), rgba(9, 24, 51, .48) 45%, rgba(9, 24, 51, .38));
  --scrim-photo-down: linear-gradient(180deg, rgba(9, 24, 51, .6), rgba(9, 24, 51, .5));
  /* Accents: only for telling a set of things apart (e.g. days) */
  --a1: #0a84ff; --a1t: #eaf3ff;
  --a2: #8e5cf7; --a2t: #f2edff;
  --a3: #1fa35b; --a3t: #e9f7ef;
  --a4: #f08c00; --a4t: #fff3e0;
  --a5: #e5487c; --a5t: #fdebf1;

  /* Type: one family, six sizes, three weights */
  --font: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
  --t-display: 60px;
  --t-title: 36px;
  --t-group: 24px;
  --t-lead: 20px;
  --t-body: 17px;
  --t-small: 15px;
  --t-caption: 13px;
  --lh-tight: 1.1;
  --lh-snug: 1.35;
  --lh-text: 1.55;
  --track: -.025em;

  /* Space: four fixed steps inside components, five layout tokens that shrink on phones */
  --s1: 4px; --s2: 8px; --s3: 12px; --s4: 16px;
  --gutter: 32px;
  --pad: 24px;
  --gap: 24px;
  --head-gap: 40px;
  --stack: 64px;
  --section: 88px;

  /* Shape */
  --r-sm: 10px;
  --r: 16px;
  --pill: 999px;
  --shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 4px 16px rgba(16, 24, 40, .06);
  --icon: 28px;
  --icon-sm: 24px;
  --icon-xs: 18px;
}

@media (max-width: 767px) {
  :root {
    --t-display: 40px;
    --t-title: 27px;
    --t-group: 20px;
    --t-lead: 17px;
    --t-body: 16px;
    --gutter: 20px;
    --pad: 20px;
    --gap: 16px;
    --head-gap: 28px;
    --stack: 40px;
    --section: 56px;
  }
}

/* Base */
.tc { font-family: var(--font); font-size: var(--t-body); line-height: var(--lh-text); color: var(--text); -webkit-font-smoothing: antialiased; }
.tc * { box-sizing: border-box; }
.tc h1, .tc h2, .tc h3, .tc h4 { font-family: var(--font); font-weight: 700; letter-spacing: var(--track); color: var(--ink); margin: 0; text-wrap: balance; }
.tc h1 { font-size: var(--t-display); line-height: 1.02; }
.tc h2 { font-size: var(--t-title); line-height: var(--lh-tight); }
.tc h3 { font-size: var(--t-body); line-height: var(--lh-snug); }
.tc p { margin: 0; text-wrap: pretty; }
.tc a { text-decoration: none; }
.tc p a { color: var(--blue); font-weight: 600; }
.tc p a:hover { text-decoration: underline; }
.tc-icon { font-family: 'MATERIAL ICONS', sans-serif; font-weight: 400; font-style: normal; font-size: var(--icon); line-height: 1; letter-spacing: normal; text-transform: none; white-space: nowrap; font-feature-settings: "liga"; color: var(--blue); flex: none; }
.tc-icon svg { display: block; width: 1em; height: 1em; }

/* Layout */
.tc-wrap { max-width: 1160px; margin: 0 auto; padding: 0 var(--gutter); }
.tc-sec { padding: var(--section) 0; background: var(--bg); }
.tc-sec--alt { background: var(--bg-alt); }
.tc-sec--blue { background: var(--grad-blue); color: var(--on-dark); }
.tc-sec--blue h2, .tc-sec--blue h3 { color: #fff; }
.tc-stack + .tc-stack { margin-top: var(--stack); }
.tc-grid + .tc-card { margin-top: var(--gap); }
.tc-card + .tc-grid { margin-top: var(--gap); }
.tc-split + .tc-grid, .tc-split + .tc-copy, .tc-grid + .tc-copy { margin-top: var(--head-gap); }
.tc-split { display: grid; grid-template-columns: 3fr 2fr; gap: calc(var(--gap) * 2); align-items: start; }
.tc-split--head { grid-template-columns: 1fr 2fr; }
/* Wrapped split, for long text beside one picture or card: the aside (placed first in the markup) floats at the top right and the text flows round it, then full width beneath */
@media (min-width: 992px) {
  .tc-split--wrap { display: block; }
  .tc-split--wrap::after { content: ""; display: table; clear: both; }
  .tc-split--wrap > :first-child { float: right; width: 40%; margin: 0 0 var(--gap) calc(var(--gap) * 2); }
  .tc-split--wrap.tc-flip > :first-child { float: left; margin: 0 calc(var(--gap) * 2) var(--gap) 0; }
}
@media (max-width: 991px) { .tc-split--wrap > :first-child { order: 2; } }
/* Flipped split: image on the left, heading and text on the right (alternate with normal splits) */
@media (min-width: 992px) {
  .tc-flip.tc-split, .tc-flip > .tc-split { grid-template-columns: 2fr 3fr; }
  .tc-flip.tc-split > :first-child, .tc-flip > .tc-split > :first-child { order: 2; }
  .tc-flip > .tc-head { margin-left: calc(40% + var(--gap) * 1.2); }
}
.tc-split--head .tc-head { margin: 0; }
/* A run of sibling groups (FAQ categories): smaller headings, less space between them */
.tc-sec--group .tc-head h2 { font-size: var(--t-group); }
.tc-sec--group { padding: var(--stack) 0; }
.tc-grid { display: grid; gap: var(--gap); grid-template-columns: repeat(3, 1fr); }
.tc-grid--4 { grid-template-columns: repeat(4, 1fr); }
.tc-grid--5 { grid-template-columns: repeat(5, 1fr); }

/* Section heading: each sentence of the lead starts a new line on desktop */
.tc-head { max-width: 900px; margin-bottom: var(--head-gap); }
.tc-head p { margin-top: var(--s3); font-size: var(--t-lead); line-height: var(--lh-snug); color: var(--muted); text-wrap: balance; }
@media (min-width: 768px) { .tc-head p span { display: block; text-wrap: balance; } }

/* Card */
.tc-card { background: var(--bg); border-radius: var(--r); box-shadow: var(--shadow); overflow: hidden; color: inherit; }
a.tc-card { display: block; transition: transform .2s; }
a.tc-card:hover { transform: translateY(-3px); }
.tc-card > img, .tc-card > video { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
.tc-grid--5 .tc-card > img { aspect-ratio: 4 / 3; }
/* Team portraits: the old site's near-square crop, head high with shoulders showing */
.tc-team .tc-card > img { aspect-ratio: 12 / 11; object-position: 50% 25%; }
@media (max-width: 991px) { .tc-team > .tc-copy { grid-column: 1 / -1; } }
.tc-body { padding: var(--pad); }
.tc-body h3 { margin: var(--s1) 0 var(--s2); }
.tc-body p { font-size: var(--t-small); }
.tc-title-row { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); }
.tc-title-row h3 { margin: 0; }
.tc-sub { margin-top: var(--s1); color: var(--muted); }

/* Labels */
.tc-tag { font-size: var(--t-caption); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--blue); }
.tc-badge, .tc-chip { display: inline-flex; align-items: center; gap: 6px; border-radius: var(--pill); background: var(--tint); color: var(--blue-dark); font-weight: 600; line-height: 1.2; white-space: nowrap; }
.tc-badge { padding: var(--s1) 10px; font-size: var(--t-caption); flex: none; }
.tc-chip { padding: var(--s2) var(--s3); font-size: var(--t-small); }
.tc-chip .tc-icon { font-size: var(--icon-xs); color: inherit; }
.tc-chips { display: flex; flex-wrap: wrap; gap: var(--s2); }
.tc-num { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: var(--blue); color: #fff; font-size: var(--t-small); font-weight: 600; flex: none; }
.tc-more { display: inline-block; margin-top: var(--s4) ; padding-top: var(--s4); color: var(--blue); font-weight: 600; }

/* Buttons */
.tc-btns { display: flex; gap: var(--s3); margin-top: 32px; flex-wrap: wrap; }
.tc-btn { display: inline-flex; align-items: center; justify-content: center; height: 48px; padding: 0 var(--pad); border-radius: var(--pill); font-size: var(--t-small); font-weight: 600; white-space: nowrap; }
.tc-btn--primary { background: var(--blue); color: #fff; }
.tc-btn--ghost { border: 1.5px solid rgba(255, 255, 255, .55); color: #fff; background: var(--glass-dark); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.tc-btn--white { background: #fff; color: var(--blue); }
.tc-btn:hover { opacity: .9; }
.tc-links { display: flex; flex-wrap: wrap; gap: var(--s2); }
.tc-hero .tc-links { margin-top: var(--pad); }
.tc-links .tc-btn { height: auto; padding: var(--s2) var(--s4); font-size: var(--t-small); }
@media (max-width: 767px) {
  /* Hero pill links (FAQ topics): one row that scrolls sideways, fading at the right edge */
  .tc-hero .tc-links { flex-wrap: nowrap; overflow-x: auto; margin-right: calc(var(--gutter) * -1); padding-right: var(--gutter); scrollbar-width: none; -webkit-mask-image: linear-gradient(to right, #000 85%, transparent); mask-image: linear-gradient(to right, #000 85%, transparent); }
  .tc-hero .tc-links::-webkit-scrollbar { display: none; }
  .tc-hero .tc-wrap > div { min-width: 0; }
  .tc-hero .tc-links .tc-btn { flex: none; white-space: nowrap; }
}

/* Hero */
.tc-hero { position: relative; background: var(--navy) center / cover; color: #fff; overflow: hidden; }
.tc-hero::before { content: ""; position: absolute; inset: 0; background: var(--scrim); }
.tc-hero .tc-wrap { position: relative; display: grid; grid-template-columns: 1fr 1.15fr; gap: 40px; align-items: center; padding-top: calc(var(--section) * .8); padding-bottom: calc(var(--section) * .8); }
.tc-hero h1 { color: #fff; }
.tc-hero-badge { display: inline-flex; align-items: center; gap: 6px; margin-bottom: var(--s4); padding: 6px var(--s3) 6px 10px; border-radius: var(--pill); background: #fff; color: var(--ink) !important; font-size: var(--t-small); font-weight: 600; line-height: 1.2; box-shadow: var(--shadow); }
.tc-hero-badge .tc-icon { font-size: var(--icon-xs); color: var(--blue); }
.tc-hero h1 small { display: block; margin-top: var(--s3); font-size: .55em; font-weight: 400; line-height: var(--lh-tight); color: var(--blue-light); }
.tc-hero--photo { background-position: right center; }
.tc-hero--photo::before { background: var(--scrim-photo); }
.tc-hero--photo h1, .tc-hero--photo .tc-lead { text-shadow: 0 1px 16px rgba(9, 24, 51, .55); }
.tc-hero .tc-lead { margin-top: var(--pad); font-size: var(--t-lead); line-height: var(--lh-text); color: var(--on-dark); max-width: 30em; text-wrap: balance; }
.tc-hero img { width: 100%; display: block; }

/* Photo call to action */
.tc-photo { position: relative; background: var(--navy) center 47% / cover; }
.tc-photo::before { content: ""; position: absolute; inset: 0; background: var(--scrim-photo); }
.tc-photo .tc-wrap { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; }
.tc-photo img { width: 100%; display: block; }
.tc-photo h2 { color: #fff; }
.tc-photo .tc-btns { justify-content: center; }
.tc-photo .tc-lead { margin-top: var(--s4); font-size: var(--t-lead); line-height: var(--lh-text); color: var(--on-dark); }
.tc-photo .tc-lead a { color: #fff; font-weight: 600; white-space: nowrap; }

/* Band: heading and buttons in one row */
.tc-band { padding: 40px 0; }
.tc-band .tc-wrap { display: flex; align-items: center; justify-content: space-between; gap: var(--gap); flex-wrap: wrap; }

/* Facts */
.tc-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line); }
.tc-fact { display: flex; gap: var(--s3); align-items: flex-start; padding: var(--s4); background: var(--bg); min-width: 0; }
.tc-fact .tc-icon { font-size: var(--icon-sm); }
.tc-fact-l { font-size: var(--t-caption); color: var(--muted); line-height: var(--lh-snug); white-space: nowrap; }
.tc-fact-v { font-size: var(--t-small); font-weight: 600; color: var(--ink); line-height: var(--lh-snug); text-wrap: balance; }
.tc-aside > * + * { margin-top: var(--gap); }
.tc-aside > video { width: 100%; display: block; }
.tc-copy p + p { margin-top: var(--s4); }

/* Tile: icon above a short line of text */
.tc-tile { padding: var(--pad); }
.tc-tile .tc-icon { display: block; margin-bottom: var(--s3); }
.tc-tile p { font-size: var(--t-small); line-height: var(--lh-snug); color: var(--ink); }

/* Glass card on a blue band */
.tc-glass { background: var(--glass); border: 1px solid var(--on-dark-line); border-radius: var(--r); padding: var(--pad); }
.tc-glass .tc-icon { color: #fff; }
.tc-glass p { font-size: var(--t-small); color: var(--on-dark); }
.tc-icon-row { display: flex; align-items: center; gap: var(--s3); margin-bottom: var(--s3); }

/* Accordion */
.tc-faq { display: flex; flex-direction: column; gap: var(--s3); }
.tc-faq summary { cursor: pointer; list-style: none; position: relative; padding: var(--s4) 52px var(--s4) var(--pad); font-weight: 600; color: var(--ink); line-height: var(--lh-snug); text-wrap: balance; }
.tc-faq summary::-webkit-details-marker { display: none; }
.tc-faq summary::after { content: "add"; font-family: 'MATERIAL ICONS'; font-weight: 400; font-size: var(--icon-sm); position: absolute; right: 20px; top: 50%; transform: translateY(-50%); color: var(--blue); }
.tc-faq details[open] summary::after { content: "remove"; }
.tc-faq details p { padding: 0 var(--pad); font-size: var(--t-small); }
.tc-faq details p + p { margin-top: var(--s3); }
.tc-faq details p:last-child { padding-bottom: var(--pad); }

/* Timetable: one row per day, one accent per day */
.tc-table { padding: var(--pad); }
.tc-row { display: grid; grid-template-columns: 230px repeat(4, 1fr); gap: var(--s3); padding: 6px 0; }
.tc-row--head { padding: 0 0 6px; }
.tc-row--head span { font-size: var(--t-caption); font-weight: 600; color: var(--muted); padding-left: var(--s4); }
.tc-day { display: flex; align-items: center; gap: var(--s3); padding-right: var(--s2); }
.tc-day .tc-icon { width: 40px; height: 40px; border-radius: var(--r-sm); background: var(--c); color: #fff; font-size: var(--icon-sm); display: flex; align-items: center; justify-content: center; }
.tc-day-l { font-size: var(--t-caption); font-weight: 600; color: var(--c); }
.tc-cell { display: flex; align-items: center; background: var(--ct); border-radius: var(--r-sm); padding: var(--s3) var(--s4); font-size: var(--t-small); line-height: var(--lh-snug); color: var(--ink); }
.tc-cell b { display: none; }

/* Footer */
.tc-foot { border-top: 1px solid var(--line); font-size: var(--t-small); }
.tc-foot .tc-wrap { padding-top: 56px; padding-bottom: 32px; }
.tc-foot-top { display: grid; grid-template-columns: 1.6fr repeat(4, 1fr); gap: 32px; }
.tc-foot-logo { width: 132px; display: block; margin-bottom: var(--s4); }
.tc-tel { display: flex; align-items: center; gap: var(--s2); color: var(--ink); font-weight: 600; margin-bottom: var(--s1); }
.tc-tel .tc-icon { font-size: var(--icon-xs); }
.tc-foot-note { font-size: var(--t-caption); color: var(--muted); }
.tc-foot-cards { width: 200px; display: block; margin-top: var(--s4); }
.tc-social { display: flex; gap: var(--s3); margin-top: var(--s4); }
.tc-social img { width: 28px; height: 28px; display: block; }
.tc-foot h4 { font-size: var(--t-caption); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-bottom: var(--s4); }
.tc-foot ul { list-style: none; margin: 0; padding: 0; }
.tc-foot li { margin-bottom: var(--s3); }
.tc-foot li a { color: var(--ink); }
.tc-foot li a:hover { color: var(--blue); }
.tc-foot-bottom { margin-top: 48px; padding-top: var(--pad); border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: var(--s4); flex-wrap: wrap; color: var(--muted); font-size: var(--t-caption); }
.tc-foot-bottom a { color: var(--muted); margin-left: var(--s4); }

/* Site header and trust bar (Webflow markup), restyled to match */
.header { font-family: var(--font) !important; padding-top: 14px !important; }
.header .header-container { padding-bottom: 14px; }
.header .hamburger-menu-text { font-family: var(--font); font-size: var(--t-small); font-weight: 600; color: var(--ink); letter-spacing: -.01em; }
.header .header-menu-list-item a.hamburger-menu-text { color: var(--blue); }
.header .menu-dropdown-chevron { width: 12px; opacity: .55; }
.header .list-item-2 { gap: var(--s3) !important; }
.header .list-item-2 img { width: var(--icon-sm) !important; height: var(--icon-sm); }
.header .image-28 { width: 104px !important; }
.header .button-secondary-small { font-family: var(--font); font-weight: 600; font-size: var(--t-small); padding: 11px 20px; margin: 0; }
.header .menu-dropdown-link { font-family: var(--font); font-size: var(--t-small); color: var(--ink); }
.header .menu-dropdown-category { font-family: var(--font); font-size: var(--t-caption); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.brix---top-bar-wrapper { background: var(--navy) !important; font-family: var(--font) !important; border-bottom: 1px solid var(--on-dark-line); }
.brix---top-bar-wrapper .text-block-3 { font-size: var(--t-caption); line-height: var(--lh-snug); opacity: .85; }
.brix---top-bar-wrapper img { opacity: .85; }
.brix---top-bar-wrapper .text-block-3 { white-space: nowrap; }
@media (max-width: 767px) { .brix---top-bar-wrapper .div-block-11 { grid-template-columns: auto minmax(0, 1fr) !important; column-gap: var(--s4) !important; } }

/* Tablet */
@media (max-width: 991px) {
  .tc-hero .tc-wrap, .tc-photo .tc-wrap, .tc-split, .tc-split--head { grid-template-columns: 1fr; }
  .tc-photo img { display: none; }
  .tc-split--head { gap: 0; }
  .tc-split--head .tc-head { position: static; margin-bottom: var(--head-gap); }
  .tc-grid, .tc-grid--4 { grid-template-columns: 1fr 1fr; }
  .tc-grid--5 { grid-template-columns: repeat(3, 1fr); }
  .tc-row { grid-template-columns: 1fr 1fr; gap: var(--s2); padding: 0; }
  .tc-row + .tc-row { margin-top: var(--head-gap); }
  .tc-row--head { display: none; }
  .tc-day { grid-column: 1 / -1; margin-bottom: var(--s1); }
  .tc-cell b { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 50%; background: var(--c); color: #fff; font-size: var(--t-caption); font-weight: 600; margin-right: 10px; flex: none; }
  .tc-foot-top { grid-template-columns: 1fr 1fr; }
  .tc-foot-top > :first-child { grid-column: 1 / -1; }
}

/* Phone */
@media (max-width: 767px) {
  .tc-grid, .tc-row { grid-template-columns: 1fr; }
  .tc-grid--4, .tc-grid--5 { grid-template-columns: 1fr 1fr; }
  .tc-hero .tc-wrap { gap: 28px; padding-bottom: var(--pad); }
  .tc-hero img { width: 112%; margin-left: -6%; }
  .tc-hero img.tc-rounded { width: 100%; margin-left: 0; }
  .tc-hero::before { background: var(--scrim-down); }
  .tc-hero--photo::before { background: var(--scrim-photo-down); }
  .tc-hero--photo .tc-wrap { padding-bottom: calc(var(--section) * .8); }
  .tc-btns { margin-top: var(--pad); flex-wrap: nowrap; gap: var(--s2); }
  .tc-btns .tc-btn { padding: 0 var(--s4); height: 44px; }
  .tc-links .tc-btn { padding: 7px 10px; }
  .tc-band { padding: 32px 0; }
  .tc-band .tc-wrap { gap: 18px; }
  .tc-fact { gap: 10px; padding: 14px; }
  .tc-grid--5 .tc-body { padding: var(--s3) 14px; }
  .tc-table { padding: var(--s3) var(--s4) var(--s4); }
  .tc-cell { padding: 11px var(--s3); }
  .tc-foot-bottom a { margin: 0 var(--s4) 0 0; }
}

/* Mobile menu (Webflow nav): a floating rounded panel under the menu button, over a dimmed page */
@media (max-width: 991px) {
  .w-nav-overlay { background: rgba(9, 24, 51, .45); }
  .w-nav-overlay [data-nav-menu-open], .header .header-menu[data-nav-menu-open] { width: auto; max-width: 320px; margin: var(--s2) var(--s3) 0 auto; max-height: calc(100vh - 140px); overflow-y: auto; border-radius: var(--r); }
  .header .header-menu { background: var(--bg); padding: var(--s2) var(--pad) var(--pad); text-align: left; box-shadow: 0 12px 40px rgba(9, 24, 51, .25); }
  .header .header-menu-list { display: flex; flex-direction: row !important; flex-wrap: wrap; align-items: center; margin: 0; padding: 0; }
  .header .header-menu-list > li { width: 100%; margin: 0; padding: 0; border-bottom: 1px solid var(--line); text-align: left; }
  .header .menu-dropdown-wrapper { display: block; width: 100%; }
  .header .menu-dropdown-toggle { display: flex; justify-content: space-between; align-items: center; width: 100%; padding: var(--s4) 0; }
  .header .hamburger-menu-text { font-size: var(--t-body); }
  .header .menu-dropdown-chevron { width: 14px; margin: 0; }
  .header .w--nav-dropdown-list-open { position: static; background: transparent; box-shadow: none; padding: 0 0 var(--pad); }
  .header .w--nav-dropdown-list-open .menu-dropdown-card, .header .w--nav-dropdown-list-open [class*="menu-dropdown-pd"], .header .w--nav-dropdown-list-open [class*="menu-dropdown-card-pd"] { background: transparent; box-shadow: none; border: 0; padding: 0; }
  .header .w--nav-dropdown-list-open, .header .w--nav-dropdown-list-open * { text-align: left; justify-items: start; }
  /* Groups: a blue heading, then its links close together; space between groups */
  .header .w--nav-dropdown-list-open .w-layout-grid { display: flex; flex-direction: column; gap: var(--pad); }
  .header .w--nav-dropdown-list-open .menu-grid-dropdown-wrapper, .header .w--nav-dropdown-list-open .menu-dropdown-links-grid { gap: 0; }
  .header .w--nav-dropdown-list-open .menu-dropdown-category-wrapper { margin: 0 0 var(--s1); padding: 0; }
  .header .w--nav-dropdown-list-open .menu-dropdown-category { font-size: var(--t-small); font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--blue); }
  .header .w--nav-dropdown-list-open .menu-dropdown-category-wrapper:has(+ .cta-1) { display: none; }
  .header .w--nav-dropdown-list-open .menu-dropdown-link { display: block; padding: var(--s1) 0; font-size: var(--t-small); line-height: var(--lh-snug); color: var(--text); }
  .header .w--nav-dropdown-list-open .menu-dropdown-link.cta-1 { padding-top: 0; color: var(--blue); font-weight: 600; }
  .header .w--nav-dropdown-list-open .menu-dropdown-link.cta-2 { margin-top: var(--s3); color: var(--blue); font-weight: 600; }
  /* Last rows: My Bookings with the social links, then the Event Calendar button */
  .header .header-menu-list > li:has(> a.hamburger-menu-text), .header .header-menu-list > li.list-item-2 { width: auto; border-bottom: 0; margin-top: var(--pad); display: flex; align-items: center; }
  .header .header-menu-list > li:has(> a.hamburger-menu-text) { order: 1; }
  .header .header-menu-list > li.list-item-2 { order: 2; margin-left: auto !important; }
  .header .header-menu-list > li > a.hamburger-menu-text { display: inline; padding: 0; font-size: var(--t-body); }
  .header .header-menu-list > li.menu-button-mobile-only { order: 3; width: 100%; border-bottom: 0; margin-top: var(--s4); }
  .header .menu-button-mobile-only .button-secondary-small { display: flex; width: 100%; height: 44px; align-items: center; justify-content: center; margin: 0; }
}

/* Additions for photo-led pages */
.tc-grid--2 { grid-template-columns: repeat(2, 1fr); }
.tc-rounded { border-radius: var(--r); box-shadow: var(--shadow); }
.tc-video { position: relative; aspect-ratio: 16 / 9; border-radius: var(--r); overflow: hidden; box-shadow: var(--shadow); background: var(--navy); }
.tc-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
@media (max-width: 767px) { .tc-grid--2 { grid-template-columns: 1fr; } }

/* Course card on category pages: photo, title, short line, key facts, link */
.tc-course .tc-body p { font-size: var(--t-small); }
.tc-meta { display: flex; flex-wrap: wrap; gap: 6px var(--s4); margin-top: var(--s3); font-size: var(--t-small); color: var(--muted); }
.tc-meta span { display: inline-flex; align-items: center; gap: 6px; }
.tc-meta .tc-icon { font-size: var(--icon-xs); }
.tc-meta .tc-price { align-items: flex-start; }
.tc-meta .tc-price .tc-icon { line-height: calc(var(--t-small) * var(--lh-text)); }
.tc-go { display: inline-block; margin-top: var(--s4); color: var(--blue); font-weight: 600; }

/* ---- Pages other than courses: page title, articles, forms, blog lists ---- */

/* Page title band for info, venue, contact and blog pages: the hero without the image column */
.tc-hero--page .tc-wrap { grid-template-columns: 1fr; padding-top: calc(var(--section) * .5); padding-bottom: calc(var(--section) * .5); }
.tc-hero--page h1 { font-size: var(--t-title); line-height: var(--lh-tight); }
.tc-hero--page .tc-lead { margin-top: var(--s3); }
.tc-hero--page .tc-lead { max-width: 36em; }
.tc-hero-meta { margin-top: var(--s4); font-size: var(--t-small); color: var(--on-dark); }

/* Article text: policies, guides, blog posts */
.tc .tc-prose { max-width: 720px; }
.tc .tc-prose--wide { max-width: none; }
/* Full-width text: pictures keep their natural size (never stretched); an opening picture floats top right and the text wraps round it */
.tc .tc-prose--wide img, .tc .tc-prose--wide video { width: auto; max-width: 100%; }
.tc .tc-prose--wide::after { content: ""; display: table; clear: both; }
@media (min-width: 992px) {
  .tc .tc-prose--wide > figure:first-child { float: right; width: 40%; margin: 0 0 var(--gap) calc(var(--gap) * 2); }
  .tc .tc-prose--wide > figure:first-child img { width: 100%; }
  .tc .tc-prose--wide > figure:first-child + * { margin-top: 0; }
}
.tc .tc-prose > * + * { margin-top: var(--s4); }
.tc .tc-prose h2 { margin-top: var(--stack); }
.tc .tc-prose h3 { margin-top: var(--head-gap); font-size: var(--t-lead); }
.tc .tc-prose h2 + *, .tc .tc-prose h3 + * { margin-top: var(--s3); }
.tc .tc-prose > :first-child { margin-top: 0; }
.tc .tc-prose ul, .tc .tc-prose ol { padding-left: 1.3em; }
.tc .tc-prose li + li { margin-top: var(--s2); }
.tc .tc-prose li::marker { color: var(--blue); }
.tc .tc-prose a { color: var(--blue); font-weight: 600; overflow-wrap: anywhere; }
.tc .tc-prose a:hover { text-decoration: underline; }
.tc .tc-prose strong { color: var(--ink); font-weight: 600; }
.tc .tc-prose img, .tc .tc-prose video { width: 100%; height: auto; display: block; border-radius: var(--r); }
.tc .tc-prose figure { margin-top: var(--pad); margin-bottom: var(--pad); }
.tc .tc-prose figcaption { margin-top: var(--s2); font-size: var(--t-caption); color: var(--muted); text-align: center; }
.tc .tc-prose blockquote { padding-left: var(--s4); border-left: 3px solid var(--blue); color: var(--ink); font-size: var(--t-lead); line-height: var(--lh-snug); }
.tc .tc-prose table { width: 100%; border-collapse: collapse; font-size: var(--t-small); }
.tc .tc-prose th, .tc .tc-prose td { padding: var(--s2) var(--s3); border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.tc .tc-prose th { color: var(--ink); font-weight: 600; }

/* Guides: a contents list on the left (chips on phones) and inline chapters on the right */
.tc-guide { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: calc(var(--gap) * 2); align-items: start; }
.tc-toc { display: flex; flex-direction: column; gap: var(--s1); font-size: var(--t-small); }
.tc-toc a { padding: var(--s1) 0; color: var(--muted); font-weight: 600; line-height: var(--lh-snug); }
.tc-toc a:hover { color: var(--blue); }
.tc-chapter { scroll-margin-top: var(--pad); }
.tc-chapter + .tc-chapter { margin-top: var(--stack); padding-top: var(--stack); border-top: 1px solid var(--line); }
@media (max-width: 991px) {
  .tc-guide { grid-template-columns: 1fr; gap: var(--head-gap); }
  .tc-toc { position: static; flex-direction: row; flex-wrap: wrap; gap: var(--s2); }
  .tc-toc a { padding: var(--s1) var(--s3); border-radius: var(--pill); background: var(--bg); box-shadow: inset 0 0 0 1px var(--line-strong); color: var(--ink); }
}

/* Home: tick list in the hero, a row of six square course cards, animated counters */
.tc-grid--6 { grid-template-columns: repeat(6, 1fr); }
.tc-grid--6 .tc-card > img { aspect-ratio: 1; }
.tc-grid--6 .tc-body { padding: var(--s3) var(--s4); }
.tc-grid--6 h3 { font-size: var(--t-small); }
.tc-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--gap); text-align: center; }
.tc-stat .tc-icon { font-size: var(--icon); color: var(--blue); }
.tc-stat-v { margin-top: var(--s2); font-size: var(--t-display); font-weight: 700; line-height: var(--lh-tight); letter-spacing: var(--track); color: var(--ink); font-variant-numeric: tabular-nums; }
.tc-stat-l { margin-top: var(--s1); color: var(--muted); }
@media (max-width: 767px) { .tc .tc-grid--6 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 991px) { .tc-grid--6 { grid-template-columns: repeat(3, 1fr); } .tc-stats { grid-template-columns: 1fr 1fr; row-gap: var(--head-gap); } }

/* Embedded documents, maps and videos */
.tc-embed { width: 100%; border: 0; display: block; border-radius: var(--r); box-shadow: var(--shadow); background: var(--bg-alt); }
.tc-embed--doc { height: 80vh; min-height: 560px; }
.tc-embed--map { aspect-ratio: 4 / 3; }
/* Brevo sign-up form: its iframe is cropped to the form's own white card (Brevo adds 32px/12px padding and a 1px border), so our card's corners and shadow show instead */
/* Brevo's form is an iframe we can't style: crop it to the white box inside (20px grey margin + 1px border, 40px on top) */
.tc-brevo { max-width: 538px; height: 560px; overflow: hidden; }
.tc-brevo iframe { display: block; width: calc(100% + 42px); height: 820px; margin: -41px -21px 0; border: 0; }
@media (max-width: 767px) { .tc-brevo { height: 600px; } }

/* Forms */
.tc-form { display: grid; gap: var(--s4); }
.tc-form label { display: block; margin-bottom: var(--s2); font-size: var(--t-small); font-weight: 600; color: var(--ink); }
.tc-form input:not([type="submit"]):not([type="checkbox"]), .tc-form textarea, .tc-form select { width: 100%; padding: var(--s3) var(--s4); border: 1px solid var(--line-strong); border-radius: var(--r-sm); background: #fff; font: inherit; font-size: var(--t-body); color: var(--ink); }
.tc-form textarea { min-height: 160px; resize: vertical; }
.tc-form :focus-visible { outline: 2px solid var(--blue); outline-offset: 1px; }
.tc-form input[type="submit"] { justify-self: start; cursor: pointer; border: 0; }
.tc-form-note { padding: var(--s4) var(--pad); border-radius: var(--r-sm); background: var(--tint); color: var(--blue-dark); font-weight: 600; }
.tc-form-note--error { background: var(--a5t); color: var(--a5); }
.tc-form-done, .tc-form-fail { display: none; }

/* Light outline button, for use on white */
.tc-btn--outline { background: #fff; color: var(--ink); box-shadow: inset 0 0 0 1px var(--line-strong); }
.tc-btn--outline:hover { box-shadow: inset 0 0 0 1px var(--blue); color: var(--blue); }

/* Blog lists and paging */
.tc-date { font-size: var(--t-caption); color: var(--muted); }
.tc-clamp { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.tc-pager { display: flex; justify-content: space-between; align-items: center; gap: var(--s3); margin-top: var(--head-gap); font-size: var(--t-small); color: var(--muted); }

/* Old Webflow home blocks kept as they were (course tabs, logo strip, counters, Why Tech Camp): undo .tc heading sizes */
.tc-press { margin-top: var(--stack); }
.tc-copy + .tc-facts { margin-top: var(--head-gap); }
/* Intro text too long for a section lead: normal paragraphs under the heading */
.tc-intro { max-width: 900px; margin-bottom: var(--head-gap); }
.tc-figure { margin: 0; }
.tc-figure figcaption { padding: var(--s2) var(--s4); font-size: var(--t-caption); color: var(--muted); }
.tc-figure figcaption a { color: inherit; }
/* Staff quotes, as on the old site: quote mark, small photo inset top right, signature at the foot */
.tc-quote { display: flex; flex-direction: column; }
.tc .tc-card > .tc-quote-mark { display: block; width: 64px; height: auto; aspect-ratio: auto; object-fit: contain; margin-bottom: var(--pad); }
@media (max-width: 767px) { .tc .tc-card > .tc-quote-mark { width: 50px; margin-bottom: var(--s4); } }
.tc .tc-quote-photo { float: right; width: 112px; height: 112px; aspect-ratio: 1; object-fit: cover; margin: 0 0 var(--s2) var(--s4); border-radius: var(--r-sm); }
.tc-quote .tc-copy { display: block; }
.tc-quote-by { margin-top: auto !important; padding-top: var(--pad); display: grid; gap: 2px; font-size: var(--t-small); color: var(--muted); }
.tc-quote-by strong { color: var(--ink); }
.tc-quote-by em { color: var(--blue-dark); font-style: normal; font-weight: 600; }
.tc .tech-camp-features.stack-1-raised { top: 0; margin-top: 0; padding-top: 0; }
.tc .section-coloured.medium-padding { padding-top: 56px; padding-bottom: 56px; }

/* Title hero (no buttons): title on one line, one larger line beneath, as on the old site */
.tc-hero--title .tc-wrap { grid-template-columns: 1fr; }
.tc-hero--title .tc-lead { max-width: none; margin-top: var(--s3); font-size: calc(var(--t-title) * .78); font-weight: 600; line-height: var(--lh-snug); color: #fff; }
@media (max-width: 767px) { .tc-hero--title .tc-lead { font-size: var(--t-lead); } }
.tc-hero--page .tc-lead { max-width: none; margin-top: var(--s3); font-size: calc(var(--t-title) * .6); font-weight: 600; line-height: var(--lh-snug); color: #fff; }
@media (max-width: 767px) { .tc-hero--page .tc-lead { font-size: var(--t-lead); } }

@media (max-width: 767px) { .tc .section-coloured.medium-padding { padding-top: 40px; padding-bottom: 40px; } }

/* Desktop header: menu sits next to the DofE logo */
@media (min-width: 992px) {
  .header .header-left { flex: 1; }
  .header .header-menu { margin-left: auto; margin-right: 32px; }
}

/* Home hero: photo behind a soft navy fade (never solid), proof line, Poppins title, four facts, five course cards and press panel */
.tc-home-hero { --tc-home-font: "Poppins", sans-serif; --tc-home-t: 68px; --tc-home-photo: url(/assets/home/hero-boy-flip.jpg); --tc-home-pos: 0% 40%; --tc-home-size: 135% auto; position: relative; overflow: hidden; background: var(--navy); color: #fff; }
.tc-home-hero::before { content: ""; position: absolute; inset: 0; background: var(--tc-home-photo) var(--tc-home-pos) / var(--tc-home-size, cover) no-repeat; }
.tc-home-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(9, 24, 51, .8) 0%, rgba(9, 24, 51, .72) 32%, rgba(9, 24, 51, .3) 58%, rgba(9, 24, 51, .08) 100%); }
.tc-home-wrap { position: relative; z-index: 1; max-width: 1160px; margin: 0 auto; padding: 104px var(--gutter) 300px; }
.tc .tc-home-title { margin: 0; font-family: var(--tc-home-font); font-size: var(--tc-home-t); font-weight: 800; line-height: 1.02; letter-spacing: -.025em; color: #fff; }
.tc-home-title span { display: block; margin-top: 4px; font-size: .72em; color: var(--gold); }
/* Proof line in spaced capitals, sized to run the same width as "Real Engineering" (measured: 0.32 × the title size) */
.tc .tc-home-eyebrow { margin: 0 0 10px; font-size: calc(var(--tc-home-t) * .32); font-weight: 600; line-height: 1.2; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; color: rgba(255, 255, 255, .55); }
.tc-home-stats { list-style: none; display: grid; grid-template-columns: repeat(2, max-content); gap: 22px 48px; margin: 36px 0 0; padding: 0; }
.tc-home-stats li { display: flex; align-items: center; gap: 12px; padding: 0; font-size: 15px; font-weight: 600; line-height: 20px; color: #fff; }
.tc-home-stats li:first-child { padding-left: 0; }
/* Icons draw at about 5/6 of their size: 42px icons match the 34px from the top of the first text line to the bottom of the second */
.tc-home-stats .tc-icon { font-size: 42px; color: #fff; }
.tc-home-btns { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 40px; }
.tc-home-btns .tc-btn { height: 54px; padding: 0 28px; font-size: var(--t-body); }
.tc-home-btns .tc-btn .tc-icon { font-size: 20px; margin-left: 8px; }
.tc-home-wave { position: absolute; left: 0; right: 0; bottom: -1px; z-index: 1; width: 100%; height: 56px; display: block; }
.tc-home-courses { position: relative; z-index: 2; max-width: 1160px; margin: -112px auto 0; padding: 0 var(--gutter) var(--section); }
.tc-home-cards { display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; }
.tc-home-card { position: relative; display: block; border-radius: var(--r); overflow: hidden; background: #fff; box-shadow: 0 12px 32px rgba(9, 24, 51, .18); transition: transform .2s; }
.tc-home-card:hover { transform: translateY(-4px); }
.tc-home-card-t { display: block; padding: 10px 16px; background: var(--blue); font-size: var(--t-body); font-weight: 700; color: #fff; }
.tc .tc-home-card img { display: block; width: 100%; aspect-ratio: 5 / 4; object-fit: cover; }
.tc-home-press { display: flex; align-items: center; gap: 28px; margin-top: 40px; padding: 22px 28px; border-radius: var(--r); background: var(--tint); }
.tc-home-press p { margin: 0; flex: none; padding-right: 28px; border-right: 1px solid var(--line-strong); font-size: var(--t-small); font-weight: 600; line-height: 1.3; color: var(--ink); }
.tc-home-press div { flex: 1; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.tc .tc-home-press img { height: 34px; width: auto; max-width: 15%; object-fit: contain; mix-blend-mode: multiply; }
@media (max-width: 991px) {
  .tc-home-hero { --tc-home-t: 54px; }
  .tc-home-hero::before { inset: 0; background-size: cover; background-position: 55% 40%; }
  .tc-home-hero::after { background: linear-gradient(90deg, rgba(9, 24, 51, .8) 25%, rgba(9, 24, 51, .5) 70%, rgba(9, 24, 51, .25)); }
  .tc-home-cards { grid-template-columns: repeat(5, 42%); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin: 0 calc(var(--gutter) * -1); padding: 8px var(--gutter) 24px; scroll-padding: 0 var(--gutter); }
  .tc-home-cards::-webkit-scrollbar { display: none; }
  .tc-home-card { scroll-snap-align: start; }
  .tc-home-press { flex-direction: column; align-items: flex-start; gap: 14px; }
  .tc-home-press p { border: 0; padding: 0; }
  .tc-home-press div { flex-wrap: wrap; justify-content: flex-start; gap: 18px 24px; }
  .tc .tc-home-press img { max-width: 28%; height: 28px; }
}
@media (max-width: 767px) {
  .tc-home-hero::after { background: linear-gradient(180deg, rgba(9, 24, 51, .5), rgba(9, 24, 51, .72) 55%, rgba(9, 24, 51, .8)); }
  .tc-home-wrap { padding: 44px var(--gutter) 120px; }
  .tc-home-hero { --tc-home-t: min(40px, 10.4vw); }
  .tc-home-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 0; margin-top: 24px; }
  .tc-home-stats li { gap: 8px; padding: 0 0 0 14px; font-size: 14px; line-height: 18px; }
  .tc-home-stats li:nth-child(odd) { padding-left: 0; }
  .tc-home-stats .tc-icon { font-size: 37px; }
  .tc-home-btns { gap: 8px; margin-top: 24px; flex-wrap: nowrap; }
  .tc-home-btns .tc-btn { height: 46px; padding: 0 16px; font-size: var(--t-small); }
  .tc-home-btns .tc-btn .tc-icon { display: none; }
  .tc-home-courses { margin-top: -84px; }
  .tc-home-cards { grid-template-columns: repeat(5, 62%); }
}
