:root {
    --blue:       #2F6BED;
    --blue-dark:  #1F54C9;
    --blue-light: #EEF4FF;
    --navy:       #1B2A4A;
    --text:       #475569;
    --muted:      #5A6478;
    --border:     #E7EBF1;
    --orange:     #F6892A;
    --green:      #29B574;
    --r:          12px;
}
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
    font-family:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
    color:var(--text); background:#fff; line-height:1.6;
}
.container { max-width:1200px; margin:0 auto; padding:0 28px; }

/* BUTTONS */
.btn {
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    padding:13px 26px; border-radius:10px;
    font-size:.92rem; font-weight:600;
    text-decoration:none; border:1.5px solid transparent;
    cursor:pointer; transition:all .2s; white-space:nowrap; font-family:inherit;
}
.btn-primary { background:var(--blue); color:#fff; border-color:var(--blue); }
.btn-primary:hover { background:var(--blue-dark); border-color:var(--blue-dark); }
.btn-light { background:#fff; color:var(--blue); border-color:var(--border); }
.btn-light:hover { border-color:var(--blue); background:var(--blue-light); }

/* HEADER */
.site-header { position:sticky; top:0; background:#fff; border-bottom:1px solid var(--border); z-index:200; }
.site-header .container { display:flex; align-items:center; height:76px; gap:36px; }
.logo { display:flex; align-items:center; gap:11px; text-decoration:none; flex-shrink:0; }
.logo-ic { height:44px; width:auto; flex-shrink:0; display:block; }
.logo-txt { display:flex; flex-direction:column; line-height:1.1; }
.logo-name { font-weight:700; font-size:1.02rem; color:var(--navy); letter-spacing:-.01em; }
.logo-sub  { font-size:.72rem; color:var(--muted); margin-top:2px; }
.nav { display:flex; align-items:center; gap:30px; flex:1; }
.nav a { text-decoration:none; color:var(--muted); font-size:.9rem; font-weight:500; white-space:nowrap; transition:color .2s; }
.nav a:hover { color:var(--blue); }
.nav a.active { color:var(--navy); font-weight:700; }
.header-cta { flex-shrink:0; }
.menu-btn { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:6px; margin-left:auto; }
.menu-btn span { display:block; width:22px; height:2px; background:var(--navy); border-radius:2px; }
.mobile-nav { display:none; flex-direction:column; border-top:1px solid var(--border); }
.mobile-nav.open { display:flex; }
.mobile-nav a { text-decoration:none; color:var(--text); padding:14px 28px; font-size:.95rem; border-bottom:1px solid var(--border); }
.mobile-nav a:hover { background:var(--blue-light); }
.mobile-nav .btn { margin:14px 28px 4px; align-self:flex-start; }

/* HERO */
.hero .container { display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:end; }
.hero-content { padding-bottom:70px; }
.hero h1 {
    font-size:clamp(2.1rem, 3.9vw, 3.05rem);
    font-weight:800; color:var(--navy);
    line-height:1.12; margin-bottom:18px; letter-spacing:-.025em;
}
.hero-sub { font-size:1.02rem; color:var(--muted); line-height:1.65; margin-bottom:30px; max-width:430px; }
.hero-checks { list-style:none; display:flex; flex-direction:column; gap:16px; margin-bottom:36px; }
.hero-checks li { display:flex; align-items:center; gap:12px; font-size:.96rem; color:var(--navy); font-weight:500; }
.chk { width:32px; height:32px; border-radius:8px; background:var(--blue); flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.chk svg { width:16px; height:16px; }
.hero-btns { display:flex; gap:14px; flex-wrap:wrap; }

/* HERO — photo bleeds to the right, text stays in left half */
.hero { padding:44px 0 0; position:relative; overflow:hidden; min-height:620px; }
.hero .container { position:relative; z-index:2; }
.hero-photo {
    position:absolute; bottom:0; left:50%;
    height:520px; width:auto; max-width:none;
    z-index:1; pointer-events:none;
}
.hero-callout {
    position:absolute; z-index:3;
    top:6px; left:calc(50% + 388px);
    display:flex; flex-direction:column; align-items:flex-end; pointer-events:none;
}
.hero-callout span { font-size:.9rem; font-weight:600; color:var(--navy); white-space:nowrap; }
.hero-callout svg { width:54px; height:46px; margin-top:2px; }

/* STATS PANEL */
.stats-row { padding:0 0 22px; margin-top:-36px; }
.stats-panel {
    background:#fff; border:1px solid var(--border); border-radius:18px;
    box-shadow:0 10px 30px rgba(27,42,74,.05);
    display:grid; grid-template-columns:repeat(3,1fr);
}
.stat { padding:34px 24px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:8px; border-right:1px solid var(--border); }
.stat:last-child { border-right:none; }
.stat-ic svg { width:34px; height:34px; }
.stat-num { font-size:2.1rem; font-weight:800; line-height:1; letter-spacing:-.02em; }
.stat-num.blue { color:var(--blue); }
.stat-num.orange { color:var(--orange); }
.stat-num.green { color:var(--green); }
.stat-lbl { font-size:.85rem; color:var(--muted); line-height:1.45; max-width:210px; }

@media (max-width:960px) {
    .nav, .header-cta { display:none; }
    .menu-btn { display:flex; }
}
@media (max-width:760px) {
    .hero .container { grid-template-columns:1fr; gap:0; }
    .hero { min-height:auto; }
    .hero-photo { position:static; height:auto; width:100%; max-width:320px; margin:0 auto 8px; display:block; }
    .hero-visual { order:-1; }
    .hero-callout { display:none; }
    .hero-content { padding-bottom:36px; }
    .stats-panel { grid-template-columns:1fr; }
    .stat { border-right:none; border-bottom:1px solid var(--border); }
    .stat:last-child { border-bottom:none; }
}


/* ABOUT */
.about { padding:32px 0 60px; }
.about-grid { display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:24px; align-items:stretch; }
.about-intro { display:flex; flex-direction:column; padding-bottom:30px; }
.about-intro h2 { font-size:2.05rem; font-weight:800; color:var(--navy); margin:0 0 14px; letter-spacing:-.02em; }
.about-intro > p { color:var(--muted); margin:0 0 22px; max-width:390px; line-height:1.65; font-size:1rem; }
.about-checks { list-style:none; display:flex; flex-direction:column; gap:18px; }
.about-checks li { display:flex; gap:11px; align-items:flex-start; font-size:1rem; color:var(--navy); font-weight:500; line-height:1.45; }
.about-checks .cc { width:23px; height:23px; border-radius:50%; background:var(--blue); flex-shrink:0; display:flex; align-items:center; justify-content:center; margin-top:1px; }
.about-checks .cc svg { width:12px; height:12px; }

.card { background:#fff; border:1px solid var(--border); border-radius:16px; box-shadow:0 8px 24px rgba(27,42,74,.05); height:100%; display:flex; flex-direction:column; }
.card-oge { padding:24px 26px; }
.card-oge h3 { font-size:1.18rem; font-weight:700; color:var(--navy); margin-bottom:8px; }
.oge-list { flex:1; display:flex; flex-direction:column; justify-content:center; }
.oge-row { display:flex; align-items:center; gap:13px; padding:15px 0; border-bottom:1px solid var(--border); }
.oge-row:last-child { border-bottom:none; }
.oge-ic { width:40px; height:40px; border-radius:10px; background:var(--blue-light); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.oge-ic svg { width:21px; height:21px; }
.oge-name { font-weight:600; color:var(--navy); font-size:.97rem; }
.oge-score { margin-left:auto; color:var(--green); font-weight:700; font-size:.97rem; white-space:nowrap; }

.card-bro { padding:24px 26px; position:relative; overflow:hidden; }
.card-bro h3 { font-size:1.18rem; font-weight:700; color:var(--navy); margin-bottom:12px; }
.card-bro p { color:var(--muted); font-size:.96rem; max-width:58%; line-height:1.55; }
.card-bro img { position:absolute; right:0; bottom:0; height:300px; width:auto; }

@media (max-width:960px) {
    .about-grid { grid-template-columns:1fr; gap:20px; align-items:stretch; }
    .card-bro { min-height:340px; }
    .card-bro p { max-width:62%; }
}


/* SUBJECTS */
.subjects { padding:30px 0 60px; }
.subjects h2.sec-title { font-size:2.05rem; font-weight:800; color:var(--navy); margin-bottom:30px; letter-spacing:-.02em; }
.subj-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.subj-card { background:#fff; border:1px solid var(--border); border-radius:16px; padding:26px 24px 28px; box-shadow:0 8px 24px rgba(27,42,74,.05); display:flex; flex-direction:column; min-height:248px; }
.subj-ic { width:64px; height:64px; display:flex; align-items:center; justify-content:center; }
.subj-ic svg { width:64px; height:64px; }
.subj-body { margin-top:auto; }
.subj-tag { display:inline-block; background:#EDE9FE; color:#7C3AED; font-size:.72rem; font-weight:700; padding:4px 10px; border-radius:6px; margin-bottom:12px; letter-spacing:.01em; }
.subj-card h3 { font-size:1.18rem; font-weight:700; color:var(--navy); margin-bottom:9px; line-height:1.25; }
.subj-card p { color:var(--muted); font-size:.92rem; line-height:1.5; }

@media (max-width:960px) { .subj-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px) { .subj-grid { grid-template-columns:1fr; } .subj-card { min-height:0; } }


/* HOW */
.how { padding:30px 0 64px; }
.how h2.sec-title { font-size:2.05rem; font-weight:800; color:var(--navy); margin-bottom:34px; letter-spacing:-.02em; }
.how-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:28px; }
.how-item { display:flex; gap:16px; align-items:flex-start; }
.how-ic { width:46px; height:46px; flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.how-ic svg { width:46px; height:46px; }
.how-text h3 { font-size:1.04rem; font-weight:700; color:var(--navy); margin:0 0 8px; line-height:1.3; }
.how-text p { color:var(--muted); font-size:.92rem; line-height:1.55; }

@media (max-width:760px) { .how-grid { grid-template-columns:repeat(2,1fr); gap:28px; } }
@media (max-width:460px) { .how-grid { grid-template-columns:1fr; } }


/* REVIEWS */
.reviews { padding:30px 0 66px; }
.rev-wrap { display:grid; grid-template-columns:248px 1fr; gap:36px; align-items:center; }
.rev-intro h2 { font-size:2.05rem; font-weight:800; color:var(--navy); margin-bottom:14px; letter-spacing:-.02em; }
.rev-src { color:var(--muted); font-size:.92rem; margin-bottom:10px; }
.rev-score { display:flex; align-items:center; gap:12px; margin-bottom:10px; }
.rev-num { font-size:2.6rem; font-weight:800; color:var(--blue); line-height:1; letter-spacing:-.02em; }
.rev-count { color:var(--muted); font-size:.9rem; }
.stars { display:inline-flex; align-items:center; gap:2px; }
.stars svg { width:18px; height:18px; }
.rev-score .stars svg { width:21px; height:21px; }

.rev-right { position:relative; min-width:0; }
.rev-track { display:flex; gap:18px; overflow-x:auto; scroll-snap-type:x mandatory; padding:4px 2px 10px; scrollbar-width:none; }
.rev-track::-webkit-scrollbar { display:none; }
.rev-card { flex:0 0 300px; scroll-snap-align:start; background:#F5F7FB; border-radius:14px; padding:22px 22px 24px; }
.rev-name { font-weight:700; color:var(--navy); font-size:.95rem; margin-bottom:10px; }
.rev-card .stars { margin-bottom:12px; }
.rev-card p { color:var(--muted); font-size:.92rem; line-height:1.55; }
.rev-arrow { position:absolute; right:-8px; top:50%; transform:translateY(-50%); width:44px; height:44px; border-radius:50%; background:#fff; border:1px solid var(--border); box-shadow:0 6px 18px rgba(27,42,74,.1); cursor:pointer; display:flex; align-items:center; justify-content:center; color:var(--navy); transition:all .2s; z-index:3; }
.rev-arrow:hover { background:var(--blue); border-color:var(--blue); color:#fff; }
.rev-arrow svg { width:18px; height:18px; }
.rev-arrow-left { left:-26px; right:auto; }

@media (max-width:760px) {
    .rev-wrap { grid-template-columns:1fr; gap:24px; }
    .rev-arrow { display:none; }
    .rev-card { flex-basis:280px; }
}


/* DIPLOMAS */
.diplomas { padding:30px 0 70px; }
.diplomas .sec-title { font-size:2.05rem; font-weight:800; color:var(--navy); margin-bottom:6px; letter-spacing:-.02em; }
.dip-sub { color:var(--muted); font-size:1rem; margin-bottom:30px; }
.dip-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(210px, 1fr)); gap:20px; }
.dip-card { background:#F5F7FB; border:1px solid var(--border); border-radius:14px; padding:14px; height:280px; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:transform .2s, box-shadow .2s; overflow:hidden; }
.dip-card:hover { box-shadow:0 12px 30px rgba(27,42,74,.13); transform:translateY(-3px); }
.dip-card img { max-width:100%; max-height:100%; object-fit:contain; border-radius:4px; display:block; }

/* LIGHTBOX */
.lb-overlay { position:fixed; inset:0; background:rgba(15,23,42,.88); display:none; align-items:center; justify-content:center; z-index:1000; padding:30px; }
.lb-overlay.open { display:flex; }
.lb-overlay img { max-width:92vw; max-height:90vh; object-fit:contain; border-radius:8px; box-shadow:0 24px 70px rgba(0,0,0,.55); }
.lb-close { position:absolute; top:18px; right:26px; color:#fff; font-size:2.6rem; line-height:1; cursor:pointer; background:none; border:none; padding:6px; }
.lb-close:hover { opacity:.75; }

@media (max-width:560px) { .dip-grid { grid-template-columns:repeat(2,1fr); gap:14px; } .dip-card { height:210px; padding:10px; } }


/* PROJECTS */
.projects { padding:30px 0 72px; }
.projects .sec-title { font-size:2.05rem; font-weight:800; color:var(--navy); margin-bottom:28px; letter-spacing:-.02em; }
.proj-list { display:flex; flex-direction:column; gap:18px; }
.proj-card { display:flex; align-items:center; gap:28px; background:#fff; border:1px solid var(--border); border-radius:16px; padding:22px 28px; box-shadow:0 6px 20px rgba(27,42,74,.05); text-decoration:none; transition:transform .2s, box-shadow .2s; }
.proj-card:hover { box-shadow:0 12px 30px rgba(27,42,74,.1); transform:translateY(-2px); }
.proj-brand { display:flex; align-items:center; gap:14px; flex:0 0 auto; min-width:236px; }
.proj-logo { width:54px; height:54px; border-radius:14px; background:var(--navy); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:1.05rem; flex-shrink:0; }
.proj-name { font-weight:700; color:var(--navy); font-size:1.05rem; }
.proj-tag { color:var(--muted); font-size:.85rem; margin-top:3px; }
.proj-right { flex:1; display:flex; align-items:center; gap:26px; }
.proj-icon { flex:0 0 auto; display:flex; align-items:center; }
.proj-icon svg { width:46px; height:46px; }
.proj-body p { color:var(--navy); font-size:.98rem; margin-bottom:8px; line-height:1.45; }
.proj-link { display:inline-flex; align-items:center; gap:6px; color:var(--blue); font-size:.9rem; font-weight:500; word-break:break-all; }
.proj-link svg { width:14px; height:14px; flex-shrink:0; }

@media (max-width:760px) {
    .proj-card { flex-direction:column; align-items:flex-start; gap:18px; }
    .proj-right { flex-direction:column; align-items:flex-start; gap:14px; }
    .proj-brand { min-width:0; }
}


/* FOOTER */
.site-footer { border-top:1px solid var(--border); padding:42px 0 40px; background:#EDF1F7; margin-top:10px; }
.foot-grid { display:grid; grid-template-columns:1.5fr 1.1fr 1.1fr auto; gap:32px; align-items:start; }
.foot-brand { display:flex; align-items:center; gap:11px; }
.foot-brand .logo-ic { height:44px; width:auto; flex-shrink:0; display:block; }
.foot-brand .logo-name { font-weight:700; font-size:1.02rem; color:var(--navy); }
.foot-brand .logo-sub { font-size:.72rem; color:var(--muted); margin-top:2px; }
.foot-col { display:flex; flex-direction:column; gap:9px; font-size:.87rem; color:var(--muted); line-height:1.4; }
.foot-col a { color:var(--muted); text-decoration:none; transition:color .2s; }
.foot-col a:hover { color:var(--blue); }
.foot-col .foot-strong { color:var(--navy); font-weight:600; }
.foot-social { display:flex; gap:12px; }
.foot-social a { width:42px; height:42px; border-radius:50%; background:#EFF3F9; display:flex; align-items:center; justify-content:center; color:var(--blue); transition:all .2s; }
.foot-social a:hover { background:var(--blue); color:#fff; }
.foot-social svg { width:20px; height:20px; }

@media (max-width:760px) {
    .foot-grid { grid-template-columns:1fr 1fr; gap:26px; }
    .foot-brand { grid-column:1 / -1; }
    .foot-social { grid-column:1 / -1; }
}


/* FAQ */
.faq { padding:30px 0 66px; }
.faq .sec-title { font-size:2.05rem; font-weight:800; color:var(--navy); margin-bottom:26px; letter-spacing:-.02em; }
.faq-list { display:flex; flex-direction:column; gap:14px; max-width:840px; }
.faq-item { background:#fff; border:1px solid var(--border); border-radius:14px; box-shadow:0 6px 20px rgba(27,42,74,.05); overflow:hidden; }
.faq-q {
    list-style:none; cursor:pointer; padding:20px 56px 20px 24px; position:relative;
    font-weight:700; color:var(--navy); font-size:1.04rem; line-height:1.4;
}
.faq-q::-webkit-details-marker { display:none; }
.faq-q::after {
    content:""; position:absolute; right:24px; top:24px; width:11px; height:11px;
    border-right:2px solid var(--blue); border-bottom:2px solid var(--blue);
    transform:rotate(45deg); transition:transform .2s;
}
.faq-item[open] .faq-q::after { transform:rotate(-135deg); }
.faq-a { padding:0 24px 22px; color:var(--muted); font-size:.98rem; line-height:1.6; max-width:720px; }
.faq-cta { margin-top:34px; display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.faq-cta p { color:var(--navy); font-weight:600; font-size:1.05rem; }

@media (max-width:560px) {
    .faq-q { font-size:.98rem; padding:17px 48px 17px 18px; }
    .faq-a { padding:0 18px 18px; }
}


/* COOKIE BANNER */
.cookie-banner {
    position:fixed; left:18px; right:18px; bottom:18px; z-index:900;
    max-width:1160px; margin:0 auto;
    background:#fff; border:1px solid var(--border); border-radius:16px;
    box-shadow:0 16px 44px rgba(27,42,74,.16);
    padding:20px 24px; display:none;
    grid-template-columns:1fr auto; gap:20px; align-items:center;
}
.cookie-banner.show { display:grid; }
.cookie-banner p { color:var(--muted); font-size:.9rem; line-height:1.55; margin:0; }
.cookie-banner a { color:var(--blue); text-decoration:none; }
.cookie-banner a:hover { text-decoration:underline; }
.cookie-banner .btn { white-space:nowrap; }
@media (max-width:640px) {
    .cookie-banner { grid-template-columns:1fr; gap:14px; left:10px; right:10px; bottom:10px; padding:18px 18px 20px; }
    .cookie-banner .btn { width:100%; }
}


/* LEGAL PAGES */
.legal { padding:34px 0 70px; }
.legal .crumbs { font-size:.85rem; color:var(--muted); margin-bottom:18px; }
.legal .crumbs a { color:var(--blue); text-decoration:none; }
.legal .crumbs a:hover { text-decoration:underline; }
.legal h1 { font-size:clamp(1.7rem,3vw,2.3rem); font-weight:800; color:var(--navy); letter-spacing:-.02em; margin-bottom:10px; line-height:1.2; }
.legal .legal-upd { color:var(--muted); font-size:.88rem; margin-bottom:26px; }
.legal-body { max-width:840px; }
.legal-body h2 { font-size:1.3rem; font-weight:700; color:var(--navy); margin:30px 0 12px; letter-spacing:-.01em; }
.legal-body h3 { font-size:1.06rem; font-weight:700; color:var(--navy); margin:22px 0 8px; }
.legal-body p { color:var(--text); font-size:.97rem; line-height:1.7; margin:0 0 12px; }
.legal-body ul, .legal-body ol { margin:0 0 14px; padding-left:22px; color:var(--text); font-size:.97rem; line-height:1.7; }
.legal-body li { margin-bottom:7px; }
.legal-body a { color:var(--blue); text-decoration:none; }
.legal-body a:hover { text-decoration:underline; }
.legal-body strong { color:var(--navy); }
.legal-body table { width:100%; border-collapse:collapse; margin:6px 0 18px; font-size:.92rem; }
.legal-body th, .legal-body td { border:1px solid var(--border); padding:11px 14px; text-align:left; vertical-align:top; line-height:1.5; }
.legal-body th { background:var(--blue-light); color:var(--navy); font-weight:600; }
.legal-note { background:var(--blue-light); border-radius:12px; padding:16px 20px; margin:18px 0; font-size:.92rem; color:var(--navy); }
