/*!
Theme Name: our_theme
*/

/* ---------------------------------------
   Base, variables, normalize
--------------------------------------- */
@charset "UTF-8";
@import "https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap";
@import "https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100..900;1,100..900&display=swap";

:root{
  --c-text:#333;
  --c-text-2:#2c2c2c;
  --c-text-muted:#625c54;
  --c-muted:#a29b94;
  --c-muted-2:#a89f91;
  --c-accent:#d4b48c;
  --c-accent-strong:#b8976f;
  --c-brand:#05a;
  --c-brand-2:#46f;
  --c-soft:#f9f6f1;
  --c-soft-2:#f0f0f0;
  --shadow:0 4px 10px #00000014;
  --shadow-lg:0 8px 24px #0003;
  --radius:.5rem;
  --radius-lg:1rem;
  --radius-xl:2rem;
  --t:.3s ease;
}

*,*::before,*::after{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; font-family:Roboto,system-ui,-apple-system,Segoe UI,Roboto,Inter, Arial, "Noto Sans", sans-serif;
  font-size:16px; line-height:1.6; color:var(--c-text);
  display:flex; flex-direction:column;
}
main{flex:1 0 auto}
.no-scroll{overflow:hidden; touch-action:none}
a{color:inherit; text-decoration:none}
ul{list-style:none; margin:0; padding:0}
h1,h2,h3,h4,h5,h6{
  font-family:Montserrat, sans-serif; font-optical-sizing:auto; font-style:normal; line-height:1.2; margin:0 0 .5em
}

/* focus-visible для доступности */
:focus-visible{outline:2px solid var(--c-accent); outline-offset:2px}

/* reduce motion */
@media (prefers-reduced-motion:reduce){
  *{animation:none!important; transition:none!important; scroll-behavior:auto!important}
}

/* ---------------------------------------
   Layout helpers
--------------------------------------- */
.container{
  width:100%; margin:0 auto; padding: 0px 15px;
}
.main-content{ padding:130px 0 0 }

@media (min-width:576px){ .container{ padding-inline:20px } }
@media (min-width:992px){ .container{ max-width:1200px } }
@media (min-width:1200px){ .container{ max-width:1300px } }
@media (min-width:1440px){ .container{ max-width:1440px } }

@media (max-width: 768px){ .main-content { padding: 70px 0 0 }}
/* ---------------------------------------
   Typo
--------------------------------------- */
.page-title{ margin-bottom:25px; font-size:clamp(2rem,3vw + 1rem,3.875rem); color:#000; font-weight:600 }

/* ---------------------------------------
   Unified buttons (сохраняем имена)
--------------------------------------- */
.style__btn-main,
.blog-btn,
.loadmore-btn,
.services__cta-btn,
.home__projects-btn,
.home__blog-preview-btn,
.home__about-btn,
.home__join-invest-btn,
.home__cta-btn,
.home__contact-cta-btn,
.invest__link,
.contacts__tab{
  display:inline-block; padding:.75rem 2rem; font-size:1rem;
  background:#fff; border:1px solid var(--c-accent); border-radius:var(--radius-xl);
  transition:background-color var(--t), color var(--t), border-color var(--t);
  cursor:pointer
}
.style__btn-main:active,
.blog-btn:active,
.loadmore-btn:active,
.services__cta-btn:active,
.home__projects-btn:active,
.home__blog-preview-btn:active,
.home__about-btn:active,
.home__join-invest-btn:active,
.home__cta-btn:active,
.home__contact-cta-btn:active,
.invest__link:active { background:var(--c-accent-strong); transform:scale(.98) }
@media (hover:hover) and (pointer:fine){
  .style__btn-main:hover,
  .blog-btn:hover,
  .loadmore-btn:hover,
  .services__cta-btn:hover,
  .home__projects-btn:hover,
  .home__blog-preview-btn:hover,
  .home__about-btn:hover,
  .home__join-invest-btn:hover,
  .home__cta-btn:hover,
  .home__contact-cta-btn:hover,
  .invest__link:hover{ background:var(--c-accent); color:#fff; border-color:var(--c-accent) }
}

.about__team-card__image{
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  border-radius: 8px;
  margin-bottom: 1rem;
}

.about__team-card__image img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.contacts__tab.active,
.contacts__tab--active{ background:var(--c-accent); color:#fff; box-shadow:0 2px 4px #0000001a }

/* ---------------------------------------
   Header (no layout shift on hover)
--------------------------------------- */
.header{
  position:absolute; inset:auto 0 auto 0; top:0; z-index:10; width:100%;
  transition:box-shadow var(--t), background-color var(--t);
}
.header.is-sticky{
  position:fixed; top:0; left:0; box-shadow:0 2px 8px #0000001a; background:#fff;
}
.header__top{ display:flex; align-items:center; justify-content:space-between; padding:1rem 0; }
.header__logo{ margin-right:50px; }
.header__logo img{ width:50px; height:40px; }

.header__call{
  display:flex; align-items:center; gap:.5rem; padding:.5rem 1rem;
  background:var(--c-brand-2); color:#fff; border-radius:var(--radius);
  font-weight:500; border:0; outline:0; transition:var(--t); cursor:pointer;
}
.header__call:active{ background:#30408a; transform:scale(.98); }
.header__call svg{ flex-shrink:0; width:24px; height:24px; }
.header__call-text{ display:inline-block; }

@media (max-width:767px){
  .header__logo { padding-left: 15px; }
  .header__call{ padding:0; background:none; }
  .header__call .header__call-text{ display:none; }
}

.header__burger{ display:none; }
@media (max-width:767px){
  .header__burger{
    display:flex; align-items:center; justify-content:center;
    background:transparent; font-size:36px; font-weight:700; border:0;
  }
}

.header__nav{ flex:1; }
.header__nav-close{
  display:none; background:#ccc; color:#fff; width:48px; height:48px;
  border:0; border-radius:50%; font-size:1.5rem; line-height:1; cursor:pointer;
}
.header__nav-btns{ display:none; }

.header__menu{ display:flex; align-items:center; gap:2rem; margin:0; padding:0; }
.header__menu-item{ position:relative; cursor:pointer; font-weight:500; }

.header__menu-link{
  position:relative; display:inline-block;
  padding:.5rem 0;
  line-height:1.2;
  transition: color var(--t), opacity var(--t), transform var(--t);
}

.header__menu-link::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px;
  height:2px; background:currentColor;
  transform:scaleX(0); transform-origin:left;
  transition:transform var(--t);
  pointer-events:none;
}

@media (hover:hover) and (pointer:fine){
  .header__menu-item:hover > .header__menu-link{ color:var(--c-accent); }
  .header__menu-item:hover > .header__menu-link::after{ transform:scaleX(1); }
}
.header__menu-link:focus-visible{
  outline:2px solid var(--c-accent); outline-offset:2px;
}

.header__menu-item.current-menu-item > .header__menu-link,
.header__menu-item.current-menu-ancestor > .header__menu-link{
  color:var(--c-accent-strong);
}
.header__menu-item.current-menu-item > .header__menu-link::after,
.header__menu-item.current-menu-ancestor > .header__menu-link::after{
  transform:scaleX(1);
}

.header__menu-item.has-children .header__menu-link,
.header__menu-item.menu-item-has-children .header__menu-link{
  position:relative; padding-right:22px;
}
.header__menu-item.has-children .header__menu-link:after,
.header__menu-item.menu-item-has-children .header__menu-link:after{
}
.header__menu-item.has-children .header__menu-link::before,
.header__menu-item.menu-item-has-children .header__menu-link::before{
  content:""; position:absolute; top:45%; right:4px; width:8px; height:8px;
  border-right:2px solid currentColor; border-bottom:2px solid currentColor;
  transform:translateY(-50%) rotate(45deg); transition:transform .2s ease;
}
.header__menu-item.has-children:hover .header__menu-link::before,
.header__menu-item.menu-item-has-children:hover .header__menu-link::before{
  transform:translateY(-50%) rotate(225deg);
}
.header__menu-item.is-open .header__menu-link::before{
  transform:translateY(-50%) rotate(225deg);
}

.header__menu-item .caret{ margin-left:.25rem; font-size:.75rem; transition:transform .2s; }
.header__menu-item.is-active .caret{ transform:rotate(180deg); }

.header__menu-item .header__submenu-list--mobile{ display:none; flex-direction:column; margin-top:.5rem; padding-left:1rem; }
.header__menu-item .header__submenu-list--mobile li{ padding:.5rem 0; }
.header__menu-item .header__submenu-list--mobile a{ color:#6b7280; }
.header__menu-item.is-open .header__submenu-list--mobile{ display:flex; }

.header__menu-item--lang{ position:relative; }
.header__menu-item--lang .header__lang-toggle{
  background:transparent; border:0; cursor:pointer; font-weight:500;
  display:flex; align-items:center; padding:0;
}
@media (max-width:768px){ .header__menu-item--lang .header__lang-toggle{ font-size:30px; } }
.header__menu-item--lang .caret{ margin-left:.25rem; transition:transform .2s; }
.header__menu-item--lang.is-open .caret{ transform:rotate(180deg); }
.header__menu-item--lang .header__lang-panel{
  position:absolute; top:100%; background:#fff; border-radius:var(--radius);
  box-shadow:0 4px 12px #00000026; overflow:hidden; opacity:0; visibility:hidden; transform:translateY(-.5rem);
  transition:opacity .2s, transform .2s, visibility .2s; z-index:1000;
}
.header__menu-item--lang .header__lang-panel.is-open{ opacity:1; visibility:visible; transform:translateY(0); }
.header__menu-item--lang .header__lang-panel ul{ margin:0; padding:.5rem 0; }
.header__menu-item--lang .header__lang-panel li a{
  display:block; padding:.5rem 1rem; text-align:center; color:var(--c-text); transition:background .2s, color .2s;
  font-size:clamp(1rem, 1.1vw + .8rem, 1.25rem);
}
.header__menu-item--lang .header__lang-panel li a:hover{ background:#f5f5f5; }

.header__cta{ white-space:nowrap; padding:.75rem 1.5rem; background:var(--c-brand); color:#fff; border-radius:var(--radius); }

.header__submenu-wrapper--desktop{
  background:var(--c-soft); position:absolute; top:100%; left:0; width:100%; overflow:hidden; max-height:0;
  transition:max-height var(--t); z-index:10; padding-left:110px;
}
.header__submenu-wrapper--desktop.is-open{ max-height:200px; }
.header__submenu-list--desktop{
  display:flex; gap:1.5rem; margin:0; padding:1rem 0; white-space:nowrap;
}
.header__submenu-list--desktop a{
  color:inherit; padding:.25rem .5rem; border-radius:.5rem; transition:background var(--t), color var(--t), opacity var(--t);
}

@media (hover:hover) and (pointer:fine){
  .header__submenu-list--desktop a:hover{
    background:var(--c-accent); color:#fff;
  }
}

@media (max-width:768px){
  .header__nav-btns{ display:flex; justify-content:flex-end; gap:1rem; }
  .header__call{ display:none; }
  .header__call-menu{ width:48px; height:48px; display:block; border:0; background:#ccc; border-radius:50px; }
  .header__cta{ display:none; }

  .header__nav{
    position:fixed; inset:0; background:#f3f4f6;
    transform:translateX(-100%); transition:transform var(--t);
    z-index:10; overflow-y:auto; padding:20px;
  }
  .header__nav.is-open{ transform:translateX(0); }
  .header__nav-close{ display:block; }
  .header__submenu-wrapper--desktop{ display:none; }

  .header__menu{ flex-direction:column; align-items:flex-start; }
  .header__menu-link{ font-size:36px; }
  .header__submenu-list--mobile li{ font-size:28px; white-space:nowrap; }
  .header__submenu-list--mobile a{ color:inherit; }
}

.header--transparent{ background:transparent!important; color:#fff; }
.header--transparent .header__menu-link,
.header--transparent .header__lang-toggle,
.header--transparent .header__call-text,
.header--transparent .header__submenu-list--desktop a{ color:#fff; }
.header--transparent .header__menu-item.has-children .header__menu-link::before,
.header--transparent .header__menu-item.menu-item-has-children .header__menu-link::before{
  border-color:#fff;
}
.header--transparent svg path{ fill:#fff; }
.header--transparent .caret{ border-top-color:#fff; }
.header--transparent .header__call{ background:#ffffff26; color:#fff; }
.header--transparent .header__call svg path{ fill:#fff; }
.header--transparent .header__call:active{ background:#ffffff40; }
.header--transparent .header__cta{ background:#ffffff26; color:#fff; }
.header--transparent .header__submenu-wrapper--desktop{ background:#00000040; }

.header--transparent .header__menu-item:hover > .header__menu-link::after,
.header--transparent .header__menu-item.current-menu-item > .header__menu-link::after,
.header--transparent .header__menu-item.current-menu-ancestor > .header__menu-link::after{
  background:#fff;
}

/* ---------------------------------------
   Footer
--------------------------------------- */
.footer{ background:#2c2c2cbf; color:#fffc; padding:40px 0 10px }
.footer__top{ display:flex; justify-content:space-between; margin-bottom:12px; gap:30px }
.footer__brand{ display:flex; align-items:center }
.footer__brand img{ height:120px }
.footer__brand-text{ display:flex; flex-direction:column; font-size:24px; font-weight:600 }
.footer__nav-columns{ display:flex; border-left:1px solid #fff; padding-left:15px; flex:1; gap:50px; flex-wrap:wrap }
.footer__nav-col ul li{ margin-bottom:10px }
.footer__nav-col ul li a{ transition:all .2s }
.footer__nav-col ul li a:hover{ color:#fff }
.footer__contact-addres{ border-bottom:1px solid #fff }
.footer__contact-addres p{ font-size:13px; font-weight:500; margin-bottom:5px }
.footer .social-icons{ display:flex; gap:15px }
.footer .social-icon{ font-size:32px; transition:all .2s }
.footer .social-icon:hover{ color:#fff }
.footer__bottom{ text-align:center; padding-top:20px; font-size:.9em; color:#fff9 }

@media (max-width:768px){
  .footer__top{ flex-direction:column; align-items:center; gap:1.5rem; margin-bottom:1rem }
  .footer__brand img{ height:60px }
  .footer__brand-text{ align-items:center; text-align:center }
  .footer__nav-columns{ flex-direction:column; border-left:0; padding-left:0; gap:1rem; width:100% }
  .footer__nav-col{ width:100% }
  .footer__nav-col ul{ display:flex; flex-direction:column; align-items:center }
  .footer__contact-addres{ border-bottom:0 }
  .footer__contact-addres p{ text-align:center }
  .footer .social-icons{ justify-content:center; margin-top:.5rem }
  .footer__bottom{ font-size:.8rem; padding-top:1rem }
}

/* ---------------------------------------
   Modal
--------------------------------------- */
.modal{
  position:fixed; inset:0; display:flex; align-items:center; justify-content:center;
  background:#00000080; opacity:0; visibility:hidden; pointer-events:none; transition:opacity var(--t), visibility var(--t); z-index:50
}
.modal--open{ opacity:1; visibility:visible; pointer-events:auto }
.modal__overlay{ position:absolute; inset:0; cursor:pointer }
.modal__dialog{
  position:relative; background:#fff; border-radius:var(--radius); box-shadow:var(--shadow-lg); overflow:hidden;
  transform:translateY(-20px) scale(.9); opacity:0; transition:opacity var(--t), transform var(--t);
  width:90%; max-width:600px; max-height:90vh
}
@media (min-width:768px){ .modal__dialog{ width:80%; max-width:600px; padding:0 } }
@media (max-width:767px){ .modal__dialog{ width:95%; max-width:none; margin:1rem } }
.modal--open .modal__dialog{ transform:translateY(0) scale(1); opacity:1 }
.modal__close{ position:absolute; top:.75rem; right:.75rem; background:none; border:0; font-size:1.5rem; line-height:1; cursor:pointer; color:var(--c-text); transition:color .2s; z-index:10 }
.modal__close:hover{ color:#000 }
.modal__content{ padding:1.5rem }
@media (min-width:768px){ .modal__content{ padding:2rem } }

/* modal contact */
.modal .modal-contact{text-align:left}
.modal .modal-contact__title{ font-size:1.5rem; margin-bottom:.5rem }
.modal .modal-contact__subtitle{ font-size:1rem; color:#888; margin-bottom:1.5rem }
.modal .modal-contact__form{ display:flex; flex-direction:column; gap:1rem }
.modal .modal-contact__form input,
.modal .modal-contact__form textarea{ padding:.75rem 1rem; border:1px solid #ccc; border-radius:var(--radius); font-size:1rem; background:#f9f9f9 }
.modal .modal-contact__checkbox{ display:flex; align-items:center; font-size:.875rem; gap:.5rem }
.modal .modal-contact__checkbox input{ margin:0 }
.modal .modal-contact__checkbox span{ color:#555 }
.modal .modal-contact__submit{ align-self:flex-start; padding:.5rem 1.5rem; background:#fff; border:1px solid var(--c-accent); border-radius:var(--radius-xl); cursor:pointer; transition:background .2s } .modal-contact__submit:active { transform:scale(.98) }
@media (hover:hover) and (pointer:fine){ .modal .modal-contact__submit:hover{ background:var(--c-accent); color:#fff } }

/* ---------------------------------------
   Grids & Cards (унификация)
--------------------------------------- */
.blog-grid,
.projects-grid,
.home__projects-list,
.home__blog-preview-list,
.blog-skeletons{
  display:grid; grid-template-columns:1fr; gap:30px; margin-bottom:30px
}
@media (min-width:768px){
  .blog-grid,
  .projects-grid,
  .home__projects-list,
  .home__blog-preview-list,
  .blog-skeletons{ grid-template-columns:repeat(2,1fr) }
}
@media (min-width:992px){
  .blog-grid,
  .projects-grid,
  .home__projects-list,
  .home__blog-preview-list,
  .blog-skeletons{ grid-template-columns:repeat(3,1fr) }
}

.blog-card,
.project-card,
.home__projects-list .blog-card,
.home__blog-preview-list .blog-card{
  display:flex; flex-direction:column; padding:20px 30px; overflow:hidden;
  border-radius:15px; border:1px solid var(--c-accent); box-shadow:var(--shadow); background:#fff; transition:transform var(--t); cursor:pointer
}
@media (hover:hover) and (pointer:fine){ .blog-card:hover, .project-card:hover{ transform:translateY(-5px) } }

.card-image-wrapper,
.blog-card .card-image-wrapper{ position:relative; padding-top:60%; overflow:hidden }
.card-image-wrapper img,
.blog-card .card-image-wrapper img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; border-radius:8px }

.project-card .card-title,
.blog-card .card-title{ font-size:20px; color:#2c3e50; margin-bottom:10px }
.project-card .card-tag,
.blog-card .card-tag{
  display:inline-block; margin-bottom:8px; background:var(--c-muted-2); border-radius:15px 15px 5px;
  color:#fff; font-size:14px; font-weight:500; padding:5px 10px
}
.blog-card .card-meta{ display:flex; justify-content:space-between; font-size:12px }
.blog-card .card-meta .date{ color:var(--c-muted-2) }
.blog-card .card-meta .author{ color:#000 }

.project-card a.project-link{ display:block; color:inherit }

.blog-filters,
.projects__filters{ display:flex; justify-content:start; gap:15px; margin-bottom:25px }
@media (max-width: 578px) { .projects__filters, .contacts__tabs { flex-direction: column } }
.blog-filters .filter-btn,
.projects__filters .projects__filter{ padding:10px 20px; border:1px solid var(--c-accent); border-radius:50px; background:#fff; transition:all var(--t); cursor:pointer }
@media (hover:hover) and (pointer:fine){
  .blog-filters .filter-btn:hover,
  .projects__filters .projects__filter:hover{ background:var(--c-accent); color:#fff }
}
.blog-filters .filter-btn.active,
.projects__filters .projects__filter.active{ background:var(--c-accent); color:#fff }

/* skeletons */
.skeleton-card{ padding:20px 30px; border-radius:15px; border:1px solid var(--c-accent); box-shadow:var(--shadow); background:#fff; display:flex; flex-direction:column; gap:.75rem }
.skeleton-box,
.skeleton-card .skeleton-tag,
.skeleton-card .skeleton-title,
.skeleton-card .skeleton-img,
.skeleton-card .skeleton-meta-line{
  background:linear-gradient(90deg,#eee 25%,#ddd 37%,#eee 63%); background-size:400% 100%;
  animation:shimmer 1.4s ease infinite; border-radius:6px; display:block
}
.skeleton-card .skeleton-tag{ width:100px; height:18px }
.skeleton-card .skeleton-title{ width:100%; height:24px; margin:.25rem 0 }
.skeleton-card .skeleton-img{ width:100%; padding-top:60%; position:relative; border-radius:8px }
.skeleton-card .skeleton-meta{ display:flex; justify-content:space-between; gap:10px }
.skeleton-card .skeleton-meta .skeleton-meta-line{ flex:1; height:14px }
.blog-card.skeleton{ pointer-events:none }

@keyframes shimmer{ 0%{background-position:-400px 0} 100%{background-position:400px 0} }

/* ---------------------------------------
   Sections (vacancies / contacts / services / invest / about / design)
--------------------------------------- */

.vacancies__divider,
.services__divider,
.services__section-divider,
.invest__divider,
.contacts__divider,
.design__divider{ border:0; border-bottom:1px solid #ddd; margin:1rem 0 2rem }

.vacancies__subtitle,
.services__subtitle,
.engineering__subtitle,
.invest__subtitle,
.contacts__subtitle,
.design__subtitle{ font-size:1.125rem; color:var(--c-muted); margin-bottom:1rem; line-height:1.4 }

.vacancies__content{ display:flex; flex-direction:column; gap:1.5rem; margin-bottom: 1rem; }
@media (min-width:768px){ .vacancies__content{ flex-direction:row } }
.vacancies__list{ padding:0; margin:0 }
@media (min-width:768px){ .vacancies__list{ width:30% } }
.vacancies__item{ margin-bottom:1rem }
.vacancies__item-btn{
  display:flex; justify-content:space-between; align-items:center; width:100%;
  padding:.75rem 1rem; background:#f5f5f5; border:0; border-radius:var(--radius); text-align:left; cursor:pointer; transition:background-color .2s
}
.vacancies__item-btn--active{ background:var(--c-accent); color:#fff }
@media (hover:hover) and (pointer:fine){ .vacancies__item-btn:hover{ background:var(--c-accent); color:#fff } }
.vacancies__item-name{ font-weight:600 }
.vacancies__item-meta{ font-size:.875rem; margin-left:.5rem; white-space:nowrap }
.vacancies__details{ flex:1; padding:1rem; background:#f0f0f0; border-radius:var(--radius); min-height:200px }
.vacancies__details-placeholder{ text-align:center; margin-top:2rem }

.contacts__tabs{ display:flex; gap:1rem; margin-bottom:1rem }
.contacts__content{ position:relative; min-height:400px }
.contacts__pane{ position:absolute; inset:0; width:100%; opacity:0; visibility:hidden; transition:opacity .3s ease }
.contacts__pane--active{ opacity:1; visibility:visible; position:relative }
.contacts__pane-inner{ display:flex; flex-direction:column; gap:2rem }
@media (min-width:768px){ .contacts__pane-inner{ flex-direction:row; align-items:flex-start } }
.contacts__info{ flex:1 }
.contacts__info .contacts__subtitle{ font-size:1.5rem; margin-bottom:.5rem }
.contacts__info .contacts__desc{ margin-bottom:1rem }
.contacts__info .contacts__example{ font-style:italic; color:#888; margin-bottom:1.5rem }
.contacts__form-wrapper{ flex:1; max-width:100% }
.contacts__form{ display:flex; flex-direction:column; gap:1rem }
.contacts__form input, .contacts__form textarea{ padding:.75rem 1rem; border:0; border-radius:var(--radius); background:#f5f5f5; font-size:1rem }
.contacts__form .contacts__submit{ width:fit-content; padding:.5rem 1.5rem; border:1px solid var(--c-accent); border-radius:var(--radius-xl); background:transparent; cursor:pointer; transition:background .2s, color .2s }
@media (hover:hover) and (pointer:fine){ .contacts__form .contacts__submit:hover{ background:var(--c-accent); color:#fff } }
.contacts__form .contacts__submit:active{ background:var(--c-accent-strong); transform:scale(.98) }
.contacts__map-section{ margin-top:3rem; background:var(--c-soft); padding:2rem; text-align:center }
.contacts__map-section-title{ font-size:1.25rem; margin-bottom:1rem }
.contacts__map-section__map{ width:100%; height:300px }
.contacts__map-section__map iframe{ width:100%; height:100%; border:0 }

.services__overview{ display:flex; flex-direction:column; gap:1.5rem; margin-bottom:2rem }
@media (min-width:768px){ .services__overview{ flex-direction:row; align-items:center } }
.services__overview-text{ flex:1 }
.services__overview-text p{ color:var(--c-text-muted); line-height:1.6 }
.services__overview-aside{ flex:1; text-align:left }
.services__section-title{ font-size:1.5rem; margin-bottom:.5rem }
.services__list{ display:flex; flex-direction:column; gap:2rem; padding:0; margin:0 }
.services__item{ display:flex; flex-direction:column; gap:1rem }
@media (min-width:768px){ .services__item{ flex-direction:row; align-items:center } }
.services__item-content{ flex:1 }
.services__item-content-title{ font-size:1.25rem; margin-bottom:.5rem }
.services__item-content-desc{ margin-bottom:1rem; color:var(--c-text); line-height:1.6 }
.services__item-content-btn{ display:inline-block; padding:.5rem 1rem; border:1px solid var(--c-muted); border-radius:var(--radius-xl); transition:background .2s, color .2s }
.services__item-content-btn:hover{ background:var(--c-muted); color:#fff }
.services__item-media{ flex:1 }
.services__item-media img{ width:100%; display:block; border-radius:var(--radius) }

.services__cta,
.about__cta,
.design__cta,
.engineering__cta { background:var(--c-soft); padding:2.5rem 1rem; margin-top:3rem; text-align:center; border-radius:.75rem }
.services__cta-inner,
.engineering__cta-inner,
.about__cta-inner,
.design__cta-inner{ max-width:800px; margin:0 auto }
.services__cta-text,
.about__cta-text,
.design__cta-text{ font-size:1.25rem; color:var(--c-text-2); margin-bottom:1.5rem; line-height:1.6 }

.invest__overview{ display:flex; flex-direction:column; gap:1.5rem; margin-bottom:2rem }
@media (min-width:768px){ .invest__overview{ flex-direction:row; align-items:flex-start } }
.invest__overview-text{ flex:1; max-width:800px }
.invest__overview-text p{ color:var(--c-text-muted); line-height:1.6 }
.invest__overview-aside{ flex:1 }

.invest__cards{ display:grid; gap:2rem; grid-template-columns:1fr; list-style:none; padding:0; margin:0 0 3rem }
@media (min-width:768px){ .invest__cards{ grid-template-columns:repeat(3,1fr) } }
.invest__card{
  border:1px solid #c0a97b; border-radius:1rem; overflow:hidden; background:#fff; display:flex; flex-direction:column; align-items:center; text-align:center; padding:1rem
}
.invest__card-title{ font-size:1.125rem; margin-bottom:1rem }
.invest__card-media{ width:100% }
.invest__card-media img{ width:100%; height:auto; display:block; border-radius:var(--radius) }

.invest__links{ display:flex; flex-direction:column; gap:1rem; background:var(--c-soft); padding:2rem 1rem; border-radius:var(--radius) }
@media (min-width:768px){ .invest__links{ flex-direction:row; justify-content:center; gap:3rem } }
.invest__link{ display:inline-flex; align-items:center; justify-content:center; font-size:1.125rem; color:#000 }
.invest__link-icon{ margin-left:.5rem; font-size:1.25rem; line-height:1; transition:transform var(--t) }
@media (hover:hover) and (pointer:fine){ .invest__link:hover .invest__link-icon{ transform:translateX(4px) } }

.about__lead{ font-size:1.125rem; color:var(--c-muted); line-height:1.5; max-width:720px; padding-left: 15px; }
.about__mission{ display:flex; flex-direction:column; gap:2rem; margin-bottom:3rem; padding: 0px 15px; }
@media (min-width:768px){ .about__mission{ flex-direction:row; justify-content:space-between } }
.about__mission-item{ flex:1; background:var(--c-soft); border:1px solid #e5ddd2; padding:1.5rem; border-radius:.75rem }
.about__mission-title{ font-size:1.375rem; margin-bottom:.75rem; color:var(--c-text-2) }
.about__mission-text{ line-height:1.6; color:var(--c-text-muted) }

.about__founder{ margin:4rem 0; border-radius:1rem; padding: 0px 15px; }
.about__founder-inner{ display:flex; flex-direction:column; align-items:center; gap:2rem; background:var(--c-soft); padding:2rem 2rem 0; }
@media (min-width:992px){ .about__founder-inner{ flex-direction:row; justify-content:center; gap:3rem } }
.about__founder-text{ flex:1; max-width:600px; color:var(--c-text-muted) }
.about__founder-text p{ line-height:1.6; margin-bottom:1rem }
.about__founder-name{ font-style:italic; color:var(--c-muted); margin-top:1rem }
.about__founder-photo{ flex-shrink:0; max-width:360px; width:100%; text-align:center }
.about__founder-photo img{ width:100% }

.about__history{ margin-bottom:3rem }
.about__section-title{ font-size:1.5rem; margin-bottom:1.5rem }
.about__timeline{ border-left:2px solid var(--c-accent); padding-left:1.5rem }
.about__event{ position:relative; margin-bottom:1.5rem }
.about__event:before{ content:""; position:absolute; left:-1.1rem; top:.3rem; width:.75rem; height:.75rem; background:var(--c-accent); border-radius:50% }
.about__event-year{ font-weight:600; color:var(--c-text-2); margin-bottom:.25rem; display:block }
.about__event-text{ color:var(--c-text-muted); line-height:1.5 }

.about__team{ margin-bottom:3rem }
.about__team-list{ display:grid; grid-template-columns:1fr; gap:2rem }
@media (min-width:768px){ .about__team-list{ grid-template-columns:repeat(3,1fr) } }
.about__member{ text-align:center }
.about__member-photo{ width:100%; aspect-ratio:1/1; background:#eee; border-radius:.75rem; margin-bottom:1rem }
.about__member-name{ font-size:1.125rem; font-weight:600; margin-bottom:.25rem }
.about__member-role{ color:var(--c-muted); font-size:.95rem }

.about__sponsors{ margin-top:3rem; padding:4rem 1rem; border-radius:1rem }
.about__sponsors-title{ text-align:center; font-size:2rem; color:var(--c-text-2); margin-bottom:3rem }
.about__sponsors-grid{ display:grid; grid-template-columns:1fr; gap:2rem; max-width:1000px; margin:0 auto }
@media (min-width:768px){ .about__sponsors-grid{ grid-template-columns:repeat(2,1fr) } }
.about__sponsors-card{
  display:flex; align-items:center; gap:1.5rem; background:#fff; border-radius:1rem; padding:1.5rem;
  box-shadow:0 8px 16px #0000000d; color:var(--c-text-2); transition:transform var(--t), box-shadow var(--t); text-decoration:none
}
@media (hover:hover) and (pointer:fine){ .about__sponsors-card:hover{ transform:translateY(-4px); box-shadow:0 12px 20px #0000001a } }
.about__sponsors-card-blue{ background:linear-gradient(to right,#e0f1ff,#fff) }
.about__sponsors-card-green{ background:linear-gradient(to right,#e8fbe6,#fff) }
.about__sponsors-card-orange{ background:linear-gradient(to right,#fff2e0,#fff) }
.about__sponsors-card-purple{ background:linear-gradient(to right,#f0e8ff,#fff) }
.about__sponsors-image{ flex-shrink:0; width:80px; height:80px; display:flex; align-items:center; justify-content:center; background:#fff; border-radius:50%; overflow:hidden; box-shadow:0 2px 6px #0000000d }
.about__sponsors-image img{ width:100%; height:auto; object-fit:contain }
.about__sponsors-content{ flex:1 }
.about__sponsors-name{ font-size:1.25rem; font-weight:600; margin-bottom:.5rem }
.about__sponsors-desc{ font-size:.95rem; color:#5e5e5e; line-height:1.5 }

/* ---------------------------------------
   Home
--------------------------------------- */
.home__invest,
.home__about,
.home__join-invest,
.home__cta,
.home__contact-cta,
.home__projects,
.home__blog-preview{ padding:2rem 0; text-align:center }
.home__join-invest,
.home__contact-cta{ background:var(--c-soft) }
.home__invest,
.home__cta{ background:var(--c-soft) }
.home__hero{
  position:relative; min-height:100vh; display:flex; align-items:center; justify-content:center; text-align:center
}
.home__hero-bg{ position:absolute; inset:0; z-index:0; background:#bcbcbc }
.home__hero .container{ position:relative; z-index:1; display:flex; align-items:flex-start; padding-top:8vh }
.home__hero-content{ flex:1; display:flex; flex-direction:column; justify-content:center; align-items: center; }
.home__hero-left{ max-width:600px; color:#fff; animation:fadeInUp 1s ease-out }
.home__hero-left .home__hero-subtitle{ text-transform:uppercase; letter-spacing:1px; color:#eee; margin-bottom:1rem; font-size:1.1rem }
.home__hero-left .home__hero-title{ font-size:clamp(2.5rem,6vw,4rem); font-weight:700; margin-bottom:1rem }
.home__hero-left .home__hero-description{ font-size:1.2rem; line-height:1.6; color:#f1f1f1; margin-bottom:1.5rem }
.home__hero-left .home__hero-tags{ display:flex; flex-wrap:wrap; gap:.75rem; justify-content: center; }
.home__hero-left .home__hero-tags .home__hero-tag{ background:#ffffff26; padding:.5rem 1rem; border-radius:30px; font-size:.9rem; font-weight:500 }

.home__about-title,
.home__join-invest-title,
.home__cta-title,
.home__contact-cta-title,
.home__projects-title,
.home__blog-preview-title{ font-size:2rem; margin-bottom:1rem }
.home__about-desc{ max-width:666px; margin:0 auto 2rem; color:#444; line-height:1.6 }
.home__join-invest-desc,
.home__cta-text,
.home__contact-cta-desc{ max-width:700px; margin:0 auto 2rem; color:#444; line-height:1.6 }

.home__invest-title{ font-size:2rem; margin-bottom:1rem }
.home__invest-subtitle{ font-size:1.25rem; letter-spacing:1px }
.home__invest-stats{ display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid #ddd; border-left:1px solid #ddd }
.home__invest-stats .home__invest-stat{ padding:1.5rem; border-right:1px solid #ddd; border-bottom:1px solid #ddd }
.home__invest-stats .home__invest-stat-label{ display:block; color:#555; margin-bottom:.5rem; font-size:.9rem }
.home__invest-stats .home__invest-stat-value{ font-size:1.5rem; font-weight:600 }
.home__invest-stats .home__invest-stat .up-arrow{ color:green; margin-left:.25rem }

.home__projects-name,
.home__blog-preview-name{ margin-top:.75rem; text-align:center; font-weight:500 }
.home__projects-controls,
.home__blog-preview-controls{ text-align:center; margin-top:2rem }
.home__projects-list .blog-card .card-image-wrapper img,
.home__blog-preview-list .blog-card .card-image-wrapper img{ border-radius:10px }
.home__projects-list .blog-card .card-title,
.home__blog-preview-list .blog-card .card-title{ font-size:18px; margin-top:.5rem; min-height:auto; text-align:left }
.home__projects-list .blog-card .card-meta,
.home__blog-preview-list .blog-card .card-meta{ margin-top:auto }

@media (max-width:991px){
  .home__projects-list,
  .home__blog-preview-list{ grid-template-columns:repeat(2,1fr) }
}
@media (max-width:767px){
  .home__projects-list,
  .home__blog-preview-list{ grid-template-columns:1fr }
  .home__hero{ height:400px }
  .home__hero-content{ min-height:400px; padding:1rem }
}

.home__projects-item,
.home__blog-preview-item{
  display:flex; flex-direction:column; aspect-ratio:4/3; overflow:hidden; border-radius:.5rem; padding:10px 20px;
  background:var(--c-soft-2); align-items:center; justify-content:center; transition:transform var(--t); cursor:pointer
}
@media (hover:hover) and (pointer:fine){ .home__projects-item:hover, .home__blog-preview-item:hover{ transform:translateY(-5px) } }
.home__projects-item img,
.home__blog-preview-item img{ width:100%; height:100%; object-fit:cover }
.home__projects-media,
.home__blog-preview-media{ width:100%; aspect-ratio:4/3; border-radius:.5rem; overflow:hidden; background:var(--c-soft-2) }

/* ---------------------------------------
   Projects extras
--------------------------------------- */
.projects__title{ margin-bottom:20px }
.btn__more{ margin:2rem 0; text-align:center }
.loadmore-btn:disabled{ opacity:.6; cursor:not-allowed }

/* ---------------------------------------
   Utilities & misc
--------------------------------------- */
.hidden{ display:none!important }

/* Animations */
@keyframes fadeInUp{ 0%{opacity:0; transform:translateY(20px)} 100%{opacity:1; transform:translateY(0)} }
@keyframes bounce{
  0%,20%,50%,80%,100%{ transform:translate(-50%) translateY(0) }
  40%{ transform:translate(-50%) translateY(-10px) }
  60%{ transform:translate(-50%) translateY(-5px) }
}
.scroll-down{ position:absolute; bottom:2rem; left:50%; transform:translateX(-50%); font-size:2rem; color:#fff; animation:bounce 2s infinite }
.scroll-down:hover{ color:var(--c-accent) }

/* ======================================================================
   404 PAGE (scoped by body.error404 to avoid side effects)
   Используются существующие шрифты/переменные. Палитра — нейтральная.
====================================================================== */
body.error404{
  background: var(--c-soft);
}

body.error404 .not-found-header,
body.error404 .not-found-footer{
}

body.error404 main{
  display:grid; place-items:center;
  padding: clamp(32px, 8vh, 96px) clamp(20px, 5vw, 48px);
}

body.error404 .wrap{
  max-width: 1100px; width: 100%;
  display: grid; gap: 28px;
  grid-template-columns: 1.2fr 1fr;
  align-items: stretch;
}
@media (max-width: 960px){
  body.error404 .wrap{ grid-template-columns: 1fr; }
}

body.error404 .card{
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 18px;
  box-shadow: 0 6px 24px rgba(16,24,40,.06), 0 1px 2px rgba(16,24,40,.06);
  padding: clamp(20px, 3.6vw, 36px);
}

body.error404 .code{
  display:inline-grid; place-items:center;
  font-weight:800; font-size:clamp(64px, 9vw, 128px);
  letter-spacing:-2px; line-height:.9; color:transparent;
  -webkit-text-stroke:2px rgba(0,0,0,.15); text-stroke:2px rgba(0,0,0,.15);
  text-shadow:0 0 0 var(--c-text), 0 4px 18px rgba(0,0,0,.08);
  background:linear-gradient(180deg, rgba(0,0,0,.12), rgba(0,0,0,.06));
  -webkit-background-clip:text; background-clip:text;
}

body.error404 h1{ font-size:clamp(26px, 3.2vw, 40px); margin:12px 0 8px; font-weight:700; }
body.error404 p.lead{ color: #6b7280; margin:0 0 18px; font-size:clamp(16px, 2vw, 18px); }

body.error404 .actions{ display:flex; flex-wrap:wrap; gap:10px; margin-top:8px; }
body.error404 .btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:12px 18px; border-radius:12px;
  border:1px solid rgba(0,0,0,.12);
  background:#fff; color:var(--c-text); font-weight:600;
  transition: transform .08s ease, background .2s ease, border-color .2s ease, color .2s ease;
}
body.error404 .btn:hover{ transform:translateY(-1px); border-color:rgba(0,0,0,.18); }
body.error404 .btn.primary{ background:rgba(0,0,0,.02); }

body.error404 .search{
  display:grid; grid-template-columns:1fr auto; gap:10px; margin-top:18px;
}
body.error404 .search input{
  width:100%; padding:14px 16px; border-radius:12px;
  border:1px solid rgba(0,0,0,.12); background:#fff; color:var(--c-text);
}
body.error404 .search button{
  padding:14px 18px; border-radius:12px;
  border:1px solid rgba(0,0,0,.12); background:rgba(0,0,0,.04);
  color:var(--c-text); font-weight:600;
}

body.error404 .aside{
  position:relative; overflow:hidden;
  background:#f9fafb; /* нейтрально-светлый */
}
body.error404 .grid-bg{
  position:absolute; inset:-1px;
  background:
    linear-gradient(transparent 23px, rgba(2,6,23,.06) 24px),
    linear-gradient(90deg, transparent 23px, rgba(2,6,23,.05) 24px);
  background-size:24px 24px;
  mask-image: radial-gradient(80% 70% at 60% 20%, #000 40%, transparent 70%);
}
body.error404 .illustration{ position:relative; aspect-ratio:4/3; display:grid; place-items:center; }
body.error404 .ill-wrap{ position:relative; width:100%; max-width:520px; }
@keyframes floaty404 { 0%{transform:translateY(0)} 50%{transform:translateY(-8px)} 100%{transform:translateY(0)} }
body.error404 .ill-wrap svg{ animation: floaty404 6s ease-in-out infinite; }

body.error404 .crumbs{ color:#6b7280; font-size:14px; }
body.error404 .crumbs a{ color:#6b7280; text-decoration:none; }
body.error404 .crumbs a:hover{ color:var(--c-text); }

body.error404 .visually-hidden{
  position:absolute !important; height:1px; width:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); white-space:nowrap;
}

body.error404 footer small code{ background:#00000008; padding:.1em .3em; border-radius:.25em; }

.page{min-height:100%;background:#fff;color:var(--c-text)}
.section{padding:32px 0}
.section--tight{padding:40px 0}
.section__head{margin-bottom:28px}
.section__title{font-family:Montserrat, sans-serif;font-size:32px;line-height:1.2;margin:0 0 10px;color:#000}
.section__subtitle{color:var(--c-text-muted);margin:0}

.hero{position:relative;padding:48px 0 72px}
@media (max-width: 768px) { .hero { padding: 36px 0 24px; }}
.hero__grid{display:grid;grid-template-columns:1fr;gap:28px;align-items:center; margin: 1rem 0 2rem}
.hero__title{font-family:Montserrat, sans-serif;font-size:clamp(32px,5vw,52px);line-height:1.1;margin:0 0 12px;color:#000}
.hero__text{color:var(--c-text-muted);margin:0 0 24px}
.hero__actions{display:flex;gap:12px;flex-wrap:wrap}
@media (min-width:880px){.hero__grid{grid-template-columns:1.05fr .95fr;gap:40px}}

.cards{display:grid;grid-template-columns:1fr;gap:16px}
@media (min-width:640px){.cards{grid-template-columns:repeat(2,1fr)}}
@media (min-width:960px){.cards{grid-template-columns:repeat(3,1fr)}}
.card{background:#fff;border:1px solid var(--c-accent);border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow);height:100%;display:flex;flex-direction:column;gap:10px}
.card__title{font-weight:600;font-size:18px;margin:0;color:#2c3e50}
.card__text{color:var(--c-text);margin:0}
.card__media{border-radius:12px;overflow:hidden}
.card__img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block}
.card--project{padding:12px}
.card--project .card__body{padding:10px 6px 6px}
.card--project .card__meta{color:var(--c-muted);font-size:14px}

.benefits{display:grid;grid-template-columns:1fr;gap:12px}
.benefits__item{display:grid;grid-template-columns:32px 1fr;gap:12px;background:#fff;border:1px solid var(--c-accent);border-radius:var(--radius-lg);padding:14px;box-shadow:var(--shadow)}
.benefits__icon{width:32px;height:32px;border-radius:8px;background:var(--c-accent)}

.steps{display:grid;grid-template-columns:1fr;gap:14px;counter-reset:step}
.steps__item{background:#fff;border:1px solid var(--c-accent);border-radius:var(--radius-lg);padding:18px;position:relative;box-shadow:var(--shadow)}
.steps__item::before{counter-increment:step;content:counter(step);position:absolute;top:12px;right:12px;font-size:12px;font-weight:700;color:var(--c-muted)}
.steps__title{margin:0 0 6px;font-weight:600}
.steps__text{margin:0;color:var(--c-text-muted)}
@media (min-width:880px){.steps{grid-template-columns:repeat(3,1fr)}}

.section__cta { text-align: center; }
.cta__title{font-size:22px;margin:0;color:#000;font-family:Montserrat, sans-serif}
.cta__text{margin:0;color:var(--c-text-muted)}
.cta__actions{display:flex;gap:10px;flex-wrap:wrap; justify-content: center; }

.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;border:0!important}

/* =========================
   Gallery (scoped, cleaned)
   ========================= */
.gallery{
  --g-gap: 18px;
  --g-radius: 18px;
  --g-shadow: 0 8px 28px rgba(0,0,0,.12);
  --g-card-max: 720px;
  --g-overlay: rgba(0,0,0,.32);

  display: grid;
  gap: var(--g-gap);
  grid-template-columns: 1fr;
  justify-items: center;
  width: 100%;
}

.gallery-text {
  padding-inline: clamp(8px, 2vw, 16px);
  margin-bottom: 24px;
 margin:12px 0 18px; 
	line-height:1.7; 
	font-size:1.05rem; 
	color:var(--c-text);
}

@media (min-width: 768px){
	.gallery{
		grid-template-columns: repeat(2, 1fr);
	}
}

.gallery .sub{
  margin: 0 0 22px;
  color: var(--c-text-muted, #57606a);
  font-size: clamp(14px, 1.4vw, 16px);
}

.gallery .card{
  position: relative;
  overflow: hidden;
  border-radius: var(--g-radius);
  background: #fff;
  box-shadow: var(--g-shadow);
  transition: transform .2s ease, box-shadow .2s ease;
  cursor: zoom-in;
  width: min(100%, var(--g-card-max));
  margin-inline: auto;
  outline: none;
}

.gallery .card:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 36px rgba(0,0,0,.16);
}

@media (hover: none), (pointer: coarse){
  .gallery .card:hover{
    transform: none;
    box-shadow: var(--g-shadow);
  }
  .lightbox .btn:hover{ background: rgba(255,255,255,.85); }
}

.gallery .card:focus-visible{ box-shadow: 0 0 0 3px #5b9dd8; }

.gallery .media{
  aspect-ratio: 16/10;
  object-fit: cover;
}
@media (orientation: portrait){
  .gallery .media{ aspect-ratio: 4/3; }
}

.gallery .caption{
  position: absolute;
  inset-inline: 14px;
  bottom: 14px;
  padding: 10px 12px;
  border-radius: 12px;
  background: var(--g-overlay);
  color: #fff;
  font-size: 14px;
  line-height: 1.35;
  text-shadow: 0 1px 2px rgba(0,0,0,.35);
}

@media (hover: hover){
  .gallery .caption{
    opacity: 0;
    transform: translateY(6px);
    transition: .18s ease;
    pointer-events: none;
  }
  .gallery .card:hover .caption,
  .gallery .card:focus-visible .caption{
    opacity: 1;
    transform: none;
  }
}

/* ---------- Lightbox ---------- */
.lightbox{
  position: fixed;
  inset: 0;
  display: none;
  background: rgba(0,0,0,.72);
  backdrop-filter: blur(4px) saturate(1.1);
  z-index: 9999;
}
.lightbox[aria-hidden="false"]{
  display: grid;
  place-items: center;
}

.lightbox__img{
  max-width: min(1000px, 92vw);
  max-height: 86vh;
  border-radius: 18px;
  box-shadow: 0 8px 28px rgba(0,0,0,.12);
  touch-action: pan-y;
}

.lightbox__controls{
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px calc(20px + env(safe-area-inset-right)) 20px calc(20px + env(safe-area-inset-left));
}

.lightbox .btn{
  appearance: none;
  border: 0;
  outline: 0;
  display: grid;
  place-items: center;
  width: clamp(48px, 6.5vw, 64px);
  height: clamp(48px, 6.5vw, 64px);
  border-radius: 999px;
  background: rgba(255,255,255,.85);
  border: 1px solid rgba(255,255,255,.55);
  cursor: pointer;
  user-select: none;
  backdrop-filter: blur(8px);
}
.lightbox .btn:hover{ background: #fff; }
.lightbox .btn:focus-visible{
  outline: 3px solid #5b9dd8;
  outline-offset: 2px;
}
.lightbox .btn svg{
  width: clamp(20px, 2.2vw, 24px);
  height: clamp(20px, 2.2vw, 24px);
}

.lightbox .btn--close{
  position: fixed;
  top: calc(16px + env(safe-area-inset-top));
  right: calc(16px + env(safe-area-inset-right));
}

.lightbox__caption{
  position: fixed;
  left: 50%;
  bottom: calc(18px + env(safe-area-inset-bottom));
  transform: translateX(-50%);
  max-width: min(72ch, 92vw);
  color: #fff;
  text-align: center;
  opacity: .95;
  font-size: 14px;
  text-shadow: 0 1px 2px rgba(0,0,0,.35);
  padding: 6px 10px;
  border-radius: 10px;
  background: rgba(0,0,0,.28);
}

@media (prefers-reduced-motion: no-preference){
  .lightbox[aria-hidden="false"] .lightbox__img{
    animation: g-pop .18s ease;
  }
  @keyframes g-pop{
    from{ transform: scale(.985); opacity:.6; }
  }
}

@media (forced-colors: active){
  .gallery .caption,
  .lightbox__caption,
  .lightbox .btn{
    background: CanvasText;
    color: Canvas;
    border: 1px solid Canvas;
  }
}

.entry-nav--back{
  margin: 0 0 12px;
}

.btn.btn--back{
  display:inline-flex;
  align-items:center;
  gap:.55rem;

  padding:.6rem 1rem;
  font-size:1rem;
  font-weight:600;
  line-height:1;

  background:#fff;
  color:var(--c-text-2);
  border:1px solid var(--c-accent);
  border-radius:var(--radius-xl);
  box-shadow:var(--shadow);

  cursor:pointer;
  transition:
    background-color var(--t),
    color var(--t),
    border-color var(--t),
    transform var(--t),
    box-shadow var(--t);
}

.btn.btn--back .icon{
  width:20px; height:20px;
  flex:0 0 auto;
  stroke:currentColor;
  transition: transform var(--t);
}

@media (hover:hover) and (pointer:fine){
  .btn.btn--back:hover,
  .btn.btn--back:focus{
    background:var(--c-accent);
    color:#fff;
    border-color:var(--c-accent);
    transform:translateY(-1px);
    box-shadow:0 10px 20px #0000001a;
  }
  .btn.btn--back:hover .icon,
  .btn.btn--back:focus .icon{
    transform:translateX(-4px);
  }
}

.btn.btn--back:focus-visible{
  outline:2px solid var(--c-accent);
  outline-offset:2px;
}

.btn.btn--back:active{
  background:var(--c-accent-strong);
  color:#fff;
  border-color:var(--c-accent-strong);
  transform:scale(.98);
}

.header--transparent .btn.btn--back{
  background:#ffffff26;
  color:#fff;
  border-color:#ffffff80;
  box-shadow:none;
}
@media (hover:hover) and (pointer:fine){
  .header--transparent .btn.btn--back:hover,
  .header--transparent .btn.btn--back:focus{
    background:#ffffff40;
    color:#fff;
    border-color:#ffffffb3;
  }
}

.entry-content p {
  font-size: 2.15rem;
  line-height: 1.8;        
  color: #333;
  margin: 1.2em 0;
  font-weight: 400;
  letter-spacing: 0.2px;
}

.entry-content p:first-of-type {
  font-size: 2.25rem;
  font-weight: 500;
  color: #111;
}


/* ================================
   Text utilities for editor use
   ================================ */

.text-hero{
  font-family: Montserrat, sans-serif;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.08;
  color:#000;
  margin: 0 0 .35em;
  font-size: clamp(2.4rem, 6.2vw, 4.5rem);
}

.text-subtitle {
  color: var(--c-muted) !important;
  line-height: 1.65 !important;
  margin: 0 !important;
  font-size: clamp(1.125rem, 1.2vw + .8rem, 1.375rem) !important;
}

.text-subtitle--line{
  position: relative !important;
  padding-bottom: .85rem !important;
  margin-bottom: 1.1rem!important;
}
.text-subtitle--line::after{
  content:"" !important;
  position:absolute; left:0; right:0; bottom:0 !important;
  height:1px !important;
  background:#e5e5e5 !important;
}

.text-lead{
  color: var(--c-text-2) !important;
  line-height: 1.8 !important;
  margin: 0 0 1.3rem !important;
  font-size: clamp(1.125rem, .6vw + 1rem, 1.25rem) !important;
}
.text-muted{ color: var(--c-muted); }
.text-bold{ font-weight: 700; }
.text-tight{ line-height: 1.5; }
.text-wide{ line-height: 1.9; }

.home__hero {
  position: relative;
  overflow: hidden;
}

.home__hero-bg {
  position: absolute;
  inset: 0; 
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  z-index: -1;
}

.home__hero-content {
  position: relative;
  z-index: 1;
  padding: 60px 0;
}

@media (min-width: 992px) {
  .home__hero-content {
    padding: 100px 0;
  }
}

.hero__media {
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow);
  background: #fff;
  height: 500px;
}

.hero__img {
  object-fit: cover;
  object-position: top;
  width: 100%;
  height: 100%;
  display: block;
}

.map-responsive {
  position: relative;
  overflow: hidden;
  width: 80%;
  max-width: 1000px;
  margin: 0 auto;
  padding-top: 35%;
  border-radius: 10px;
}

.map-responsive iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

@media (max-width: 768px) {
  .map-responsive {
    width: 100%;
    padding-top: 70%;
    border-radius: 0;
  }
	.contacts__map-section {
		padding: 2rem 0.75rem;
	}
}

.scroll-top {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    border: none;
    background: rgba(0,0,0,0.6);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    transition: all 0.3s ease;
    z-index: 1000;
  }
  .scroll-top:hover {
    background: rgba(0,0,0,0.8);
  }
  .scroll-top.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }

#primary{ margin-bottom: 30px }
@media(max-width: 768px) { #primary { margin-bottom: 15px }}