@charset "utf-8";
/* Современная адаптивная вёрстка публичной части сайта photo-kiss.ru.
   Минималистичный светлый стиль: центрированный логотип, тонкое верхнее меню,
   фотосетки на всю ширину. Фирменные цвета — бордовый и красный акцент. */

@font-face {
  font-family: 'Menuet script';
  src: url(/css/Menuet_script.woff) format('woff'), url(/css/Menuet_script.ttf) format('truetype');
  font-display: swap;
}

:root {
  --brand: #4f090f;   /* фирменный бордовый */
  --accent: #ec4e49;  /* акцентный красный */
  --text: #1f1f1f;
  --muted: #7a7a7a;
  --border: #e3dede;  /* тёплый светло-серый (наследник #dcdcdc/#e7e1e1) */
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: #fff;
  color: var(--text);
  font-family: 'Segoe UI', 'Helvetica Neue', Arial, Verdana, sans-serif;
  font-size: 16px;
  line-height: 1.6;
}

img { max-width: 100%; height: auto; }
a { color: var(--accent); border: none; }
ol, ul { list-style: none; padding: 0; margin: 0; }

/*======================================================================
  Шапка: логотип по центру, под ним одна строка меню
======================================================================*/
.site-header {
  position: relative;
  background: #fff;
  border-bottom: 1px solid var(--border);
}

.header-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 30px 16px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.site-logo { display: block; margin-bottom: 14px; }
.site-logo img { display: block; width: 372px; max-width: 78vw; height: auto; }

/* Основное меню — тонкое, разреженное, капителью */
.site-nav { width: 100%; }

.nav-list {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0 6px;
}

.nav-item { position: relative; }

.nav-item > a,
.nav-item > span {
  display: block;
  padding: 14px 12px 16px;
  color: var(--text);
  font-size: 13px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition: color 0.15s ease;
}

.nav-item > a:hover,
.nav-item > span:hover { color: var(--accent); }

.nav-item--current > a,
.nav-item--current > span { color: var(--brand); box-shadow: inset 0 -2px 0 var(--brand); }

/* Выпадающее подменю */
.submenu {
  display: none;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  min-width: 240px;
  background: #fff;
  border: 1px solid var(--border);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.10);
  padding: 10px 0;
  z-index: 1000;
}

.has-submenu:hover > .submenu,
.has-submenu:focus-within > .submenu { display: block; }

.submenu li { text-align: center; }

.submenu a {
  display: block;
  padding: 9px 24px;
  color: var(--text);
  font-size: 14px;
  text-decoration: none;
  white-space: nowrap;
}

.submenu a:hover { color: var(--accent); }

/* Мега-меню «Портфолио»: группы категорий колонками */
.submenu--mega {
  display: none;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  background: #fff;
  border: 1px solid var(--border);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.10);
  padding: 22px 28px;
  z-index: 1000;
  width: max-content;
  max-width: min(92vw, 900px);
}

.has-submenu:hover > .submenu--mega,
.has-submenu:focus-within > .submenu--mega { display: flex; flex-wrap: wrap; gap: 8px 36px; }

.mega-group { min-width: 150px; }

.mega-title {
  display: block;
  font-family: 'Menuet script', 'Comic Sans MS', cursive;
  font-size: 26px;
  line-height: 1.2;
  color: var(--brand);
  text-decoration: none;
  margin-bottom: 6px;
  white-space: nowrap;
}

a.mega-title:hover { color: var(--accent); }

.mega-group a:not(.mega-title) {
  display: block;
  padding: 3px 0;
  color: var(--text);
  font-size: 14px;
  text-decoration: none;
  white-space: nowrap;
}

.mega-group a:not(.mega-title):hover { color: var(--accent); }

a.current_portfolio { color: var(--brand); font-weight: bold; }

/* Кнопка мобильного меню */
.nav-toggle {
  display: none;
  position: absolute;
  top: 22px;
  right: 14px;
  width: 44px;
  height: 40px;
  padding: 8px 9px;
  background: none;
  border: 1px solid var(--border);
  border-radius: 8px;
  cursor: pointer;
}

.nav-toggle span {
  display: block;
  height: 3px;
  margin: 4px 0;
  border-radius: 2px;
  background: var(--brand);
}

/*======================================================================
  Контент: одна колонка на белом
======================================================================*/
.main {
  width: min(1200px, 100% - 32px);
  margin: 34px auto;
  flex: 1 0 auto;
}

h1 {
  font-family: 'Times New Roman', Georgia, serif;
  font-size: clamp(26px, 4vw, 34px);
  font-weight: normal;
  font-style: italic;
  text-align: center;
  margin: 0 0 26px;
}

h2.services { font-size: 20px; font-style: italic; margin: 20px 0 8px; color: var(--brand); }

ul.services { list-style: disc outside; padding-left: 28px; font-size: 15px; }
ul.services li { margin: 4px 0; }

p.services, p.services_cost { font-size: 15px; }

p.note { font-family: 'Times New Roman', Georgia, serif; font-size: 15px; margin-bottom: 0; }
ul.note { list-style: none; font-family: 'Times New Roman', Georgia, serif; font-size: 15px; padding-left: 12px; }
ul.note li::before { content: "— "; }

.sale { font-weight: bold; font-size: 24px; }

/* Картинка, обтекаемая текстом (о себе, сертификат и т.п.) */
.img-right {
  float: right;
  margin: 0 0 12px 20px;
}

/*======================================================================
  Фотосетки (главная и портфолио)
======================================================================*/
#gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: 12px;
}

#gallery a { display: block; }

#gallery img {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  transition: opacity 0.15s ease;
}

#gallery a:hover img { opacity: 0.85; }

/* Главная: крупные плитки как в портфолио-конструкторах.
   Селектор с #gallery — иначе правила #gallery перебивают класс по специфичности. */
#gallery.home-gallery { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 14px; }
#gallery.home-gallery img { aspect-ratio: 3 / 2; }

/*======================================================================
  Отзывы
======================================================================*/
div.comment { padding: 16px 0; text-align: justify; display: flow-root; border-bottom: 1px solid var(--border); }
div.comment img { margin: 0 16px 8px 0; }

/*======================================================================
  Блоки тарифов
======================================================================*/
div.cost-block { float: left; width: 50%; padding: 10px 24px 10px 0; }

/*======================================================================
  Партнёры
======================================================================*/
p.partner_info { min-height: 72px; text-align: justify; }

/*======================================================================
  Иконки соцсетей (спрайт)
======================================================================*/
.spritness { background: url('/img/sprite.png') top left no-repeat; }
div.vk { width: 60px; height: 60px; background-position: -776px -2px; margin-right: 20px; float: left; }
div.vk-sm { width: 16px; height: 16px; background-position: -1260px -33px; margin-right: 1px; float: left; }
div.ok { width: 60px; height: 60px; background-position: -840px 0; margin-right: 20px; float: left; }
div.ok-sm { width: 16px; height: 16px; background-position: -1260px -16px; margin-right: 1px; float: left; }
div.fb { width: 60px; height: 60px; background-position: -1200px 0; margin-right: 20px; float: left; }
div.fb-sm { width: 16px; height: 16px; background-position: -1260px 0; margin-right: 1px; float: left; }
div.mw { width: 60px; height: 60px; background-position: -1020px 0; margin-right: 20px; float: left; }
div.wl { width: 60px; height: 60px; background-position: -960px 0; margin-right: 20px; float: left; }
div.df { width: 60px; height: 60px; background-position: -900px 0; margin-right: 20px; float: left; }
div.ig { width: 60px; height: 60px; background-position: -1080px 0; margin-right: 20px; float: left; }
div.ig-sm { width: 16px; height: 16px; background-position: -1260px -49px; margin-right: 20px; float: left; }
div.gr { width: 60px; height: 60px; background-position: -1140px 0; margin-right: 20px; float: left; }

/*======================================================================
  Футер
======================================================================*/
#footer {
  flex-shrink: 0;
  font-size: 13px;
  text-align: center;
  padding: 22px 14px 26px;
  color: var(--muted);
  border-top: 1px solid var(--border);
  margin-top: 30px;
}

/*======================================================================
  Утилитарные классы (используются в контентных шаблонах)
======================================================================*/
.ff-centgoth { font-family: 'Century Gothic', 'Segoe UI', Verdana, sans-serif; }
.fs-10 { font-size: 10px; }
.fs-12 { font-size: 12px; }
.fs-14 { font-size: 14px; }
.fs-16 { font-size: 16px; }
.fs-18 { font-size: 18px; }
.fs-22 { font-size: 22px; }
.fs-i { font-style: italic; }
.fw-b { font-weight: bold; }
.td-u { text-decoration: underline; }
.td-n { text-decoration: none; }
.color-wh { color: #fff; }
.color-photokiss { color: var(--brand); }
.color-grey { color: #cacaca; }
.color-red { color: red; }
.color-black { color: #000; }
.color-main { color: var(--text); }
.fl-l { float: left; }
.cl-b { clear: both; }
.ta-c { text-align: center; }
.ta-j { text-align: justify; }
.pos-rel { position: relative; }
.disp-b { display: block; }
.disp-n { display: none; }
.w100 { width: 100%; }
.w50 { width: 50%; }
.p-10 { padding: 10px; }
.pl-10 { padding-left: 10px; }
.pt-10 { padding-top: 10px; }
.pr-10 { padding-right: 10px; }
.pb-10 { padding-bottom: 10px; }
.p-30 { padding: 20px 0; }
.pl-30 { padding-left: 0; }
.pt-30 { padding-top: 20px; }
.pr-30 { padding-right: 0; }
.pb-30 { padding-bottom: 20px; }
.m-0 { margin: 0; }
.m-10 { margin: 10px; }
.mt-0 { margin-top: 0; }
.ml-10 { margin-left: 10px; }
.mt-10 { margin-top: 10px; }
.mr-10 { margin-right: 10px; }
.mb-10 { margin-bottom: 10px; }
.bgc-wh { background-color: #fff; }
.cur-point { cursor: pointer; }
.op-100 { opacity: 1; }
.op-50 { opacity: 0.5; }

/*======================================================================
  Мобильная версия
======================================================================*/
@media (max-width: 900px) {
  .header-inner { padding: 16px 12px 12px; }

  /* Оставляем справа место под кнопку меню */
  .site-logo img { max-width: calc(100vw - 130px); }
  .site-logo { margin-bottom: 4px; }

  .nav-toggle { display: block; }

  .site-nav { display: none; }

  .site-header.nav-open .site-nav { display: block; padding-top: 8px; }

  .nav-list { flex-direction: column; gap: 0; }

  .nav-item > a,
  .nav-item > span { padding: 11px 6px; text-align: center; }

  .nav-item--current > a,
  .nav-item--current > span { box-shadow: none; }

  /* Подменю раскрыты внутри мобильного меню */
  .submenu,
  .has-submenu:hover > .submenu,
  .has-submenu:focus-within > .submenu {
    display: block;
    position: static;
    transform: none;
    min-width: 0;
    border: none;
    box-shadow: none;
    padding: 0 0 6px;
  }

  .submenu a { padding: 8px 12px; white-space: normal; }

  .submenu--mega,
  .has-submenu:hover > .submenu--mega,
  .has-submenu:focus-within > .submenu--mega {
    display: block;
    position: static;
    transform: none;
    width: auto;
    max-width: none;
    border: none;
    box-shadow: none;
    padding: 0 0 10px;
  }

  .mega-group { min-width: 0; text-align: center; padding: 4px 0; }
  .mega-title { white-space: normal; }
  .mega-group a:not(.mega-title) { white-space: normal; padding: 6px 0; }

  .main { margin: 18px auto; }

  div.cost-block { float: none; width: 100%; padding: 10px 0; }

  .img-right { float: none; display: block; margin: 0 auto 14px; }

  #gallery { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; }
  #gallery.home-gallery { grid-template-columns: 1fr 1fr; gap: 8px; }
}
