/* Шрифты лежат локально (SIL Open Font License) — запросов к Google нет */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400 500;font-display:swap;src:url(fonts/cormorant-garamond-cyrillic-0.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400 500;font-display:swap;src:url(fonts/cormorant-garamond-latin-0.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400 800;font-display:swap;src:url(fonts/manrope-cyrillic-0.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400 800;font-display:swap;src:url(fonts/manrope-latin-0.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
:root{
  --cream:#f7f1ea; --paper:#fffaf5; --sand:#e9dccd; --taupe:#b9a48f;
  --wine:#5b1322; --wine-deep:#3d0b16; --ink:#2b1c1c; --muted:#7a6a62;
  --serif:"Cormorant Garamond",Georgia,serif; --sans:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
  --pad:20px; --max:1120px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
section[id]{scroll-margin-top:68px}
body.lock{overflow:hidden}
.sprite{position:absolute;width:0;height:0}
a:focus-visible,button:focus-visible{outline:2px solid var(--wine);outline-offset:3px}
.training a:focus-visible,.lightbox button:focus-visible{outline-color:var(--sand)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn{transition:none}}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;padding-bottom:72px}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
section{padding:64px 0}
.eyebrow{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--wine);font-weight:700;margin:0 0 14px}
h1,h2,h3{margin:0;font-weight:800;line-height:1.05;text-transform:uppercase;letter-spacing:.01em}
h2{font-size:clamp(28px,6vw,44px);color:var(--wine);margin-bottom:18px}
h3{font-size:17px;letter-spacing:.04em}
p{margin:0 0 14px}
.lead{font-family:var(--serif);font-size:clamp(21px,3.4vw,27px);line-height:1.3;font-weight:500}

/* header */
header{position:sticky;top:0;z-index:30;background:rgba(247,241,234,.97);border-bottom:1px solid rgba(91,19,34,.1)}
.bar{display:flex;align-items:center;justify-content:space-between;height:60px;gap:12px}
.logo{font-family:var(--serif);font-size:24px;letter-spacing:.3em;text-decoration:none;color:var(--wine);line-height:1}
.logo small{display:block;font-family:var(--sans);font-size:7.5px;letter-spacing:.5em;margin-top:4px;color:var(--muted)}
nav{display:none;gap:26px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700}
nav a{text-decoration:none;padding:12px 0;white-space:nowrap}
nav a:hover{color:var(--wine)}
.lang{display:flex;border:1px solid rgba(91,19,34,.25);border-radius:99px;overflow:hidden}
.lang button{border:0;background:none;font:700 11px var(--sans);letter-spacing:.1em;min-height:40px;padding:0 12px;color:var(--muted);cursor:pointer}
.lang button[aria-pressed=true]{background:var(--wine);color:var(--paper)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 24px;border-radius:99px;font:800 12.5px var(--sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border:1.5px solid var(--wine);color:var(--wine);background:transparent;transition:background-color .2s,color .2s,border-color .2s;cursor:pointer}
.btn svg{width:18px;height:18px;flex:none;fill:currentColor}
.btn.solid{background:var(--wine);color:var(--paper)}
.btn:hover{background:var(--wine-deep);border-color:var(--wine-deep);color:var(--paper)}
.btn.light{border-color:var(--sand);color:var(--paper)}
.btn.light.solid{background:var(--paper);color:var(--wine);border-color:var(--paper)}
.btn.light:hover{background:var(--sand);border-color:var(--sand);color:var(--wine-deep)}
.btns{display:grid;gap:10px}

/* photo placeholders */
.ph{position:relative;background:linear-gradient(150deg,#e6d5c3,#cdb39c 55%,#b08e78);border-radius:4px;overflow:hidden;display:flex;align-items:flex-end;min-height:120px}
.ph::after{content:attr(data-label);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:rgba(61,11,22,.6);padding:12px;font-weight:700}
.ph.b{background:linear-gradient(200deg,#d9b9ae,#b9837c 60%,#8d4f52)}
.ph.c{background:linear-gradient(160deg,#efe4d8,#d8c4b0)}
.ph.d{background:linear-gradient(140deg,#7b2a37,#3d0b16)}
.ph.d::after{color:rgba(255,250,245,.6)}

/* hero */
.hero{padding:28px 0 56px}
.hero-grid{display:grid;gap:28px}
.hero-grid .ph{order:2}
.hero .ph{aspect-ratio:4/5}
.hero h1{font-family:var(--serif);font-weight:500;font-size:clamp(44px,13vw,92px);letter-spacing:.12em;color:var(--wine);line-height:.95}
.hero h1 span{display:block;font-family:var(--sans);font-weight:700;font-size:.17em;letter-spacing:.62em;margin-top:.9em;color:var(--ink)}
.hero .sub{font-weight:800;text-transform:uppercase;letter-spacing:.1em;font-size:13px;margin:22px 0 10px}
.hero .lead{color:var(--muted);margin-bottom:26px}

/* about */
.about-grid{display:grid;gap:28px}
.about .ph{aspect-ratio:1/1}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:26px 0 0;padding:0;list-style:none}
.facts li{border-top:1.5px solid var(--wine);padding-top:12px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--muted)}
.facts b{display:block;font-family:var(--serif);font-size:clamp(21px,5.6vw,32px);font-weight:500;color:var(--wine);letter-spacing:0;line-height:1;margin-bottom:6px;text-transform:none}

/* services */
.services{background:var(--paper)}
.cards{display:grid;gap:18px;margin-top:28px}
.card{display:grid;grid-template-columns:104px 1fr;gap:16px;align-items:start;padding-bottom:18px;border-bottom:1px solid var(--sand)}
.card .ph{aspect-ratio:1/1;min-height:0}
.card .ph::after{display:none}
.card p{font-size:14.5px;color:var(--muted);margin:6px 0 8px}
.rows{list-style:none;margin:10px 0 0;padding:0}
.rows li{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:8px 0;border-top:1px solid var(--sand);font-size:14.5px;line-height:1.35}
.rows b{white-space:nowrap;font-weight:800;color:var(--wine)}
.fine{font-size:13.5px;color:var(--muted);margin:16px 0 0;max-width:760px}
.center{text-align:center;margin-top:30px}

/* portfolio */
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin:26px 0}
.gallery button{all:unset;cursor:zoom-in;display:block}
.gallery .ph{aspect-ratio:4/5;min-height:0}
.gallery button:focus-visible .ph{outline:2px solid var(--wine);outline-offset:2px}
.lightbox{position:fixed;inset:0;z-index:60;background:rgba(43,10,18,.92);display:none;align-items:center;justify-content:center;padding:20px}
.lightbox.open{display:flex}
.lightbox .ph{width:min(92vw,560px);aspect-ratio:4/5}
.lightbox .x{position:absolute;top:14px;right:14px;width:44px;height:44px;border:0;border-radius:50%;background:var(--paper);font-size:22px;cursor:pointer;color:var(--wine)}

/* training */
.training{background:var(--wine-deep);color:var(--paper)}
.training h2,.training .eyebrow{color:var(--paper)}
.training .eyebrow{opacity:.7}
.training .lead{color:var(--sand)}
.formats{display:grid;gap:12px;margin:28px 0}
.format{border:1px solid rgba(233,220,205,.28);border-radius:4px;padding:20px}
.format p{font-size:14.5px;color:rgba(255,250,245,.75);margin:8px 0 0}
.training .rows li{border-color:rgba(233,220,205,.22)}
.training .rows b{color:var(--paper)}
.training .fine{color:rgba(255,250,245,.65);margin:0}
.incl,.models{margin:0 0 28px}
.incl ul{margin:12px 0;padding-left:18px;font-size:14.5px;color:rgba(255,250,245,.85)}
.incl li{margin-bottom:6px;break-inside:avoid}
body.plain{padding-bottom:0}
.prog{margin:0 0 28px}
.prog h3{margin-bottom:14px}
.prog .formats{margin:0}
.legal{padding:48px var(--pad) 80px;max-width:720px}
.legal h1{font-size:clamp(20px,5.4vw,48px);color:var(--wine);margin-bottom:24px;overflow-wrap:anywhere}
.legal ul{margin:0 0 8px;padding-left:20px}
.legal li{margin-bottom:6px}
.legal code{font-size:.9em;overflow-wrap:anywhere}
.legal h2{font-size:15px;letter-spacing:.08em;margin:28px 0 8px;color:var(--ink)}
.legal p{margin:0 0 6px}
.legal .todo{background:#fff3cd;color:#5c4400;padding:1px 6px;border-radius:3px}
.legal .back{display:inline-block;margin-top:32px;padding:10px 0;font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:12px}
.training .btns{margin:0 0 48px}
.training .models .btns{margin:0}
.models{border:1px solid var(--sand);border-radius:4px;padding:22px;margin:0}
.models p{color:rgba(255,250,245,.75);font-size:14.5px;margin:8px 0 0}
.models .rows{margin:14px 0 20px}
.t-photos{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:28px}
.t-photos .ph{aspect-ratio:1/1}

/* advantages */
.adv{display:grid;grid-template-columns:1fr 1fr;gap:22px 16px;margin-top:28px;padding:0;list-style:none;counter-reset:a}
.adv li{counter-increment:a;font-weight:700;font-size:14.5px;line-height:1.35}
.adv li::before{content:"0" counter(a);display:block;font-family:var(--serif);font-size:26px;font-weight:500;color:#8f7660;margin-bottom:4px}

/* reviews */
.reviews{background:var(--paper)}
.rev{display:grid;gap:14px;margin-top:26px}
.rev blockquote{margin:0;padding:24px;border:1px dashed var(--taupe);border-radius:4px;font-family:var(--serif);font-size:20px;line-height:1.35;color:var(--muted)}
.rev cite{display:block;font:700 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;margin-top:14px;color:var(--wine);font-style:normal}

/* contact */
.contact{text-align:center}
.contact .lead{max-width:520px;margin:0 auto 26px;color:var(--muted)}
.contact .btns{max-width:420px;margin:0 auto}
.addr{margin-top:28px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-weight:700}

footer{border-top:1px solid var(--sand);padding:26px 0;font-size:12.5px;color:var(--muted)}
footer .wrap{display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between}
footer a,footer button{all:unset;display:inline-block;padding:10px 0;cursor:pointer;text-decoration:underline;text-underline-offset:3px;margin-right:16px}

/* sticky mobile CTA */
.sticky{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(247,241,234,.96);border-top:1px solid var(--sand)}
.sticky .btn{min-height:48px;padding:0 10px;font-size:11.5px}

/* consent */
.consent{position:fixed;left:12px;right:12px;bottom:84px;z-index:50;background:var(--paper);border:1px solid var(--sand);border-radius:8px;padding:18px;box-shadow:0 12px 40px rgba(61,11,22,.18);display:none;max-width:460px}
.consent.open{display:block}
.consent p{font-size:13.5px;color:var(--muted)}
.consent .row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.consent .clink{font-size:13px;font-weight:700;text-decoration:underline;color:var(--wine)}
.consent .btn{min-height:44px;font-size:11px;padding:0 10px;width:100%}

.note{background:#fff3cd;color:#5c4400;font-size:12.5px;text-align:center;padding:8px var(--pad)}

@media(min-width:760px){
  :root{--pad:36px}
  body{padding-bottom:0}
  section{padding:104px 0}
  .sticky{display:none}
  .consent{bottom:20px;left:20px;right:auto}
  .hero{padding:56px 0 96px}
  .hero-grid{grid-template-columns:1.05fr .95fr;align-items:center;gap:64px}
  .btns{grid-template-columns:repeat(3,auto);justify-content:start}
  .contact .btns{grid-template-columns:1fr;justify-content:stretch}
  .about-grid{grid-template-columns:.8fr 1.2fr;gap:72px;align-items:center}
  .cards{grid-template-columns:1fr 1fr;gap:28px 48px}
  .gallery{grid-template-columns:repeat(4,1fr);gap:10px}
  .formats{grid-template-columns:repeat(3,1fr)}
  .incl ul{columns:2;column-gap:48px}
  .models{max-width:640px}
  .train-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:64px;align-items:start}
  .t-photos{margin:0}
  .adv{grid-template-columns:repeat(3,1fr);gap:40px}
  .rev{grid-template-columns:repeat(3,1fr)}
}
@media(min-width:980px){nav{display:flex}}
@media(max-width:359px){.logo{font-size:19px;letter-spacing:.2em}.lang{flex:none}.lang button{padding:0 9px}}
