/* РОФТСАРР ХК — основной стиль сайта */

:root{
  --ink:#0F2226;
  --ink-soft:#4B5E61;
  --paper:#F4F5F1;
  --paper-2:#E9EAE3;
  --line:#D8D9D0;
  --accent:#046C7C;
  --accent-dark:#034F5A;
  --accent-soft:#DCEBED;
  --gold:#AD8A34;
  --radius:2px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Golos Text',sans-serif;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.display{font-family:'Unbounded',sans-serif; letter-spacing:-0.01em; margin:0;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}

/* ---------- HEADER ---------- */
header.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(244,245,241,0.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.nav{display:flex; align-items:center; justify-content:space-between; height:76px; gap:20px;}
.brand{display:flex; align-items:center; gap:12px; font-family:'Unbounded',sans-serif; font-weight:700; font-size:14px; line-height:1.15;}
.brand .brand-mark{height:36px; width:36px; flex:none; display:block;}
.brand .wordmark{font-family:'Unbounded',sans-serif; font-weight:700; font-size:17px; letter-spacing:0.01em; color:var(--ink);}
nav.links{display:flex; gap:22px; font-size:14px; font-weight:500; flex-wrap:wrap;}
nav.links a{position:relative; padding:4px 0; color:var(--ink); white-space:nowrap;}
nav.links a:hover, nav.links a.active{color:var(--accent);}
nav.links a.active{border-bottom:2px solid var(--accent);}
.nav-cta{background:var(--ink); color:#fff !important; padding:11px 22px; font-size:14px; font-weight:600; border-radius:var(--radius); white-space:nowrap;}
.nav-cta:hover{background:var(--accent);}
.burger{display:none; background:none; border:none; font-size:22px; cursor:pointer; color:var(--ink);}

/* ---------- PAGE HEAD (inner pages) ---------- */
.page-head{background:var(--ink); color:#F4F5F1; padding:64px 0 48px;}
.page-head .eyebrow{font-size:12.5px; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; color:#9FD8DE; margin-bottom:14px; display:flex; align-items:center; gap:10px;}
.page-head .eyebrow::before{content:""; width:22px; height:1px; background:var(--accent);}
.page-head h1{font-size:clamp(28px,4vw,42px); font-weight:800; text-transform:uppercase;}
.page-head p{font-size:16px; color:#C6C9D6; max-width:640px; margin-top:14px; line-height:1.6;}

/* ---------- HERO (home) ---------- */
.hero{position:relative; background:var(--ink); color:#F4F5F1; overflow:hidden; padding:88px 0 76px;}
.hero-bg{
  position:absolute; inset:0; z-index:0;
}
.hero .wrap{position:relative; z-index:2;}
.eyebrow{display:inline-flex; align-items:center; gap:10px; font-size:12.5px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:#9FD8DE; margin-bottom:22px;}
.eyebrow::before{content:""; width:22px; height:1px; background:var(--accent);}
.hero-text{max-width:600px;}
.hero h1{font-size:clamp(32px,4.6vw,56px); font-weight:900; line-height:1.05; text-transform:uppercase;}
.hero h1 em{font-style:normal; color:var(--accent);}
.hero p.lead{font-size:16.5px; line-height:1.65; color:#C6C9D6; max-width:480px; margin:22px 0 34px;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap; margin-top:30px;}
.btn{display:inline-flex; align-items:center; gap:10px; padding:15px 26px; font-size:14.5px; font-weight:600; border-radius:var(--radius); border:1px solid transparent; transition:all .15s ease; cursor:pointer;}
.btn-primary{background:var(--accent); color:#fff;}
.btn-primary:hover{background:var(--accent-dark);}
.btn-ghost{border-color:rgba(244,245,241,0.35); color:#F4F5F1;}
.btn-ghost:hover{border-color:#F4F5F1; background:rgba(244,245,241,0.06);}
.btn-outline-ink{border-color:var(--ink); color:var(--ink);}
.btn-outline-ink:hover{background:var(--ink); color:#fff;}
.hero-stats{display:grid; grid-template-columns:repeat(3,auto); gap:44px; margin-top:56px; border-top:1px solid rgba(244,245,241,0.16); padding-top:26px; max-width:560px;}
.hero-stats div b{display:block; font-family:'Unbounded',sans-serif; font-size:26px; font-weight:700;}
.hero-stats div span{font-size:12.5px; color:#9EA3B8;}

/* dance-step hero animation */

@media (max-width:960px){
}

/* ---------- SECTIONS ---------- */
section{padding:88px 0;}
section.tight{padding:56px 0;}
.alt{background:var(--paper-2);}
.sec-head{display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:38px; flex-wrap:wrap; gap:16px;}
.sec-head .tag{font-size:12.5px; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; color:var(--accent);}
.sec-head h2{font-size:clamp(24px,3vw,34px); font-weight:700; margin-top:6px;}
.sec-head a.more{font-size:14px; font-weight:600; border-bottom:1px solid var(--ink);}
.sec-head a.more:hover{color:var(--accent); border-color:var(--accent);}

/* ---------- CONTENT PROSE ---------- */
.prose{max-width:760px; font-size:16px; line-height:1.75;}
.prose p{margin:0 0 18px;}
.prose h2{font-size:22px; font-weight:700; margin:36px 0 14px;}

/* ---------- NEWS ---------- */
.news-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.news-card{background:var(--ink); color:#fff; border:none; display:flex; flex-direction:column; height:100%; transition:transform .15s ease, box-shadow .15s ease; overflow:hidden;}
.news-card:hover{transform:translateY(-3px); box-shadow:0 14px 32px -18px rgba(15,34,38,0.35);}
.news-card .cover{aspect-ratio:16/10; overflow:hidden; background:var(--paper-2);}
.news-card .cover img{width:100%; height:100%; object-fit:cover;}
.news-card .body{padding:22px 24px 24px; display:flex; flex-direction:column; flex:1;}
.news-date{font-size:12px; font-weight:600; color:#9FD8DE; letter-spacing:0.06em; text-transform:uppercase; margin-bottom:12px;}
.news-card h3{font-size:17.5px; font-weight:600; font-family:'Golos Text',sans-serif; line-height:1.4; margin-bottom:auto; color:#fff;}
.news-card .read{margin-top:18px; font-size:13.5px; font-weight:600; color:var(--accent); display:flex; align-items:center; gap:6px; transition:color .15s ease;}
.news-card:hover .read{color:#9FD8DE;}

.news-full .cover{aspect-ratio:21/9; overflow:hidden; margin-bottom:34px;}
.news-full .cover img{width:100%; height:100%; object-fit:cover;}
.news-full .prose{max-width:100%;}

/* ---------- TILES (quick nav) ---------- */
.tiles{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.tile{background:var(--paper); padding:34px 28px; min-height:190px; display:flex; flex-direction:column; justify-content:space-between; transition:background .15s ease;}
.tile:hover{background:#fff;}
.tile .tile-icon{display:flex; width:34px; height:34px; color:var(--accent); transition:color .15s ease;}
.tile .tile-icon svg{width:100%; height:100%;}
.tile:hover .tile-icon{color:var(--accent-dark);}
.tile h3{font-size:17px; font-weight:600; font-family:'Golos Text',sans-serif; margin-top:26px;}
.tile .arrow{width:30px; height:30px; border-radius:50%; border:1px solid var(--ink); display:flex; align-items:center; justify-content:center; font-size:15px; align-self:flex-end; margin-top:14px;}
.tile:hover .arrow{background:var(--accent); border-color:var(--accent); color:#fff;}

/* ---------- CALENDAR STRIP / TABLE ---------- */
.cal-strip{display:flex; gap:0; border:1px solid var(--line); background:#fff; overflow:hidden;}
.cal-item{flex:1; padding:30px 26px; border-right:1px solid var(--line);}
.cal-item:last-child{border-right:none;}
.cal-item .month{font-size:12px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-soft); font-weight:600;}
.cal-item .day{font-family:'Unbounded',sans-serif; font-size:34px; font-weight:700; margin:6px 0 14px;}
.cal-item h4{font-size:14.5px; font-weight:600; line-height:1.4;}
.cal-item .loc{font-size:12.5px; color:var(--ink-soft); margin-top:8px;}

table.data-table{width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--line); font-size:14.5px;}
table.data-table th{text-align:left; font-family:'Unbounded',sans-serif; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft); background:var(--paper-2); padding:14px 18px; border-bottom:1px solid var(--line);}
table.data-table td{padding:14px 18px; border-bottom:1px solid var(--line); vertical-align:top;}
table.data-table tr:last-child td{border-bottom:none;}
table.data-table tr:hover td{background:var(--accent-soft);}
table.data-table td.n{color:var(--gold); font-weight:700; font-family:'Unbounded',sans-serif; font-size:12px; width:40px;}

/* ---------- CARDS (presidium, docs, links) ---------- */
.people-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.person-card{background:#fff; border:1px solid var(--line); padding:24px; text-align:left;}
.person-card .photo{width:88px; height:88px; border-radius:50%; overflow:hidden; background:var(--paper-2); margin-bottom:18px;}
.person-card .photo img{width:100%; height:100%; object-fit:cover;}
.person-card .photo.empty{display:flex; align-items:center; justify-content:center; font-family:'Unbounded',sans-serif; font-weight:700; color:var(--ink-soft); font-size:22px;}
.person-card h3{font-size:16px; font-weight:700; line-height:1.35;}
.person-card .role{font-size:13px; color:var(--accent); font-weight:600; margin-top:6px;}
.person-card .mail{font-size:13px; color:var(--ink-soft); margin-top:12px; word-break:break-all;}

.doc-group{margin-bottom:44px;}
.doc-group h3{font-size:13px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--accent); margin-bottom:16px;}
.doc-list{border:1px solid var(--line); background:#fff;}
.doc-item{display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 20px; border-bottom:1px solid var(--line); font-size:14.5px;}
.doc-item:last-child{border-bottom:none;}
.doc-item .dl{font-size:12.5px; font-weight:600; color:var(--accent); white-space:nowrap;}
.doc-item:hover{background:var(--paper-2);}

.link-list{border:1px solid var(--line); background:#fff;}
.link-item{display:flex; align-items:center; justify-content:space-between; padding:18px 22px; border-bottom:1px solid var(--line); font-size:15px; font-weight:600;}
.link-item:last-child{border-bottom:none;}
.link-item:hover{color:var(--accent); background:var(--paper-2);}

/* ---------- GALLERY ---------- */
.gallery-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
.gallery-grid a{aspect-ratio:1; overflow:hidden; background:var(--paper-2);}
.gallery-grid img{width:100%; height:100%; object-fit:cover; transition:transform .2s ease;}
.gallery-grid a:hover img{transform:scale(1.05);}

/* ---------- LIGHTBOX ---------- */
.lightbox{
  position:fixed; inset:0; z-index:100;
  background:rgba(10,20,22,0.94);
  display:none; align-items:center; justify-content:center;
}
.lightbox.open{display:flex;}
.lightbox img{
  max-width:92vw; max-height:86vh; object-fit:contain;
  border-radius:2px; box-shadow:0 20px 60px rgba(0,0,0,0.5);
}
.lightbox .lb-btn{
  position:absolute; top:50%; transform:translateY(-50%);
  width:48px; height:48px; border-radius:50%;
  background:rgba(244,245,241,0.12); border:1px solid rgba(244,245,241,0.25);
  color:#F4F5F1; font-size:22px; line-height:1;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; user-select:none; transition:background .15s ease;
}
.lightbox .lb-btn:hover{background:rgba(244,245,241,0.25);}
.lightbox .lb-prev{left:20px;}
.lightbox .lb-next{right:20px;}
.lightbox .lb-close{
  position:absolute; top:14px; right:20px; width:44px; height:44px;
  background:none; border:none; color:#F4F5F1; font-size:32px; line-height:1;
  cursor:pointer; z-index:2;
}
.lightbox .lb-close:hover{color:#fff;}
.lightbox .lb-count{
  position:absolute; bottom:18px; left:50%; transform:translateX(-50%);
  color:#C6C9D6; font-size:13px; letter-spacing:0.06em;
}

/* ---------- PARTNERS ---------- */
.edu-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.edu-card{
  background:#fff; border:1px solid var(--line);
  display:flex; flex-direction:column; align-items:center; text-align:center;
  transition:transform .15s ease, box-shadow .15s ease; overflow:hidden;
}
.edu-card:hover{transform:translateY(-3px); box-shadow:0 14px 32px -18px rgba(15,34,38,0.35);}
.edu-card .edu-thumb{
  width:100%; aspect-ratio:16/10; background:var(--paper-2);
  overflow:hidden;
}
.edu-card .edu-thumb img{width:100%; height:100%; object-fit:cover; display:block;}
.edu-card h3{font-size:15.5px; font-weight:600; font-family:'Golos Text',sans-serif; color:var(--ink); line-height:1.4; padding:22px 24px 26px;}

/* ---------- FORMS ---------- */
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
.form-grid .full{grid-column:1/-1;}
label{display:block; font-size:13px; font-weight:600; margin-bottom:8px; color:var(--ink-soft);}
input[type=text],input[type=email],input[type=tel],textarea,select{
  width:100%; border:1px solid var(--line); background:#fff; padding:13px 14px; font-family:inherit; font-size:14.5px; border-radius:var(--radius);
}
input:focus,textarea:focus,select:focus{outline:2px solid var(--accent); outline-offset:1px;}
textarea{resize:vertical; min-height:120px;}
.alert{padding:16px 20px; border-radius:var(--radius); font-size:14.5px; margin-bottom:24px;}
.alert-success{background:#DFF3E4; color:#1E5E2E; border:1px solid #B7E1C0;}
.alert-error{background:#FBE3E1; color:#8A2A22; border:1px solid #F0BAB4;}

/* ---------- CONTACT INFO ---------- */
.contact-grid{display:grid; grid-template-columns:1fr 1.3fr; gap:56px;}
.contact-info dt{font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:0.08em; color:var(--accent); margin-top:24px;}
.contact-info dt:first-child{margin-top:0;}
.contact-info dd{margin:6px 0 0; font-size:16px;}
.map-box{border:1px solid var(--line); aspect-ratio:4/3; background:var(--paper-2); display:flex; align-items:center; justify-content:center; color:var(--ink-soft); font-size:13px;}

/* ---------- FOOTER ---------- */
footer.site-footer{background:var(--ink); color:#C6C9D6; padding:64px 0 30px;}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:48px; border-bottom:1px solid rgba(244,245,241,0.12);}
.foot-grid h4{font-size:12.5px; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; color:#8C90A6; margin-bottom:18px;}
.foot-grid a{display:block; font-size:14px; color:#DCDEE8; margin-bottom:12px;}
.foot-grid a:hover{color:var(--accent);}
.foot-brand .brand{display:flex; align-items:center;}
.foot-brand p{font-size:14px; line-height:1.6; color:#9EA3B8; max-width:280px; margin-top:16px;}
.foot-bottom{display:flex; justify-content:space-between; padding-top:26px; font-size:13px; color:#767B92; flex-wrap:wrap; gap:10px;}

/* ---------- ADMIN-ish notice on pages with no data ---------- */
.empty-note{padding:40px; text-align:center; color:var(--ink-soft); border:1px dashed var(--line);}

@media (max-width:960px){
  nav.links, .nav-cta{display:none;}
  .burger{display:block;}
  .hero-stats{grid-template-columns:repeat(3,1fr); gap:20px;}
  .news-grid, .people-grid{grid-template-columns:1fr;}
  .tiles{grid-template-columns:repeat(2,1fr);}
  .cal-strip{flex-direction:column;}
  .cal-item{border-right:none; border-bottom:1px solid var(--line);}
  .foot-grid{grid-template-columns:1fr 1fr; gap:32px 24px;}
  .foot-brand{grid-column:1 / -1;}
  .foot-grid a{overflow-wrap:anywhere;}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  .edu-grid{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr;}
  .form-grid{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} }
