/* ---------- fonts (self-hosted) ---------- */
@font-face{font-family:'Spectral';font-weight:400;font-style:normal;font-display:swap;src:url(fonts/spectral-cyrillic-400-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Spectral';font-weight:400;font-style:normal;font-display:swap;src:url(fonts/spectral-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Spectral';font-weight:500;font-style:normal;font-display:swap;src:url(fonts/spectral-cyrillic-500-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Spectral';font-weight:500;font-style:normal;font-display:swap;src:url(fonts/spectral-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'PT Sans';font-weight:400;font-style:normal;font-display:swap;src:url(fonts/pt-sans-cyrillic-400-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'PT Sans';font-weight:400;font-style:normal;font-display:swap;src:url(fonts/pt-sans-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'PT Sans';font-weight:700;font-style:normal;font-display:swap;src:url(fonts/pt-sans-cyrillic-700-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'PT Sans';font-weight:700;font-style:normal;font-display:swap;src:url(fonts/pt-sans-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Marck Script';font-weight:400;font-style:normal;font-display:swap;src:url(fonts/marck-script-cyrillic-400-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Marck Script';font-weight:400;font-style:normal;font-display:swap;src:url(fonts/marck-script-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --bg:      #120e0b;
  --panel:   #1a140f;
  --panel-2: #211910;
  --line:    #33261b;
  --gold:    #b98a46;
  --gold-hi: #dcb673;
  --ink:     #ede3d3;
  --dim:     #a6957f;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:'PT Sans',sans-serif; font-size:17px; line-height:1.7;
}
h1,h2,h3,h4{font-family:'Spectral',serif; font-weight:500; color:var(--ink); margin:0 0 .45em; letter-spacing:0;}
h1,h2,h3,h4,th,.brand-text .name,.pull-quote,.plain-list li strong,.exp-number{font-feature-settings:"locl" 0;}
h1{font-size:2.75rem; line-height:1.2;}
h2{font-size:1.9rem; line-height:1.25;}
h3{font-size:1.3rem; line-height:1.3;}
p{margin:0 0 1.1em; max-width:62ch;}
a{color:var(--gold-hi); text-decoration:none;}
a:hover{text-decoration:underline; text-underline-offset:3px;}
img{max-width:100%; display:block;}
::selection{background:var(--gold); color:#120e0b;}
:focus-visible{outline:1px solid var(--gold-hi); outline-offset:3px;}

.script{font-family:'Marck Script',cursive; color:var(--gold); font-size:1.35rem; margin:0;}
.wrap{max-width:1200px; margin:0 auto; padding:0 32px;}

/* ---------- header ---------- */
header{border-bottom:1px solid var(--line);}
.header-inner{
  display:flex; align-items:center; justify-content:space-between; gap:28px;
  padding:14px 32px; max-width:1200px; margin:0 auto;
}
.brand{display:flex; align-items:center; gap:18px; flex:0 0 auto; color:inherit;}
.brand:hover{text-decoration:none;}
.brand img{width:auto; height:72px;}
.brand-text .name{font-family:'Spectral',serif; font-size:1.2rem; color:var(--ink); line-height:1.25;}
.brand-text .role{font-size:.85rem; letter-spacing:.04em; color:var(--gold);}
nav{display:flex; gap:26px; align-items:center;}
nav a{color:var(--dim); font-size:.93rem; padding:4px 0; border-bottom:1px solid transparent; white-space:nowrap;}
nav a:hover{color:var(--gold-hi); text-decoration:none; border-color:var(--gold);}
nav a.current{color:var(--gold-hi); border-color:var(--gold);}
.menu-toggle{
  display:none; background:none; border:1px solid var(--line); color:var(--ink);
  padding:10px 16px; font-family:'PT Sans',sans-serif; font-size:.95rem; cursor:pointer; border-radius:0;
  -webkit-appearance:none; appearance:none;
}

/* ---------- buttons ---------- */
button{font-family:'PT Sans',sans-serif; cursor:pointer; -webkit-appearance:none; appearance:none; border-radius:0;}
.btn{display:inline-block; padding:14px 28px; border:1px solid var(--gold); background:none; color:var(--ink); font-size:.95rem;}
.btn:hover{background:var(--gold); color:#120e0b; text-decoration:none;}
.btn-quiet{border-color:var(--line); color:var(--dim);}
.btn-quiet:hover{border-color:var(--gold-hi); color:var(--gold-hi); background:none;}
.btn-solid{display:inline-block; padding:14px 32px; border:1px solid var(--gold); background:var(--gold); color:#120e0b; font-size:.95rem; font-weight:700;}
.btn-solid:hover{background:var(--gold-hi); border-color:var(--gold-hi); text-decoration:none;}
.text-link{color:var(--gold-hi); border-bottom:1px solid var(--line); padding-bottom:1px;}
.text-link:hover{border-color:var(--gold); text-decoration:none;}

/* ---------- page heads ---------- */
.page-head{padding:64px 32px 44px; border-bottom:1px solid var(--line); max-width:1200px; margin:0 auto;}
.page-head .kicker{color:var(--gold); font-size:.88rem; letter-spacing:.03em; margin-bottom:.5em;}
.page-head h1{margin:0;}
.page-body{padding-top:56px; padding-bottom:56px;}

/* ---------- home hero ---------- */
.hero{padding:56px 0 0;}
.hero-grid{display:grid; grid-template-columns:1fr 440px; gap:72px; align-items:center; padding-bottom:64px;}
.hero .lede{color:var(--dim); font-size:1.2rem;}
.hero-cta{display:flex; gap:16px; margin:30px 0 36px; flex-wrap:wrap;}
.pull-quote{font-family:'Spectral',serif; font-size:1.3rem; color:var(--ink); border-top:1px solid var(--line); padding-top:26px; margin:0; max-width:44ch;}
.hero-photo{width:100%; height:auto; border:1px solid var(--line);}

/* ---------- about ---------- */
.about-grid{display:grid; grid-template-columns:380px 1fr; gap:80px; align-items:start; padding-top:64px; padding-bottom:72px;}
.about-photo-frame{position:relative; margin:0 24px 24px 0;}
.about-photo-frame::before{content:""; position:absolute; top:24px; left:24px; right:-24px; bottom:-24px; border:1px solid var(--gold); z-index:0;}
.about-photo{position:relative; z-index:1; width:100%; height:auto; filter:grayscale(.3) contrast(1.05);}
.values{margin-top:36px; max-width:60ch;}

/* ---------- sections on home ---------- */
.band{border-top:1px solid var(--line); padding:72px 0;}
.band.alt{background:var(--panel);}
.band-head{display:flex; justify-content:space-between; align-items:baseline; gap:20px; margin-bottom:36px; flex-wrap:wrap;}
.band-head h2{margin:0;}
.grid-6{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.grid-6 .cell{background:var(--bg); padding:30px 28px;}
.grid-6 .cell h3{margin-bottom:.4em;}
.grid-6 .cell p{color:var(--dim); font-size:.95rem; margin-bottom:0;}
.split{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start;}
.split p{color:var(--dim);}
.exp-number{font-family:'Spectral',serif; font-size:4.6rem; font-weight:500; color:var(--gold-hi); line-height:1;}
.exp-number-label{color:var(--dim); margin-top:8px; font-size:.95rem;}
.news-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.news-card{border:1px solid var(--line); padding:26px; background:var(--panel);}
.news-card .date{color:var(--gold); font-size:.88rem;}
.news-card h3{margin:.4em 0 .5em; font-size:1.15rem;}
.news-card p{color:var(--dim); font-size:.93rem; margin-bottom:.6em;}
.cta-band{text-align:left;}
.cta-band h2{max-width:22ch;}
.cta-band p{color:var(--dim);}

/* ---------- list styles ---------- */
.entry-list{margin-top:8px;}
.entry{display:grid; grid-template-columns:1fr 2fr; gap:40px; padding:36px 0; border-top:1px solid var(--line);}
.entry:last-child{border-bottom:1px solid var(--line);}
.entry h3{margin-bottom:.35em;}
.entry p{color:var(--dim); margin-bottom:0;}
.plain-list{list-style:none; margin:0; padding:0; max-width:62ch;}
.plain-list li{padding:16px 0; border-top:1px solid var(--line); color:var(--dim);}
.plain-list li:first-child{border-top:none;}
.plain-list li strong{color:var(--ink); font-family:'Spectral',serif; font-weight:500;}
.news-list .news-item{padding:32px 0; border-top:1px solid var(--line);}
.news-list .news-item:last-child{border-bottom:1px solid var(--line);}
.news-item .date{color:var(--gold); font-size:.88rem;}
.news-item h3{margin:.3em 0 .4em;}
.news-item p{color:var(--dim); margin-bottom:.4em;}
.status{color:var(--dim); font-size:.85rem;}

/* ---------- contact ---------- */
.contact-grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:72px; padding-top:56px; padding-bottom:56px;}
.contact-list{list-style:none; padding:0; margin:0 0 24px;}
.contact-list li{padding:14px 0; border-top:1px solid var(--line); color:var(--dim);}
.contact-list li:first-child{border-top:none; padding-top:0;}
.contact-list a{color:var(--ink);}
.contact-list .lbl{display:block; color:var(--gold); font-size:.82rem; letter-spacing:.03em;}
.form-row{display:flex; gap:20px; margin-bottom:16px;}
input,textarea,select{width:100%; background:transparent; border:none; border-bottom:1px solid var(--line); color:var(--ink); padding:12px 2px; font-family:'PT Sans',sans-serif; font-size:.97rem; border-radius:0;}
input:focus,textarea:focus,select:focus{outline:none; border-color:var(--gold);}
select{appearance:none; -webkit-appearance:none; cursor:pointer; margin-bottom:16px;
  background:transparent linear-gradient(45deg,transparent 50%,var(--gold) 50%) no-repeat right 14px center/6px 6px;
  padding-right:34px; text-overflow:ellipsis;}
select:invalid{color:var(--dim);}
select option{background:var(--panel); color:var(--ink);}
select option[disabled]{color:var(--dim);}
.form-row input{margin-bottom:0;}
.reg-fields{border:1px solid var(--line); background:var(--panel); padding:22px 24px 8px; margin:8px 0 22px; min-width:0;}
.reg-fields[hidden],.reg-type[hidden]{display:none;}
.reg-fields legend{font-family:'Spectral',serif; color:var(--gold-hi); padding:0 10px; font-size:1.05rem; font-feature-settings:"locl" 0;}
.reg-fields input{margin-bottom:16px;}
.reg-note{color:var(--dim); font-size:.88rem; margin:4px 0 16px;}
.lede-text{color:var(--dim); font-size:1.1rem; max-width:62ch; margin-bottom:2em;}
.cell-cta{display:block; color:inherit;}
.cell-cta:hover{text-decoration:none; background:var(--panel);}
.cell-cta h3{color:var(--gold-hi);}
textarea{min-height:130px; resize:vertical;}
::placeholder{color:var(--dim);}
.notice{margin-top:22px; color:var(--dim); font-size:.88rem; border-top:1px solid var(--line); padding-top:18px; max-width:none;}
.form-status{margin-top:16px; color:var(--gold-hi); font-size:.95rem; min-height:1.5em;}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line); padding:52px 0 36px; background:var(--panel);}
.footer-grid{display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:36px;}
footer .brand img{width:260px; height:auto; max-width:100%;}
footer .brand{gap:22px;}
footer .brand-text .name{font-size:1.3rem;}
.footer-cols{display:flex; gap:64px; flex-wrap:wrap;}
.footer-cols h4{font-family:'PT Sans',sans-serif; font-size:.82rem; letter-spacing:.03em; color:var(--gold); font-weight:400; margin-bottom:.8em;}
.footer-cols a, .footer-cols span{display:block; color:var(--dim); font-size:.92rem; margin-bottom:.35em;}
.footer-cols a:hover{color:var(--gold-hi);}
.footer-legal{margin-top:36px; padding-top:20px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; color:var(--dim); font-size:.84rem;}
.footer-legal a, .footer-legal button.linklike{color:var(--dim); margin-right:20px; font-size:.84rem; background:none; border:none; padding:0; cursor:pointer;}
.footer-legal a:hover, .footer-legal button.linklike:hover{color:var(--gold-hi); text-decoration:underline;}

/* ---------- legal pages ---------- */
.legal-doc{max-width:760px; margin:0 auto; padding:56px 32px 100px;}
.legal-doc h1{font-size:2rem; margin-bottom:.6em;}
.legal-doc h2{font-size:1.35rem; margin-top:2em;}
.legal-doc p{color:var(--dim);}
.legal-doc ul{padding-left:1.2em;}
.legal-doc li{margin-bottom:.4em; color:var(--dim);}
.legal-doc li p{margin:0;}
.table-wrap{overflow-x:auto; margin:1.5em 0;}
.legal-doc table{width:100%; border-collapse:collapse; font-size:.88rem; min-width:620px;}
.legal-doc th,.legal-doc td{border:1px solid var(--line); padding:10px 12px; text-align:left; vertical-align:top; color:var(--dim);}
.legal-doc th{color:var(--gold-hi); font-family:'Spectral',serif; font-weight:500; background:var(--panel);}
.back-link{display:inline-block; margin-bottom:26px; font-size:.9rem;}

/* ---------- cookie banner ---------- */
.cc-banner{
  position:fixed; left:0; right:0; bottom:0; z-index:100; background:var(--panel-2);
  border-top:1px solid var(--gold); padding:22px 32px; display:none;
}
.cc-banner.open{display:block;}
.cc-inner{max-width:1200px; margin:0 auto; display:flex; gap:32px; align-items:center; justify-content:space-between; flex-wrap:wrap;}
.cc-text{flex:1 1 460px; font-size:.93rem; color:var(--ink);}
.cc-text p{margin:0 0 .3em; max-width:none;}
.cc-text a{color:var(--gold-hi); text-decoration:underline; text-underline-offset:3px;}
.cc-actions{display:flex; gap:12px; flex-wrap:wrap;}
.cc-actions button{padding:12px 22px; font-size:.92rem; border:1px solid var(--gold); background:none; color:var(--ink);}
.cc-actions button:hover{background:var(--gold); color:#120e0b;}
.cc-actions button.primary{background:var(--gold); color:#120e0b; font-weight:700;}
.cc-actions button.primary:hover{background:var(--gold-hi);}
.cc-modal{position:fixed; inset:0; z-index:110; background:rgba(8,6,4,.78); display:none; align-items:center; justify-content:center; padding:20px;}
.cc-modal.open{display:flex;}
.cc-dialog{background:var(--panel-2); border:1px solid var(--line); max-width:640px; width:100%; max-height:90vh; overflow:auto; padding:34px;}
.cc-dialog h2{font-size:1.5rem;}
.cc-dialog > p{color:var(--dim); font-size:.93rem;}
.cc-cat{border-top:1px solid var(--line); padding:18px 0; display:flex; gap:20px; justify-content:space-between; align-items:flex-start;}
.cc-cat h3{font-size:1.05rem; margin-bottom:.25em;}
.cc-cat p{color:var(--dim); font-size:.88rem; margin:0; max-width:46ch;}
.cc-cat input[type=checkbox]{width:22px; height:22px; margin-top:4px; accent-color:var(--gold); flex:0 0 auto;}
.cc-dialog .cc-actions{margin-top:22px;}

@media (max-width:1000px){
  .hero-grid{grid-template-columns:1fr; gap:48px;}
  .hero-photo{max-width:440px;}
  .about-grid{grid-template-columns:1fr; gap:56px;}
  .about-photo-frame{max-width:360px;}
}
@media (max-width:1180px){
  .menu-toggle{display:block;}
  .header-inner{flex-wrap:wrap;}
  nav{display:none; flex-direction:column; align-items:flex-start; gap:4px; width:100%; padding:12px 0 8px; border-top:1px solid var(--line);}
  nav.open{display:flex;}
  nav a{padding:10px 0; width:100%;}
}
@media (max-width:900px){
  .split,.contact-grid,.entry{grid-template-columns:1fr; gap:28px;}
  .grid-6,.news-grid{grid-template-columns:1fr;}
  h1{font-size:2.1rem;}
  .exp-number{font-size:3.6rem;}
  .header-inner .brand{gap:12px;}
  .header-inner .brand img{height:50px;}
  .header-inner .brand-text .name{font-size:.98rem;}
  .menu-toggle{margin-left:auto;}
  .form-row{flex-direction:column; gap:0;}
  footer .brand{flex-direction:column; align-items:flex-start; gap:16px;}
  footer .brand img{width:220px;}
  footer .brand-text .name{font-size:1.15rem;}
  .footer-grid{gap:32px;}
  .footer-cols{gap:36px;}
  .cc-banner{padding:18px 20px; max-height:80vh; overflow:auto;}
}

select:has(option[disabled]:checked){color:var(--dim);}
input[type=number]{-moz-appearance:textfield; appearance:textfield;}
input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none; margin:0;}
