@font-face {
  font-family: Outfit;
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/fonts/outfit-latin-ext-wght-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: Outfit;
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/fonts/outfit-latin-wght-normal.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 { --bg:#faf8f5; --ink:#1a1714; }
* { box-sizing:border-box; }
html, body { margin:0; background:var(--bg); color:var(--ink); font-family:Outfit,system-ui,sans-serif; font-weight:300; }
button, input, textarea, select { font-family:inherit; }
a { color:inherit; text-decoration:none; }
article p a { text-decoration:underline; text-underline-offset:3px; }
img { max-width:100%; display:block; }
.header { position:fixed; top:0; left:0; right:0; z-index:50; height:100px; color:#fff; }
.header-bg { position:absolute; inset:0; transition:background-color .5s, backdrop-filter .5s; }
.header.scrolled .header-bg { background:rgba(20,18,15,.55); backdrop-filter:blur(24px) saturate(1.2); }
.header-bar { position:relative; z-index:1; height:100%; max-width:1920px; margin:0 auto; padding:0 24px; display:flex; align-items:center; justify-content:space-between; }
.header-side { flex:1; display:flex; align-items:center; }
.header-side.right { justify-content:flex-end; gap:16px; }
.burger { display:flex; align-items:center; gap:12px; background:none; border:0; color:#fff; letter-spacing:.15em; text-transform:uppercase; font:500 14px Outfit,sans-serif; cursor:pointer; }
.lines { width:28px; display:flex; flex-direction:column; gap:7px; }
.lines i { display:block; height:2px; background:#fff; }
.logo-link { display:flex; align-items:center; color:#fff; }
.logo-emblem { width:72px; height:72px; object-fit:contain; }
.logo-text { display:inline-flex; overflow:hidden; width:0; }
.logo-text-inner { display:inline-flex; padding-left:8px; font-weight:300; letter-spacing:.22em; text-transform:uppercase; font-size:13px; }
.logo-char { display:inline-block; opacity:0; transform:translateY(100%); }
.phone, .mail { color:rgba(255,255,255,.55); font-size:14px; }
.cta, .send { border:1px solid rgba(255,255,255,.4); color:#fff; background:transparent; border-radius:999px; padding:10px 18px; letter-spacing:.12em; text-transform:uppercase; font-size:12px; }
.send { background:#111; border:0; color:#fff; width:100%; margin-top:8px; cursor:pointer; }
.copy-btn { background:none; border:0; color:rgba(255,255,255,.55); cursor:pointer; }
.burger { position:relative; z-index:60; }
.menu-backdrop { position:fixed; inset:0; background:rgba(17,17,17,.3); backdrop-filter:blur(12px); z-index:52; }
.menu-panel { position:fixed; top:0; left:0; bottom:0; width:min(90%,980px); background:#faf8f5; color:#111; z-index:55; transform:translateX(-105%); transition:transform .55s cubic-bezier(.22,.8,.2,1); overflow:auto; box-shadow:10px 0 40px rgba(0,0,0,.15); }
.menu-panel.open { transform:none; }
.menu-close { position:absolute; top:22px; left:28px; background:none; border:0; width:40px; height:40px; cursor:pointer; color:#444; }
.menu-body { min-height:100%; display:flex; }
.menu-nav { width:34%; padding:96px 40px 40px; display:flex; flex-direction:column; }
.menu-nav a.item { padding:10px 0; font-size:20px; font-weight:500; color:#444; }
.menu-nav a.item:hover { color:#111; }
.menu-nav .gallery-btn { margin:18px 0 28px; width:fit-content; }
.menu-contacts { margin-top:auto; display:flex; flex-direction:column; gap:10px; }
.menu-contacts span { letter-spacing:.2em; text-transform:uppercase; font-size:11px; color:#999; }
.menu-contacts a, .menu-contacts p { color:#444; font-size:15px; font-weight:300; margin:0; }
.menu-cards { width:66%; display:flex; flex-direction:column; gap:16px; padding:96px 24px 40px; }
.menu-card { position:relative; flex:1; min-height:220px; border-radius:16px; overflow:hidden; display:block; }
.menu-card img, .menu-card video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.menu-card video { opacity:0; }
.menu-card:hover video { opacity:1; }
.menu-card b { position:absolute; left:24px; bottom:20px; color:#fff; font-weight:300; font-size:28px; text-shadow:0 8px 24px rgba(0,0,0,.35); }
.hero { position:relative; min-height:78vh; color:#fff; display:flex; align-items:flex-end; }
.hero img.bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.shade { position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.25),rgba(0,0,0,.72)); }
.hero .inner { position:relative; z-index:1; max-width:1100px; margin:0 auto; padding:0 32px 64px; }
.kicker { letter-spacing:.2em; text-transform:uppercase; font-size:12px; color:rgba(255,255,255,.55); }
h1 { font-weight:300; font-size:clamp(2rem,5vw,4rem); letter-spacing:-.02em; line-height:1.05; margin:12px 0; }
.lead, p { font-weight:300; line-height:1.75; }
.lead { font-size:18px; color:rgba(255,255,255,.86); }
.wrap { max-width:1100px; margin:0 auto; padding:72px 32px; }
.grid { display:grid; grid-template-columns:1.3fr .7fr; gap:48px; }
h2 { font-weight:300; font-size:clamp(1.6rem,3vw,2.2rem); letter-spacing:-.02em; }
label { display:block; letter-spacing:.16em; text-transform:uppercase; font-size:11px; margin:12px 0 6px; }
input, textarea { width:100%; padding:12px 14px; border-radius:10px; border:1px solid rgba(17,17,17,.12); background:rgba(17,17,17,.03); }
input[type=file]::file-selector-button { font-family:Outfit,sans-serif; border:0; border-radius:999px; background:#111; color:#fff; padding:8px 14px; margin-right:10px; }
.gallery-row { margin:0 0 28px; }
.gallery-btn { display:inline-flex; align-items:center; border-radius:999px; background:#111; color:#fff; padding:14px 28px; letter-spacing:.14em; text-transform:uppercase; font-size:12px; font-weight:500; }
.hero .gallery-row { margin:22px 0 0; }
.hero-gallery { background:transparent; color:#fff; border:1px solid rgba(255,255,255,.7); }
.site-gallery { max-width:1400px; margin:0 auto; padding:8px 32px 0; }
.site-gallery .kicker { color:#9a948c; margin:0 0 16px; }
.mosaic-wrap { position:relative; max-height:640px; overflow:hidden; }
.mosaic { columns:4 180px; column-gap:12px; }
.mosaic a { display:block; margin:0 0 12px; border-radius:18px; overflow:hidden; break-inside:avoid; }
.mosaic img { width:100%; height:auto; }
.mosaic-fade { position:absolute; left:0; right:0; bottom:0; height:240px; background:linear-gradient(to bottom, rgba(250,248,245,0), #faf8f5 72%); pointer-events:none; }
.gallery-more { display:flex; justify-content:center; margin:-36px 0 12px; position:relative; z-index:1; }
.more-btn { display:inline-flex; align-items:center; gap:10px; background:#111; color:#fff; border-radius:999px; padding:16px 28px; letter-spacing:.14em; text-transform:uppercase; font-size:12px; font-weight:500; }
.faq details { border-top:1px solid #ebe3d5; padding:14px 0; }
.faq summary { cursor:pointer; font-size:18px; }
.links { display:flex; flex-wrap:wrap; gap:8px; margin-top:24px; }
.links a { border:1px solid #d4c9b8; border-radius:999px; padding:8px 14px; font-size:14px; }
footer { background:#000; color:rgba(255,255,255,.7); padding:48px 32px; }
@media (min-width:640px) { .logo-emblem { width:80px; height:80px; } .logo-text-inner { font-size:16px; letter-spacing:.3em; } }
@media (min-width:1024px) { .header { height:112px; } .logo-emblem { width:88px; height:88px; } .logo-text-inner { font-size:22px; letter-spacing:.35em; } .header-bar { padding:0 48px; } }
@media (max-width:900px) {
  .grid { grid-template-columns:1fr; }
  .phone, .mail { display:none; }
  .menu-body { flex-direction:column; }
  .menu-nav, .menu-cards { width:100%; }
  .menu-cards { display:none; }
}
