/* blocks/_base.css */
/* GreenCMS · базовые стили движка блоков (подключаются после темы) */
.gc-cols { display: grid; gap: 30px; grid-template-columns: minmax(0, 1fr); }
.gc-col { display: flex; flex-direction: column; min-width: 0; }
.gc-col > * { max-width: 100%; }
.gc-section--alt { background: var(--c-surface-alt, #f2f2f2); }
.gc-section--bg { background-position: center; background-size: cover; background-repeat: no-repeat; }
.gc-sec__in--full { padding: 0 var(--gutter, 15px); }
/* скрытие по устройствам (настройка «Видимость» блока) */
@media (min-width: 1440px) { .gc-hide-d { display: none !important; } }
@media (min-width: 1200px) and (max-width: 1439px) { .gc-hide-l { display: none !important; } }
@media (min-width: 768px) and (max-width: 1199px) { .gc-hide-t { display: none !important; } }
@media (max-width: 767px) { .gc-hide-m { display: none !important; } }
/* button/style.css */
.gc-btn-wrap { display: flex; }
.gc-btn-wrap--left { justify-content: flex-start; }
.gc-btn-wrap--center { justify-content: center; }
.gc-btn-wrap--right { justify-content: flex-end; }
/* cards/style.css */
.gc-cards { display: grid; gap: 30px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gc-cards--icon { grid-template-columns: repeat(4, minmax(0, 1fr)); row-gap: 40px; }
.gc-cards--logo { grid-template-columns: repeat(6, minmax(0, 1fr)); align-items: center; }
@media (max-width: 1199px) { .gc-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } .gc-cards--icon { grid-template-columns: repeat(4, minmax(0, 1fr)); } .gc-cards--logo { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 767px) { .gc-cards { grid-template-columns: minmax(0, 1fr); } .gc-cards--icon, .gc-cards--logo { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.gc-card { display: flex; flex-direction: column; color: inherit; }
.gc-cards--card .gc-card { background: #fff; border: 1px solid var(--c-border, rgba(51,51,51,.3)); box-shadow: var(--shadow-card, 2px 2px 10px #333); transition: transform .4s; }
.gc-cards--card .gc-card:hover { transform: translateY(-4px); }
.gc-cards--card .gc-card img { width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; }
.gc-cards--card .gc-card__title { margin: 20px 24px 8px; font-size: 20px; line-height: 26px; font-weight: 700; color: var(--c-text, #212529); }
.gc-cards--card .gc-card__text { margin: 0 24px 24px; }
.gc-cards--image_text .gc-card img { width: 100%; height: auto; margin: 0 0 16px; }
.gc-cards--image_text .gc-card__title { margin: 0 0 8px; font-size: 18px; line-height: 26px; font-weight: 700; }
.gc-cards--logo .gc-card { display: grid; place-items: center; }
.gc-cards--logo .gc-card img { max-width: 100%; height: auto; }
a.gc-card:hover .gc-card__title { color: var(--c-green, #27810d); }
.gc-cards--icon .gc-feature__title { margin: 0; }
/* contacts/style.css */
.gc-contacts__title { margin: 0 0 24px; font-size: 32px; line-height: 38px; letter-spacing: 3px; text-transform: uppercase; font-weight: 700; }
@media (max-width: 767px) { .gc-contacts__title { font-size: 24px; line-height: 30px; } }
.gc-contacts__msg { display: flex !important; gap: 14px; margin-top: 20px !important; }
.gc-contacts__msg a { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,.12); font-size: 20px; }
/* иконки мессенджеров: при наведении белый значок на зелёном (правило темы для ссылок .gc-contacts сильнее — уточняем) */
.gc-contacts .gc-contacts__msg a:not(.gc-btn):hover { background: var(--c-green, #27810d); color: #fff; }
.gc-contacts__side .gc-text, .gc-contacts__side p { color: inherit; }
.gc-contacts__label { margin: 18px 0 6px; font-size: 13px; line-height: 18px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: rgba(255, 255, 255, 0.7); }
/* form/style.css */
/* Форма заявки */
.gc-formbox { width: 100%; }
.gc-formbox__title { margin: 0 0 8px; font-size: 20px; line-height: 26px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; }
.gc-formbox__text { margin: 0 0 20px; font-size: 15px; line-height: 22px; opacity: .85; }
.gc-formbox .gc-form { position: relative; gap: 16px; }
.gc-form__fields { display: grid; gap: 12px; }
.gc-formbox--grid .gc-form__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gc-formbox--grid .gc-form__f--textarea, .gc-formbox--grid .gc-form__f--checkbox { grid-column: 1 / -1; }
.gc-formbox--inline .gc-form { grid-template-columns: minmax(0, 1fr) auto; align-items: start; }
.gc-formbox--inline .gc-form__fields { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.gc-formbox--inline .gc-form__msg { grid-column: 1 / -1; order: 3; }
.gc-formbox--inline .gc-btn { min-height: 45px; padding-top: 0; padding-bottom: 0; }
.gc-form__f { min-width: 0; }
.gc-form .gc-form__check { display: flex; gap: 10px; align-items: flex-start; margin: 0; font-size: 14px; line-height: 20px; cursor: pointer; }
.gc-form__check input { flex: none; width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--c-green); }
.gc-select { appearance: auto; padding-right: 12px; }
.gc-form__err { display: block; margin: 4px 0 0; font-size: 13px; line-height: 18px; color: #cf222e; }
.gc-section--dark .gc-form__err, .gc-section--green .gc-form__err, .gc-section--green-dark .gc-form__err { color: #ffd2c4; }
.gc-form [aria-invalid="true"] { border-color: #cf222e; }
.gc-form__msg:empty { display: none; }
.gc-form__msg { margin: 0; }
.gc-form.is-sending .gc-btn { opacity: .6; pointer-events: none; }
.gc-form__done { padding: 24px; border: 1px solid var(--c-green); background: rgba(39, 129, 13, .08); font-size: 17px; line-height: 26px; font-weight: 600; }
.gc-section--dark .gc-form__done, .gc-section--green .gc-form__done, .gc-section--green-dark .gc-form__done { border-color: #fff; background: rgba(255, 255, 255, .12); }
@media (max-width: 767px) {
  .gc-formbox--grid .gc-form__fields, .gc-formbox--inline .gc-form { grid-template-columns: minmax(0, 1fr); }
  .gc-formbox--inline .gc-btn { width: 100%; }
}
/* image/style.css */
.gc-figure { margin: 0; }
.gc-figure img { height: auto; }
.gc-figure--center { margin-left: auto; margin-right: auto; }
.gc-figure--center img { margin: 0 auto; }
.gc-figure--right { margin-left: auto; }
.gc-figure--right img { margin-left: auto; }
.gc-figure figcaption { margin-top: 8px; font-size: 14px; color: var(--c-text-muted, #808080); text-align: center; }
/* logos/style.css */
.gc-logos__caption { display: block; margin-top: 8px; font-size: 14px; text-align: center; color: var(--c-text-muted, #808080); }
.gc-carousel__track > div { flex-direction: column; }
/* Слайдер: одна картинка на всю ширину, подпись в белой плашке под ней, стрелки по бокам */
/* Слайдер по центру при любых отступах блока (justify-self в сетке секции); все слайды одной высоты —
   картинки одного соотношения сторон, плашка подписи тянется на оставшуюся высоту и всю ширину; углы скруглены */
.gc-carousel--slider { width: 100%; max-width: 830px; justify-self: center; margin-left: auto; margin-right: auto; gap: 10px; }
.gc-carousel--slider .gc-carousel__track { gap: 0; align-items: stretch; }
.gc-carousel--slider .gc-carousel__track > .gc-slide { flex: 0 0 100%; display: flex; flex-direction: column; margin: 0; border-radius: 8px; overflow: hidden; }
.gc-carousel--slider .gc-carousel__track img { display: block; flex: none; width: 100%; height: auto; max-height: none; aspect-ratio: 1.97; object-fit: cover; object-position: top; }
.gc-slide__caption { flex: 1 1 auto; display: flex; align-items: center; justify-content: center; width: 100%; margin: 0; padding: 10px 20px; background: rgba(255, 255, 255, 0.95); color: var(--c-dark, #373c33); font-size: 14px; line-height: 20px; font-weight: 700; text-align: center; }
.gc-carousel--slider .gc-carousel__nav { width: 40px; height: 60px; border: 0; background: transparent; color: var(--c-dark, #373c33); }
.gc-carousel--slider .gc-carousel__nav:hover { background: rgba(0, 0, 0, 0.06); color: var(--c-green, #27810d); }
:is(.gc-section--green, .gc-section--green-dark, .gc-section--dark, .gc-section--fade) .gc-carousel--slider .gc-carousel__nav { color: #fff; }
:is(.gc-section--green, .gc-section--green-dark, .gc-section--dark, .gc-section--fade) .gc-carousel--slider .gc-carousel__nav:hover { background: rgba(255, 255, 255, 0.15); color: #fff; }
.gc-carousel--slider .gc-carousel__nav .gc-icon { width: 26px; height: 26px; }
@media (max-width: 767px) { .gc-carousel--slider { gap: 4px; } .gc-carousel--slider .gc-carousel__nav { width: 28px; height: 44px; } .gc-carousel--slider .gc-carousel__nav .gc-icon { width: 20px; height: 20px; } .gc-slide__caption { padding: 8px 10px; font-size: 13px; line-height: 18px; } }
/* media/style.css */
.gc-media__img img { width: 100%; height: auto; }
.gc-media__body > .gc-h3:first-child { margin-top: 0; }
.gc-media__body > .gc-media__title { margin: 0 0 30px; }
.gc-media--text { grid-template-columns: 7fr 5fr; }
.gc-media--text.gc-media--reverse { grid-template-columns: 7fr 5fr; }
.gc-media--text:not(.gc-media--reverse) { grid-template-columns: 5fr 7fr; }
.gc-media--text .gc-media__img img { max-width: 400px; margin: 0 auto; display: block; }
@media (max-width: 767px) { .gc-media--text, .gc-media--text.gc-media--reverse, .gc-media--text:not(.gc-media--reverse) { grid-template-columns: 1fr; } .gc-media--text.gc-media--reverse > :first-child { order: 2; } .gc-media__body > .gc-media__title { margin-bottom: 20px; } }
/* pricing/style.css */
.gc-prices { display: grid; gap: 30px; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; }
@media (max-width: 767px) { .gc-prices { grid-template-columns: minmax(0, 1fr); } }
.gc-pricing--featured { border-color: var(--c-green, #27810d); box-shadow: 0 0 0 2px var(--c-green, #27810d), var(--shadow-card, 2px 2px 10px #333); }
/* quote/style.css */
.gc-quote { margin: 0 0 24px; padding: 20px 24px; border-left: 4px solid var(--c-green, #27810d); background: var(--c-surface-alt2, #f7f7f7); font-size: 16px; line-height: 24px; font-weight: 500; color: var(--c-text-body, #373c33); }
.gc-quote--quote { font-style: italic; }
.gc-quote--info { border-color: #1d72b8; background: #eef5fb; }
.gc-quote--warning { border-color: #e0a81e; background: #fff7e2; }
.gc-quote--success { border-color: var(--c-green, #27810d); background: #eef7e9; }
.gc-quote p { margin: 0 0 12px; }
.gc-quote p:last-of-type { margin-bottom: 0; }
.gc-quote footer { margin-top: 10px; font-size: 14px; font-style: normal; color: var(--c-text-muted, #808080); }
.gc-quote footer::before { content: "— "; }
/* section/style.css */
/* Видеофон секции: под градиентом темы (::before), содержимое — поверх */
.gc-section--video { overflow: hidden; }
.gc-section > video.gc-bgvideo { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; }
.gc-section--video::before { z-index: 1; }
.gc-section--video > .gc-sec__in { position: relative; z-index: 2; }
@media (max-width: 767px) { .gc-section > video.gc-bgvideo { display: none; } }
/* spacer/style.css */
.gc-spacer { height: 40px; }
/* video/style.css */
.gc-video { position: relative; width: 100%; aspect-ratio: 16 / 9; background: #000; overflow: hidden; }
.gc-video--4x3 { aspect-ratio: 4 / 3; }
.gc-video--1x1 { aspect-ratio: 1 / 1; }
.gc-video--9x16 { aspect-ratio: 9 / 16; max-width: 420px; margin: 0 auto; }
.gc-video img, .gc-video video, .gc-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 0; }
.gc-video__play { position: absolute; inset: 0; margin: auto; width: 68px; height: 48px; padding: 0; border: 0; background: none; cursor: pointer; filter: drop-shadow(0 2px 6px rgba(0,0,0,.35)); transition: transform .2s; }
.gc-video__play:hover, .gc-video__play:focus-visible { transform: scale(1.08); }
