/* ============================================================
   Ullman Sails — design system
   ============================================================ */
:root{
  --navy:        #0a2540;
  --navy-deep:   #06192e;
  --blue:        #00468e;
  --blue-600:    #005596;
  --blue-300:    #4a86c5;
  --accent:      #e6571d;
  --accent-600:  #cf4a14;
  --ink:         #16242f;
  --muted:       #5a6b78;
  --paper:       #ffffff;
  --mist:        #f3f7fb;
  --line:        #e3eaf1;

  --container: 1200px;
  --radius: 14px;
  --radius-sm: 10px;
  --shadow:    0 18px 50px -20px rgba(10,37,64,.28);
  --shadow-sm: 0 8px 24px -12px rgba(10,37,64,.30);

  --serif: "Playfair Display", Georgia, "Times New Roman", serif;
  --sans: "Inter", -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }

/* Плавный переход между страницами (кроссфейд вместо резкой подмены).
   В браузерах без поддержки просто откатывается на обычный переход. */
@view-transition{ navigation:auto; }
::view-transition-old(root),
::view-transition-new(root){ animation-duration:.32s; animation-timing-function:ease; }

/* Уважаем системную настройку «уменьшить движение» */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  @view-transition{ navigation:none; }
}

body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--paper);
  line-height:1.65;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
  /* строгие цифры: ровные по базовой линии + одинаковой ширины (без «танца») */
  font-variant-numeric: lining-nums tabular-nums;
  font-feature-settings: "lnum" 1, "tnum" 1;
}
img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }

.container{ width:100%; max-width:var(--container); margin:0 auto; padding:0 24px; }

/* ---------- Typography helpers ---------- */
.eyebrow{
  font-size:13px; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
  color:var(--blue-600); margin:0 0 14px;
}
.eyebrow--light{ color:var(--blue-300); }

.section{ padding:96px 0; }
.section--mist{ background:var(--mist); }
.section__title{
  font-family:var(--serif); font-weight:600; color:var(--navy);
  font-size:clamp(28px, 4vw, 44px); line-height:1.12; margin:0 0 40px;
}
.section__head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.section__head .section__title{ margin-bottom:0; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  font-family:var(--sans); font-weight:600; font-size:15px;
  padding:13px 26px; border-radius:999px; border:1.5px solid transparent;
  cursor:pointer; transition:.2s ease; white-space:nowrap;
}
.btn--lg{ padding:16px 34px; font-size:16px; }
.btn--accent{ background:var(--accent); color:#fff; }
.btn--accent:hover{ background:var(--accent-600); transform:translateY(-2px); box-shadow:var(--shadow-sm); }
.btn--ghost{ background:rgba(255,255,255,.12); color:#fff; border-color:rgba(255,255,255,.6); backdrop-filter:blur(4px); }
.btn--ghost:hover{ background:rgba(255,255,255,.22); }
.btn--outline{ background:transparent; color:var(--blue-600); border-color:var(--blue-600); }
.btn--outline:hover{ background:var(--blue-600); color:#fff; }

/* ---------- Topbar ---------- */
.topbar{ background:var(--navy-deep); color:#cdd9e6; font-size:13.5px; }
.topbar__inner{ display:flex; align-items:center; gap:24px; height:42px; }
.topbar__spacer{ flex:1; }
.topbar__item{ color:#cdd9e6; transition:.2s; }
a.topbar__item:hover{ color:#fff; }

/* ---------- Header ---------- */
.header{ position:sticky; top:0; z-index:50; background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
.header__inner{ display:flex; align-items:center; gap:28px; height:78px; }
.brand{ display:flex; align-items:center; gap:12px; margin-right:auto; }
.brand__mark{ width:46px; height:46px; }
.brand__name{ font-family:var(--serif); font-weight:700; font-size:21px; color:var(--navy); line-height:1; display:block; }
.brand__tag{ font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.nav{ display:flex; gap:30px; }
.nav a{ font-weight:500; font-size:15.5px; color:var(--ink); position:relative; padding:6px 0; transition:.2s; }
.nav a::after{ content:""; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--accent); transition:.25s; }
.nav a:hover{ color:var(--blue-600); }
.nav a:hover::after{ width:100%; }
.header__cta{ }
.burger{ display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:8px; }
.burger span{ width:24px; height:2px; background:var(--navy); transition:.25s; }

/* ---------- Hero ---------- */
.hero{ position:relative; min-height:640px; display:flex; align-items:center;
  color:#fff; overflow:hidden; }
.hero__media{ position:absolute; inset:0; }
.hero__media img{ width:100%; height:100%; object-fit:cover; }
.hero__overlay{ position:absolute; inset:0;
  background:linear-gradient(105deg, rgba(6,25,46,.86) 0%, rgba(6,25,46,.55) 45%, rgba(6,25,46,.15) 100%); }
.hero__content{ position:relative; padding:90px 24px; max-width:760px; }
.hero__title{ font-family:var(--serif); font-weight:700; font-size:clamp(36px, 6vw, 66px);
  line-height:1.05; margin:0 0 22px; letter-spacing:-.5px; }
.hero__lead{ font-size:clamp(17px,2vw,20px); color:#dce6f1; max-width:560px; margin:0 0 34px; }
.hero__actions{ display:flex; gap:16px; flex-wrap:wrap; }
.hero__stats{ list-style:none; display:flex; gap:48px; margin:56px 0 0; padding:0; flex-wrap:wrap; }
.hero__stats b{ display:block; font-family:var(--serif); font-size:38px; font-weight:700; line-height:1; }
.hero__stats span{ font-size:14px; color:#b9c8d8; }

/* ---------- About / prose ---------- */
.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start; }
.prose{ max-width:780px; }
.prose p{ margin:0 0 18px; color:var(--muted); font-size:17px; }
.prose ul{ margin:0 0 18px; padding-left:0; list-style:none; }
.prose li{ position:relative; padding-left:26px; margin-bottom:10px; color:var(--muted); }
.prose li::before{ content:""; position:absolute; left:4px; top:11px; width:8px; height:8px;
  background:var(--accent); border-radius:2px; transform:rotate(45deg); }
.prose h3{ font-family:var(--serif); font-weight:600; font-size:24px; color:var(--navy); margin:30px 0 14px; }
.prose__lead{ font-size:19px; color:var(--ink); font-weight:500; border-left:3px solid var(--accent);
  padding-left:18px; margin-top:26px; }

/* ---------- Cards (sail types) ---------- */
.cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.card{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  padding:30px 28px; transition:.25s; position:relative; overflow:hidden; }
.card::before{ content:""; position:absolute; left:0; top:0; width:4px; height:0; background:var(--accent); transition:.25s; }
.card:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:transparent; }
.card:hover::before{ height:100%; }
.card h3{ font-family:var(--serif); font-weight:600; font-size:21px; color:var(--navy); margin:0 0 10px; }
.card p{ margin:0; color:var(--muted); font-size:15.5px; }

/* ---------- Services ---------- */
.services{ display:grid; grid-template-columns:repeat(4,1fr); gap:28px; }
.service{ padding-top:18px; border-top:2px solid var(--blue); }
.service__num{ font-family:var(--serif); font-size:15px; font-weight:600; color:var(--accent); }
.service h3{ font-size:19px; margin:10px 0 8px; color:var(--navy); }
.service p{ margin:0; color:var(--muted); font-size:15px; }

/* ---------- Gallery ---------- */
.gallery{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:220px; gap:16px; }
.gallery__item{ margin:0; position:relative; overflow:hidden; border-radius:var(--radius-sm); }
.gallery__item img{ width:100%; height:100%; object-fit:cover; transition:.5s ease; }
.gallery__item:hover img{ transform:scale(1.06); }
.gallery__item figcaption{ position:absolute; left:0; right:0; bottom:0; padding:16px;
  font-size:14px; font-weight:500; color:#fff;
  background:linear-gradient(transparent, rgba(6,25,46,.78)); }
.gallery__item--tall{ grid-row:span 2; }
.gallery__item--wide{ grid-column:span 2; }

/* ---------- Branding band ---------- */
.band{ position:relative; color:#fff; overflow:hidden; }
.band__media{ position:absolute; inset:0; }
.band__media img{ width:100%; height:100%; object-fit:cover; }
.band__overlay{ position:absolute; inset:0; background:linear-gradient(90deg, rgba(6,25,46,.82), rgba(6,25,46,.35)); }
.band__content{ position:relative; padding:110px 24px; max-width:560px; }
.band__title{ font-family:var(--serif); font-weight:700; font-size:clamp(28px,4vw,42px); margin:0 0 16px; }
.band__text{ color:#dce6f1; margin:0 0 28px; font-size:18px; }

/* ---------- Representations ---------- */
.reps{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.rep{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  padding:26px 26px; transition:.25s; }
.rep:hover{ box-shadow:var(--shadow); transform:translateY(-3px); }
.rep h3{ font-family:var(--serif); font-weight:600; font-size:20px; color:var(--navy); margin:0 0 4px; }
.rep__sub{ font-size:13px; letter-spacing:.04em; text-transform:uppercase; color:var(--blue-600); margin:0 0 14px; }
.rep p{ margin:2px 0; color:var(--muted); font-size:15px; }
.rep a:hover{ color:var(--accent); }

/* ---------- Order ---------- */
.order{ background:var(--navy); color:#fff; padding:84px 0; }
.order__inner{ display:flex; align-items:center; justify-content:space-between; gap:48px; flex-wrap:wrap; }
.order__text{ max-width:620px; }
.order__title{ font-family:var(--serif); font-weight:700; font-size:clamp(28px,4vw,42px); margin:0 0 16px; }
.order__lead{ color:#c5d3e2; font-size:18px; margin:0; }
.order__actions{ display:flex; flex-direction:column; align-items:flex-start; gap:16px; }
.order__phone{ font-family:var(--serif); font-size:26px; font-weight:600; color:#fff; }
.order__phone:hover{ color:var(--accent); }
.order__form{ background:#fff; border-radius:var(--radius); padding:30px; display:grid;
  grid-template-columns:1fr 1fr; gap:18px; box-shadow:var(--shadow); }
.field{ display:flex; flex-direction:column; gap:7px; }
.field--full{ grid-column:1 / -1; }
.field label{ font-size:13px; font-weight:600; color:var(--muted); }
.field input,.field select,.field textarea{
  font-family:var(--sans); font-size:15px; color:var(--ink);
  padding:12px 14px; border:1.5px solid var(--line); border-radius:var(--radius-sm);
  background:var(--mist); transition:.2s; width:100%; }
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none; border-color:var(--blue-600); background:#fff; }
.field textarea{ resize:vertical; }
button.field--full{ width:100%; }

/* ---------- Footer ---------- */
.footer{ background:var(--navy-deep); color:#aebccd; }
.footer__inner{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; padding:60px 24px; }
.footer__brand img{ margin-bottom:14px; }
.footer__name{ font-family:var(--serif); font-size:22px; font-weight:700; color:#fff; margin:0 0 6px; }
.footer__tag{ margin:0; font-size:14px; max-width:280px; }
.footer__nav{ display:flex; flex-direction:column; gap:12px; }
.footer__nav a{ transition:.2s; }
.footer__nav a:hover{ color:#fff; }
.footer__contacts p{ margin:0 0 10px; font-size:15px; }
.footer__contacts a:hover{ color:#fff; }
.footer__bottom{ border-top:1px solid rgba(255,255,255,.08); padding:20px 0; font-size:13.5px; color:#7d8da0; }
.footer__bottom .container{ text-align:center; }

/* ============================================================
   Inner pages
   ============================================================ */
.page-hero{ position:relative; color:#fff; overflow:hidden; background:var(--navy-deep); }
.page-hero__media{ position:absolute; inset:0; }
.page-hero__media img{ width:100%; height:100%; object-fit:cover; opacity:.5; }
.page-hero__overlay{ position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(6,25,46,.9), rgba(6,25,46,.45)); }
.page-hero__content{ position:relative; padding:64px 24px 56px; }
.page-hero__title{ font-family:var(--serif); font-weight:700; font-size:clamp(30px,4.5vw,50px);
  margin:10px 0 0; line-height:1.08; }
.page-hero__lead{ margin:16px 0 0; color:#dce6f1; font-size:18px; max-width:680px; }

.breadcrumb{ font-size:13.5px; color:#aebfd0; }
.breadcrumb a{ color:#aebfd0; transition:.2s; }
.breadcrumb a:hover{ color:#fff; }
.breadcrumb span{ margin:0 8px; opacity:.6; }

/* type cards (hub) */
.typecards{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.typecard{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--line);
  border-radius:var(--radius); overflow:hidden; transition:.25s; }
.typecard:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:transparent; }
.typecard__img{ aspect-ratio:4/3; overflow:hidden; background:var(--mist); }
.typecard__img img{ width:100%; height:100%; object-fit:contain; display:block; }
.typecard:hover .typecard__img img{ transform:none; }
.typecard__body{ padding:24px 24px 26px; display:flex; flex-direction:column; flex:1; }
.typecard h3{ font-family:var(--serif); font-weight:600; font-size:22px; color:var(--navy); margin:0 0 10px; }
.typecard p{ margin:0 0 18px; color:var(--muted); font-size:15.5px; flex:1; }
.typecard__more{ font-weight:600; font-size:15px; color:var(--accent); }
.typecard:hover .typecard__more{ text-decoration:underline; }

/* spec blocks (detail pages) */
.specgroup{ margin:0 0 40px; }
.specgroup > h2{ font-family:var(--serif); font-weight:600; font-size:26px; color:var(--navy);
  margin:0 0 20px; padding-bottom:12px; border-bottom:2px solid var(--blue); }
.spec{ background:var(--mist); border:1px solid var(--line); border-radius:var(--radius);
  padding:22px 24px; margin-bottom:16px; }
.spec h3{ font-family:var(--serif); font-weight:600; font-size:19px; color:var(--blue-600); margin:0 0 8px; }
.spec p{ margin:0 0 8px; color:var(--muted); font-size:15.5px; }
.spec ul{ margin:8px 0 0; padding-left:0; list-style:none; }
.spec li{ position:relative; padding-left:22px; margin-bottom:6px; color:var(--muted); font-size:15px; }
.spec li::before{ content:""; position:absolute; left:2px; top:9px; width:7px; height:7px;
  background:var(--accent); border-radius:2px; transform:rotate(45deg); }

/* code table (spinnakers) */
.codetable{ width:100%; border-collapse:collapse; margin:8px 0 0; font-size:15px; }
.codetable th{ background:var(--blue-600); color:#fff; text-align:left; padding:11px 14px; font-weight:600; }
.codetable td{ padding:11px 14px; border-bottom:1px solid var(--line); color:var(--ink); }
.codetable tr:nth-child(even) td{ background:var(--mist); }

/* steps (how we make sails) */
.steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; counter-reset:step; }
.step{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:24px; }
.step__n{ font-family:var(--serif); font-weight:700; font-size:20px; color:var(--accent); }
.step p{ margin:8px 0 0; color:var(--muted); font-size:15.5px; }

.section--tight{ padding:64px 0; }

/* ---------- About page: team & stats ---------- */
.statband{ display:grid; grid-template-columns:repeat(3,1fr); margin:44px 0 0;
  border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.statband div{ padding:30px 24px; text-align:center; border-left:1px solid var(--line); }
.statband div:first-child{ border-left:0; }
.statband b{ display:block; font-family:var(--serif); font-weight:700; font-size:44px;
  color:var(--navy); line-height:1; font-variant-numeric:tabular-nums lining-nums; letter-spacing:.5px; }
.statband span{ display:block; margin-top:10px; color:var(--muted); font-size:14px; }

/* in-page sub navigation */
.subnav{ position:sticky; top:78px; z-index:40; background:rgba(255,255,255,.95);
  backdrop-filter:blur(8px); border-bottom:1px solid var(--line); }
.subnav__inner{ display:flex; gap:6px; overflow-x:auto; padding:12px 0; -webkit-overflow-scrolling:touch; }
.subnav a{ white-space:nowrap; font-size:14.5px; font-weight:500; color:var(--muted);
  padding:8px 16px; border-radius:999px; transition:.2s; }
.subnav a:hover{ background:var(--mist); color:var(--blue-600); }
section[id]{ scroll-margin-top:140px; }

.team{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.member{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; transition:.25s; }
.member:hover{ box-shadow:var(--shadow); transform:translateY(-3px); }
.member__photo{ aspect-ratio:1/1; overflow:hidden; background:var(--mist); }
.member__photo img{ width:100%; height:100%; object-fit:cover; }
.member__body{ padding:22px 22px 24px; }
.member h3{ font-family:var(--serif); font-weight:600; font-size:21px; color:var(--navy); margin:0; }
.member__role{ font-size:12.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--accent); font-weight:600; margin:6px 0 14px; }
.member__meta{ margin:0; padding:0; list-style:none; }
.member__meta li{ font-size:14px; color:var(--muted); margin-bottom:6px; }
.member__meta b{ color:var(--ink); font-weight:600; }

.partner{ display:flex; gap:24px; align-items:center; background:var(--mist); border:1px solid var(--line);
  border-radius:var(--radius); padding:24px; flex-wrap:wrap; }
.partner img{ width:180px; border-radius:var(--radius-sm); }
.partner__info h3{ font-family:var(--serif); font-weight:600; font-size:20px; color:var(--navy); margin:0 0 8px; }
.partner__info p{ margin:2px 0; color:var(--muted); font-size:15px; }

/* ---------- Article / news ---------- */
.article{ max-width:820px; }
.article .prose{ max-width:100%; }
.article__meta{ font-size:14px; color:var(--muted); margin:0 0 24px; }
.article-figs{ display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:14px; margin:28px 0; }
.article-figs a{ display:block; aspect-ratio:4/3; overflow:hidden; border-radius:var(--radius-sm); border:1px solid var(--line); }
.article-figs img{ width:100%; height:100%; object-fit:cover; transition:.4s; }
.article-figs a:hover img{ transform:scale(1.05); }
.article .prose img{ border-radius:var(--radius-sm); margin:18px 0; }
.backlink{ display:inline-block; margin-top:32px; font-weight:600; color:var(--blue-600); }
.backlink:hover{ color:var(--accent); }

/* ---------- Contacts page ---------- */
.hq{ display:grid; grid-template-columns:1fr 1.2fr; gap:40px; align-items:stretch; }
.hq__info h3{ font-family:var(--serif); font-weight:600; font-size:24px; color:var(--navy); margin:0 0 16px; }
.hq__row{ margin:0 0 14px; }
.hq__row span{ display:block; font-size:12.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--blue-600); margin-bottom:2px; }
.hq__row a, .hq__row b{ font-size:17px; color:var(--ink); font-weight:500; }
.hq__row a:hover{ color:var(--accent); }
.map-embed{ border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); min-height:380px; background:var(--mist); }
.map-embed iframe, .map-embed > ymaps{ display:block; width:100%!important; height:100%!important; min-height:380px; border:0; }
.rep__line{ font-size:14.5px; color:var(--muted); margin:3px 0; }
.rep__line b{ color:var(--ink); font-weight:600; }

/* ---------- Gallery page ---------- */
.gfilters{ display:flex; flex-wrap:wrap; gap:10px; margin:0 0 32px; }
.gfilter{ font-family:var(--sans); font-size:14.5px; font-weight:500; color:var(--ink);
  background:#fff; border:1.5px solid var(--line); border-radius:999px; padding:9px 18px;
  cursor:pointer; transition:.2s; }
.gfilter:hover{ border-color:var(--blue-600); color:var(--blue-600); }
.gfilter.is-active{ background:var(--navy); border-color:var(--navy); color:#fff; }
.gfilter b{ font-weight:600; opacity:.6; margin-left:6px; font-size:13px; }

.ggrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.gtile{ margin:0; position:relative; overflow:hidden; border-radius:var(--radius-sm);
  aspect-ratio:4/3; cursor:pointer; background:var(--mist); }
.gtile img{ width:100%; height:100%; object-fit:cover; transition:.5s ease; }
.gtile:hover img{ transform:scale(1.06); }
.gtile__cat{ position:absolute; left:0; right:0; bottom:0; padding:22px 14px 12px; color:#fff;
  font-size:13px; font-weight:500; opacity:0; transform:translateY(8px); transition:.25s;
  background:linear-gradient(transparent, rgba(6,25,46,.8)); }
.gtile:hover .gtile__cat{ opacity:1; transform:none; }
.gtile.is-hidden{ display:none; }

/* lightbox */
.lightbox{ position:fixed; inset:0; z-index:100; display:none; align-items:center; justify-content:center;
  background:rgba(6,16,28,.94); padding:40px; }
.lightbox.is-open{ display:flex; }
.lightbox__img{ max-width:92vw; max-height:86vh; object-fit:contain; border-radius:6px;
  box-shadow:0 20px 60px rgba(0,0,0,.5); }
.lightbox__cap{ position:absolute; bottom:22px; left:0; right:0; text-align:center; color:#cdd9e6; font-size:14px; }
.lb-btn{ position:absolute; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.25);
  color:#fff; width:52px; height:52px; border-radius:50%; font-size:22px; cursor:pointer;
  display:flex; align-items:center; justify-content:center; transition:.2s; }
.lb-btn:hover{ background:rgba(255,255,255,.22); }
.lb-prev{ left:24px; top:50%; transform:translateY(-50%); }
.lb-next{ right:24px; top:50%; transform:translateY(-50%); }
.lb-close{ top:24px; right:24px; }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:1180px){
  .nav, .header__cta{ display:none; }
  .burger{ display:flex; }
  .header.open .nav{ display:flex; position:absolute; top:78px; left:0; right:0;
    flex-direction:column; gap:0; background:#fff; border-bottom:1px solid var(--line);
    padding:8px 24px 16px; box-shadow:var(--shadow-sm); }
  .header.open .nav a{ padding:14px 0; border-bottom:1px solid var(--line); }
  .grid-2{ grid-template-columns:1fr; gap:24px; }
  .hq{ grid-template-columns:1fr; gap:24px; }
  .cards{ grid-template-columns:repeat(2,1fr); }
  .services{ grid-template-columns:repeat(2,1fr); gap:28px 24px; }
  .gallery{ grid-template-columns:repeat(2,1fr); grid-auto-rows:200px; }
  .gallery__item--wide{ grid-column:span 2; }
  .gallery__item--tall{ grid-row:span 1; }
  .reps{ grid-template-columns:repeat(2,1fr); }
  .typecards{ grid-template-columns:repeat(2,1fr); }
  .ggrid{ grid-template-columns:repeat(3,1fr); }
  .team{ grid-template-columns:repeat(2,1fr); }
  .statband b{ font-size:34px; }
  .steps{ grid-template-columns:1fr; }
  .order__inner{ gap:28px; }
  .footer__inner{ grid-template-columns:1fr 1fr; gap:30px; }
}
@media (max-width:600px){
  .section{ padding:64px 0; }
  .topbar__item:first-child{ display:none; }
  .hero{ min-height:560px; }
  .hero__stats{ gap:28px; }
  .hero__stats b{ font-size:30px; }
  .cards, .services, .gallery, .reps, .typecards{ grid-template-columns:1fr; }
  .ggrid{ grid-template-columns:repeat(2,1fr); gap:10px; }
  .team{ grid-template-columns:1fr; }
  .statband{ grid-template-columns:1fr; }
  .statband div{ border-left:0; border-top:1px solid var(--line); }
  .statband div:first-child{ border-top:0; }
  .lb-prev{ left:10px; } .lb-next{ right:10px; }
  .codetable{ font-size:13.5px; }
  .codetable th, .codetable td{ padding:8px 9px; }
  .gallery{ grid-auto-rows:240px; }
  .gallery__item--wide{ grid-column:span 1; }
  .order__form{ grid-template-columns:1fr; }
  .footer__inner{ grid-template-columns:1fr; }
}

/* ---------- Order form (бланк заказа) ---------- */
.orderform{ max-width:940px; margin:32px auto 0; }
.orderform__hint{ color:var(--muted); font-size:15px; margin:0 0 26px; max-width:680px; }
.fset{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  padding:24px 26px; margin:0 0 20px; }
.fset__legend{ font-family:var(--serif); font-weight:700; font-size:21px; color:var(--navy);
  margin:0 0 18px; padding-bottom:12px; border-bottom:2px solid var(--blue); }
.fset__note{ color:var(--muted); font-size:13px; margin:-8px 0 16px; }
.fgrid{ display:grid; grid-template-columns:1fr 1fr; gap:16px 20px; }
.field{ display:flex; flex-direction:column; gap:6px; }
.field--full{ grid-column:1 / -1; }
.field > label{ font-size:13px; font-weight:600; color:var(--muted); }
.field .req{ color:var(--accent); }
.input,.textarea{ font:inherit; color:var(--ink); background:var(--mist);
  border:1.5px solid var(--line); border-radius:var(--radius-sm); padding:11px 14px; width:100%;
  transition:border-color .2s, background .2s; }
.input:focus,.textarea:focus{ outline:none; border-color:var(--blue-600); background:#fff; }
.textarea{ resize:vertical; min-height:130px; }
.checks{ display:flex; flex-wrap:wrap; gap:12px 22px; }
.check{ display:inline-flex; align-items:center; gap:9px; font-size:15px; color:var(--ink); cursor:pointer; }
.check input{ width:18px; height:18px; accent-color:var(--accent); }
/* замерная сетка: подпись слева + N столбцов «Парус 1/2/3» */
.measure{ display:grid; gap:10px; }
.measure__head,.measure__row{ display:grid;
  grid-template-columns:150px repeat(var(--cols,2),1fr); gap:12px; align-items:center; }
.measure__head span{ font-size:12px; font-weight:600; letter-spacing:.04em;
  text-transform:uppercase; color:var(--blue-600); text-align:center; }
.measure__label{ font-weight:600; color:var(--ink); }
.form-actions{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; margin-top:8px; }
.form-actions .note{ color:var(--muted); font-size:13px; max-width:360px; }
/* honeypot — скрыт от людей, видим ботам */
.hp{ position:absolute !important; left:-9999px; top:-9999px; width:1px; height:1px; overflow:hidden; }
/* страница-ответ order.php */
.result{ max-width:620px; margin:60px auto; text-align:center; }
.result__icon{ width:72px; height:72px; border-radius:50%; display:flex; align-items:center;
  justify-content:center; margin:0 auto 22px; font-size:36px; }
.result__icon--ok{ background:rgba(0,86,150,.1); color:var(--blue-600); }
.result__icon--err{ background:rgba(230,87,29,.12); color:var(--accent); }
@media (max-width:640px){
  .fgrid{ grid-template-columns:1fr; }
  .measure__head{ display:none; }
  .measure__row{ grid-template-columns:1fr; gap:6px; }
  .measure__label{ margin-top:8px; }
}

/* Launch polish: keyboard access, compact navigation and small screens. */
:focus-visible{ outline:3px solid var(--accent); outline-offset:5px; }
.skip-link{ position:fixed; z-index:200; top:12px; left:12px; padding:12px 20px;
  color:#fff; background:var(--navy); transform:translateY(-160%); }
.skip-link:focus{ transform:none; }
.nav a[aria-current="page"]{ color:var(--blue-600); }
.nav a[aria-current="page"]::after{ width:100%; }
.nav .nav__order{ display:none; color:var(--accent-600); font-weight:700; }
.card__link{ display:inline-flex; margin-top:18px; color:var(--blue); font-weight:600; }
.card__link:hover{ text-decoration:underline; text-underline-offset:5px; }
.orderform__hint a{ text-decoration:underline; text-underline-offset:3px; }
.prose--intro{ max-width:800px; }
.brand{ flex-shrink:0; }
.brand__tag{ white-space:nowrap; }
@media (max-width:1180px){
  .header.open .nav .nav__order{ display:block; }
  html:not(.js) .header__inner{ height:auto; min-height:78px; flex-wrap:wrap; padding-top:16px; padding-bottom:16px; }
  html:not(.js) .header .nav{ display:flex; flex-wrap:wrap; gap:12px 20px; width:100%; }
  html:not(.js) .header .nav .nav__order{ display:block; }
  html:not(.js) .burger{ display:none; }
}
@media (max-width:600px){
  .topbar__inner{ justify-content:center; gap:12px; flex-wrap:wrap; height:auto; min-height:42px; padding-top:8px; padding-bottom:8px; }
  .topbar__spacer{ display:none; }
  .topbar__item{ font-size:12px; }
  .hero__content{ padding-top:64px; padding-bottom:64px; }
  .hero__actions{ flex-direction:column; align-items:flex-start; }
  .hero__stats{ gap:24px; margin-top:36px; }
  .hero__stats li{ max-width:135px; }
  .hero__stats span{ font-size:12px; }
  .fset{ padding:18px 14px; min-width:0; }
  .input{ min-width:0; max-width:100%; font-size:16px; }
  .article, .prose{ overflow-wrap:anywhere; }
}
@media (prefers-reduced-motion:reduce){
  *, *::before, *::after{ animation:none!important; transition:none!important; }
}

/* Measurement guidance and optional sail configurations. */
.gallery__item--branded img{ object-position:50% 34%; }
.gallery__item--branded:hover img{ transform:none; }
.orderform__intro{ font-size:18px; max-width:760px; }
.orderform__notice{ padding:14px 18px; background:var(--mist); border-left:3px solid var(--blue); font-size:14px; margin:0 0 30px; }
.orderform .fset{ min-width:0; }
.sail-options{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.sail-option{ display:flex; align-items:center; gap:14px; padding:18px; border:1.5px solid var(--line); border-radius:12px; cursor:pointer; transition:background .2s,border-color .2s; }
.sail-option:hover{ border-color:var(--blue-300); }
.sail-option:has(input:checked){ background:var(--mist); border-color:var(--blue); }
.sail-option input{ accent-color:var(--blue); width:22px; height:22px; flex-shrink:0; }
.sail-option strong,.sail-option small{ display:block; }
.sail-option strong{ color:var(--navy); font-size:17px; }
.sail-option small{ color:var(--muted); font-size:13px; }
.order-step{ margin:30px 0 10px; font-size:26px; color:var(--navy); }
.measurement-guide{ border:1px solid var(--line); border-radius:14px; background:var(--mist); margin:0 0 26px; scroll-margin-top:110px; }
.measurement-guide > summary{ padding:18px 22px; color:var(--blue); font-weight:700; cursor:pointer; }
.measurement-guide > summary span{ display:block; margin:4px 0 0 20px; font-weight:400; color:var(--muted); font-size:14px; }
.measurement-guide__body{ padding:0 24px 24px; }
.measurement-guide__body p{ font-size:15px; }
.guide-steps{ padding-left:22px; }
.guide-steps li{ margin-bottom:12px; }
.guide-sheet{ background:#fff; border:1px solid var(--line); border-radius:10px; margin:12px 0; padding:0 18px 16px; }
.guide-sheet:not([open]){ padding-bottom:0; }
.guide-sheet summary{ cursor:pointer; font-weight:600; padding:16px 0; min-height:48px; color:var(--navy); }
.guide-sheet__image{ display:block; margin:16px auto; width:100%; max-width:480px; }
.guide-sheet__image img{ display:block; width:100%; height:auto; }
.guide-sheet a{ overflow-wrap:anywhere; }
.guide-download{ margin-top:14px; white-space:normal; text-align:center; }
.measurement-empty{ padding:20px; margin:0 0 30px; border:1px dashed var(--line); border-radius:12px; color:var(--muted); }
.sail-fields{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.sail-fields .field{ min-width:0; }
.sail-fields .input{ min-width:0; font-size:16px; }
.field__sail{ font-weight:400; }
.extra-sail{ margin-top:20px; border-top:1px solid var(--line); }
.extra-sail > summary{ padding:16px 0; cursor:pointer; font-weight:600; color:var(--blue); }
.extra-sail .fset__note{ margin:0 0 16px; }
.order-selection{ font-weight:600; color:var(--navy); }
.order-feedback{ padding:20px; border:1px solid var(--accent); border-radius:12px; }
.order-feedback.is-success{ border-color:var(--blue); background:var(--mist); }
.orderform [hidden]{ display:none !important; }
.orderform input,.orderform textarea{ font-size:16px; }
.orderform .btn:disabled{ opacity:.65; cursor:wait; }
@media (min-width:601px) and (max-width:980px){
  .gallery__item--branded{ grid-column:span 1; }
}
@media (max-width:640px){
  .orderform .fset{ padding:18px 16px; }
  .sail-fields{ grid-template-columns:1fr; gap:16px; }
  .sail-options{ gap:8px; }
  .sail-option{ padding:13px 10px; gap:8px; align-items:flex-start; }
  .sail-option strong{ font-size:15px; line-height:1.4; }
  .sail-option small{ font-size:12px; margin-top:5px; }
  .sail-option input{ margin-top:2px; width:20px; height:20px; }
  .measurement-guide > summary{ padding:16px; }
  .measurement-guide__body{ padding:0 16px 18px; }
  .guide-sheet{ padding-left:12px; padding-right:12px; }
  .orderform .form-actions .btn{ width:100%; }
}
@media (max-width:359px){ .sail-options{ grid-template-columns:1fr; } }
@media (max-width:600px){
  .header__inner{ gap:12px; }
  .burger{ min-width:44px; min-height:44px; justify-content:center; flex-shrink:0; }
}
@media (max-width:380px){
  .brand{ gap:8px; }
  .brand__mark{ width:36px; height:36px; }
  .brand__tag{ font-size:10px; letter-spacing:.08em; }
}

/* Service pages and quieter contact loading. */
.service-breadcrumb{font-size:13px;color:var(--muted);margin-bottom:30px}.service-hero{display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:64px}.service-hero .section__title{font-size:clamp(34px,4.5vw,54px);line-height:1.12}.service-lead{font-size:19px;line-height:1.7;color:var(--muted);max-width:780px;margin:20px 0 30px}.service-phone{display:block;width:fit-content;margin-top:20px;font-weight:600;color:var(--blue)}.service-photo{margin:0;background:var(--mist);border-radius:20px;overflow:hidden;height:430px}.service-photo img{height:100%;width:100%;object-fit:contain}.service-points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.service-points h3{color:var(--navy);font-size:22px}.service-points p{color:var(--muted);margin-bottom:0}.service-faq{max-width:900px}.service-faq details{padding:20px 0;border-bottom:1px solid var(--line)}.service-faq summary{font-size:19px;font-weight:600;cursor:pointer;color:var(--navy);padding:4px 0}.service-faq details p{color:var(--muted);margin-bottom:4px}.service-final{margin:50px 0 0;padding:32px;border-radius:16px;background:var(--mist)}.service-final h2{color:var(--navy);font:600 28px var(--serif);margin:0 0 12px}.service-final p{color:var(--muted);max-width:650px}.service-catalog{margin-top:36px}.service-catalog h2{font:600 24px var(--serif);color:var(--navy);line-height:1.25}.map-card{display:flex;flex-direction:column;justify-content:center;padding:34px;background:linear-gradient(135deg,#e8f2f8,var(--mist));min-height:330px}.map-card h3{font:600 30px var(--serif);color:var(--navy);margin:0 0 12px}.map-card .btn{width:fit-content;white-space:normal}.archive-notice{font-size:14px;padding:14px 20px;background:var(--mist);color:var(--muted);max-width:900px;margin:24px auto}.service-task{margin-bottom:22px;max-width:430px}.orderform input[type=file]{background:#fff;line-height:1.5}.orderform input[type=file]::file-selector-button{border:1px solid var(--line);border-radius:6px;padding:8px 10px;margin-right:12px;background:var(--mist);color:var(--blue);font:inherit;cursor:pointer}#attachment-help{margin:8px 0 0}.nav{gap:22px}
@media(max-width:980px){.service-hero{gap:30px;grid-template-columns:1fr 1fr}.service-points{grid-template-columns:1fr}.service-photo{height:360px}}
@media(max-width:640px){.service-hero{grid-template-columns:1fr;gap:28px}.service-photo{height:340px}.service-lead{font-size:17px}.service-final{padding:24px 20px}.service-faq summary{font-size:17px}.map-card{padding:24px}.archive-notice{margin:20px 24px}.orderform input[type=file]{font-size:13px;padding:10px}.orderform input[type=file]::file-selector-button{display:block;margin-bottom:8px}.nav{gap:16px}}

/* Optional on-device drafts and attachment feedback. */
.order-draft{margin:24px 0 32px;padding:24px;border:1px solid var(--line);border-radius:14px;background:var(--mist)}.draft-choice{align-items:flex-start;font-weight:600;line-height:1.5}.draft-choice input{flex:0 0 20px;width:20px;height:20px;margin:2px 0 0}.draft-note{font-size:13px;line-height:1.6;color:var(--muted);margin:10px 0 0}.draft-status{font-size:14px;color:var(--blue);margin:12px 0 0;overflow-wrap:anywhere}.draft-status:empty{display:none}.draft-link{display:inline-block;background:transparent;border:0;padding:10px 0;color:var(--blue);font:inherit;font-size:14px;text-decoration:underline;text-underline-offset:3px;cursor:pointer;min-height:44px;text-align:left}.draft-actions{display:flex;align-items:center;gap:12px 24px;flex-wrap:wrap;margin-top:16px}.draft-actions .btn{white-space:normal;text-align:center;font-size:14px;padding:12px 18px}#draft-found{padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid var(--line)}#draft-found>strong{color:var(--navy);font-size:19px}#draft-found-info{font-size:13px;color:var(--muted);margin:8px 0 0}.attachment-list{list-style:none;padding:0;margin:16px 0 0}.attachment-list li{display:flex;align-items:baseline;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:12px 0}.attachment-list span{overflow-wrap:anywhere;min-width:0;font-size:14px}.attachment-list small{white-space:nowrap;color:var(--muted);font-size:12px}.attachment-error,.draft-files{font-size:14px;line-height:1.6;padding:14px;border:1px solid #e5c4ad;background:#fff6ed;border-radius:8px;overflow-wrap:anywhere;color:#813b18}.orderform [aria-invalid=true]{border-color:#a54b20}@media(max-width:640px){.order-draft{padding:18px 16px}.draft-actions{gap:6px}.draft-actions .btn{width:100%}}

/* Tablet touch controls and menus that fit Safari's available viewport. */
.burger{min-width:44px;min-height:44px;justify-content:center;align-items:center;flex-shrink:0}
@media(max-width:1180px){.header.open .nav{max-height:var(--menu-available-height,calc(100vh - 120px));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-bottom:max(16px,env(safe-area-inset-bottom))}.header.open .nav a{flex-shrink:0}}
@media(hover:none) and (pointer:coarse){.nav a{min-height:44px;display:flex;align-items:center}.gtile__cat{opacity:1;transform:none}.gtile:hover img{transform:none}}
