/* BTECH experience: presentation only. Shared by public and learning pages. */
:root:root:root {
  --font-main: 'Inter','Noto Sans Sinhala','Segoe UI',sans-serif;
  --font-display: 'Inter','Noto Sans Sinhala','Segoe UI',sans-serif;
  --bt-black:#080b12; --bt-black-2:#0c101a; --bt-black-3:#06080e;
  --bt-card:#101621; --bt-card-2:#141d2c; --bt-card-3:#0c121e;
  --bt-muted:#a1aec3; --bt-dim:#8493aa; --bt-line:rgba(157,183,224,.13);
  --radius-lg:20px; --radius-md:14px; --section-py:88px;
}
html { scroll-behavior:smooth; scroll-padding-top:106px; }
html body { font-family:var(--font-main); background:var(--bt-black); line-height:1.65; }
html body :is(h1,h2,h3,h4,h5,.btn,.section-h,.hero-title) { font-family:var(--font-display); }
html body :is(h1,h2) { letter-spacing:-.045em; }
html body :is(button,input,select,textarea) { font-family:inherit; }
html body :is(a,button,input,select,textarea,[tabindex]):focus-visible { outline:3px solid var(--accent2); outline-offset:4px; }
html body :is(.navbar,.sidebar) { background:rgba(9,13,21,.96); border-color:var(--bt-line); }
html body .navbar { min-height:80px; backdrop-filter:blur(20px); }
html body .navbar .logo-wrap { flex-shrink:0; }
html body .nav-links a { font-size:13px; font-weight:600; border-radius:8px; }
html body .nav-links a.active { color:#fff; background:color-mix(in srgb,var(--accent) 13%,transparent); }
html body :is(.btn,.btn-nav,.btn-primary,.btn-dark,.btn-accent,.hero-btn-primary,.hero-btn-outline,.btn-ghost,.pill,.login-btn,.register-btn) {
  border-radius:10px; min-height:46px; font-weight:600; letter-spacing:0; transition:background .2s,box-shadow .2s,translate .2s;
}
html body :is(.btn-dark,.btn-accent,.btn-nav,.hero-btn-primary,.login-btn,.register-btn) {
  background:linear-gradient(115deg,var(--accent),var(--accent2)); color:#fff; box-shadow:0 5px 20px color-mix(in srgb,var(--accent) 15%,transparent); border:1px solid color-mix(in srgb,var(--accent2) 33%,transparent);
}
html body :is(.hero-btn-outline,.btn-ghost) { background:#ffffff04; color:#d7e2f4; border:1px solid #ffffff2b; }
html body :is(.btn,.btn-nav,.hero-btn-primary,.hero-btn-outline):hover { translate:0 -2px; }
html body :is(.glass,.card,.panel,.course,.faq-item,.result-card,.stat-box) { border-radius:18px; box-shadow:0 12px 35px -25px #000; }
html body :is(.glass,.card,.course) { background:linear-gradient(130deg,var(--bt-card-2),var(--bt-card)); border:1px solid var(--bt-line); }
html body .section-h { font-size:clamp(30px,3.4vw,44px); line-height:1.18; margin-bottom:38px; font-weight:700; }
html body .eyebrow { font-size:10px; letter-spacing:2.4px; font-weight:700; margin-bottom:14px; }
html body .reveal { opacity:1; transform:none; filter:none; }
html body :is(.grain,.orb) { opacity:.1; }
html body :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea) {
  border-color:var(--bt-line); background:var(--bt-card-3); color:var(--bt-text); border-radius:10px;
}
html body input[type=hidden] { display:none; }
html body input::placeholder,html body textarea::placeholder { color:var(--bt-dim); }
html body :is(.table-wrap,.table-responsive) { border:1px solid var(--bt-line); border-radius:14px; overflow:auto; }
html body table th { font-size:11px; text-transform:uppercase; letter-spacing:.08em; padding-top:16px; padding-bottom:16px; }
html body table td { padding-top:16px; padding-bottom:16px; }
html body footer { padding-top:60px; }
html body .footer-bottom { font-size:12px; }
html body .social-btn { border-radius:10px; box-shadow:none; }
html body .empty { padding:64px 24px; border:1px dashed var(--bt-line); border-radius:18px; background:var(--bt-card); }
html body .course { overflow:hidden; }
html body .course .thumb { aspect-ratio:16/10; }
html body .course .c-body { padding:26px; }
html body .course h3 { font-size:20px; letter-spacing:-.025em; }
html body .course .c-foot { border-top:1px solid var(--bt-line); margin-top:22px; padding-top:20px; }
html body .hero:not(.hero-card) { padding-bottom:44px; }
html body .float-ic { opacity:.07; }

/* Learning workspace: retain each page's layout and module visibility rules. */
html body .sidebar { border-right:1px solid var(--bt-line); box-shadow:none; }
html body .sidebar .menu a { border-radius:10px; margin-block:4px; font-weight:500; color:var(--bt-muted); }
html body .sidebar .menu a.active { background:linear-gradient(100deg,color-mix(in srgb,var(--accent) 18%,transparent),color-mix(in srgb,var(--accent) 6%,transparent)); color:var(--accent2); box-shadow:inset 3px 0 var(--accent); }
html body .sidebar .menu a:hover { background:#ffffff07; color:#e7efff; }
html body .sidebar .menu-section { color:#8291a9; letter-spacing:1.6px; padding-top:22px; }
html body .sidebar .menu a i.bx { border-radius:8px; }
html body .main-content .header { padding-bottom:22px; border-bottom:1px solid var(--bt-line); margin-bottom:28px; }
html body .header-left h1 { font-size:clamp(24px,3vw,34px); }
html body .hero-card { background:radial-gradient(ellipse at 90% 20%,color-mix(in srgb,var(--accent) 29%,transparent),transparent 55%),linear-gradient(110deg,#102448,#111a2a); border:1px solid #367cd54d; border-radius:20px; padding:36px; box-shadow:none; }
html body .hero-card h2 { font-size:clamp(26px,3vw,38px); }
html body .hero-card .btn { background:#f5f8ff; color:#102448; padding:12px 20px; margin-top:10px; }
html body :is(.stat-box,.q-link) { background:var(--bt-card); border:1px solid var(--bt-line); }
html body .q-link { border-radius:12px; padding:16px; }
html body .stat-box { padding:24px 18px; }
html body .card-title { font-size:16px; font-weight:650; padding-bottom:14px; }
html body :is(.icon-btn,.menu-toggle,.theme-toggle-btn) { border:1px solid var(--bt-line); border-radius:10px; box-shadow:none; }

/* Authentication. Form handlers, fields and validation stay in their pages. */
html body .layout-wrapper { background:var(--bt-black); }
html body .brand-section { background:radial-gradient(ellipse at 20% 20%,color-mix(in srgb,var(--accent) 14%,transparent),transparent 65%),#0c1220; border-right:1px solid var(--bt-line); }
html body .brand-section .slideshow-container { border-radius:22px; border:1px solid color-mix(in srgb,var(--accent2) 20%,transparent); box-shadow:0 24px 70px #0004; }
html body .brand-section .logic-particle { opacity:.08; }
html body .login-section { background:var(--bt-black); }
html body .login-box { max-width:470px; padding:38px; background:var(--bt-card); border:1px solid var(--bt-line); border-radius:22px; box-shadow:0 24px 90px #0002; }
html body .login-header h2 { font-size:32px; font-weight:700; }
html body .login-header p { color:var(--bt-muted); }
html body .login-box .form-group { margin-bottom:22px; }
html body .login-box label { color:var(--bt-muted); font-size:12px; }
html body .register-link { color:var(--bt-muted); font-size:13px; }
html body .login-btn { margin-top:8px; }
html body .bt-auth-brand { display:block; width:180px; margin:0 0 20px; }
html body .bt-auth-brand img { display:block; width:180px; height:auto; object-fit:contain; object-position:left center; border-radius:6px; }
html body .bt-auth-kicker { font-size:9px; font-weight:700; color:#658abe; letter-spacing:1.8px; margin:0 0 14px; }
html body.bt-auth .login-box::before,html body.bt-auth .register-box::before { display:none; }
html body.bt-auth .password-toggle { background:transparent; border:0; padding:12px; font-size:18px; }
html body.bt-auth .brand-section .bt-auth-visual { height:300px; max-width:440px; background:transparent; border:0; box-shadow:none; overflow:visible; margin:25px auto; }
html body.bt-auth .bt-auth-constellation { position:relative; transform:none; }
html body.bt-auth .bt-orbit { position:absolute; width:240px; height:240px; border:1px solid color-mix(in srgb,var(--accent2) 16%,transparent); border-radius:50%; left:50%; top:50%; transform:translate(-50%,-50%); }
html body.bt-auth .bt-orbit-two { width:330px; height:330px; border-style:dashed; border-color:color-mix(in srgb,var(--accent2) 10%,transparent); }
html body.bt-auth .bt-orbit-center { display:grid; place-items:center; width:110px; height:110px; border-radius:30px; transform:rotate(-10deg); background:linear-gradient(135deg,#348bff,#0849b5); box-shadow:0 0 90px #2678ec35,inset 0 1px #ffffff60; color:#fff; font-size:46px; }
html body.bt-auth .bt-orbit-center i { transform:rotate(10deg); }
html body.bt-auth .bt-orbit-item { position:absolute; display:flex; gap:10px; align-items:center; border:1px solid color-mix(in srgb,var(--accent2) 20%,transparent); border-radius:12px; background:var(--bt-card); color:var(--bt-text); padding:13px 18px; font-size:12px; box-shadow:0 10px 30px #0002; }
html body.bt-auth .bt-orbit-item i { color:var(--accent2); }
html body.bt-auth .bt-orbit-video { top:15px; left:5%; }
html body.bt-auth .bt-orbit-book { right:0; top:105px; }
html body.bt-auth .bt-orbit-progress { bottom:25px; left:8%; }
html body.bt-auth .bt-orbit-caption { position:absolute; bottom:-22px; color:#8098bc; letter-spacing:2px; font-size:9px; }
html body.bt-auth .brand-content-bottom { padding-top:20px; }
html body.bt-auth .register-section { background:var(--bt-black); }
html body.bt-auth .register-box { background:var(--bt-card); border:1px solid var(--bt-line); border-radius:22px; padding:34px; }
html body.bt-catalog .hero { text-align:left; border-bottom:1px solid var(--bt-line); margin-bottom:40px; }
html body.bt-catalog .hero h1 { max-width:780px; font-size:clamp(38px,5vw,64px); line-height:1.12; }
html body.bt-catalog .hero p { margin-left:0; max-width:590px; font-size:15px; }
html body.bt-catalog .hero .eyebrow { display:inline-flex; }
html body.bt-catalog .hero .count { display:inline-block; font-size:11px; border-radius:7px; border:1px solid var(--bt-line); background:var(--bt-card); padding:7px 12px; }
html body.bt-catalog .empty { text-align:center; grid-column:1/-1; }
html body.bt-catalog .empty h2 { font-size:24px; margin:18px 0 10px; }
html body.bt-catalog .empty p { font-size:14px; color:var(--bt-muted); margin-bottom:26px; }
html body.bt-catalog .empty .btn-nav { display:inline-flex; align-items:center; gap:12px; font-size:12px; }
html body.bt-course-auth { min-height:100dvh; padding:35px 20px; background:radial-gradient(ellipse at 20% 20%,color-mix(in srgb,var(--accent) 13%,transparent),transparent 60%),var(--bt-black); }
html body.bt-course-auth>.card { max-width:480px; padding:38px; border-radius:22px; }
html body.bt-course-auth>.card>.brand { font-size:12px; margin-bottom:16px; color:var(--bt-muted); }
html body.bt-course-auth .brand img { height:28px; }
/* .bt-auth-brand above already carries the wordmark, so the page's own brand
   line would repeat it once a logo is set in Settings. Keep the text fallback,
   drop the duplicate image. */
html body.bt-course-auth>.card>.brand:has(img) { display:none; }
html body.bt-course-auth h1 { font-size:29px; }
html body.bt-course-auth .sub { color:var(--bt-muted); font-size:13px; }
html body.bt-course-auth .note { color:var(--accent2); background:color-mix(in srgb,var(--accent) 5%,transparent); border:1px solid color-mix(in srgb,var(--accent) 13%,transparent); }
html body.bt-course-auth .card .btn { background:linear-gradient(115deg,var(--accent),var(--accent2)); color:#fff; border-radius:10px; }
@media(max-width:850px) {
  html body.bt-auth .layout-wrapper { display:block; min-height:100dvh; }
  html body.bt-auth .brand-section { display:none; }
  html body.bt-auth :is(.login-section,.register-section) { width:100%; min-height:100dvh; padding:60px 20px 30px; }
  html body.bt-auth :is(.login-box,.register-box) { width:100%; max-width:500px; margin:auto; padding:28px 22px; }
}
@media(max-width:500px) {
  html body.bt-course-auth>.card { padding:28px 22px; }
}

/* Landing page: split editorial hero and interactive campus directory. */
html body.bt-home .container { max-width:1180px; width:calc(100% - 96px); padding:0; margin-inline:auto; }
html body.bt-home .navbar { padding:0 max(48px,calc((100vw - 1180px)/2)); height:80px; }
html body.bt-home .bt-brand { display:inline-flex; align-items:center; width:180px; height:auto; overflow:visible; }
html body.bt-home .bt-brand img { width:180px; height:auto; max-height:none; object-fit:contain; object-position:left center; border-radius:0; }
html body.bt-home #home { margin-top:0; padding-top:80px; background:#080b12; }
html body.bt-home .hero-slider { height:auto; min-height:610px; }
html body.bt-home .hero-slider .swiper-slide { min-height:610px; background:radial-gradient(ellipse at 85% 45%,#12336836,transparent 55%),#080b12; }
html body.bt-home .hero-bg { opacity:.055; filter:grayscale(1); }
html body.bt-home .hero-scrim { background:linear-gradient(90deg,#080b12 2%,#080b12b0 70%,#080b1280); }
html body.bt-home .hero-content { position:relative; width:calc(100% - 96px); max-width:1180px; padding:68px 0 84px; margin:auto; opacity:1; transform:none; }
html body.bt-home .hero-eyebrow { display:inline-flex; align-items:center; gap:9px; background:transparent; border:0; padding:0; color:#8eafe0; font-size:10px; letter-spacing:2.2px; margin-bottom:24px; }
html body.bt-home .hero-eyebrow::before { content:''; width:6px; height:6px; background:var(--accent2); box-shadow:0 0 12px color-mix(in srgb,var(--accent2) 50%,transparent); border-radius:50%; }
html body.bt-home .hero-title { width:54%; font-size:clamp(44px,4.8vw,68px); line-height:1.09; letter-spacing:-.055em; font-weight:750; min-height:0; margin-bottom:24px; background:none; -webkit-text-fill-color:#f4f7ff; }
html body.bt-home .hero-desc { max-width:460px; width:44%; font-size:15px; line-height:1.9; color:#9baac2; margin-bottom:30px; }
html body.bt-home .hero-swash { display:none; }
html body.bt-home .hero-actions { gap:12px; margin-top:0; }
html body.bt-home :is(.hero-btn-primary,.hero-btn-outline) { padding:14px 23px; font-size:13px; min-height:50px; }
html body.bt-home .hero-trust { display:flex; gap:18px; margin-top:28px; font-size:11px; color:#8798b3; }
html body.bt-home .hero-trust span { display:flex; align-items:center; gap:7px; }
html body.bt-home .hero-trust i { color:var(--accent2); }
html body.bt-home .hero-peek { display:none; }
html body.bt-home .bt-campus { position:absolute; right:0; top:50%; transform:translateY(-50%); width:40%; max-width:470px; }
html body.bt-home .bt-campus::before { content:''; position:absolute; inset:-40px; border:1px solid #4f8aff0d; border-radius:50%; transform:rotate(-18deg); pointer-events:none; }
html body.bt-home .bt-campus-window { position:relative; border:1px solid #7799d22f; border-radius:18px; background:linear-gradient(145deg,#172236,#0e1522 70%); box-shadow:0 35px 80px #0005; overflow:hidden; }
html body.bt-home .bt-window-bar { display:flex; align-items:center; gap:5px; padding:15px 20px; border-bottom:1px solid #ffffff0b; color:#889cb9; font-size:9px; letter-spacing:1.8px; }
html body.bt-home .bt-window-bar i { width:5px; height:5px; border-radius:50%; background:#607796; }
html body.bt-home .bt-window-bar span { margin-left:auto; }
html body.bt-home .bt-campus-body { padding:27px; }
html body.bt-home .bt-campus-label { display:flex; gap:8px; align-items:center; font-size:9px; text-transform:uppercase; letter-spacing:2px; color:#7c99c4; }
html body.bt-home .bt-campus-label::before { content:''; width:6px; height:6px; border-radius:50%; background:#6cbfff; }
html body.bt-home .bt-campus h2 { font-size:26px; font-weight:600; line-height:1.25; margin:13px 0 7px; letter-spacing:-.04em; }
html body.bt-home .bt-campus-body>p { color:#8e9fb9; font-size:12px; margin-bottom:24px; }
html body.bt-home .bt-resource { display:flex; align-items:center; gap:13px; text-decoration:none; color:#ecf3ff; padding:16px 0; border-top:1px solid #ffffff0c; transition:background .2s; }
html body.bt-home .bt-resource:hover { background:#408dff0b; }
html body.bt-home .bt-resource>i:first-child { width:39px; height:39px; display:grid; place-items:center; border-radius:11px; background:#3189ff18; border:1px solid #3189ff24; color:#79b2ff; font-size:15px; }
html body.bt-home .bt-resource:nth-of-type(2)>i:first-child { color:#b0a7ff; background:#a294ff12; border-color:#a294ff20; }
html body.bt-home .bt-resource:nth-of-type(3)>i:first-child { color:#6acdc0; background:#55c6b812; border-color:#55c6b820; }
html body.bt-home .bt-resource span { display:flex; flex:1; flex-direction:column; font-size:12px; font-weight:600; }
html body.bt-home .bt-resource small { font-size:10px; font-weight:400; color:#899bb6; margin-top:2px; }
html body.bt-home .bt-resource>i:last-child { font-size:10px; color:#6380a9; }
html body.bt-home .bt-campus-footer { display:flex; justify-content:space-between; align-items:center; padding:13px 26px; border-top:1px solid #ffffff0a; color:#7991b2; font-size:9px; }
html body.bt-home .bt-campus-footer b { color:#96b4df; font-weight:500; }
html body.bt-home .bt-campus-note { position:absolute; right:-15px; bottom:-23px; display:flex; gap:12px; align-items:center; padding:15px 20px; border:1px solid #669bdf38; border-radius:12px; background:#141f31; box-shadow:0 10px 40px #0006; }
html body.bt-home .bt-campus-note>i { color:#74acff; font-size:19px; }
html body.bt-home .bt-campus-note span { font-size:11px; font-weight:600; line-height:1.7; }
html body.bt-home .bt-campus-note small { display:block; font-weight:400; font-size:9px; color:#8799b5; }
html body.bt-home .bt-pathways { max-width:1180px; width:calc(100% - 96px); margin:0 auto; padding:25px 0; display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--bt-line); border-bottom:1px solid var(--bt-line); }
html body.bt-home .bt-pathway { display:flex; align-items:center; gap:13px; padding-left:27px; border-left:1px solid var(--bt-line); }
html body.bt-home .bt-pathway:first-child { padding-left:0; border-left:0; }
html body.bt-home .bt-pathway>i { font-size:19px; color:#639ced; width:25px; }
html body.bt-home .bt-pathway strong { display:block; font-size:12px; font-weight:600; }
html body.bt-home .bt-pathway small { display:block; font-size:10px; color:#8b9ab3; margin-top:2px; }
html body.bt-home #features { padding-top:76px!important; }
html body.bt-home .section-pad { padding-block:78px; }
html body.bt-home .alt-bg { background:#0b0f18; border-color:#ffffff06; }
html body.bt-home .features-grid { gap:20px; counter-reset:feature; }
html body.bt-home .section-h,html body.bt-home .eyebrow { text-align:left; }
html body.bt-home .glass::after { display:none; }
html body.bt-home .feature-card { position:relative; text-align:left; padding:30px; min-height:225px; overflow:hidden; }
html body.bt-home .feature-card::before { display:block; position:absolute; inset:29px 24px auto auto; width:auto; height:auto; background:none; transform:none; opacity:1; border:0; box-shadow:none; counter-increment:feature; content:'0' counter(feature); color:#647c9e; font-size:10px; font-weight:500; }
html body.bt-home .feat-icon { width:44px; height:44px; border-radius:12px; margin:0 0 25px; font-size:19px; box-shadow:none; border:1px solid #4796ff24; }
html body.bt-home .feature-card h3 { font-size:17px; font-weight:600; margin-bottom:9px; }
html body.bt-home .feature-card p { font-size:13px; line-height:1.8; }
html body.bt-home .teacher-wrap { gap:48px; align-items:center; }
html body.bt-home .teacher-photo { border-radius:20px; max-height:440px; }
html body.bt-home .teacher-photo img { object-position:center 25%; }
html body.bt-home .teacher-body { background:transparent; border:0; box-shadow:none; padding:30px 0; }
html body.bt-home .teacher-body h2 { font-size:clamp(30px,3.5vw,44px); }
html body.bt-home .teacher-quote { border-radius:0 12px 12px 0; font-size:18px; padding:20px 24px; }
html body.bt-home .inst-card { overflow:hidden; }
html body.bt-home .inst-thumb { height:230px; }
html body.bt-home .inst-info { padding:25px; }
html body.bt-home .btn-map { border-radius:9px; min-height:43px; font-size:12px; }
html body.bt-home .course-row { border-radius:16px; padding:30px; }
html body.bt-home .bt-empty { display:flex; align-items:center; gap:22px; width:100%; padding:32px; background:linear-gradient(110deg,#121c2b,#0d131d); border:1px dashed #6685b333; border-radius:16px; }
html body.bt-home .bt-empty>i { display:grid; place-items:center; width:52px; height:52px; flex-shrink:0; color:#79a8ec; background:#4c9bff0c; border-radius:13px; font-size:21px; }
html body.bt-home .bt-empty h3 { font-size:15px; font-weight:600; letter-spacing:-.015em; margin:0 0 5px; }
html body.bt-home .bt-empty p { font-size:12px; color:#8f9fb7; margin:0; }
html body.bt-home .bt-empty a { margin-left:auto; flex-shrink:0; font-size:12px; color:#81b3fb; text-decoration:none; }
html body.bt-home .video-grid>.bt-empty { grid-column:1/-1; }
html body.bt-home .gallery-grid>.bt-empty { grid-column:1/-1; }
html body.bt-home .results-slider:has(.bt-empty) .swiper-slide { width:100%!important; }
html body.bt-home .community-cards { gap:24px; }
html body.bt-home .comm-card { text-align:left; padding:34px; border-radius:18px; background:linear-gradient(130deg,#142239,#101824); border:1px solid #8bb1e329; }
html body.bt-home .comm-card h4 { font-size:23px; }
html body.bt-home .comm-card p { font-size:13px; }
html body.bt-home .faq-list { max-width:none; }
html body.bt-home .faq-q { width:100%; text-align:left; background:transparent; border:0; font-family:inherit; line-height:1.6; padding:24px 26px; }
html body.bt-home .faq-item { border-radius:12px; box-shadow:none; }
html body.bt-home .contact-wrap { gap:70px; }
html body.bt-home .contact-form { padding:32px; }
html body.bt-home .contact-form label { display:block; margin-bottom:8px; color:#a0b0c9; font-size:11px; font-weight:600; }
html body.bt-home .f-input { font-size:13px; padding:13px 14px; }
html body.bt-home textarea.f-input { resize:vertical; min-height:120px; }
html body.bt-home .footer-inner { gap:45px; }
html body.bt-home .footer-brand>p { max-width:280px; font-size:12px; line-height:1.9; }
html body.bt-home .footer-col h4 { font-size:10px; letter-spacing:1.5px; }
html body.bt-home .footer-col a { font-size:12px; }
html body.bt-home .hamburger { background:transparent; border:0; width:42px; height:42px; padding:10px; border-radius:8px; }
html body.bt-home .bt-skip { position:fixed; left:16px; top:-80px; z-index:100000; padding:12px 18px; background:#fff; color:#102448; border-radius:8px; }
html body.bt-home .bt-skip:focus { top:12px; }

/* Respect the existing theme switch on authentication and portal pages. */
html[data-theme=light]:root:root {
  --bt-black:#f4f7fc; --bt-black-2:#edf2f9; --bt-black-3:#e9eff8;
  --bt-card:#fff; --bt-card-2:#f8faff; --bt-card-3:#f0f4fa;
  --bt-text:#14223a; --bt-muted:#526580; --bt-dim:#64758b; --bt-line:#14223a20;
}
html[data-theme=light] body :is(.sidebar,.navbar) { background:#f8faffed; }
html[data-theme=light] body .brand-section { background:linear-gradient(150deg,#dceaff,#eef4ff); }
html[data-theme=light] body .hero-card { background:linear-gradient(110deg,#dceaff,#ecf3ff); }
html[data-theme=light] body :is(.section-h,.sec-h,.hero-title) { background:none; -webkit-text-fill-color:var(--bt-text); }
html[data-theme=light] body .sidebar .menu a:hover { color:#174a94; }
@media(min-width:901px) { html body.bt-home .nav-links { gap:4px; } }
@media(max-width:1100px) and (min-width:901px) {
  html body.bt-home .navbar { padding-inline:30px; }
  html body.bt-home .nav-links a { padding:8px; font-size:12px; }
  html body.bt-home .nav-actions { gap:8px; }
  html body.bt-home .nav-actions .btn { padding:10px 15px; }
}
@media(max-width:900px) {
  html body.bt-home :is(.container,.hero-content,.bt-pathways) { width:calc(100% - 48px); }
  html body.bt-home .navbar { height:72px; min-height:72px; padding-inline:24px; }
  html body.bt-home #home { padding-top:72px; }
  html body.bt-home .nav-links { top:72px; padding:18px 24px; background:#0b111dfc; max-height:calc(100dvh - 72px); overflow-y:auto; }
  html body.bt-home .nav-links a { padding:13px; }
  html body.bt-home .mobile-auth-btn { display:block; }
  html body.bt-home .hero-title { font-size:48px; }
  html body.bt-home .bt-campus { width:43%; }
  html body.bt-home .bt-campus-body { padding:22px; }
  html body.bt-home .bt-campus h2 { font-size:23px; }
  html body.bt-home .hero-desc { font-size:14px; width:48%; }
  html body.bt-home .hero-trust { gap:12px; }
  html body.bt-home .bt-pathway { padding-left:18px; gap:8px; }
}
@media(max-width:700px) {
  html body.bt-home .hero-content { padding:46px 0 55px; }
  html body.bt-home .hero-title { width:100%; max-width:540px; font-size:clamp(39px,8.7vw,55px); margin-bottom:20px; }
  html body.bt-home .hero-desc { width:100%; max-width:500px; font-size:14px; margin-bottom:25px; }
  html body.bt-home .hero-eyebrow { font-size:9px; margin-bottom:20px; }
  html body.bt-home .bt-campus { position:relative; width:100%; max-width:500px; top:auto; transform:none; margin:44px auto 0; }
  html body.bt-home .bt-campus::before { inset:0; }
  html body.bt-home .bt-campus-note { right:12px; bottom:-20px; }
  html body.bt-home .hero-slider,html body.bt-home .hero-slider .swiper-slide { min-height:0; }
  html body.bt-home .hero-trust { flex-wrap:wrap; font-size:10px; }
  html body.bt-home .bt-pathways { grid-template-columns:1fr 1fr; gap:22px 10px; padding:25px 0; }
  html body.bt-home .bt-pathway { padding-left:14px; }
  html body.bt-home .bt-pathway:nth-child(odd) { padding-left:0; border:0; }
  html body.bt-home .section-pad { padding-block:55px; }
  html body.bt-home #features { padding-top:55px!important; }
  html body.bt-home .section-h { font-size:31px; margin-bottom:28px; }
  html body.bt-home .features-grid { grid-template-columns:1fr; gap:14px; }
  html body.bt-home .feature-card { padding:26px; min-height:0; }
  html body.bt-home .feat-icon { margin-bottom:18px; }
  html body.bt-home .teacher-wrap { gap:20px; }
  html body.bt-home .teacher-photo { max-height:400px; }
  html body.bt-home .teacher-body { padding:12px 0; }
  html body.bt-home .bt-empty { padding:24px; flex-wrap:wrap; gap:16px; }
  html body.bt-home .bt-empty>div { flex:1; min-width:160px; }
  html body.bt-home .bt-empty a { margin-left:0; }
  html body.bt-home .contact-wrap { gap:32px; }
  html body.bt-home .contact-form { padding:24px; min-width:0; }
  html body.bt-home .contact-side { min-width:0; }
  html body.bt-home .faq-q { font-size:14px; padding:20px; }
  html body.bt-home .footer-inner { gap:32px; }
  html body.bt-home .bt-brand { width:145px; }
  html body.bt-home .bt-brand img { width:145px; height:auto; }
  html body.bt-home .nav-actions .btn { padding:10px 15px; min-height:40px; font-size:11px; }
  html body.bt-home .nav-actions { gap:8px; }
  html body .login-section { padding:32px 18px; }
  html body .login-box { padding:28px 22px; width:100%; }
  html body .hero-card { padding:28px 24px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  html body *,html body *::before,html body *::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
}
@media print {
  html body { background:#fff; color:#000; }
  html body :is(.navbar,.sidebar,.ambient,.bt-campus,.bt-skip) { display:none!important; }
  html body .main-content { margin:0; }
}

/* Small phones: the 80px bar is a fixed cost on every page, and on a 568px-tall
   handset it pushes real content below the fold. The logo still fits at 30px. */
@media (max-width: 480px) {
    html body .navbar { min-height: 62px; }
}

/* Narrow phones: the empty-state row is icon + text + link on one line, and its
   content minimum (52px icon + 160px text + padding) came to ~300px. A grid item
   will not shrink below that, so at 320px the track pushed the page sideways.
   Stack it and let it shrink instead. */
@media (max-width: 420px) {
    html body.bt-home .bt-empty {
        flex-direction: column; align-items: flex-start;
        gap: 12px; padding: 20px; min-width: 0;
    }
    html body.bt-home .bt-empty > div { min-width: 0; flex: 1 1 auto; }
    html body.bt-home .bt-empty a { margin-left: 0; }
}

/* The home contact block is a two-up flex row that relied on min-width:280px to
   wrap. An earlier mobile rule set min-width:0 on both halves, which removed the
   wrap trigger — so instead of stacking they squeezed side by side and the phone
   number and address broke mid-word. Stack them outright below the breakpoint. */
@media (max-width: 700px) {
    html body.bt-home .contact-wrap { flex-direction: column; }
    html body.bt-home :is(.contact-side, .contact-form) {
        flex: 1 1 auto; width: 100%; min-width: 0;
    }
    html body.bt-home .contact-side { justify-content: flex-start; }
    /* long values must not break mid-number / mid-address */
    html body.bt-home .c-txt span { overflow-wrap: anywhere; }
}
