:root {
  --bg:           #f5f0e8;
  --bg-2:         #ede8dc;
  --bg-3:         #e6e0d2;
  --surface:      #faf7f0;
  --surface-2:    #f0ead8;

  --green-1:      #2d4a2d;
  --green-2:      #3a5c38;
  --green-3:      #4a7248;
  --green-4:      #5e8a5a;
  --green-5:      #7aaa74;
  --green-6:      #a3c49e;
  --green-light:  #d4e8cf;
  --green-pale:   #eaf2e8;

  --bottle:       #2a4a2a;
  --forest:       #1e3a1e;

  --accent:       #d4a843;
  --accent-light: #e8c878;
  --accent-pale:  #f5e8c0;

  --title:        #1a2a1a;
  --body:         #334238;
  --muted:        #69786d;
  --border:       rgba(45, 74, 45, 0.12);
  --border-med:   rgba(45, 74, 45, 0.2);

  --r-xs: 8px;
  --r-sm: 12px;
  --r-md: 16px;
  --r-lg: 20px;
  --r-xl: 28px;
  --r-pill: 9999px;

  --sh-sm: 0 4px 20px rgba(30, 58, 30, 0.06);
  --sh-md: 0 10px 48px rgba(30, 58, 30, 0.09);
  --sh-lg: 0 24px 80px rgba(30, 58, 30, 0.13);
  --sh-green: 0 8px 32px rgba(45, 74, 45, 0.22);

  --ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
  --ease-smooth: cubic-bezier(0.16, 1, 0.3, 1);

  --font-display: 'Cormorant Garamond', 'Georgia', serif;
  --font-ui:      'Manrope', 'Segoe UI', sans-serif;
}

body[data-theme="ocean"] {
  --bg:           #eef6f8;
  --bg-2:         #e2edf1;
  --bg-3:         #d5e4eb;
  --surface:      #f8fcfd;
  --surface-2:    #ecf5f8;
  --green-1:      #1f5d7a;
  --green-2:      #2b7493;
  --green-3:      #3f8bad;
  --green-4:      #61a5c2;
  --green-5:      #7bbad1;
  --green-6:      #b2d5e4;
  --green-light:  #d7ecf2;
  --green-pale:   #edf7fa;
  --accent:       #ef8a55;
  --accent-light: #f6b18e;
  --accent-pale:  #fde6da;
  --title:        #173545;
  --body:         #284756;
  --muted:        #5d7683;
  --border:       rgba(31, 93, 122, 0.12);
  --border-med:   rgba(31, 93, 122, 0.2);
}

body[data-theme="graphite"] {
  --bg:           #eef1f4;
  --bg-2:         #e4e8ed;
  --bg-3:         #d8dde4;
  --surface:      #f8fafc;
  --surface-2:    #e9eef5;
  --green-1:      #303744;
  --green-2:      #414b5c;
  --green-3:      #58657c;
  --green-4:      #72819a;
  --green-5:      #8a98ac;
  --green-6:      #c3ccd8;
  --green-light:  #dfe5ec;
  --green-pale:   #edf1f6;
  --accent:       #b46a4d;
  --accent-light: #d89d86;
  --accent-pale:  #f3dfd7;
  --title:        #1e2630;
  --body:         #354150;
  --muted:        #677384;
  --border:       rgba(48, 55, 68, 0.12);
  --border-med:   rgba(48, 55, 68, 0.2);
}

body[data-theme="sunrise"] {
  --bg:           #f8f1ea;
  --bg-2:         #f2e6dd;
  --bg-3:         #ebd8cb;
  --surface:      #fffaf6;
  --surface-2:    #f8eee7;
  --green-1:      #7b4d3d;
  --green-2:      #955c49;
  --green-3:      #b46f56;
  --green-4:      #cd8a67;
  --green-5:      #deaa83;
  --green-6:      #f0d1b7;
  --green-light:  #fae5d7;
  --green-pale:   #fdf1e8;
  --accent:       #2f6780;
  --accent-light: #5f93aa;
  --accent-pale:  #dcecf4;
  --title:        #4d2f26;
  --body:         #6a4739;
  --muted:        #8a6b5d;
  --border:       rgba(123, 77, 61, 0.12);
  --border-med:   rgba(123, 77, 61, 0.2);
}

*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
  font-family: var(--font-ui);
  color: var(--body);
  background: var(--bg);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  line-height: 1.55;
}
a { text-decoration: none; color: inherit; }
button { cursor: pointer; border: none; outline: none; font-family: var(--font-ui); }
ul { list-style: none; }

/* ══════════════════════════════════════════
   KEYFRAMES
══════════════════════════════════════════ */
@keyframes fadeUp   { from { opacity:0; transform:translateY(28px) scale(0.97); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes fadeIn   { from { opacity:0; } to { opacity:1; } }
@keyframes scaleIn  { from { opacity:0; transform:scale(0.93); } to { opacity:1; transform:scale(1); } }
@keyframes float    { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }
@keyframes shimmer  { 0%{background-position:-600px 0} 100%{background-position:600px 0} }
@keyframes pulse    { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:0.6;transform:scale(1.3)} }
@keyframes marqLeft { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }
@keyframes barGrow  { from{width:0} to{width:var(--w)} }
@keyframes bubbleIn { 0%{opacity:0;transform:scale(0.5) translateY(-10px);transform-origin:top center} 100%{opacity:1;transform:scale(1) translateY(0);transform-origin:top center} }
@keyframes revealUp { from{opacity:0;transform:translateY(36px) scale(0.96)} to{opacity:1;transform:translateY(0) scale(1)} }

/* ══════════════════════════════════════════
   SCROLL PROGRESS
══════════════════════════════════════════ */
.scroll-progress {
  position:fixed; top:0; left:0; height:2px; z-index:10001;
  background: linear-gradient(90deg, var(--green-3), var(--green-5), var(--accent));
  width:0%; transition:width 0.1s linear;
}

/* ══════════════════════════════════════════
   PRELOADER
══════════════════════════════════════════ */
.preloader {
  position:fixed; inset:0; z-index:99999;
  background:var(--bg);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:24px;
  transition: opacity 0.9s var(--ease-smooth), visibility 0.9s;
}
.preloader.hidden { opacity:0; visibility:hidden; pointer-events:none; }
.preloader-brand {
  font-family: var(--font-display);
  font-size: 2rem;
  color: var(--green-1);
  font-weight: 600;
  letter-spacing: -0.02em;
}
.preloader-brand span { color: var(--accent); }
.preloader-bar {
  width:160px; height:2px;
  background: var(--border);
  border-radius: var(--r-pill);
  overflow:hidden;
}
.preloader-fill {
  height:100%; width:0;
  background: linear-gradient(90deg, var(--green-3), var(--green-5));
  border-radius: var(--r-pill);
  transition: width 1.4s var(--ease-smooth);
}


/* ══════════════════════════════════════════
   NAV — EXPANDABLE TOPBAR
══════════════════════════════════════════ */
.nav {
  position: fixed;
  top: 16px;
  left: 50%;
  transform: translateX(-50%) translateY(0);
  z-index: 1000;
  width: calc(100% - 3rem);
  max-width: 1200px;
  background: rgba(245, 240, 232, 0.95);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  box-shadow: var(--sh-md);
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
              box-shadow 0.4s var(--ease-smooth),
              background 0.4s var(--ease-smooth);
  will-change: transform;
  overflow: hidden;
}
.nav.scrolled { background: rgba(245, 240, 232, 0.98); box-shadow: var(--sh-lg); }
.nav.nav-hidden { transform: translateX(-50%) translateY(calc(-100% - 32px)); pointer-events: none; }
.nav:hover { box-shadow: var(--sh-lg); }

/* Top bar row */
.nav-bar {
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 1.5rem;
}

/* Account — desktop only */
.nav-actions { display: none !important; }
@media(min-width:901px) { .nav-actions { display: flex !important; } }

.nav-brand {
  font-family: var(--font-display);
  font-size: 1.25rem; font-weight: 700;
  color: var(--green-1); letter-spacing: -0.03em;
  display:flex; align-items:baseline; gap:1px;
  flex-shrink: 0; transition: color 0.2s;
}
.nav-brand:hover { color: var(--green-2); }
.nav-brand .dot { color: var(--accent); }

.nav-links {
  display:flex; align-items:center; gap:0.1rem;
  position: relative; padding: 4px 0;
}
.nav-pill {
  position: absolute; background: var(--green-1);
  border-radius: var(--r-pill); pointer-events: none;
  z-index: 0; opacity: 0;
  transition: left 0.35s var(--ease-smooth), top 0.35s var(--ease-smooth),
              width 0.35s var(--ease-smooth), height 0.35s var(--ease-smooth),
              opacity 0.25s var(--ease-smooth);
}
.nav-links a {
  font-size:0.82rem; font-weight:500; color: var(--muted);
  padding: 6px 13px; border-radius: var(--r-sm);
  transition: color 0.22s var(--ease-smooth);
  letter-spacing:0.01em; white-space: nowrap;
  position: relative; z-index: 1;
}
.nav-links a:hover { color: white; }
.nav-actions { display:flex; align-items:center; gap:0.5rem; position:relative; flex-shrink:0; }

/* ─── Konto button ─── */
.btn-account {
  font-size:0.82rem; font-weight:600; color: var(--surface);
  min-height: 40px;
  max-width: 220px;
  padding: 8px 12px; border-radius: var(--r-pill);
  background: var(--green-1); transition: all 0.25s var(--ease-smooth);
  letter-spacing:0.01em; display:flex; align-items:center; gap:6px;
  cursor: pointer; border: none; font-family: var(--font-ui);
}
.btn-account [data-account-trigger-label] {
  max-width: 120px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.btn-account:hover { background: var(--green-2); box-shadow: var(--sh-green); }
.btn-account i.btn-icon { font-size:14px; }
.btn-account .btn-chevron {
  font-size: 11px; transition: transform 0.3s var(--ease-smooth); opacity: 0.7;
}
.nav.account-open .btn-account .btn-chevron { transform: rotate(180deg); }
.nav.account-open .btn-account { background: var(--green-2); }

/* ─── Więcej button ─── */
.btn-more {
  font-size:0.82rem; font-weight:600; color: var(--body);
  padding: 8px 14px; border-radius: var(--r-pill);
  background: var(--bg-2); border: 1px solid var(--border);
  transition: all 0.25s var(--ease-smooth);
  display:flex; align-items:center; gap:6px; cursor: pointer;
  font-family: var(--font-ui);
}
.btn-more:hover { background: var(--bg-3); border-color: var(--border-med); }
.btn-more i.btn-icon { font-size:14px; }
.btn-more .btn-chevron {
  font-size: 11px; transition: transform 0.3s var(--ease-smooth); opacity: 0.5;
}
.nav.more-open .btn-more .btn-chevron { transform: rotate(180deg); }
.nav.more-open .btn-more { background: var(--bg-3); border-color: var(--border-med); }

/* ══════════════════════════════════════════
   NAV EXPAND PANELS — HOVER TRIGGERED
══════════════════════════════════════════ */
.nav-panel-divider {
  height: 1px; background: var(--border); margin: 0 1.5rem;
  transform: scaleX(0); transform-origin: left;
  transition: transform 0.35s var(--ease-smooth);
}
.nav.more-open .nav-panel-divider,
.nav.account-open .nav-panel-divider { transform: scaleX(1); }

.nav-panel {
  max-height: 0; overflow: hidden;
  transition: max-height 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
.nav-panel.active { max-height: 420px; }

.nav-panel-inner {
  padding: 1.25rem 1.5rem 1.5rem;
  opacity: 0; transform: translateY(-10px);
  transition: opacity 0.3s var(--ease-smooth) 0.06s,
              transform 0.35s var(--ease-smooth) 0.06s;
}
.nav-panel.active .nav-panel-inner { opacity: 1; transform: translateY(0); }

/* ─── Drop-from-top stagger for desktop panels ─── */
@keyframes panelLinkIn {
  from { opacity: 0; transform: translateY(-16px) scale(0.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.more-panel-link,
.account-panel-btn {
  opacity: 0;
}
.more-panel-link.do-animate,
.account-panel-btn.do-animate {
  animation: panelLinkIn 0.35s var(--ease-smooth) both;
}
/* also animate headings */
.more-panel-heading {
  opacity: 0;
}
.more-panel-heading.do-animate {
  animation: panelLinkIn 0.35s var(--ease-smooth) both;
}

/* ─── Więcej panel — 4-kolumnowy grid ─── */
.more-panel-grid {
  display: grid;
  grid-template-columns: 1.25fr 1fr 1fr 1fr;
  gap: 0 8px;
}
.more-panel-section { padding: 4px; }
.more-panel-heading {
  font-family: var(--font-display);
  font-size: 0.77rem; font-weight: 700;
  color: var(--muted); letter-spacing: 0.03em;
  text-transform: uppercase; margin-bottom: 8px; padding: 0 8px;
}
/* First column special — important links with display font accent */
.more-panel-section.important {
  border-right: 1px solid var(--border);
  padding-right: 16px; margin-right: 4px;
}
.more-panel-section.important .more-panel-heading {
  font-family: var(--font-display);
  font-size: 0.9rem; color: var(--green-2);
  letter-spacing: -0.01em; text-transform: none;
  font-style: italic; font-weight: 700;
}
.more-panel-section.important .more-panel-link-name {
  font-family: var(--font-display);
  font-size: 1rem; font-weight: 600;
  letter-spacing: -0.02em;
}
.more-panel-section.important .more-panel-link-desc {
  font-size: 0.72rem;
}
.more-panel-link {
  display: flex; align-items: flex-start; gap: 9px;
  padding: 8px; border-radius: var(--r-md);
  color: var(--body); font-size: 0.83rem; font-weight: 500;
  transition: background 0.18s, color 0.18s;
  text-decoration: none;
}
.more-panel-link i {
  font-size: 15px; color: var(--green-3);
  flex-shrink: 0; width: 20px; text-align: center; margin-top: 1px;
}
.more-panel-link:hover { background: var(--green-pale); color: var(--green-1); }
.more-panel-link:hover i { color: var(--green-2); }
.more-panel-link-text { display: flex; flex-direction: column; gap: 1px; }
.more-panel-link-name { display: block; }
.more-panel-link-desc { font-size: 0.71rem; color: var(--muted); font-weight: 400; line-height: 1.3; }

/* ─── Konto panel — wyrównane do prawej ─── */
.account-panel-inner {
  display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap; align-items: flex-start;
  max-width: 720px;
  margin-left: auto;
}
.account-panel-btn {
  display: flex; flex-direction: column; align-items: center;
  gap: 8px; padding: 14px 18px;
  border-radius: var(--r-lg); text-decoration: none;
  transition: all 0.22s var(--ease-smooth);
  min-width: 132px; text-align: center;
  font-family: var(--font-ui);
}
.account-panel-btn i { font-size: 21px; }
.account-panel-btn-label { font-size: 0.9rem; font-weight: 700; display: block; }
.account-panel-btn-desc { font-size: 0.72rem; font-weight: 400; opacity: 0.6; display: block; margin-top: 1px; }
.account-panel-btn.pri { background: var(--green-1); color: white; }
.account-panel-btn.pri:hover { background: var(--green-2); box-shadow: var(--sh-green); transform: translateY(-2px); }
.account-panel-btn.sec { background: var(--bg-2); border: 1px solid var(--border); color: var(--body); }
.account-panel-btn.sec:hover { background: var(--bg-3); border-color: var(--border-med); transform: translateY(-2px); }
.account-session-card {
  width: 100%;
  display: grid;
  gap: 12px;
}
.account-session-user {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 14px;
  border-radius: 20px;
  background: rgba(255,255,255,0.76);
  border: 1px solid var(--border);
}
.account-session-user strong,
.account-remembered-item strong { display:block; color: var(--title); font-size: 1rem; }
.account-session-user span,
.account-remembered-item span { display:block; color: var(--muted); font-size: 0.78rem; line-height: 1.45; margin-top: 3px; }
.account-user-avatar {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  background: var(--green-1);
  color: white;
  font-weight: 800;
  font-size: 1rem;
  overflow: hidden;
  flex-shrink: 0;
}
.account-user-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.account-inline-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}
.account-remembered {
  display: grid;
  gap: 10px;
  padding-top: 6px;
}
.account-remembered.is-public {
  width: 100%;
}
.account-remembered-title {
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}
.account-remembered-list {
  display: grid;
  gap: 8px;
}
.account-remembered-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 13px;
  border-radius: 18px;
  background: rgba(255,255,255,0.76);
  border: 1px solid var(--border);
  color: inherit;
  transition: transform 0.2s var(--ease-smooth), border-color 0.2s var(--ease-smooth), background 0.2s var(--ease-smooth);
}
.account-remembered-item:hover {
  transform: translateY(-2px);
  background: white;
  border-color: var(--border-med);
}

/* ══════════════════════════════════════════
   UNIVERSAL BUTTON PRESS EFFECT
══════════════════════════════════════════ */
.btn-hero, .btn-hero-outline, .btn-account, .btn-cta-pri, .btn-cta-sec,
.task-btn, .twb, .mobile-menu-btn { user-select: none; }
.btn-hero:active { transform: scale(0.95) !important; transition-duration: 0.1s !important; }
.btn-hero-outline:active { transform: scale(0.95) !important; transition-duration: 0.1s !important; }
.btn-account:active { transform: scale(0.96) !important; transition-duration: 0.1s !important; }
.btn-cta-pri:active { transform: scale(0.95) translateY(0) !important; transition-duration: 0.1s !important; }
.btn-cta-sec:active { transform: scale(0.95) !important; transition-duration: 0.1s !important; }
.task-btn:active { transform: scale(0.94) !important; transition-duration: 0.1s !important; }
.twb:active { transform: scale(0.94) !important; transition-duration: 0.1s !important; }
.mobile-menu-btn:active { transform: scale(0.96) !important; transition-duration: 0.1s !important; }

/* Hide nav bar completely when mobile menu is open */
.nav.menu-open {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s var(--ease-smooth);
}

/* Hamburger mobile */
.nav-hamburger {
  display:none; flex-direction:column; gap:5px;
  padding: 8px; border-radius: var(--r-sm);
  background: transparent; transition: background 0.2s; cursor: pointer;
}
.nav-hamburger span {
  display:block; width:22px; height:2px;
  background: var(--green-1); border-radius:2px;
  transition: all 0.3s var(--ease-smooth);
}
.nav-hamburger.open span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }
.nav-hamburger.open span:nth-child(2) { opacity:0; transform:scaleX(0); }
.nav-hamburger.open span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); }

/* ══════════════════════════════════════════
   MOBILE MENU — slide system
══════════════════════════════════════════ */
.mobile-menu {
  position:fixed; inset:0; z-index:999;
  background: var(--forest);
  opacity:0; visibility:hidden; pointer-events:none;
  transition: opacity 0.45s var(--ease-smooth), visibility 0.45s;
}
.mobile-menu.open { opacity:1; visibility:visible; pointer-events:auto; }

/* Slides container — horizontal slider */
.mobile-menu-slides {
  position: absolute;
  top: 0; left: 0; bottom: 0;
  display: flex;
  width: 300vw;
  transition: transform 0.42s cubic-bezier(0.22, 1, 0.36, 1);
}
.mobile-menu-slides.slide-account { transform: translateX(-100vw); }
.mobile-menu-slides.slide-more    { transform: translateX(-200vw); }

/* Each slide = 100vw */
.mobile-slide {
  flex: 0 0 100vw;
  width: 100vw;
  display: flex; flex-direction: column;
  padding: 5.5rem 2.5rem 3rem;
  overflow-y: auto;
  position: relative;
}

/* ─── Mobile menu header — replaces topbar ─── */
.mobile-menu-header {
  position: absolute; top: 0; left: 0; right: 0;
  height: 4.5rem;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 1.5rem;
  border-bottom: 1px solid rgba(255,255,255,0.07);
  z-index: 10; /* above slides */
  background: var(--forest); /* same bg so it's crisp */
}
.mobile-menu-header-brand {
  font-family: var(--font-display);
  font-size: 1.2rem; font-weight: 700;
  color: rgba(255,255,255,0.85); letter-spacing: -0.03em;
}
.mobile-menu-header-brand span { color: var(--accent); }

/* Close button in header */
.mobile-menu-close {
  width: 40px; height: 40px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%; background: rgba(255,255,255,0.07);
  color: rgba(255,255,255,0.7); font-size: 20px;
  cursor: pointer; transition: background 0.2s, color 0.2s;
  border: none; font-family: var(--font-ui); flex-shrink: 0;
}
.mobile-menu-close:hover { background: rgba(255,255,255,0.12); color: white; }

/* Back button */
.mobile-back-btn {
  display: flex; align-items: center; gap: 5px;
  background: rgba(255,255,255,0.07); border: none;
  border-radius: var(--r-pill); color: rgba(255,255,255,0.6);
  font-size: 0.82rem; font-weight: 600;
  padding: 8px 14px 8px 10px; cursor: pointer;
  font-family: var(--font-ui); transition: background 0.2s, color 0.2s;
}
.mobile-back-btn i { font-size: 16px; }
.mobile-back-btn:hover { background: rgba(255,255,255,0.12); color: white; }

/* ─── Subslide header with back button ─── */
.mobile-slide-header {
  display: flex; align-items: center; gap: 12px;
  margin-bottom: 1.8rem;
}

/* Main nav links */
.mobile-menu-nav { display: flex; flex-direction: column; gap: 0; flex: 1; }
.mobile-menu-link {
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 9vw, 3.4rem);
  font-weight: 700; color: rgba(255,255,255,0.25);
  letter-spacing: -0.03em; line-height: 1.1;
  padding: 0.32em 0; border-bottom: 1px solid rgba(255,255,255,0.06);
  transition: color 0.25s var(--ease-smooth), padding-left 0.3s var(--ease-smooth);
  display: flex; align-items: center; justify-content: space-between;
  text-decoration: none; background: none; border-top: none;
  border-left: none; border-right: none; width: 100%; cursor: pointer;
  font-family: var(--font-display); text-align: left;
}
.mobile-menu-link:last-of-type { border-bottom: none; }
.mobile-menu-link:hover { color: white; }
/* Arrow — only on trigger items (Konto, Więcej) */
.mobile-menu-link .link-arrow {
  font-size: 1.4rem; opacity: 0.3; flex-shrink: 0;
  transition: opacity 0.2s, transform 0.2s;
}
.mobile-menu-link:hover .link-arrow { opacity: 0.7; transform: translateX(4px); }

/* Bottom footer */
.mobile-menu-footer { margin-top: 2.5rem; display: flex; flex-direction: column; gap: 10px; }
.mobile-menu-btn {
  display:flex; align-items:center; justify-content:center; gap:8px;
  font-size:0.95rem; font-weight:700; padding: 15px;
  border-radius: var(--r-lg); cursor: pointer;
  transition: all 0.25s var(--ease-smooth);
  letter-spacing: 0.01em; text-decoration: none;
  font-family: var(--font-ui); border: none;
}
.mobile-menu-btn.pri { background: white; color: var(--green-1); }
.mobile-menu-btn.pri:hover { background: var(--green-pale); }
.mobile-menu-btn.sec { background: rgba(255,255,255,0.07); color: rgba(255,255,255,0.8); border: 1px solid rgba(255,255,255,0.12); }
.mobile-menu-btn.sec:hover { background: rgba(255,255,255,0.12); color: white; }

/* ─── Drop-from-top stagger animation ─── */
@keyframes dropIn {
  from { opacity: 0; transform: translateY(-28px) scale(0.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* All animatable items start hidden */
.mobile-menu-link,
.mobile-subpanel-title,
.mobile-subpanel-section,
.mobile-slide-header,
.mobile-account-btns,
.mobile-menu-header-brand,
.mobile-menu-close {
  opacity: 0;
}

/* When menu is open and not animating (initial state) keep them hidden
   JS adds .do-animate to trigger the animation */
.mobile-menu.open .mobile-menu-header-brand.do-animate {
  animation: dropIn 0.4s var(--ease-smooth) 0.05s both;
}
.mobile-menu.open .mobile-menu-close.do-animate {
  animation: dropIn 0.4s var(--ease-smooth) 0.08s both;
}

/* Main slide links stagger */
.mobile-menu.open .mobile-menu-link.do-animate { animation: dropIn 0.45s var(--ease-smooth) both; }

/* Subpanel items stagger */
.mobile-menu.open .mobile-slide-header.do-animate { animation: dropIn 0.38s var(--ease-smooth) 0.04s both; }
.mobile-menu.open .mobile-subpanel-title.do-animate { animation: dropIn 0.4s var(--ease-smooth) 0.07s both; }
.mobile-menu.open .mobile-subpanel-section.do-animate { animation: dropIn 0.42s var(--ease-smooth) both; }
.mobile-menu.open .mobile-account-btns.do-animate { animation: dropIn 0.42s var(--ease-smooth) 0.1s both; }

/* ─── Subpanel shared styles ─── */
.mobile-subpanel-title {
  font-family: var(--font-display);
  font-size: clamp(2rem, 8vw, 2.8rem); font-weight: 700;
  color: white; letter-spacing: -0.03em;
  margin-bottom: 1.8rem; line-height: 1.1;
}
.mobile-subpanel-section { margin-bottom: 1.6rem; }
.mobile-subpanel-heading {
  font-family: var(--font-display);
  font-size: 1rem; font-weight: 700;
  color: rgba(255,255,255,0.35); letter-spacing: -0.01em;
  margin-bottom: 0.5rem; padding-bottom: 0.5rem;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.mobile-subpanel-section:first-of-type .mobile-subpanel-heading {
  color: var(--green-5);
  font-style: italic;
}
.mobile-subpanel-link {
  display: flex; align-items: center; gap: 12px;
  padding: 11px 0; color: rgba(255,255,255,0.65);
  font-size: 1rem; font-weight: 500; font-family: var(--font-ui);
  text-decoration: none; border-bottom: 1px solid rgba(255,255,255,0.05);
  transition: color 0.2s, padding-left 0.25s;
}
.mobile-subpanel-link:last-child { border-bottom: none; }
.mobile-subpanel-link i { font-size: 18px; color: var(--green-5); flex-shrink: 0; width: 22px; text-align: center; }
.mobile-subpanel-link:hover { color: white; padding-left: 4px; }

/* ─── Konto subpanel ─── */
.mobile-account-btns { display: flex; flex-direction: column; gap: 10px; margin-top: 0.5rem; }
.mobile-account-btn {
  display: flex; align-items: center; gap: 14px;
  padding: 18px 20px; border-radius: var(--r-lg);
  text-decoration: none; font-family: var(--font-ui);
  transition: all 0.22s var(--ease-smooth);
}
.mobile-account-btn i { font-size: 22px; flex-shrink: 0; }
.mobile-account-btn-label { font-size: 1rem; font-weight: 700; display: block; }
.mobile-account-btn-desc { font-size: 0.78rem; opacity: 0.6; font-weight: 400; display: block; margin-top: 2px; }
.mobile-account-btn.pri { background: white; color: var(--green-1); }
.mobile-account-btn.pri:hover { background: var(--green-pale); }
.mobile-account-btn.sec { background: rgba(255,255,255,0.07); color: rgba(255,255,255,0.85); border: 1px solid rgba(255,255,255,0.12); }
.mobile-account-btn.sec:hover { background: rgba(255,255,255,0.12); }

/* ══════════════════════════════════════════
   HERO
══════════════════════════════════════════ */
.hero {
  min-height: 100vh;
  padding: 140px 2.5rem 80px;
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}
.hero-left { animation: fadeUp 0.9s 0.2s both; }
.hero-tag {
  display: inline-flex; align-items:center; gap:8px;
  font-size: 0.78rem; font-weight:700; letter-spacing:0.1em;
  text-transform: uppercase;
  color: var(--green-3);
  background: var(--green-pale);
  border: 1px solid var(--green-light);
  padding: 6px 14px;
  border-radius: var(--r-pill);
  margin-bottom: 1.8rem;
}
.hero-tag-dot {
  width:7px; height:7px;
  border-radius:50%;
  background: var(--green-4);
  animation: pulse 2s infinite;
}
.hero-title {
  font-family: var(--font-display);
  font-size: clamp(3rem, 5.5vw, 5.5rem);
  font-weight: 700;
  color: var(--title);
  line-height: 1.0;
  letter-spacing: -0.03em;
  margin-bottom: 1.6rem;
}
.hero-title em {
  font-style: italic;
  color: var(--green-3);
}
.hero-title .accent-word {
  display:inline-block;
  position:relative;
}
.hero-title .accent-word::after {
  content:'';
  position:absolute; bottom:-4px; left:0; right:0;
  height:3px;
  background: linear-gradient(90deg, var(--accent), var(--accent-light));
  border-radius:2px;
  transform:scaleX(0); transform-origin:left;
  transition: transform 0.6s var(--ease-smooth) 1.2s;
}
.hero-title .accent-word.animate::after { transform:scaleX(1); }
.hero-desc {
  font-size: 1.05rem;
  color: var(--muted);
  line-height: 1.75;
  max-width: 480px;
  margin-bottom: 2.5rem;
  font-weight:400;
}
.hero-cta { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }

/* Wspólny outer box dla grup przycisków */
.btn-group {
  display:inline-flex; align-items:center;
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  padding: 5px;
  gap:4px;
}
.btn-hero {
  font-size:0.95rem; font-weight:700;
  color: var(--surface);
  padding: 12px 26px;
  border-radius: var(--r-lg);
  background: var(--green-1);
  display:flex; align-items:center; gap:8px;
  transition: all 0.3s var(--ease-smooth);
  box-shadow: var(--sh-green);
}
.btn-hero:hover { background:var(--green-2); box-shadow:0 16px 48px rgba(30,58,30,0.28); }
.btn-hero i { font-size:17px; }
.btn-hero-outline {
  font-size:0.95rem; font-weight:600;
  color: var(--green-1);
  padding: 12px 22px;
  border-radius: var(--r-lg);
  background: transparent;
  display:flex; align-items:center; gap:8px;
  transition: all 0.25s;
}
.btn-hero-outline:hover { background: var(--green-pale); }
.hero-stats {
  display:flex; gap:2.5rem;
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid var(--border);
}
.hero-stat-num {
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight:700;
  color: var(--green-1);
  letter-spacing:-0.03em;
}
.hero-stat-num span { color:var(--accent); }
.hero-stat-label { font-size:0.82rem; color:var(--muted); margin-top:2px; }

/* Hero Right — Bento Preview */
.hero-right {
  animation: scaleIn 0.9s 0.4s both;
  position:relative;
}
.hero-bento {
  display:grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto auto;
  gap: 12px;
}
.hb-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 20px;
  transition: transform 0.4s var(--ease-smooth), box-shadow 0.4s var(--ease-smooth), opacity 0.4s;
  position:relative; overflow:hidden;
}
.hb-card:hover { transform:translateY(-4px) scale(1.015); box-shadow:var(--sh-md); }
.hb-card.wide { grid-column: 1/-1; }
.hb-card.tall { grid-row: span 2; }
.hb-card-icon {
  width:38px; height:38px;
  border-radius: var(--r-sm);
  background: var(--green-pale);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:12px;
  color: var(--green-2);
  font-size:18px;
}
.hb-card-label {
  font-size:0.7rem; font-weight:700; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--muted);
  margin-bottom:5px;
}
.hb-card-title {
  font-family:var(--font-display);
  font-size:1rem; font-weight:600;
  color:var(--title); line-height:1.25;
}
.hb-card-val {
  font-family:var(--font-display);
  font-size:2.2rem; font-weight:700;
  color:var(--green-1); letter-spacing:-0.04em;
  margin-top:4px;
}
.hb-card-sub { font-size:0.75rem; color:var(--muted); margin-top:4px; }
.hb-subjects {
  display:flex; flex-wrap:wrap; gap:7px; margin-top:10px;
}
.hb-subj {
  font-size:0.73rem; font-weight:600;
  padding:4px 11px; border-radius:var(--r-pill);
  background: var(--green-pale); color:var(--green-2);
  border:1px solid var(--green-light);
  transition: all 0.2s;
}
.hb-subj:hover { background:var(--green-1); color:white; }
.hb-ai-bar {
  margin-top:12px;
  background:var(--bg-2);
  border-radius:var(--r-sm);
  padding:11px 13px;
  display:flex; align-items:center; gap:9px;
  border:1px solid var(--border);
}
.hb-ai-dot {
  width:7px; height:7px; border-radius:50%;
  background:var(--green-4); flex-shrink:0;
  animation: pulse 2.5s infinite;
}
.hb-ai-text { font-size:0.78rem; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.hb-ai-badge {
  margin-left:auto;
  font-size:0.67rem; font-weight:700;
  color:var(--green-3);
  background:var(--green-pale);
  border:1px solid var(--green-light);
  padding:3px 8px; border-radius:var(--r-pill);
  flex-shrink:0;
  letter-spacing:0.06em;
}
.hb-ai-winter {
  font-size:0.67rem; font-weight:700;
  color:var(--accent);
  background:var(--accent-pale);
  border:1px solid rgba(212,168,67,0.3);
  padding:3px 8px; border-radius:var(--r-pill);
  flex-shrink:0;
  letter-spacing:0.06em;
}
.hb-prog { margin-top:12px; display:flex; flex-direction:column; gap:9px; }
.hb-prog-head { display:flex; justify-content:space-between; margin-bottom:5px; }
.hb-prog-name { font-size:0.77rem; font-weight:600; color:var(--title); }
.hb-prog-pct { font-size:0.74rem; color:var(--muted); }
.hb-prog-bar { height:4px; background:var(--bg-2); border-radius:var(--r-pill); overflow:hidden; }
.hb-prog-fill {
  height:100%; border-radius:var(--r-pill);
  background:linear-gradient(90deg, var(--green-3), var(--green-5));
  width:var(--w); animation: barGrow 1.4s var(--ease-smooth) 0.8s both;
}

/* ══════════════════════════════════════════
   MARQUEE
══════════════════════════════════════════ */
.marquee-section {
  background: var(--green-1);
  padding: 16px 0;
  overflow: hidden;
  position: relative;
  border-top: 1px solid rgba(255,255,255,0.07);
  border-bottom: 1px solid rgba(255,255,255,0.07);
  width: 100%;
}
.marquee-track {
  display:flex; gap:0;
  animation: marqLeft 28s linear infinite;
  width:max-content;
}
.marquee-item {
  display:inline-flex; align-items:center; gap:10px;
  padding: 0 30px;
  font-size:0.8rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase;
  color: rgba(255,255,255,0.7);
  white-space:nowrap;
  border-right: 1px solid rgba(255,255,255,0.15);
}
.marquee-item i { font-size:15px; color:var(--accent); }

/* ══════════════════════════════════════════
   SECTION COMMONS
══════════════════════════════════════════ */
.section { padding: 100px 2.5rem; }
.section-inner { max-width:1400px; margin:0 auto; }
.section-eyebrow {
  display:inline-flex; align-items:center; gap:8px;
  font-size:0.75rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase;
  color: var(--green-3); margin-bottom:1.2rem;
}
.section-eyebrow::before {
  content:'';
  width:20px; height:2px;
  background:var(--green-4); border-radius:1px;
}
.section-title {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3.5rem);
  font-weight: 700;
  color: var(--title);
  line-height: 1.05;
  letter-spacing: -0.03em;
  margin-bottom: 1rem;
}
.section-title em { font-style:italic; color:var(--green-3); }
.section-desc { font-size:1rem; color:var(--muted); line-height:1.75; max-width:540px; }

/* ══════════════════════════════════════════
   SCROLL REVEAL ANIMATIONS
══════════════════════════════════════════ */
.reveal {
  opacity:0; transform:translateY(32px) scale(0.97);
  transition: opacity 0.7s var(--ease-smooth), transform 0.7s var(--ease-smooth);
}
.reveal.visible { opacity:1; transform:translateY(0) scale(1); }
.reveal-left {
  opacity:0; transform:translateX(-40px);
  transition: opacity 0.7s var(--ease-smooth), transform 0.7s var(--ease-smooth);
}
.reveal-left.visible { opacity:1; transform:translateX(0); }
.reveal-right {
  opacity:0; transform:translateX(40px);
  transition: opacity 0.7s var(--ease-smooth), transform 0.7s var(--ease-smooth);
}
.reveal-right.visible { opacity:1; transform:translateX(0); }

/* ══════════════════════════════════════════
   SUBJECTS SECTION
══════════════════════════════════════════ */
.subjects-section { background:var(--bg-2); }
.subjects-grid {
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap:14px;
  margin-top:3.5rem;
  /* Ensure clean grid — all cards same height */
  align-items: stretch;
}
.subj-card {
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--r-lg);
  padding:24px 22px;
  transition: transform 0.4s var(--ease-smooth), box-shadow 0.4s var(--ease-smooth);
  position:relative; overflow:hidden;
  cursor:pointer;
}
.subj-card::before {
  content:'';
  position:absolute; inset:0;
  background: radial-gradient(circle at var(--mx,50%) var(--my,50%), rgba(45,74,45,0.05) 0%, transparent 65%);
  opacity:0; transition:opacity 0.4s;
  pointer-events:none;
}
.subj-card:hover::before { opacity:1; }
.subj-card:hover { transform:translateY(-4px) scale(1.012); box-shadow:var(--sh-md); }
.subj-card.featured { grid-column:span 2; background:var(--green-1); border:none; }
.subj-card.featured .subj-name { color:white; }
.subj-card.featured .subj-meta { color:rgba(255,255,255,0.55); }
.subj-card.featured .subj-levels span { background:rgba(255,255,255,0.12); color:rgba(255,255,255,0.8); border-color:transparent; }
.subj-icon {
  width:46px; height:46px; border-radius:var(--r-md);
  background:var(--green-pale); display:flex; align-items:center; justify-content:center;
  font-size:22px; color:var(--green-2); margin-bottom:16px;
}
.subj-card.featured .subj-icon { background:rgba(255,255,255,0.1); color:var(--accent-light); }
.subj-name {
  font-family:var(--font-display);
  font-size:1.05rem; font-weight:600; color:var(--title);
  margin-bottom:6px;
}
.subj-meta { font-size:0.78rem; color:var(--muted); margin-bottom:14px; }
.subj-levels { display:flex; gap:6px; flex-wrap:wrap; }
.subj-levels span {
  font-size:0.68rem; font-weight:700; letter-spacing:0.06em;
  padding:3px 9px; border-radius:var(--r-pill);
  background:var(--green-pale); color:var(--green-2);
  border:1px solid var(--green-light);
}

/* ══════════════════════════════════════════
   GALERIA — SLIDER Z HUD
══════════════════════════════════════════ */
.gallery-section { background:var(--surface); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.gallery-header {
  display:flex; justify-content:space-between; align-items:flex-end;
  margin-bottom:3rem;
}
.gallery-header h2 {
  font-family:var(--font-display);
  font-size:clamp(2rem,3.5vw,3rem);
  font-weight:700; color:var(--title);
  letter-spacing:-0.03em; line-height:1.05;
}
.gallery-header p { font-size:0.95rem; color:var(--muted); max-width:260px; text-align:right; line-height:1.65; }
.gallery-grid {
  display:grid;
  grid-template-columns: repeat(12, 1fr);
  grid-template-rows: 260px 260px;
  gap: 14px;
}
@media(max-width:900px) {
  .gallery-grid {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(3, 200px);
  }
  .gallery-item:nth-child(n) { grid-column: auto !important; grid-row: auto !important; }
}
@media(max-width:600px) {
  .gallery-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: repeat(3, 160px);
  }
}
.gallery-item {
  border-radius:var(--r-lg); overflow:hidden;
  background:var(--bg-2); position:relative;
  border:1px solid var(--border);
  transition: transform 0.5s var(--ease-smooth), box-shadow 0.5s var(--ease-smooth);
  cursor:pointer;
}
.gallery-item:hover { transform:scale(1.02); z-index:2; box-shadow:var(--sh-lg); }
.gallery-item:nth-child(1) { grid-column:1/6; grid-row:1; background:linear-gradient(135deg, var(--green-pale), var(--green-light)); }
.gallery-item:nth-child(2) { grid-column:6/9; grid-row:1; background:linear-gradient(135deg, var(--accent-pale), var(--accent-light)); }
.gallery-item:nth-child(3) { grid-column:9/13; grid-row:1; background:linear-gradient(135deg, #e8f0ea, #c8dfc4); }
.gallery-item:nth-child(4) { grid-column:1/5; grid-row:2; background:linear-gradient(135deg, var(--bg-2), var(--bg-3)); }
.gallery-item:nth-child(5) { grid-column:5/9; grid-row:2; background:linear-gradient(135deg, #e8efe8, var(--green-light)); }
.gallery-item:nth-child(6) { grid-column:9/13; grid-row:2; background:linear-gradient(135deg, var(--accent-pale), #f0d890); }
.gallery-item-inner {
  position:absolute; inset:0;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
}
.gallery-item-icon { font-size:2.5rem; color:var(--green-3); opacity:0.5; }
.gallery-item:nth-child(2) .gallery-item-icon,
.gallery-item:nth-child(6) .gallery-item-icon { color:var(--accent); }
.gallery-item-label {
  position:absolute; bottom:1.2rem; left:1.2rem;
  background:rgba(255,255,255,0.88); backdrop-filter:blur(12px);
  padding:7px 14px; border-radius:var(--r-pill);
  font-size:0.82rem; font-weight:600; color:var(--title);
  opacity:0; transform:translateY(6px);
  transition:all 0.3s var(--ease-smooth);
  border:1px solid rgba(255,255,255,0.7);
}
.gallery-item:hover .gallery-item-label { opacity:1; transform:translateY(0); }

/* ══════════════════════════════════════════
   FEATURES BENTO
══════════════════════════════════════════ */
.features-bento {
  display:grid;
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: auto auto;
  gap:14px;
  margin-top:3.5rem;
}
.feat-card {
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--r-lg);
  padding:28px;
  transition: transform 0.4s var(--ease-smooth), box-shadow 0.4s var(--ease-smooth);
  position:relative; overflow:hidden;
  display:flex; flex-direction:column;
}
.feat-card:hover { transform:translateY(-4px) scale(1.012); box-shadow:var(--sh-md); }
.feat-card.hero-feat {
  grid-row: span 2;
  background: var(--green-1);
  border:none;
}
.feat-card.hero-feat:hover { box-shadow:var(--sh-lg); }
.feat-card-icon {
  width:48px; height:48px;
  border-radius:var(--r-md);
  display:flex; align-items:center; justify-content:center;
  font-size:24px;
  margin-bottom:20px;
}
.feat-card.hero-feat .feat-card-icon { background:rgba(255,255,255,0.1); color:var(--accent-light); }
.feat-card:not(.hero-feat) .feat-card-icon { background:var(--green-pale); color:var(--green-2); }
.feat-card-title {
  font-family:var(--font-display);
  font-size:1.25rem; font-weight:600;
  color:var(--title); line-height:1.2; margin-bottom:10px;
}
.feat-card.hero-feat .feat-card-title { font-size:1.8rem; color:white; }
.feat-card-desc { font-size:0.87rem; color:var(--muted); line-height:1.75; }
.feat-card.hero-feat .feat-card-desc { color:rgba(255,255,255,0.6); font-size:0.93rem; }
.ai-premiere-badge {
  display:inline-flex; align-items:center; gap:8px;
  background: var(--accent-pale);
  border:1px solid rgba(212,168,67,0.4);
  border-radius:var(--r-pill);
  padding:7px 16px; margin-top:auto;
  font-size:0.78rem; font-weight:700;
  color:var(--accent); letter-spacing:0.04em;
}
.ai-premiere-badge i { font-size:14px; }
.feat-card.accent-card { background:linear-gradient(135deg, var(--accent-pale), var(--bg)); border-color:rgba(212,168,67,0.3); }
.feat-card.dark-card { background:var(--forest); border:none; }
.feat-card.dark-card .feat-card-title { color:white; }
.feat-card.dark-card .feat-card-desc { color:rgba(255,255,255,0.55); }
.feat-card.dark-card .feat-card-icon { background:rgba(255,255,255,0.08); color:var(--green-5); }
.feat-checks { display:flex; flex-direction:column; gap:9px; margin-top:18px; }
.feat-check { display:flex; align-items:center; gap:10px; font-size:0.84rem; color:rgba(255,255,255,0.75); }
.feat-check i { width:19px; height:19px; border-radius:50%; background:rgba(255,255,255,0.12); display:flex; align-items:center; justify-content:center; font-size:11px; color:var(--accent-light); flex-shrink:0; }

/* ══════════════════════════════════════════
   STICKY SCROLL SECTION — tekst stały, karty scrollują
══════════════════════════════════════════ */
.sticky-section {
  display:grid; grid-template-columns:1fr 1fr;
  gap:6rem; align-items:start;
  max-width:1400px; margin:0 auto;
}
.sticky-col-left {
  position:sticky; top:100px;
  align-self:start;
}
.sticky-col-right {
  display:flex; flex-direction:column; gap:14px;
  padding-top:20px;
}
.sticky-card {
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--r-lg);
  padding:28px;
  transition: transform 0.4s var(--ease-smooth), box-shadow 0.4s var(--ease-smooth);
}
.sticky-card:hover { transform:translateX(6px); box-shadow:var(--sh-md); }
.sticky-card-icon {
  width:44px; height:44px;
  border-radius:var(--r-md);
  background:var(--green-pale);
  display:flex; align-items:center; justify-content:center;
  font-size:20px; color:var(--green-2);
  margin-bottom:16px;
}
.sticky-card-title {
  font-family:var(--font-display);
  font-size:1.1rem; font-weight:600;
  color:var(--title); margin-bottom:8px;
}
.sticky-card-text { font-size:0.87rem; color:var(--muted); line-height:1.75; }

/* ══════════════════════════════════════════
   TASKS SECTION
══════════════════════════════════════════ */
.tasks-section { background: var(--bg-2); }
.tasks-grid {
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap:14px;
  margin-top:3.5rem;
}
.task-card {
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--r-lg);
  padding:22px;
  transition: transform 0.4s var(--ease-smooth), box-shadow 0.4s var(--ease-smooth);
  display: flex;
  flex-direction: column;
}
.task-card:hover { transform:translateY(-4px) scale(1.012); box-shadow:var(--sh-md); }
.task-header { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:14px; }
.task-subj-tag {
  display:inline-flex; align-items:center; gap:6px;
  font-size:0.71rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--green-3); background:var(--green-pale); border:1px solid var(--green-light);
  padding:4px 10px; border-radius:var(--r-pill);
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.task-subj-tag i { font-size:12px; }
.task-level { font-size:0.7rem; font-weight:700; letter-spacing:0.06em; padding:4px 10px; border-radius:var(--r-pill); }
.task-level.p { background:#fef3cd; color:#a07c00; border:1px solid rgba(160,124,0,0.2); }
.task-level.r { background:#fde8e8; color:#b03030; border:1px solid rgba(176,48,48,0.2); }
.task-level.d { background:#e8eeff; color:#3050b0; border:1px solid rgba(48,80,176,0.2); }
.task-title { font-family:var(--font-display); font-size:0.97rem; font-weight:600; color:var(--title); line-height:1.35; margin-bottom:9px; }
.task-preview { font-size:0.82rem; color:var(--muted); line-height:1.65; margin-bottom:16px; flex:1; }
.task-actions { display:flex; gap:6px; margin-top: auto; }
.task-unlock-hint {
  display:inline-flex; align-items:center; gap:6px;
  font-size:0.76rem; font-weight:600;
  color:var(--muted);
  background:var(--bg-2);
  border:1px solid var(--border);
  padding:7px 13px;
  border-radius:var(--r-pill);
}
.task-unlock-hint i { font-size:12px; opacity:0.7; }

/* Outer box dla przycisków zadań */
.task-btn-group {
  display:inline-flex; align-items:center;
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  padding: 4px;
  gap:3px;
}
.task-btn {
  display:flex; align-items:center; gap:5px;
  font-size:0.76rem; font-weight:600;
  padding:7px 13px; border-radius:var(--r-lg);
  transition: all 0.2s var(--ease-smooth);
  cursor: pointer;
  text-decoration: none;
}
.task-btn.ai { background:var(--green-1); color:white; }
.task-btn.ai:hover { background:var(--green-2); }
.task-btn.send { background:transparent; color:var(--body); }
.task-btn.send:hover { background:var(--green-pale); color:var(--green-1); }
.task-btn i { font-size:12px; }
.task-card.wide { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr 1fr; gap:0; padding:0; overflow:hidden; flex-direction:unset; }
.task-card.wide .task-wide-main { padding:26px; border-right:1px solid var(--border); }
.task-card.wide .task-wide-stats { padding:26px; border-right:1px solid var(--border); display:flex; flex-direction:column; justify-content:center; gap:14px; }
.task-card.wide .task-wide-action { padding:26px; display:flex; flex-direction:column; justify-content:center; gap:10px; background:var(--green-1); }
.stat-row { display:flex; align-items:center; gap:10px; }
.stat-row i { font-size:17px; color:var(--green-4); }
.stat-row-val { font-family:var(--font-display); font-size:1.4rem; font-weight:700; color:var(--title); letter-spacing:-0.03em; }
.stat-row-label { font-size:0.73rem; color:var(--muted); }
.task-wide-title { font-family:var(--font-display); font-size:1.2rem; font-weight:600; color:var(--title); margin-bottom:7px; }
.task-wide-desc { font-size:0.83rem; color:var(--muted); line-height:1.65; }
.task-card.wide .task-wide-action .task-wide-title { color:white; }
.task-card.wide .task-wide-action .task-wide-desc { color:rgba(255,255,255,0.65); }

/* Outer box dla przycisków w wide task */
.task-wide-btn-group {
  display:flex; flex-direction:column;
  background: rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.1);
  border-radius: var(--r-lg);
  padding: 5px;
  gap:4px;
  margin-top:auto;
}
.twb {
  display:flex; align-items:center; gap:8px;
  font-size:0.82rem; font-weight:700;
  padding:10px 15px; border-radius:var(--r-md);
  transition: all 0.25s var(--ease-smooth);
  text-decoration: none;
  cursor: pointer;
}
.twb.pri { background:white; color:var(--green-1); }
.twb.pri:hover { background:rgba(255,255,255,0.92); transform:translateY(-1px); }
.twb.sec { background:transparent; color:rgba(255,255,255,0.85); border:1px solid rgba(255,255,255,0.18); }
.twb.sec:hover { background:rgba(255,255,255,0.12); }
.twb i { font-size:15px; }

/* ══════════════════════════════════════════
   TEACHERS
══════════════════════════════════════════ */
.teachers-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:3.5rem; }
.teacher-card {
  background:var(--surface); border:1px solid var(--border);
  border-radius:var(--r-lg); padding:28px 24px;
  transition: transform 0.4s var(--ease-smooth), box-shadow 0.4s var(--ease-smooth);
  position:relative; overflow:hidden;
}
.teacher-card:hover { transform:translateY(-4px) scale(1.012); box-shadow:var(--sh-md); }
.teacher-avatar {
  width:58px; height:58px; border-radius:var(--r-md);
  background:var(--green-1);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-size:1.3rem; font-weight:700; color:white;
  margin-bottom:16px; position:relative; letter-spacing:-0.02em;
}
.teacher-online { position:absolute; bottom:2px; right:2px; width:11px; height:11px; border-radius:50%; background:var(--green-5); border:2px solid var(--surface); }
.teacher-name { font-family:var(--font-display); font-size:1rem; font-weight:600; color:var(--title); margin-bottom:3px; }
.teacher-role { font-size:0.78rem; color:var(--muted); margin-bottom:14px; }
.teacher-tags { display:flex; flex-wrap:wrap; gap:5px; margin-bottom:16px; }
.teacher-tag { font-size:0.68rem; font-weight:700; letter-spacing:0.05em; padding:3px 9px; border-radius:var(--r-pill); background:var(--green-pale); color:var(--green-2); border:1px solid var(--green-light); }
.teacher-bio { font-size:0.81rem; color:var(--muted); line-height:1.7; }
.teacher-card.featured-teacher { background:var(--bottle); border:none; }
.teacher-card.featured-teacher .teacher-name { color:white; }
.teacher-card.featured-teacher .teacher-role { color:rgba(255,255,255,0.5); }
.teacher-card.featured-teacher .teacher-bio { color:rgba(255,255,255,0.6); }
.teacher-card.featured-teacher .teacher-tag { background:rgba(255,255,255,0.1); color:rgba(255,255,255,0.8); border-color:rgba(255,255,255,0.12); }
.teacher-card.featured-teacher .teacher-avatar { background:var(--accent); color:var(--forest); }

/* ══════════════════════════════════════════
   AI SECTION — z tęczowym gradientem Apple Intelligence
══════════════════════════════════════════ */
.ai-section { background:var(--forest); position:relative; overflow:hidden; }
.ai-section::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse at 30% 50%, rgba(90,140,90,0.15), transparent 60%),
             radial-gradient(ellipse at 80% 20%, rgba(212,168,67,0.08), transparent 50%);
}
.ai-inner { position:relative; z-index:1; max-width:1400px; margin:0 auto; padding:100px 2.5rem; }
.ai-layout { display:grid; grid-template-columns:1fr 1fr; gap:6rem; align-items:center; }
.ai-eyebrow { display:inline-flex; align-items:center; gap:8px; font-size:0.75rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--green-5); margin-bottom:1.4rem; }
.ai-eyebrow::before { content:''; width:20px; height:2px; background:var(--green-5); border-radius:1px; }
.ai-title { font-family:var(--font-display); font-size:clamp(2rem,3.8vw,3.2rem); font-weight:700; color:white; line-height:1.05; letter-spacing:-0.03em; margin-bottom:1.2rem; }
.ai-title em { color:var(--accent-light); font-style:italic; }
.ai-desc { font-size:0.95rem; color:rgba(255,255,255,0.6); line-height:1.8; margin-bottom:2rem; }
.ai-principles { display:flex; flex-direction:column; gap:14px; margin-bottom:2.5rem; }
.ai-principle { display:flex; align-items:flex-start; gap:14px; padding:16px 18px; background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.07); border-radius:var(--r-md); transition:all 0.3s; }
.ai-principle:hover { background:rgba(255,255,255,0.07); }
.ai-principle-icon { width:36px; height:36px; border-radius:var(--r-sm); background:rgba(255,255,255,0.08); display:flex; align-items:center; justify-content:center; font-size:17px; color:var(--green-5); flex-shrink:0; }
.ai-principle-title { font-size:0.88rem; font-weight:700; color:white; margin-bottom:2px; }
.ai-principle-text { font-size:0.81rem; color:rgba(255,255,255,0.5); line-height:1.65; }
.ai-premiere { display:inline-flex; align-items:center; gap:10px; background:var(--accent-pale); border:1px solid rgba(212,168,67,0.4); border-radius:var(--r-lg); padding:14px 20px; }
.ai-premiere-icon { font-size:20px; color:var(--accent); }
.ai-premiere-text { font-size:0.83rem; line-height:1.5; }
.ai-premiere-text strong { display:block; font-size:0.92rem; color:var(--title); font-weight:700; }
.ai-premiere-text span { color:var(--muted); }

/* AI Demo Widget — modern card, no macOS dots */
.ai-demo-wrap {
  position: relative;
}
.ai-glow-container {
  position: relative;
  border-radius: var(--r-xl);
  box-shadow:
    0 0 0 1px rgba(122,170,116,0.2),
    0 32px 80px rgba(0,0,0,0.35),
    0 0 60px rgba(74,114,72,0.1);
}
.ai-glow-ring { display: none; }
.ai-glow-inner-mask { display: none; }
.ai-demo {
  position: relative; z-index: 2;
  background: rgba(22,34,22,0.95);
  border: 1px solid rgba(122,170,116,0.18);
  border-radius: var(--r-xl);
  overflow: hidden;
}
/* Top header bar — clean, no dots */
.ai-demo-bar {
  padding: 16px 22px;
  background: rgba(255,255,255,0.03);
  border-bottom: 1px solid rgba(255,255,255,0.06);
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative; z-index: 1;
}
.ai-demo-bar-left {
  display: flex; align-items: center; gap: 10px;
}
.ai-demo-icon {
  width: 28px; height: 28px;
  border-radius: var(--r-sm);
  background: var(--green-3);
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; color: white;
}
.ai-demo-title {
  font-size: 0.8rem;
  font-weight: 600;
  color: rgba(255,255,255,0.7);
  letter-spacing: 0.01em;
}
.ai-demo-subtitle {
  font-size: 0.68rem;
  color: rgba(255,255,255,0.3);
  letter-spacing: 0.02em;
}
.ai-demo-status {
  display: flex; align-items: center; gap: 6px;
  font-size: 0.7rem; font-weight: 600;
  color: var(--green-5);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.ai-demo-status-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--green-5);
  animation: pulse 2.5s infinite;
}
/* shimmer bar stays but thinner */
.ai-demo-rainbow {
  height: 1px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(122,170,116,0.6) 20%,
    rgba(212,168,67,0.5) 50%,
    rgba(122,170,116,0.6) 80%,
    transparent 100%
  );
  background-size: 200% 100%;
  animation: shimmer 3s linear infinite;
  position: relative; z-index: 1;
}
.ai-demo-body { padding: 20px 22px; display:flex; flex-direction:column; gap:14px; position:relative; z-index:1; }
/* Score card inside demo */
.ai-score-card {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: var(--r-md);
  padding: 14px 16px;
  display: flex; align-items: center; gap: 14px;
  margin: 20px;
}
.ai-score-num {
  font-family: var(--font-display);
  font-size: 2rem; font-weight: 700;
  color: var(--accent-light);
  line-height: 1;
  letter-spacing: -0.03em;
  flex-shrink: 0;
}
.ai-score-label {
  font-size: 0.78rem;
  color: rgba(255,255,255,0.5);
  line-height: 1.5;
}
.ai-score-label strong {
  display: block;
  font-size: 0.85rem;
  color: rgba(255,255,255,0.8);
  font-weight: 600;
  margin-bottom: 2px;
}
.ai-criteria-list {
  display: flex; flex-direction: column; gap: 8px;
  margin-top: 2px;
}
.ai-criteria-row {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
}
.ai-criteria-name {
  font-size: 0.75rem;
  color: rgba(255,255,255,0.45);
  flex-shrink: 0;
  min-width: 110px;
}
.ai-criteria-bar-wrap {
  flex: 1;
  height: 4px;
  background: rgba(255,255,255,0.06);
  border-radius: 2px;
  overflow: hidden;
}
.ai-criteria-bar {
  height: 100%;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--green-3), var(--green-5));
  animation: barGrow 1.4s var(--ease-smooth) 0.5s both;
}
.ai-criteria-pts {
  font-size: 0.72rem;
  font-weight: 700;
  color: rgba(255,255,255,0.5);
  flex-shrink: 0;
  min-width: 32px;
  text-align: right;
}
.ai-msg { display:flex; gap:9px; align-items:flex-start; }
.ai-msg.user { flex-direction:row-reverse; }
.ai-msg-avatar { width:28px; height:28px; border-radius:var(--r-sm); flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:12px; }
.ai-msg.user .ai-msg-avatar { background:var(--green-3); color:white; border-radius: 50%; }
.ai-msg.bot .ai-msg-avatar { background:var(--green-1); color:var(--green-5); border-radius: 50%; }
.ai-msg-bubble { max-width:82%; padding:10px 14px; border-radius:var(--r-md); font-size:0.8rem; line-height:1.65; }
.ai-msg.user .ai-msg-bubble { background:var(--green-2); color:white; border-bottom-right-radius:4px; }
.ai-msg.bot .ai-msg-bubble { background:rgba(255,255,255,0.05); color:rgba(255,255,255,0.8); border-bottom-left-radius:4px; border:1px solid rgba(255,255,255,0.07); }
.ai-msg-typing { display:flex; gap:4px; align-items:center; padding:4px 0; }
.ai-msg-typing span { width:5px; height:5px; border-radius:50%; background:var(--green-5); opacity:0.6; }
.ai-msg-typing span:nth-child(1){animation:pulse 1.2s 0s infinite;}
.ai-msg-typing span:nth-child(2){animation:pulse 1.2s 0.2s infinite;}
.ai-msg-typing span:nth-child(3){animation:pulse 1.2s 0.4s infinite;}
.ai-msg-highlight { background:rgba(212,168,67,0.12); border:1px solid rgba(212,168,67,0.2); border-radius:var(--r-sm); padding:8px 12px; margin-top:7px; font-size:0.77rem; color:var(--accent-light); }

/* ══════════════════════════════════════════
   FAQ
══════════════════════════════════════════ */
.faq-grid { display:grid; grid-template-columns:1fr; gap:10px; margin-top:3.5rem; }
.faq-item { background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); overflow:hidden; transition: border-color 0.3s, box-shadow 0.3s; }
.faq-item.open { border-color:var(--border-med); box-shadow:var(--sh-sm); }
.faq-q { padding:20px 22px; display:flex; align-items:center; justify-content:space-between; gap:14px; cursor:pointer; transition:background 0.2s; }
.faq-q:hover { background:var(--bg-2); }
.faq-q-text { font-weight:600; font-size:0.9rem; color:var(--title); line-height:1.4; }
.faq-icon { width:28px; height:28px; flex-shrink:0; border-radius:50%; background:var(--bg-2); display:flex; align-items:center; justify-content:center; font-size:13px; color:var(--muted); transition:all 0.35s var(--ease-smooth); }
.faq-item.open .faq-icon { background:var(--green-1); color:white; transform:rotate(45deg); }
/* Smooth grid-row animation trick */
.faq-a {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.42s var(--ease-smooth);
}
.faq-item.open .faq-a { grid-template-rows: 1fr; }
.faq-a > * { overflow: hidden; }
.faq-a-inner { padding:0 22px 20px; font-size:0.85rem; color:var(--muted); line-height:1.75; border-top:1px solid var(--border); padding-top:14px; }

/* ══════════════════════════════════════════
   CTA SECTION
══════════════════════════════════════════ */
.cta-section { background:var(--green-1); padding:100px 2.5rem; text-align:center; position:relative; overflow:hidden; }
.cta-section::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 50% 0%, rgba(255,255,255,0.06), transparent 60%); }
.cta-inner { position:relative; z-index:1; max-width:700px; margin:0 auto; }
.cta-tag { display:inline-flex; align-items:center; gap:8px; font-size:0.75rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:rgba(255,255,255,0.55); background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.12); padding:6px 16px; border-radius:var(--r-pill); margin-bottom:1.8rem; }
.cta-title { font-family:var(--font-display); font-size:clamp(2.5rem,5vw,4rem); font-weight:700; color:white; line-height:1.0; letter-spacing:-0.03em; margin-bottom:1.2rem; }
.cta-title em { color:var(--accent-light); font-style:italic; }
.cta-desc { font-size:1rem; color:rgba(255,255,255,0.6); line-height:1.75; margin-bottom:2.5rem; }
.cta-btn-group { display:inline-flex; align-items:center; background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.2); border-radius:var(--r-xl); padding:5px; gap:4px; }
.btn-cta-pri { font-size:0.97rem; font-weight:700; color:var(--green-1); background:white; padding:13px 28px; border-radius:var(--r-lg); display:flex; align-items:center; gap:9px; transition:all 0.3s var(--ease-smooth); }
.btn-cta-pri:hover { transform:translateY(-2px); box-shadow:0 16px 40px rgba(0,0,0,0.25); }
.btn-cta-sec { font-size:0.97rem; font-weight:600; color:rgba(255,255,255,0.85); padding:13px 24px; border-radius:var(--r-lg); background:transparent; display:flex; align-items:center; gap:9px; transition:all 0.25s; }
.btn-cta-sec:hover { background:rgba(255,255,255,0.12); }

/* ══════════════════════════════════════════
   FOOTER
══════════════════════════════════════════ */
.footer { background:var(--forest); padding:64px 2.5rem 40px; border-top:1px solid rgba(255,255,255,0.06); }
.footer-inner { max-width:1400px; margin:0 auto; }
.footer-top { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:4rem; padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,0.07); }
.footer-brand { font-family:var(--font-display); font-size:1.5rem; font-weight:700; color:white; letter-spacing:-0.03em; margin-bottom:1rem; }
.footer-brand .dot { color:var(--accent); }
.footer-about { font-size:0.83rem; color:rgba(255,255,255,0.45); line-height:1.75; }
.footer-col-title { font-size:0.73rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:rgba(255,255,255,0.3); margin-bottom:1.2rem; }
.footer-links { display:flex; flex-direction:column; gap:8px; }
.footer-links a { font-size:0.83rem; color:rgba(255,255,255,0.55); transition:color 0.2s; }
.footer-links a:hover { color:white; }
.footer-bottom { padding-top:32px; display:flex; align-items:center; justify-content:space-between; }
.footer-copy { font-size:0.78rem; color:rgba(255,255,255,0.3); }
.footer-copy span { color:var(--accent); }

/* ══════════════════════════════════════════
   RESPONSIVE — FULL OVERHAUL
══════════════════════════════════════════ */

/* ── 1100px: tablet landscape ── */
@media(max-width:1100px) {
  .nav { width:calc(100% - 2rem); }
  .hero { grid-template-columns:1fr; gap:2.5rem; padding-top:120px; }
  .hero-right { display:none; }
  .subjects-grid { grid-template-columns:repeat(3, 1fr); }
  .subj-card.featured { grid-column:span 2; }
  .features-bento { grid-template-columns:1fr 1fr; }
  .feat-card.hero-feat { grid-column:1/-1; grid-row:auto; }
  .tasks-grid { grid-template-columns:1fr 1fr; }
  .task-card.wide { grid-column:1/-1; grid-template-columns:1fr 1fr; }
  .task-card.wide .task-wide-stats { border-right:none; border-top:1px solid rgba(255,255,255,0.1); }
  .teachers-grid { grid-template-columns:repeat(2,1fr); }
  .ai-layout { grid-template-columns:1fr; gap:3rem; }
  .faq-grid { grid-template-columns:1fr; }
  .footer-top { grid-template-columns:1fr 1fr; gap:2rem; }
  .sticky-section { grid-template-columns:1fr; }
  .sticky-col-left { position:static; }
}

/* ── 900px: tablet portrait ── */
@media(max-width:900px) {
  .nav-links { display:none; }
  .nav-hamburger { display:flex; }
  .nav { width:calc(100% - 1.5rem); }
  /* Gallery: 2×3 grid, all items equal */
  .gallery-grid {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(3, 200px);
  }
  .gallery-item:nth-child(n) { grid-column: auto !important; grid-row: auto !important; }
  .subjects-grid { grid-template-columns:repeat(2,1fr); }
  .subj-card.featured { grid-column:1/-1; }
  .teachers-grid { grid-template-columns:repeat(2,1fr); }
  .task-card.wide { grid-column:1/-1; grid-template-columns:1fr; }
  .task-card.wide .task-wide-main { border-right:none; border-bottom:1px solid var(--border); }
  .task-card.wide .task-wide-stats { border-right:none; border-bottom:1px solid var(--border); }
  .hero-stats { gap:1.5rem; }
  .sticky-section { gap:3rem; }
}

/* ── 700px: large phone ── */
@media(max-width:700px) {
  .nav { top:10px; }
  .nav-bar { height:52px; padding: 0 1rem; }
  .section { padding:64px 1.25rem; }
  .cta-section { padding:64px 1.25rem; }
  .hero { padding:100px 1.25rem 60px; }
  .hero-title { font-size: clamp(2.5rem, 8vw, 4rem); }
  .hero-stats { gap:1.25rem; flex-wrap:wrap; }
  .subjects-grid { grid-template-columns:1fr 1fr; }
  .subj-card.featured { grid-column:auto; }
  .tasks-grid { grid-template-columns:1fr; }
  .task-card.wide { grid-template-columns:1fr; }
  .features-bento { grid-template-columns:1fr; }
  .feat-card.hero-feat { grid-column:auto; }
  .teachers-grid { grid-template-columns:1fr 1fr; }
  .footer-top { grid-template-columns:1fr 1fr; gap:1.5rem; }
  .hero-cta { flex-direction:column; align-items:stretch; }
  .btn-group { width:100%; display:flex; }
  .btn-group .btn-hero { flex:1; justify-content:center; }
  .btn-group .btn-hero-outline { flex:1; justify-content:center; }
  .gallery-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: repeat(3, 160px);
  }
  .gallery-item:nth-child(n) { grid-column: auto !important; grid-row: auto !important; }
  .gallery-header { flex-direction:column; align-items:flex-start; gap:12px; }
  .gallery-header p { text-align:left; max-width:100%; }
  .reveal[style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
  }
  .ai-inner { padding:64px 1.25rem; }
  .cta-btn-group { flex-direction:column; width:100%; display:flex; }
  .btn-cta-pri, .btn-cta-sec { justify-content:center; width:100%; box-sizing:border-box; }
}

/* ── 480px: small phone ── */
@media(max-width:480px) {
  .nav { width:calc(100% - 1rem); }
  .teachers-grid { grid-template-columns:1fr; }
  .subjects-grid { grid-template-columns:1fr; }
  .subj-card.featured { grid-column:auto; }
  .hero-stats { flex-direction:column; gap:1rem; }
  .section { padding:52px 1rem; }
  .footer-top { grid-template-columns:1fr; }
  .tasks-grid { grid-template-columns:1fr; }
  .task-card.wide .task-wide-action { grid-template-columns:1fr; }
  .task-wide-btn-group { flex-direction:column; }
  .gallery-grid { grid-template-columns:1fr; grid-template-rows:repeat(6,140px); }
}
