/* =====================================================================
   STYLE.CSS — внешний вид всего сайта (обе версии: EN и FR)
   ---------------------------------------------------------------------
   Как устроен этот файл:
   1. Шрифты и цвета (переменные) — меняешь здесь, меняется везде.
   2. Общие стили (фон, текст, ссылки).
   3. Шапка и меню (header / nav / мобильное меню).
   4. Стили по секциям — в том же порядке, что и на странице:
      Hero → Portfolio → Video → Gallery → Equipment → Services →
      Testimonials → Contact → About → Footer.

   Подсказки:
   - "@media (max-width:600px)" = правила только для экранов уже 600px
     (телефоны). "min-width" — наоборот, только для широких экранов.
   - clamp(мин, желаемое, макс) — размер, который плавно меняется
     вместе с шириной экрана, но не выходит за мин/макс.
   - "rem" — размер относительно базового шрифта (1rem ≈ 16px).
   ===================================================================== */


/* ---------------------------------------------------------------------
   1. ШРИФТЫ И ЦВЕТА
   --------------------------------------------------------------------- */

/* Рукописный шрифт для подписи "Alexander Khait".
   Файл урезан только до букв имени (чтобы весил 40 КБ вместо 580 КБ).
   ВАЖНО: если захочешь написать этим шрифтом другие слова — нужен
   полный файл шрифта (см. README). */
@font-face{
  font-family:'Sisterhood';
  src:url('../assets/fonts/sisterhood.woff2') format('woff2');
  font-display:swap;
}

/* Палитра сайта — тёплая тёмная гамма (в духе тёмной темы Claude).
   Чтобы поменять цвет везде — меняй значение тут. */
:root{
  --bg:#1f1e1d;          /* основной фон страницы (тёмный тёплый графит) */
  --bg-deep:#181716;     /* более тёмный фон: шапка, подвал, поля формы */
  --bg-panel:#292826;    /* фон карточек (услуги, видео, отзывы, плеер) */
  --bg-panel-2:#31302d;  /* фон карточки при наведении мыши */
  --line:#3b3a36;        /* заметные линии и рамки */
  --line-soft:rgba(250,249,245,.07); /* еле заметные рамки карточек */
  --text:#faf9f5;        /* основной текст (тёплый белый) */
  --text-dim:#c2c0b6;    /* второстепенный текст (описания) */
  --text-faint:#8f8d85;  /* самый бледный текст (подписи, номера) */
  --accent:#f2f0ea;      /* акцентный цвет — тёплый белый (кнопки, вкладки, цены, надписи) */
  --accent-hover:#ffffff;/* акцент при наведении */
  --accent-dim:#5a5954;  /* приглушённый акцент (мелкие линии) */
  --accent-glow:rgba(250,249,245,.10); /* подсветка вокруг активного поля формы и точек таймлайна */
  --shade:rgba(0,0,0,.38); /* тёмная "тень" вверху страницы — даёт глубину. Больше число = темнее */
  --on-accent:#1f1e1d;   /* цвет текста НА акцентной кнопке */

  /* "Объём": скругления углов и тени карточек */
  --radius:14px;         /* скругление карточек */
  --radius-sm:8px;       /* скругление кнопок и полей */
  --shadow:0 1px 0 rgba(255,255,255,.04) inset, 0 12px 32px -14px rgba(0,0,0,.55);

  /* Шрифты: serif — заголовки, script — подпись, body — основной текст,
     mono — мелкие подписи капсом. Newsreader/Inter/IBM Plex Mono
     подключаются из Google Fonts в <head> каждой страницы. */
  --serif:'Newsreader', serif;
  --script:'Sisterhood', cursive;
  --body:'Inter', sans-serif;
  --mono:'IBM Plex Mono', monospace;
}


/* ---------------------------------------------------------------------
   2. ОБЩИЕ СТИЛИ
   --------------------------------------------------------------------- */
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; background:var(--bg);}  /* плавная прокрутка к якорям меню */
body{
  /* фон + мягкое затемнение сверху справа — даёт ощущение глубины */
  background:
    radial-gradient(1100px 700px at 90% -10%, var(--shade), transparent 60%),
    var(--bg);
  color:var(--text);
  font-family:var(--body);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}

/* Текст, который видят только поисковики и программы чтения с экрана
   (для незрячих), но не обычные посетители. */
.visually-hidden{
  position:absolute !important; width:1px; height:1px; overflow:hidden;
  clip:rect(0 0 0 0); white-space:nowrap;
}

/* Лёгкий "плёночный" шум поверх всего сайта.
   Сделать сильнее/слабее — меняй opacity (.05 = 5%). */
.grain{
  position:fixed; inset:0; pointer-events:none; z-index:50;
  opacity:.035; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}


/* ---------------------------------------------------------------------
   3. ШАПКА И МЕНЮ
   --------------------------------------------------------------------- */

/* Шапка, прилипшая к верху экрана.
   align-items:center — логотип, меню и переключатель языка
   выровнены по центру высоты шапки. padding — отступы сверху/снизу
   (первое число) и по бокам (второе). */
header{
  position:fixed; top:0; left:0; right:0; z-index:40;
  display:flex; align-items:center; justify-content:space-between;
  padding:32px clamp(20px,5vw,64px);  /* высота шапки: первое число — отступ сверху и снизу */
  /* Сплошная шапка цвета фона сайта (#1f1e1d). Тот же цвет стоит в
     <meta name="theme-color">, поэтому на iPhone шапка сливается
     с верхней панелью браузера. Лёгкая тень снизу отделяет шапку от
     содержимого при прокрутке — сила тени задаётся в box-shadow. */
  background:var(--bg);
  box-shadow:0 6px 18px -6px rgba(0,0,0,.55);
}
/* Когда мобильное меню открыто, тень у шапки убираем —
   шапка и меню выглядят как одна сплошная панель */
header.menu-open{box-shadow:none;}

/* Логотип слева: подпись + мелкая строка "Recording & Mixing Engineer".
   У рукописного шрифта длинные "хвосты" букв вверх и вниз, поэтому
   line-height и padding-top подобраны так, чтобы подпись визуально
   стояла по центру шапки и не обрезалась. */
.logo{
  font-family:var(--script); font-size:1.6rem; font-weight:400; color:var(--text);  /* размер подписи в шапке */
  display:flex; align-items:center; gap:20px; line-height:1.5; padding-top:4px; white-space:nowrap;
}
/* Мелкая строка "Recording & Mixing Engineer" рядом с подписью.
   Чтобы спрятать — добавь ниже правило:  .logo span{display:none;}  */
.logo span{font-family:var(--mono); font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; color:var(--text-dim); white-space:nowrap;}
@media (max-width:600px){
  header{padding-top:24px; padding-bottom:24px;}
  .logo{font-size:1.3rem; flex-direction:column; align-items:flex-start; gap:4px; line-height:1.4;}
  .logo span{display:none;}  /* на телефоне строку "Recording & Mixing Engineer" в шапке не показываем */
}

/* Правая часть шапки: меню + переключатель языка */
.header-right{display:flex; align-items:center; gap:clamp(16px,3vw,36px);}

/* Меню для компьютера */
nav.links{display:flex; gap:clamp(16px,3vw,36px); font-size:.85rem; letter-spacing:.02em;}
nav.links a{color:var(--text-dim); transition:color .2s; white-space:nowrap;}
nav.links a:hover{color:var(--accent);}

/* Переключатель языка EN / FR */
.lang-switch{font-family:var(--mono); font-size:.72rem; letter-spacing:.08em; display:flex; gap:8px; color:var(--text-faint);}
.lang-switch a{color:var(--text-dim);}
.lang-switch a:hover{color:var(--accent);}
.lang-switch .current{color:var(--accent);}  /* текущий язык подсвечен */

/* Кнопка-"бургер" (три полоски) — видна на планшетах и телефонах */
.burger{
  display:none; align-items:center; justify-content:center; flex-direction:column; gap:6px;
  cursor:pointer; background:transparent; border:none; padding:6px;
}
.burger span{width:22px; height:1.5px; background:var(--text); display:block; transition:.2s;}

/* Выпадающее мобильное меню (выезжает сверху, того же цвета, что шапка).
   Всё остальное под ним затемняет .nav-scrim ниже. */
.mobile-nav{
  position:fixed; top:0; left:0; right:0; z-index:35;
  background:var(--bg);  /* тот же цвет, что у шапки */
  box-shadow:0 14px 30px -12px rgba(0,0,0,.6);
  display:flex; flex-direction:column; gap:22px;
  padding:110px 32px 40px; max-height:70svh; overflow:auto;
  transform:translateY(-100%); transition:transform .35s ease;
}
.mobile-nav.open{transform:translateY(0);}
.mobile-nav a{font-family:var(--serif); font-size:1.5rem; color:var(--text);}
.mobile-nav a:hover{color:var(--accent);}

/* Затемнение фона, когда мобильное меню открыто */
.nav-scrim{
  position:fixed; inset:0; z-index:34; background:rgba(0,0,0,.55);  /* насколько темнеет фон при открытом меню */
  opacity:0; pointer-events:none; transition:opacity .3s;
}
.nav-scrim.open{opacity:1; pointer-events:auto;}

/* Когда окно сужается и строке "Recording & Mixing Engineer" не хватает
   места рядом с меню — она просто исчезает (а не переносится вниз).
   1360px — ширина, ниже которой строка + меню уже не помещаются в одну линию.
   Ниже 1200px меню сворачивается в бургер и место снова появляется,
   поэтому там строка видна; уже 760px снова скрыта. */
@media (min-width:1201px) and (max-width:1360px){
  .logo span{display:none;}
}
/* На узких экранах (маленький планшет) строке тоже не хватает места */
@media (max-width:760px){
  .logo span{display:none;}
}
/* На экранах уже 1200px (планшеты, телефоны) прячем обычное меню
   и показываем бургер. Если добавишь пункты в меню и оно перестанет
   влезать — увеличь это число. */
@media (max-width:1200px){
  nav.links{display:none;}
  .burger{display:flex;}
}


/* ---------------------------------------------------------------------
   ОБЩЕЕ ДЛЯ ВСЕХ СЕКЦИЙ
   --------------------------------------------------------------------- */
section{padding:clamp(70px,10vw,120px) clamp(20px,6vw,64px);}
/* scroll-margin — чтобы при переходе из меню заголовок секции
   не прятался под прилипшей шапкой */
section[id]{scroll-margin-top:80px;}

/* Маленькая надпись капсом над заголовком секции ("— PORTFOLIO") */
.eyebrow{
  font-family:var(--mono); font-size:.72rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--accent); margin-bottom:14px; display:flex; align-items:center; gap:10px;
}
.eyebrow::before{content:''; width:22px; height:1px; background:var(--accent-dim);}

/* Заголовок секции и вводный абзац под ним */
h2{font-family:var(--serif); font-weight:500; font-size:clamp(2rem,4.2vw,3.2rem); letter-spacing:-.01em;}
.lede{color:var(--text-dim); font-size:1.05rem; max-width:640px; margin-top:16px;}

/* Серая курсивная сноска под блоком ("More videos soon" и т.п.) */
.portfolio-note{margin-top:22px; font-size:.85rem; color:var(--text-faint); font-style:italic;}
/* Ссылка внутри сноски (например, на Spotify) — подчёркнутая, ярче текста */
.portfolio-note a{color:var(--text-dim); text-decoration:underline; text-underline-offset:3px; transition:color .2s;}
.portfolio-note a:hover{color:var(--accent);}


/* ---------------------------------------------------------------------
   HERO — первый экран
   --------------------------------------------------------------------- */
.hero{
  min-height:100svh; display:flex; flex-direction:column; justify-content:center;
  position:relative; padding-top:260px;
  background:
    radial-gradient(ellipse 70% 55% at 75% 0%, var(--shade), transparent 65%),
    radial-gradient(ellipse 60% 45% at 0% 100%, rgba(250,249,245,.035), transparent 70%);
  border-bottom:1px solid var(--line-soft);
}
/* h1 — главный заголовок страницы для Google. Внутри две строки:
   большая подпись и строка с профессией. */
.hero h1{font-weight:400;}
.hero-sig{display:block; font-family:var(--script); font-size:clamp(3rem,9vw,6.5rem); line-height:.95; font-weight:400; white-space:nowrap;}
.hero-role{
  display:block; font-family:var(--mono); font-size:.85rem; letter-spacing:.15em; text-transform:uppercase;
  color:var(--text-dim); margin-top:96px; white-space:nowrap; line-height:1.6;
}
@media (max-width:600px){
  .hero-sig{font-size:clamp(2.1rem,12vw,3.4rem);}
  .hero-role{font-size:.5rem; letter-spacing:.05em; margin-top:28px;}
}
/* Фраза под заголовком. <em> внутри — выделенное слово. */
.hero-tag{
  /* обычный (не курсивный) шрифт Inter — легче читается, чем курсивный с засечками */
  font-family:var(--body); font-weight:400; line-height:1.55;
  font-size:clamp(1.05rem,1.8vw,1.3rem); color:var(--text); max-width:620px; margin-top:26px;
}
.hero-tag em{color:var(--accent); font-style:normal; font-weight:500;}
.scroll-hint{position:absolute; bottom:36px; left:clamp(20px,6vw,64px); font-family:var(--mono); font-size:.7rem; color:var(--text-faint); letter-spacing:.1em;}


/* ---------------------------------------------------------------------
   PORTFOLIO — аудиоплеер
   --------------------------------------------------------------------- */
/* Вкладки-фильтры "Mixing" / "Recording & Production" */
.reel-tabs{display:flex; gap:10px; margin-top:28px; flex-wrap:wrap;}
.reel-tab{
  font-family:var(--mono); font-size:.75rem; padding:9px 18px; border:1px solid var(--line);
  border-radius:999px; color:var(--text-dim); cursor:pointer; transition:.2s; letter-spacing:.03em;
  background:var(--bg-panel);
}
.reel-tab.active{color:var(--on-accent); background:var(--accent); border-color:var(--accent);}
.reel-tab:hover:not(.active){border-color:var(--accent-dim); color:var(--text);}

/* Список треков — одна карточка со скруглёнными углами и тенью.
   Каждая строка — сетка из 3 колонок:
   [кнопка play] [название + артист] [роль] */
.track-list{
  margin-top:32px; background:var(--bg-panel); border:1px solid var(--line-soft);
  border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden;
}
.track{
  display:grid; grid-template-columns:32px 1fr auto; gap:18px; align-items:center;
  position:relative;  /* чтобы полоска прогресса позиционировалась внутри строки */
  padding:16px 20px; border-bottom:1px solid var(--line-soft); transition:background .15s;
}
.track:last-child{border-bottom:none;}
.track:hover{background:var(--bg-panel-2);}
.track-name{font-weight:500;}
.track-artist{color:var(--text-dim); font-size:.88rem; margin-top:2px;}
.track-role{font-family:var(--mono); font-size:.68rem; color:var(--accent); letter-spacing:.06em; text-transform:uppercase; white-space:nowrap;}
@media (max-width:600px){
  .track{grid-template-columns:32px 1fr; gap:12px;}
  .track-role{display:none;}  /* на телефоне прячем колонку "роль", чтобы влезло */
}
/* Круглая кнопка play/pause */
.track-play{
  width:30px; height:30px; border-radius:50%; border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; color:var(--text-dim); flex-shrink:0;
  background:transparent; cursor:pointer; font-size:.7rem; padding:0; transition:.2s;
}
.track:hover .track-play{border-color:var(--accent); color:var(--accent);}
/* Кнопка играющего трека: оранжевый круг с тёмной иконкой паузы.
   ".track:hover" в правиле нужен, чтобы при наведении мыши иконка
   не перекрашивалась в оранжевый и не пропадала на оранжевом фоне. */
.track-play.playing,
.track:hover .track-play.playing{background:var(--accent); border-color:var(--accent); color:var(--on-accent);}
/* Полоска прогресса играющего трека (кликабельна — перемотка).
   Она "лежит" внизу строки трека поверх отступа (position:absolute),
   поэтому при нажатии play строка НЕ увеличивается и список не прыгает.
   Сама зона клика — 12px в высоту (чтобы легко попасть мышкой),
   а видимая линия — 2px посередине. */
.track-progress{
  position:absolute; left:20px; right:20px; bottom:3px; height:12px;
  cursor:pointer; opacity:0; pointer-events:none; transition:opacity .2s;
  background:linear-gradient(var(--line),var(--line)) center / 100% 2px no-repeat;
}
.track.is-current .track-progress{opacity:1; pointer-events:auto;}
.track-progress-fill{height:2px; margin-top:5px; width:0; background:var(--accent);}


/* ---------------------------------------------------------------------
   VIDEO — YouTube
   --------------------------------------------------------------------- */
/* auto-fit + minmax(280px) = столько колонок, сколько влезет,
   каждая не уже 280px. Добавишь видео — сетка перестроится сама. */
.video-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:20px; margin-top:36px;}
.video-card{background:var(--bg-panel); border:1px solid var(--line-soft); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden;}
.video-frame{width:100%; aspect-ratio:16/9; display:block; border:0;}
.video-meta{padding:14px 16px;}
.video-title{font-size:.92rem; font-weight:500;}
.video-tag{font-family:var(--mono); font-size:.65rem; color:var(--accent); letter-spacing:.06em; text-transform:uppercase; margin-top:4px; display:block;}

/* "Лёгкое" YouTube-видео: пока не нажмёшь — показывается только
   картинка-превью. Страница грузится намного быстрее (важно для Google). */
.yt-lite{position:relative; width:100%; aspect-ratio:16/9; background:#000 center/cover no-repeat; cursor:pointer; border:0; padding:0; display:block;}
.yt-lite::after{  /* круглая кнопка play поверх превью */
  content:'▶'; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:62px; height:62px; border-radius:50%; background:rgba(24,23,22,.8); color:var(--text);
  display:flex; align-items:center; justify-content:center; font-size:1.1rem; transition:.2s;
  border:1px solid var(--accent-dim);
}
.yt-lite:hover::after{background:var(--accent); color:var(--on-accent);}


/* ---------------------------------------------------------------------
   GALLERY — фото
   --------------------------------------------------------------------- */
.gallery-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:14px; margin-top:36px;}
.gallery-item{aspect-ratio:4/5; background:var(--bg-panel); border:1px solid var(--line-soft); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden; position:relative;}
.gallery-item img{width:100%; height:100%; object-fit:cover; display:block;}  /* фото обрезается под рамку 4:5 */
.gallery-item.placeholder{display:flex; align-items:center; justify-content:center; font-family:var(--mono); font-size:.68rem; color:var(--text-faint); text-align:center; padding:12px; letter-spacing:.04em;}


/* ---------------------------------------------------------------------
   EQUIPMENT — оборудование
   --------------------------------------------------------------------- */
.equipment-grid{display:grid; grid-template-columns:1fr; gap:16px; margin-top:40px;}
@media (min-width:800px){ .equipment-grid{grid-template-columns:repeat(2,1fr);} }
.equip-cat{background:var(--bg-panel); border:1px solid var(--line-soft); border-radius:var(--radius); box-shadow:var(--shadow); padding:30px 28px;}
.equip-cat h3{font-family:var(--serif); font-weight:500; font-size:1.2rem; margin-bottom:14px;}
.equip-cat ul{list-style:none; display:flex; flex-direction:column; gap:8px;}
.equip-cat li{color:var(--text-dim); font-size:.92rem; padding-left:16px; position:relative;}
.equip-cat li::before{content:'—'; position:absolute; left:0; color:var(--accent-dim);}  /* тире перед каждым пунктом */


/* ---------------------------------------------------------------------
   SERVICES — услуги и цены
   --------------------------------------------------------------------- */
/* 4 колонки на широком экране, 1 колонка на телефоне.
   Если будет 3 или 5 услуг — поменяй repeat(4,...) на нужное число. */
.services{display:grid; grid-template-columns:1fr; gap:16px; margin-top:40px;}
@media (min-width:900px){ .services{grid-template-columns:repeat(4,1fr);} }
/* Каждая услуга — карточка. При наведении слегка "приподнимается". */
.service{
  background:var(--bg-panel); border:1px solid var(--line-soft); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:34px 28px; display:flex; flex-direction:column; gap:14px;
  transition:transform .25s ease, border-color .25s ease;
}
.service:hover{transform:translateY(-3px); border-color:var(--accent-dim);}
.service h3{font-family:var(--serif); font-weight:500; font-size:1.35rem;}
.service p{color:var(--text-dim); font-size:.92rem;}
/* Строка с ценой — всегда прижата к низу карточки */
.service-price{
  margin-top:auto; padding-top:14px; border-top:1px solid var(--line);
  font-family:var(--mono); font-size:.82rem; color:var(--accent); letter-spacing:.02em;
}


/* ---------------------------------------------------------------------
   TESTIMONIALS — отзывы
   --------------------------------------------------------------------- */
.testimonial{min-height:220px; background:var(--bg-panel); border:1px solid var(--line-soft); border-radius:var(--radius); box-shadow:var(--shadow); padding:28px 26px; display:flex; flex-direction:column; gap:16px;}
/* Текст отзыва: обычный шрифт Inter (не курсив) — легко читается на любом экране */
.testimonial-quote{font-family:var(--body); font-size:.98rem; line-height:1.7; color:var(--text-dim);}
.testimonial-quote::before{content:'“'; color:var(--accent);}  /* кавычки добавляются автоматически */
.testimonial-quote::after{content:'”'; color:var(--accent);}
.testimonial-name{font-family:var(--mono); font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; color:var(--text-faint); margin-top:auto;}


/* ---------------------------------------------------------------------
   CAROUSEL — горизонтальная карусель (сейчас используется для отзывов)
   --------------------------------------------------------------------- */
.carousel{margin-top:36px;}
/* Лента карточек: прокручивается по горизонтали и "защёлкивается"
   на каждой карточке (scroll-snap). Отступы сверху/снизу нужны,
   чтобы тени карточек не обрезались. */
.carousel-track{
  --per-view:3;           /* сколько карточек видно сразу на компьютере */
  --gap:20px;             /* расстояние между карточками */
  display:flex; gap:var(--gap);
  overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth;
  padding:6px 2px 24px; margin:-6px -2px -24px;
  scroll-padding-inline:2px;  /* карточки "защёлкиваются" ровно по левому краю */
  scrollbar-width:none;   /* прячем полосу прокрутки (Firefox) */
  outline:none;
}
.carousel-track::-webkit-scrollbar{display:none;}  /* прячем полосу прокрутки (Safari/Chrome) */
.carousel-track > *{
  flex:0 0 calc((100% - (var(--per-view) - 1) * var(--gap)) / var(--per-view));
  scroll-snap-align:start;
}
@media (max-width:1000px){ .carousel-track{--per-view:2;} }                 /* планшет */
@media (max-width:640px){  .carousel-track{--per-view:1.15; --gap:14px;} }  /* телефон: видно край следующей карточки */

/* Карусель видео: на компьютере/ноутбуке видно 4 превью сразу,
   на экранах поуже — 3, на планшете — 2, на телефоне — одно (с краем следующего) */
.video-grid.carousel-track{--per-view:4;}
@media (max-width:1200px){ .video-grid.carousel-track{--per-view:3;} }
@media (max-width:1000px){ .video-grid.carousel-track{--per-view:2;} }
@media (max-width:640px){  .video-grid.carousel-track{--per-view:1.15;} }

/* Нижняя панель: точки слева, стрелки справа */
.carousel-controls{display:flex; align-items:center; justify-content:space-between; margin-top:22px; gap:16px;}
.carousel-controls.is-hidden{display:none;}  /* все карточки и так видны — листать нечего */
.carousel-dots{display:flex; gap:8px;}
.carousel-dot{
  width:7px; height:7px; border-radius:999px; background:var(--line); border:none; padding:0;
  cursor:pointer; transition:width .25s, background .25s;
}
.carousel-dot.active{width:22px; background:var(--accent);}  /* текущая позиция — вытянутая оранжевая */
/* Стрелки карусели скрыты — листать можно точками, свайпом и тачпадом.
   Чтобы вернуть стрелки, замени display:none на display:flex */
.carousel-arrows{display:none; gap:10px;}
.carousel-btn{
  width:42px; height:42px; border-radius:50%; border:1px solid var(--line);
  background:var(--bg-panel); color:var(--text); cursor:pointer;
  display:flex; align-items:center; justify-content:center; transition:.2s; box-shadow:var(--shadow);
}
.carousel-btn:hover:not(:disabled){border-color:var(--accent); color:var(--accent);}
.carousel-btn:disabled{opacity:.35; cursor:default;}  /* дошли до края — стрелка бледнеет */


/* ---------------------------------------------------------------------
   CONTACT — форма
   --------------------------------------------------------------------- */
.contact-wrap{display:grid; grid-template-columns:1fr 1.1fr; gap:60px; margin-top:36px;}
@media (max-width:820px){ .contact-wrap{grid-template-columns:1fr;} }
.contact-info p{color:var(--text-dim); margin-bottom:16px;}
.contact-info .highlight{color:var(--text); font-family:var(--body); font-weight:500; font-size:1.08rem; margin-top:24px;}
form{display:flex; flex-direction:column; gap:16px;}
.field{display:flex; flex-direction:column; gap:6px;}
label{font-family:var(--mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--text-faint);}
input, select, textarea{
  background:var(--bg-deep); border:1px solid var(--line); color:var(--text);
  padding:12px 14px; font-family:var(--body); font-size:.92rem; border-radius:var(--radius-sm);
}
input:focus, select:focus, textarea:focus{outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-glow);}
textarea{resize:vertical; min-height:100px;}
/* Выпадающий список (Subject): убираем стандартный вид системы (в Safari он
   выглядит как старая "стеклянная" кнопка) и рисуем свою стрелку справа,
   чтобы список выглядел так же, как остальные поля. */
select{
  -webkit-appearance:none; appearance:none; cursor:pointer;
  padding-right:42px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23c2c0b6' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 16px center; background-size:12px 8px;
}
select option{background:var(--bg-deep); color:var(--text);}
.hidden-field{display:none;}  /* скрытое поле-ловушка для спам-ботов */
button.submit{
  margin-top:6px; background:var(--accent); color:var(--on-accent); border:none; padding:14px 20px; border-radius:var(--radius-sm);
  box-shadow:0 8px 20px -12px rgba(0,0,0,.7);
  font-family:var(--mono); font-size:.8rem; letter-spacing:.08em; text-transform:uppercase;
  cursor:pointer; transition:.2s;
}
button.submit:hover{background:var(--accent-hover);}


/* ---------------------------------------------------------------------
   ABOUT — биография и таймлайн
   --------------------------------------------------------------------- */
.about-wrap{display:grid; grid-template-columns:.8fr 1.2fr; gap:56px; margin-top:36px; align-items:start;}
@media (max-width:820px){ .about-wrap{grid-template-columns:1fr;} }
/* Фото: обрезается под 4:5, делается ч/б. Убрать ч/б — удали grayscale(1). */
.about-photo{aspect-ratio:4/5; width:100%; height:auto; object-fit:cover; border:1px solid var(--line-soft); border-radius:var(--radius); box-shadow:var(--shadow); filter:grayscale(1) contrast(1.05);}
.about-copy p{color:var(--text-dim); margin-bottom:18px; font-size:.98rem;}
.about-copy strong{color:var(--text); font-weight:500;}

/* Таймлайн: вертикальная линия с точками */
.timeline{margin-top:30px; border-left:1px solid var(--line); padding-left:22px; display:flex; flex-direction:column; gap:18px;}
.tl-item{position:relative; font-size:.85rem;}
.tl-item::before{content:''; position:absolute; left:-27px; top:6px; width:7px; height:7px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 4px var(--accent-glow);}
.tl-year{font-family:var(--mono); color:var(--accent); font-size:.72rem; letter-spacing:.04em;}
.tl-role{color:var(--text); margin-top:2px;}
.tl-place{color:var(--text-faint); font-size:.82rem;}


/* ---------------------------------------------------------------------
   FOOTER — подвал
   --------------------------------------------------------------------- */
footer{
  padding:48px clamp(20px,6vw,64px) 40px; border-top:1px solid var(--line-soft);
  background:var(--bg-deep);
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px;
}
.footer-sig{font-family:var(--script); font-size:1.5rem; font-weight:400;}
.socials{display:flex; gap:22px; font-family:var(--mono); font-size:.78rem; letter-spacing:.04em; flex-wrap:wrap;}
.socials a{color:var(--text-dim); border-bottom:1px solid transparent; padding-bottom:2px;}
.socials a:hover{color:var(--accent); border-color:var(--accent);}
.footer-note{width:100%; font-family:var(--mono); font-size:.68rem; color:var(--text-faint); margin-top:8px;}


/* ---------------------------------------------------------------------
   Маленькие страницы: "спасибо за сообщение" и 404
   --------------------------------------------------------------------- */
.simple-page{
  min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:40px;
}
.simple-page h1{font-family:var(--serif); font-weight:500; font-size:2.2rem; margin-bottom:16px;}
.simple-page p{color:var(--text-dim); max-width:440px;}
.simple-page a{color:var(--accent); margin-top:28px; display:inline-block; border-bottom:1px solid var(--accent-dim); padding-bottom:2px;}
