/* Shared visual language for the public site and student application.
   Scoped selectors take precedence over the retained legacy page bundles. */
:root {
  --lw-blue:#3248b8; --lw-blue-dark:#24388f; --lw-yellow:#f3bd04;
  --lw-orange:#f39104; --lw-orange-text:#b96000; --lw-gold-dark:#dda900;
  --lw-ink:#242424; --lw-muted:#5d677c; --lw-line:#e2e6ef;
  --lw-surface:#faf9f6; --lw-cream:#fff9eb; --lw-radius:18px;
  --primary-color:var(--lw-blue)!important; --secondary-color:var(--lw-blue-dark)!important;
  --brand-blue-800:var(--lw-blue); --brand-blue-900:var(--lw-blue-dark);
  --brand-blue-700:var(--lw-blue); --brand-yellow-500:var(--lw-yellow);
  --student-primary:var(--lw-blue); --gradient-primary:var(--lw-blue);
  --bs-primary:#3248b8; --bs-primary-rgb:50,72,184; --bs-link-color:#3248b8;
}
html { scroll-padding-top:110px; }
body.lingwish-ui { background:var(--lw-surface); color:var(--lw-ink); font-family:Inter,system-ui,-apple-system,sans-serif; font-size:16px; line-height:1.65; }
.lingwish-ui * { min-width:0; }
.lingwish-ui :is(h1,h2,h3,h4,h5,h6) { color:var(--lw-ink); font-weight:700; line-height:1.25; letter-spacing:-.025em; }
.lingwish-ui h1 { font-size:clamp(1.8rem,3vw,2.75rem); }
.lingwish-ui a { color:var(--lw-blue); }
.lingwish-ui a:hover { color:var(--lw-blue-dark); }
.lingwish-ui .text-muted { color:var(--lw-muted)!important; }
.lingwish-ui :is(a,button,input,select,textarea):focus-visible { outline:3px solid #7185df; outline-offset:3px; }
.lingwish-ui .container { max-width:1248px; padding-inline:24px; }
.lingwish-ui main.container { padding-block:24px 48px; min-height:55vh; }
.lingwish-ui main > .container { padding-inline:0; }
.lingwish-ui .btn { border-radius:10px; min-height:44px; padding:11px 19px; font-size:.9rem; font-weight:600; line-height:1.45; letter-spacing:0; box-shadow:none; transition:background .18s,border-color .18s; white-space:normal; }
.lingwish-ui .btn:hover { transform:none; box-shadow:none; }
.lingwish-ui .btn-primary, .lingwish-ui :is(.btn-login,.btn-reset,.btn-confirm) { background:var(--lw-yellow)!important; border:1px solid var(--lw-yellow)!important; color:var(--lw-ink)!important; }
.lingwish-ui :is(.btn-primary,.btn-login,.btn-reset,.btn-confirm):hover { background:var(--lw-gold-dark)!important; border-color:var(--lw-gold-dark)!important; color:var(--lw-ink)!important; }
.lingwish-ui .btn-outline-primary { border:1px solid #c5cdec!important; background:#fff!important; color:var(--lw-blue)!important; }
.lingwish-ui .btn-outline-primary:hover { background:#eef1fb!important; }
.lingwish-ui .btn-warning { background:var(--lw-yellow); border:1px solid var(--lw-yellow); color:var(--lw-ink); }
.lingwish-ui .btn-sm { min-height:40px; padding:9px 14px; font-size:.85rem; }
.lingwish-ui .btn-lg { padding:15px 23px; font-size:1rem; }
.lingwish-ui :is(.btn.disabled,.btn:disabled) { opacity:.7; cursor:not-allowed; }
.lingwish-ui :is(.form-control,.form-select) { min-height:46px; border:1px solid #cdd4e2; border-radius:10px; padding:11px 13px; font-size:16px; color:var(--lw-ink); background-color:#fff; box-shadow:none; }
.lingwish-ui .form-select { padding-right:36px; }
.lingwish-ui :is(.form-control,.form-select):focus { border-color:var(--lw-blue); box-shadow:0 0 0 3px #3248b819; }
.lingwish-ui .form-label { color:var(--lw-ink); font-weight:600; font-size:.875rem; margin-bottom:6px; }
.lingwish-ui .form-floating > .form-control { padding-top:1.65rem; padding-bottom:.6rem; }
.lingwish-ui .form-floating > label { color:var(--lw-muted); }
.lingwish-ui .form-check-input:checked { background-color:var(--lw-blue); border-color:var(--lw-blue); }
.lingwish-ui :is(.card,.student-card,.calendar-container) { background:#fff; border:1px solid var(--lw-line); border-radius:var(--lw-radius); box-shadow:0 4px 20px #202a4305; }
.lingwish-ui :is(.card,.student-card):hover { transform:none; box-shadow:0 4px 20px #202a4305; }
.lingwish-ui .card-header { background:#fff!important; color:var(--lw-ink)!important; border-bottom:1px solid var(--lw-line); padding:20px 24px; border-radius:17px 17px 0 0!important; }
.lingwish-ui .card-header :is(h1,h2,h3,h4,h5,h6,i) { color:inherit!important; }
.lingwish-ui .card-body { padding:24px; }
.lingwish-ui .badge { padding:.45em .7em; border-radius:7px; font-size:.73rem; font-weight:600; letter-spacing:0; line-height:1.4; white-space:normal; }
.lingwish-ui .badge.bg-success { background:#e5f4e9!important; color:#236b3b!important; }
.lingwish-ui .badge.bg-warning { background:#fff3c7!important; color:#72520d!important; }
.lingwish-ui .badge.bg-primary { background:#ecf0ff!important; color:var(--lw-blue)!important; }
.lingwish-ui .alert { border-radius:12px; box-shadow:none; }
.lingwish-ui .pagination { gap:5px; flex-wrap:wrap; }
.lingwish-ui .page-link { border:1px solid var(--lw-line); border-radius:9px!important; padding:10px 14px; color:var(--lw-blue); font-size:.875rem; }
.lingwish-ui .active > .page-link { background:var(--lw-blue); color:#fff; border-color:var(--lw-blue); }
.lingwish-ui .table { --bs-table-bg:transparent; --bs-table-border-color:var(--lw-line); font-size:.875rem; }
.lingwish-ui .table th { background:#f6f7fc!important; color:var(--lw-muted); font-weight:600; white-space:nowrap; padding:14px; }
.lingwish-ui .table td { padding:14px; vertical-align:middle; }
.lingwish-ui .table-responsive { border:1px solid var(--lw-line); border-radius:12px; }
.lingwish-ui .lingwish-header { position:sticky; top:0; z-index:1020; background:#fffffff5; border-bottom:1px solid var(--lw-line); margin:0; padding:0; backdrop-filter:blur(12px); }
.lingwish-ui .header-container { max-width:1248px; margin:auto; padding:0 24px; }
.lingwish-ui .header-content { display:flex; align-items:center; justify-content:space-between; gap:28px; background:transparent!important; box-shadow:none; border-radius:0; min-height:88px; animation:none; }
.lingwish-ui .navbar-brand { gap:10px; margin:0; color:var(--lw-ink)!important; text-decoration:none; }
.lingwish-ui .header-logo-img { width:44px; height:44px; object-fit:contain; }
.lingwish-ui .brand-name { color:var(--lw-ink); display:inline-block; font-size:25px; letter-spacing:-1px; line-height:1; font-weight:800; }
.lingwish-ui .brand-name > span { display:block; font-size:11px; letter-spacing:3px; text-transform:uppercase; margin-top:7px; font-weight:500; }
.lingwish-ui .header-nav { display:flex; align-items:center; flex:1; justify-content:flex-end; gap:32px; }
.lingwish-ui .nav-menu { display:flex; align-items:center; gap:4px; list-style:none; padding:0; margin:0; }
.lingwish-ui .header-nav .nav-link { padding:10px 12px; color:#4c566e!important; font-size:.88rem; font-weight:600; background:transparent; text-decoration:none; border-radius:8px; }
.lingwish-ui .header-nav .nav-link:hover, .lingwish-ui .header-nav .nav-link[aria-current] { color:var(--lw-blue)!important; background:#fff3c7; }
.lingwish-ui .header-actions { display:flex; align-items:center; gap:14px; }
.lingwish-ui .website-language select { color:var(--lw-ink); background:transparent; font-size:.8rem; font-weight:600; border:0; border-radius:6px; height:44px; width:50px; cursor:pointer; }
.lingwish-ui .mobile-menu-toggle { display:none; }
.lingwish-ui .site-footer { padding:64px 0 24px; background:var(--lw-blue-dark)!important; color:#dce2f2!important; }
.lingwish-ui .site-footer a { color:#dce2f2; text-decoration:none; }
.lingwish-ui .site-footer a:hover { color:var(--lw-yellow); }
.lingwish-ui .footer-grid { display:grid; grid-template-columns:1.5fr .85fr .9fr 1.3fr; gap:40px; }
.lingwish-ui .footer-grid > :is(div,nav) > a:not(.brand-name) { display:block; font-size:.875rem; margin:8px 0; overflow-wrap:anywhere; }
.lingwish-ui .footer-grid h2 { color:#fff; font-size:1rem; margin:0 0 20px; letter-spacing:0; }
.lingwish-ui .footer-brand .brand-name { color:#fff; font-size:30px; }
.lingwish-ui .footer-brand p { max-width:260px; margin-top:22px; font-size:.875rem; color:#b9c3d9; }
.lingwish-ui .footer-bottom { border-top:1px solid #ffffff24; margin-top:44px; padding-top:22px; display:flex; justify-content:space-between; align-items:center; gap:20px; font-size:.75rem; }
.lingwish-ui .footer-bottom p { margin:0; }
.lingwish-ui .footer-bottom a { font-size:.75rem; }
.lingwish-ui .footer-bottom .text-muted { color:#b9c3d9!important; }
.lingwish-ui #cookie-banner { background:var(--lw-blue-dark)!important; border:1px solid #ffffff2b; border-radius:16px; bottom:16px!important; left:16px!important; right:16px!important; width:auto; padding:20px!important; box-shadow:0 8px 40px #14213d30!important; }
.lingwish-ui #cookie-banner h6 { color:#fff; }
.lingwish-ui #cookie-banner .container { padding:0; }
.lingwish-ui #cookie-banner .btn { font-size:.8rem; padding:10px 13px; }
.lingwish-ui .lesson-card { height:100%; margin:0; overflow:hidden; }
.lingwish-ui .lesson-card__header { min-height:64px; gap:12px; align-items:flex-start!important; background:#fff!important; border:0; padding:24px 24px 0; }
.lingwish-ui .lesson-card__school { color:var(--lw-muted)!important; font-size:.8rem; font-weight:500; line-height:1.5; }
.lingwish-ui .lesson-card__body { gap:5px; }
.lingwish-ui .lesson-card .card-title { font-size:1.18rem; }
.lingwish-ui .lesson-card .card-title a { color:var(--lw-ink); }
.lingwish-ui .lesson-card__details { font-size:.85rem; color:var(--lw-muted); }
.lingwish-ui .lesson-card__price { border-top:1px solid var(--lw-line); margin:0 0 18px; padding-top:16px; font-size:1.25rem; font-weight:700; color:var(--lw-ink); }
.lingwish-ui .lesson-card__price small { font-size:.75rem; font-weight:400; color:var(--lw-muted); }
.lingwish-ui .filters-area { box-shadow:none; background:#fff; }
.lingwish-ui .filters-area .card-title { font-size:1rem; }
.lingwish-ui .filters-area .card-body { padding:24px; }
.lingwish-ui .section-title::after { display:none; }
.lingwish-ui .section-title { text-align:inherit; color:var(--lw-ink); }
.lingwish-ui :is(.login-container,.registration-container,.reset-container,.done-container,.confirm-container,.complete-container) { background:transparent!important; min-height:auto; padding:24px 0; }
.lingwish-ui :is(.login-card,.registration-card,.reset-card,.done-card,.confirm-card,.complete-card) { border:1px solid var(--lw-line); border-radius:22px; box-shadow:0 12px 48px #202a4308; width:100%; }
.lingwish-ui :is(.login-header,.registration-header,.reset-header,.done-header,.confirm-header,.complete-header) { background:#fff!important; color:var(--lw-muted)!important; padding:32px 32px 16px; }
.lingwish-ui :is(.login-header,.registration-header,.reset-header,.done-header,.confirm-header,.complete-header) :is(h1,h2,h3) { color:var(--lw-ink)!important; }
.lingwish-ui :is(.login-body,.registration-body,.reset-body,.done-body,.confirm-body,.complete-body) { padding:24px 32px 32px; }
.lingwish-ui .student-sidebar { background:#fff; color:var(--lw-ink); border:1px solid var(--lw-line); border-radius:16px; min-height:auto; position:sticky; top:112px; }
.lingwish-ui .student-sidebar .nav-link { display:flex; align-items:center; gap:10px; text-align:left; font-size:.85rem; color:var(--lw-muted)!important; margin:2px 0; padding:11px 10px; border:0; border-radius:8px; }
.lingwish-ui .student-sidebar .nav-link:hover,.lingwish-ui .student-sidebar .nav-link.active { background:#fff3c7; color:var(--lw-blue)!important; transform:none; }
.lingwish-ui .student-sidebar .nav-link i { margin:0; width:18px; }
.lingwish-ui .student-header { background:transparent; box-shadow:none; padding:0; margin:0 0 26px; }
.lingwish-ui .student-header > .container-fluid { padding:0; }
.lingwish-ui .student-header .d-flex { gap:16px; flex-wrap:wrap; }
.lingwish-ui .student-card { overflow:hidden; }
.lingwish-ui .welcome-section { background:#fff4d4; padding:26px; border-radius:16px; }
.lingwish-ui .stat-card { background:#fff!important; color:var(--lw-ink); border:1px solid var(--lw-line); border-radius:16px; padding:24px; }
.lingwish-ui .stat-card .stat-number { color:var(--lw-blue); font-size:2rem; line-height:1.2; }
.lingwish-ui .stat-card .stat-label { color:var(--lw-muted); font-size:.8rem; }
.lingwish-ui .lesson-item { border:1px solid var(--lw-line); border-left:3px solid var(--lw-blue); box-shadow:none; }
.lingwish-ui .dashboard-heading { display:flex; flex-wrap:wrap; gap:24px; justify-content:space-between; }
.lingwish-ui .dashboard-actions { display:flex; flex-wrap:wrap; gap:8px; }
@media(max-width:1100px) { .lingwish-ui .header-nav { gap:12px; } .lingwish-ui .header-nav .nav-link { padding:10px 8px; } }
@media(max-width:1024px) {
  .lingwish-ui .header-content { min-height:76px; flex-wrap:wrap; gap:0; position:relative; }
  .lingwish-ui .header-nav { display:none; order:3; width:100%; flex:auto; padding:12px 0 20px; border-top:1px solid var(--lw-line); }
  .lingwish-ui .mobile-menu-open .header-nav { display:flex; flex-direction:column; align-items:stretch; gap:16px; }
  .lingwish-ui .nav-menu { flex-direction:column; align-items:stretch; gap:3px; }
  .lingwish-ui .header-nav .nav-link { padding:10px 14px; }
  .lingwish-ui .header-actions { justify-content:space-between; padding:0 14px; }
  .lingwish-ui .mobile-menu-toggle { display:flex; align-items:center; gap:9px; border:1px solid var(--lw-line); border-radius:10px; padding:10px 14px; font-size:.85rem; color:var(--lw-ink); background:#fff; }
  .lingwish-ui .footer-grid { grid-template-columns:1.3fr 1fr; }
}
@media(max-width:767px) {
  .lingwish-ui .container { padding-inline:20px!important; }
  .lingwish-ui main > .container { padding-inline:0!important; }
  .lingwish-ui .header-container { padding-inline:20px; }
  .lingwish-ui main.container { padding-block:14px 36px; }
  .lingwish-ui :is(.card-body,.card-header) { padding:20px; }
  .lingwish-ui .lesson-card__header { padding:20px 20px 0; }
  .lingwish-ui .student-sidebar { position:static; margin-bottom:24px; }
  .lingwish-ui .student-sidebar .nav { flex-direction:row!important; flex-wrap:wrap; gap:4px; }
  .lingwish-ui .student-sidebar .nav-link { flex:1 1 42%; }
  .lingwish-ui .student-sidebar .nav-link span { display:inline; }
  .lingwish-ui .student-sidebar hr { display:none; }
  .lingwish-ui .student-header .me-3 { display:none; }
  .lingwish-ui .student-card .card-header h6 { font-size:1rem; }
  .lingwish-ui .footer-grid { gap:32px 24px; }
  .lingwish-ui .footer-brand { grid-column:1/-1; }
  .lingwish-ui .footer-bottom { align-items:flex-start; flex-direction:column; }
  .lingwish-ui #cookie-banner { bottom:8px!important; left:8px!important; right:8px!important; padding:16px!important; max-height:85dvh; overflow-y:auto; }
  .lingwish-ui #cookie-banner .container { padding:0!important; }
  .lingwish-ui #cookie-banner .d-flex.flex-column { flex-direction:row!important; flex-wrap:wrap; }
  .lingwish-ui #cookie-banner .btn { flex:1 1 28%; }
  .lingwish-ui .fc-header-toolbar { gap:10px; flex-wrap:wrap; }
  .lingwish-ui .fc-toolbar-title { font-size:1.25rem; }
  .lingwish-ui :is(.login-body,.registration-body,.reset-body,.done-body,.confirm-body,.complete-body) { padding:20px; }
  .lingwish-ui :is(.login-header,.registration-header,.reset-header,.done-header,.confirm-header,.complete-header) { padding:26px 20px 10px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto!important; } .lingwish-ui * { animation:none!important; transition:none!important; } }
.lingwish-ui .account-form :is(input:not([type=checkbox]):not([type=hidden]),select,textarea) { display:block; width:100%; min-height:46px; padding:11px 13px; border:1px solid #cdd4e2; border-radius:10px; background:#fff; color:var(--lw-ink); }
.lingwish-ui .account-form input[type=checkbox] { width:20px; height:20px; accent-color:var(--lw-blue); }
.lingwish-ui .account-form select[multiple] { min-height:140px; }
.lingwish-ui #cookie-banner .d-flex.flex-column { flex-direction:row!important; }
@media(min-width:768px) { .lingwish-ui #cookie-banner .col-lg-8 { width:58.333%; } .lingwish-ui #cookie-banner .col-lg-4 { width:41.667%; } }
@media(max-width:767px) {
  body.lingwish-ui #cookie-banner .d-flex.flex-column {display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px!important}
  body.lingwish-ui #cookie-banner .btn {width:auto!important;margin:0!important;padding:9px 4px!important;min-height:44px;font-size:11px!important;white-space:normal}
  body.lingwish-ui #cookie-banner .small {font-size:12px!important;line-height:1.5}
}
.lingwish-ui .btn-primary {box-shadow:0 4px 12px rgb(243 189 4 / 18%)!important}
.lingwish-ui .fc a {text-decoration:none}
body.lingwish-ui .table-responsive {max-width:100%;overflow-x:auto!important;-webkit-overflow-scrolling:touch}
body.lingwish-ui .table-responsive {position:relative}

/* Original Lingwish accents; semantic payment statuses stay distinct. */
.lingwish-ui .btn-warning:hover {background:var(--lw-gold-dark);border-color:var(--lw-gold-dark);color:var(--lw-ink)}
.lingwish-ui .site-footer {border-top:4px solid var(--lw-yellow)}
.lingwish-ui .student-sidebar .nav-link.active {box-shadow:inset 3px 0 var(--lw-yellow)}
.lingwish-ui #cookie-banner .text-warning {color:var(--lw-yellow)!important}
.lingwish-ui ::selection {background:#ffe69a;color:#242424}
