:root{--ink:#111111;--muted:#777;--pale:#f7f7f7;--green:#7bab67;--page-pad:40px;--inter:'Inter',Arial,Helvetica,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font-family:var(--inter);font-optical-sizing:auto;-webkit-font-smoothing:antialiased}button,input{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}img{display:block;max-width:100%}::selection{background:#bed4ad;color:#171717}.container{width:min(100% - (var(--page-pad)*2),1560px);margin-inline:auto}.skip-link{position:fixed;top:-200px;left:10px;background:#fff;color:#111;z-index:200;padding:12px}.skip-link:focus{top:10px}.section{scroll-margin-top:32px}.eyebrow{font-size:13px;font-weight:400;color:#999;margin:0 0 7px;line-height:1.25}h1,h2,h3,p{margin-top:0}.section-heading h2,.faq h2{font-weight:450;font-size:38px;line-height:1.12;letter-spacing:-1.4px;margin:0}.hero{height:700px;position:relative;color:#fff;isolation:isolate;overflow:hidden}.hero__backdrop{position:absolute;inset:0;z-index:-2;background:url('assets/hero.webp') center 52%/cover no-repeat;transform:scale(1.002)}.hero__shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(0,0,0,.50),rgba(0,0,0,.1) 68%,rgba(0,0,0,.1)),linear-gradient(0deg,rgba(0,0,0,.21),transparent 58%)}.nav{height:74px;display:flex;align-items:center;justify-content:space-between;gap:24px;font-size:13px;position:relative;z-index:10}.brand{font-size:12px;letter-spacing:5px;white-space:nowrap;font-weight:500}.nav__links,.nav__contacts{display:flex;align-items:center;gap:23px}.nav__contacts{gap:20px;white-space:nowrap}.nav a{transition:opacity .2s}.nav a:hover{opacity:.7}.telegram-placeholder{opacity:.74;cursor:default}.mobile-menu-toggle{display:none}.hero__content{position:relative;padding-top:255px}.hero h1{font-size:61px;font-weight:450;line-height:1.02;letter-spacing:-2.1px;margin:0 0 16px}.hero p{font-size:17px;font-weight:400;line-height:1.38;max-width:560px;margin-bottom:22px;color:#f0efee}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:47px;padding:11px 24px;font-size:14px;font-weight:500;transition:background-color .2s,color .2s}.button:hover{transform:none}.button:focus-visible,a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid #80b36e;outline-offset:3px}.button--light{background:#fff;color:#121212;min-width:337px}.button--light:hover{background:#eaeaea}.button--dark{background:#000;color:#fff;width:100%}.button--dark:hover{background:#353535}.hero__cta span{font-size:15px}
/* Projects */
.projects{padding-top:76px;padding-bottom:82px}.projects__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:25px}.project{padding:0;text-align:left;border:0;background:transparent;min-width:0;color:inherit}.project__photo{width:100%;height:440px;overflow:hidden;background:#e8e4e0}.project__photo img{height:100%;width:100%;object-fit:cover;object-position:center 46%;transition:transform .5s cubic-bezier(.2,.7,.2,1)}.project[data-project='primavera'] .project__photo img{object-position:center 60%}.project[data-project='pionerskaya'] .project__photo img{object-position:center 52%}.project:hover .project__photo img{transform:scale(1.035)}.project__title-row{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-top:13px;font-size:19px;font-weight:450;letter-spacing:-.4px}.project__area{color:#909090;font-size:18px;font-weight:400}.project__location{display:block;margin-top:8px;font-size:14px;color:#949494}.project__arrow{opacity:0;transform:translate(-4px,4px);transition:.2s}.project:hover .project__arrow,.project:focus-visible .project__arrow{opacity:1;transform:none}
/* About */
.about{display:grid;grid-template-columns:1.05fr 1fr .94fr;grid-template-rows:minmax(230px,auto) auto;column-gap:35px;row-gap:55px;padding-top:34px;padding-bottom:104px;align-items:start}.about__heading h2{font-size:39px;font-weight:450;letter-spacing:-1.6px;line-height:1.07;max-width:470px}.about__body{font-size:16px;line-height:1.41;letter-spacing:-.13px;padding-top:13px;max-width:425px}.about__body p{margin:0 0 24px}.about__stats{display:flex;grid-column:1/span 2;gap:min(5vw,78px);align-items:start;align-self:end}.stat{min-width:135px}.stat__value{font-weight:400;font-size:56px;line-height:1;letter-spacing:-2px;white-space:nowrap}.stat__value span{font-size:40px;letter-spacing:-1px}.stat__label{margin-top:11px;font-size:13px;line-height:1.25;color:#999}.about__portrait{grid-column:3;grid-row:1/span 2;align-self:stretch;min-height:500px;max-height:560px;overflow:hidden;background:#f3f3f3}.about__portrait img{height:100%;width:100%;object-fit:cover;object-position:center 24%}
/* Services */
.services{padding:4px 0 124px}.section-heading--simple h2{font-size:36px}.services__grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:29px}.service-card{background:#f7f7f7;min-height:530px;padding:25px 25px 24px;display:flex;flex-direction:column}.service-card__heading{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:16px}.service-card h3{font-size:25px;line-height:1.15;letter-spacing:-.65px;font-weight:450;margin:0}.service-card__tag{color:#fff;background:#7ca96a;border-radius:999px;padding:5px 13px;font-size:12px;white-space:nowrap}.service-card__desc{color:#909090;font-size:15px;line-height:1.45;margin-bottom:20px;max-width:630px}.service-card__list{margin:0 0 18px;padding:0;list-style:none;font-size:15px;line-height:1.35}.service-card__list li{position:relative;padding-left:25px;margin-bottom:8px}.service-card__list li::before{position:absolute;left:1px;top:2px;content:'✓';font-size:16px;color:#81ae6d;font-weight:600}.service-card__example{border:0;border-bottom:1px solid #333;display:inline-flex;align-items:center;gap:28px;padding:0 0 3px;background:none;width:max-content;color:#454545;font-size:14px}.service-card__example:hover{opacity:.65}.service-card__bottom{margin-top:auto}.service-card__price{font-size:40px;line-height:1;letter-spacing:-1.3px;font-weight:450;margin:0 0 20px}
/* FAQ */
.faq{display:grid;grid-template-columns:1fr 1.9fr;gap:60px;padding-top:6px;padding-bottom:120px}.faq h2{max-width:390px}.faq__questions{display:grid;gap:17px}.faq-item{background:#f7f7f7;padding:24px 28px 23px}.faq-item summary{list-style:none;font-size:20px;font-weight:450;line-height:1.3;letter-spacing:-.4px;display:flex;justify-content:space-between;gap:16px;cursor:pointer}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary span{width:12px;height:12px;flex:0 0 auto;border-top:1.7px solid #555;border-left:1.7px solid #555;transform:rotate(45deg) translate(-3px,2px);transition:transform .18s;margin-top:7px}.faq-item:not([open]) summary span{transform:rotate(225deg) translate(-1px,1px)}.faq-item__answer{margin-top:19px;max-width:720px;font-size:15px;line-height:1.48;color:#333}
/* Footer */
.footer{color:#fff;background:#000}.footer__inner{min-height:300px;padding-top:52px;padding-bottom:38px;position:relative}.footer__main{display:flex;flex-direction:column;gap:3px;font-size:17px;line-height:1.1;letter-spacing:.4px}.footer__main span{font-size:14px;color:#c6c6c6}.footer__menu{display:flex;flex-direction:column;gap:8px;font-size:13px;margin-top:37px;width:max-content}.footer__contacts{display:flex;gap:22px;align-items:center;position:absolute;right:0;bottom:43px;font-size:13px}.footer a:hover{opacity:.76}
/* Dialogs */
.gallery-modal{width:min(1080px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:0;border:0;background:#fff;color:#111;box-shadow:0 26px 90px rgba(0,0,0,.3)}.gallery-modal::backdrop,.album-dialog::backdrop{background:rgba(13,13,13,.78)}.gallery-modal__panel{padding:23px 24px 20px}.gallery-modal__top{display:flex;align-items:start;justify-content:space-between;gap:30px;margin-bottom:15px}.gallery-modal__top h2{font-weight:500;font-size:25px;margin:4px 0 0}.gallery-modal__meta{font-size:13px;color:#888;margin:0}.gallery-modal__close,.album-dialog__close{border:0;background:transparent;color:#111;font-size:32px;line-height:1;width:42px;height:42px;display:grid;place-items:center}.gallery-modal__image-wrap{background:#eee;position:relative;display:flex;align-items:center;justify-content:center;height:min(68dvh,710px)}.gallery-modal__image-wrap img{width:100%;height:100%;object-fit:contain}.gallery-modal__arrow{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:54px;border:0;background:rgba(255,255,255,.85);font-size:32px;z-index:2}.gallery-modal__arrow--prev{left:8px}.gallery-modal__arrow--next{right:8px}.gallery-modal__arrow[hidden]{display:none}.gallery-modal__bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:14px;color:#777;font-size:13px}.gallery-modal__thumbnails{display:flex;gap:7px;flex-wrap:wrap}.gallery-modal__thumbnails button{width:64px;height:50px;padding:0;border:2px solid transparent;background:#eee;opacity:.65}.gallery-modal__thumbnails button[aria-current='true']{border-color:#111;opacity:1}.gallery-modal__thumbnails img{width:100%;height:100%;object-fit:cover}.album-dialog{border:0;padding:0;width:min(520px,calc(100vw - 32px))}.album-dialog>div{padding:40px;position:relative}.album-dialog h2{font-weight:500;font-size:28px;line-height:1.2}.album-dialog p:not(.eyebrow){font-size:15px;line-height:1.5;color:#555;margin:14px 0 28px}.album-dialog__close{position:absolute;top:12px;right:12px}.album-dialog .button{font-size:14px}
@media(max-width:1150px){:root{--page-pad:28px}.nav{font-size:12px;gap:12px}.brand{letter-spacing:2px}.nav__links,.nav__contacts{gap:13px}.project__photo{height:340px}.about{grid-template-columns:1fr 1fr .85fr;gap:22px}.about__heading h2{font-size:35px}.stat__value{font-size:44px}.about__stats{gap:30px}.service-card__price{font-size:34px}.faq{gap:36px}.faq-item summary{font-size:18px}}
@media(max-width:780px){:root{--page-pad:22px}.hero{height:730px;min-height:650px}.hero__backdrop{background-position:center}.hero__shade{background:linear-gradient(90deg,rgba(0,0,0,.58),rgba(0,0,0,.18)),linear-gradient(0deg,rgba(0,0,0,.42),transparent 85%)}.nav{height:76px}.brand{font-size:11px;letter-spacing:2.2px}.mobile-menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:6px;border:0;background:rgba(0,0,0,.25);width:45px;height:42px;padding:10px}.mobile-menu-toggle span{width:100%;height:1.5px;background:#fff}.nav__links{display:none;position:absolute;top:74px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:12px 24px 18px;background:#191817;box-shadow:0 15px 30px rgba(0,0,0,.15)}.nav__links.is-open{display:flex}.nav__links a{padding:13px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:15px}.nav__contacts{display:none}.hero__content{padding-top:280px}.hero h1{font-size:clamp(38px,7vw,58px);letter-spacing:-1.5px}.hero p{max-width:470px;font-size:15px}.hero__cta{width:min(340px,100%);min-width:0}.projects{padding-top:70px;padding-bottom:70px}.section-heading h2,.faq h2{font-size:33px}.projects__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 15px}.project__photo{height:320px}.project__title-row{font-size:16px}.project__area{font-size:15px}.project__location{font-size:12px}.about{grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto;gap:28px;padding-bottom:95px}.about__heading{grid-column:1}.about__body{grid-column:2;padding-top:5px}.about__heading h2{font-size:34px}.about__stats{grid-column:1 / -1;grid-row:3;gap:32px}.about__portrait{grid-column:1 / -1;grid-row:2;max-height:400px;min-height:330px}.about__portrait img{object-position:center 32%}.services{padding-bottom:98px}.services__grid{gap:15px}.service-card{padding:22px 18px;min-height:490px}.service-card h3{font-size:21px}.service-card__tag{font-size:10px;padding:4px 8px}.service-card__price{font-size:30px}.service-card__desc,.service-card__list{font-size:13px}.faq{grid-template-columns:1fr;gap:30px;padding-bottom:100px}.faq h2{max-width:none}.footer__contacts{position:static;margin-top:50px}}
@media(max-width:560px){:root{--page-pad:18px}.hero{height:690px;min-height:0}.hero__content{padding-top:252px}.hero h1{font-size:42px;line-height:1.04}.hero p{font-size:14px;line-height:1.53}.hero__cta{width:100%;max-width:300px}.projects{padding-top:60px;padding-bottom:66px}.projects__grid{grid-template-columns:1fr;gap:28px;margin-top:22px}.project__photo{height:auto;aspect-ratio:4/3}.project__title-row{margin-top:11px}.about{grid-template-columns:1fr;display:flex;flex-direction:column;gap:23px;padding-top:14px;padding-bottom:70px}.about__heading h2{font-size:32px;max-width:380px}.about__body{font-size:14px;padding:0;max-width:600px}.about__body p{margin-bottom:12px}.about__portrait{width:100%;height:470px;min-height:0;max-height:470px;order:3}.about__stats{order:4;width:100%;gap:12px;justify-content:space-between;margin-top:10px}.stat{min-width:0}.stat__value{font-size:clamp(32px,9vw,49px)}.stat__value span{font-size:.65em}.stat__label{font-size:11px;margin-top:5px}.services{padding-bottom:76px}.services__grid{grid-template-columns:1fr;gap:16px}.service-card{min-height:470px;padding:22px}.service-card h3{font-size:23px}.service-card__tag{font-size:11px}.service-card__desc,.service-card__list{font-size:14px}.service-card__price{font-size:36px}.faq{padding-bottom:82px}.faq-item{padding:20px 19px}.faq-item summary{font-size:16px}.faq-item__answer{font-size:13px}.footer__inner{min-height:320px}.footer__main{font-size:15px}.footer__contacts{flex-wrap:wrap;gap:14px;font-size:12px}.gallery-modal__panel{padding:15px}.gallery-modal__image-wrap{height:min(66dvh,600px)}.gallery-modal__top h2{font-size:20px}.gallery-modal__thumbnails button{width:48px;height:38px}.album-dialog>div{padding:38px 24px 26px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}


/* Fixed navigation and reliable anchored section positioning. */
:root { --header-height: 74px; }
html {
  scroll-padding-top: 0; /* JS scrolls directly to each section heading. */
  overscroll-behavior-x: none;
  overscroll-behavior-y: none;
  background: #101010;
}
body {
  background: #101010; /* Prevent white flashes behind hero/footer on rubber-band scroll. */
  overscroll-behavior-y: none;
}
main { background: #fff; }
.section { scroll-margin-top: var(--header-height); } /* Fallback for anchors without JS. */
.site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 90;
  color: #fff; background: transparent;
  transition: background-color .28s ease, color .28s ease, box-shadow .28s ease;
}
.site-header.is-scrolled {
  color: #151515; background: #fff;
  box-shadow: 0 1px 0 rgba(0,0,0,.10);
}
.site-header .nav { position: relative; z-index: 1; }
.site-header .nav a:hover { opacity: 1; }

/* Menu/footer links underline is drawn smoothly from left to right. */
.site-header .nav a:not(.button), .footer a { position: relative; }
.site-header .nav a:not(.button)::after, .footer a::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: -5px;
  height: 1px; background: currentColor;
  transform: scaleX(0); transform-origin: left center;
  transition: transform .32s cubic-bezier(.22,.61,.36,1);
  pointer-events: none;
}
.site-header .nav a:not(.button):hover::after,
.site-header .nav a:not(.button):focus-visible::after,
.footer a:hover::after,
.footer a:focus-visible::after { transform: scaleX(1); }
.footer a:hover { opacity: 1; }
.button:hover { transform: none; }

/* Always visibly underlined: the example album is a link-like control. */
.service-card__example {
  border-bottom: 0;
  text-decoration-line: underline;
  text-underline-offset: 4px;
  text-decoration-thickness: 1px;
  text-decoration-color: currentColor;
  transition: color .2s ease;
}
.service-card__example:hover,
.service-card__example:focus-visible {
  opacity: 1;
  color: #8e8e8e;
}
.service-card__example::after { content: none; }

/* User-supplied portrait. */
.about__portrait img { object-position: center center; }
@media (max-width: 780px) {
  :root { --header-height: 76px; }
  .site-header.is-scrolled .mobile-menu-toggle { background: rgba(0,0,0,.055); }
  .site-header.is-scrolled .mobile-menu-toggle span { background: #111; }
  .site-header.is-scrolled .nav__links {
    background: #fff; color: #111;
    box-shadow: 0 15px 30px rgba(0,0,0,.12);
  }
  .site-header.is-scrolled .nav__links a { border-bottom-color: rgba(0,0,0,.12); }
}
@media (prefers-reduced-motion: reduce) {
  .site-header, .site-header a::after, .footer a::after,
  .service-card__example { transition: none !important; }
}


/* October 21 refinements: compact header, hero, links and portfolio. */
:root { --green: #54932C; }
.hero { height: 700px; }
.hero__content {
  position: absolute;
  inset-inline: 0;
  bottom: 54px;
  padding-top: 0;
}
.site-header .nav .brand::after { content: none !important; }
.site-header .nav .brand { transition: color .23s ease; }
.site-header .nav .brand:hover,
.site-header .nav .brand:focus-visible { color: #c2c2c2; }
.site-header.is-scrolled .nav .brand:hover,
.site-header.is-scrolled .nav .brand:focus-visible { color: #555; }
.nav__telegram-mobile { display: none; }
.project__image {
  width: 100%; height: 100%;
  background-repeat: no-repeat;
  background-position: center 46%;
  background-size: cover;
  transition: transform .5s cubic-bezier(.2,.7,.2,1);
}
.project[data-project='primavera'] .project__image { background-image: url('assets/primavera.webp'); background-position: center 60%; }
.project[data-project='skolkovo'] .project__image { background-image: url('assets/skolkovo.webp'); }
.project[data-project='pionerskaya'] .project__image { background-image: url('assets/pionerskaya.webp'); background-position: center 52%; }
.project:hover .project__image { transform: scale(1.035); }
.service-card__tag { background: var(--green); }
.service-card__list li { padding-left: 29px; }
.service-card__list li::before {
  content: ''; top: 1px; left: 0;
  width: 19px; height: 18px;
  background: url('assets/check.svg') center / contain no-repeat;
}
.service-card__example {
  display: inline-block;
  gap: 0;
  border: 0;
  border-bottom: 1px solid currentColor;
  padding-bottom: 3px;
  text-decoration: none;
  white-space: nowrap;
  transition: color .2s ease;
}
.service-card__example:hover,
.service-card__example:focus-visible { color: #8e8e8e; }
.faq-item {
  cursor: pointer;
  transition: background-color .22s ease;
}
.faq-item:hover { background: #f0f0f0; }
.faq-item__body { overflow: hidden; }
.faq-item summary span { transition: transform .38s cubic-bezier(.22,.61,.36,1); }
@media (max-width:780px) {
  .hero__content { bottom: 42px; padding-top: 0; }
  .nav__telegram-mobile { display: block; font-weight: 500; }
}
@media (max-width:560px) {
  .hero__content { bottom: 32px; padding-top: 0; }
}
@media (prefers-reduced-motion:reduce) {
  .project__image, .faq-item, .faq-item summary span { transition: none!important; }
}


/* PrimaVera: gallery grid and full-screen lightbox, preserving the original v4 site layout. */
body.modal-open { overflow: hidden; }
.project__title-row { display: block; }
.project__arrow { display: none !important; }
.project__location { display: block; margin-top: 5px; }
.gallery-modal { width: min(1140px, calc(100vw - 48px)); max-width: none; max-height: min(94dvh, 1400px); margin: auto; overflow-y: auto; overscroll-behavior: contain; }
.gallery-modal__panel { padding: clamp(19px, 2.8vw, 38px); }
.gallery-modal__top { position: relative; display: flex; align-items: start; justify-content: space-between; gap: 25px; margin-bottom: clamp(23px,3vw,42px); }
.gallery-modal__top h2 { font-size: clamp(29px,3.2vw,46px); font-weight: 450; line-height: 1.1; letter-spacing: -.045em; margin: 0 0 8px; }
.gallery-modal__meta { font-size: 13px; font-weight: 400; color: #888; margin: 0; }
.gallery-modal__close, .lightbox-modal__close { flex-shrink: 0; display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid #dadada; border-radius: 50%; background: #fff; color: #151515; font-size: 26px; font-weight: 300; line-height: 1; transition: border-color .2s ease, background .2s ease; }
.gallery-modal__close:hover { border-color: #111; background: #f5f5f5; }
.gallery-modal__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(9px,1.5vw,17px); }
.gallery-modal__tile { position: relative; display: block; width: 100%; aspect-ratio: 4 / 3; padding: 0; border: 0; border-radius: 0; background: #f3f3f1; overflow: hidden; cursor: zoom-in; }
.gallery-modal__tile img { display:block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.2,.7,.2,1), opacity .35s; user-select: none; -webkit-user-drag: none; }
.gallery-modal__tile:hover img { transform: scale(1.035); opacity: .93; }
.gallery-modal__tile:focus-visible { outline: 2px solid #111; outline-offset: 3px; }
.lightbox-modal { position: fixed; inset: 0; width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; border: 0; padding: 0; background: #171717; color: #fff; overflow: hidden; }
.lightbox-modal::backdrop { background: #171717; }
.lightbox-modal__panel { height: 100dvh; display: flex; flex-direction: column; }
.lightbox-modal__bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px clamp(16px,3vw,48px); flex: 0 0 auto; }
.lightbox-modal__bar p { margin: 0; font-size: 13px; font-weight: 400; color: #c7c7c7; }
.lightbox-modal__close { color: #fff; background: transparent; border-color: #565656; }
.lightbox-modal__close:hover { background: #303030; }
.lightbox-modal__view { display: flex; align-items: center; justify-content: center; position: relative; flex: 1 1 auto; min-height: 0; padding: 0 75px; }
.lightbox-modal__view img { display: block; max-width: 100%; max-height: 100%; height: auto; width: auto; object-fit: contain; user-select: none; -webkit-user-drag: none; }
.lightbox-modal__nav { position: absolute; z-index: 2; top: 50%; transform: translateY(-50%); width: 44px; height: 54px; border: 0; border-radius: 0; color: #fff; background: rgba(255,255,255,.08); font-size: 36px; font-weight: 300; line-height: 1; }
.lightbox-modal__nav:hover { background: rgba(255,255,255,.2); }
.lightbox-modal__nav:focus-visible { outline: 2px solid #fff; }
.lightbox-modal__nav--prev { left: 16px; }
.lightbox-modal__nav--next { right: 16px; }
.lightbox-modal__nav[hidden] { display:none; }
.lightbox-modal__count { flex: 0 0 auto; margin: 0; padding: 14px 0 18px; color: #b9b9b9; text-align: center; font-size: 12px; font-variant-numeric: tabular-nums; }
@media (max-width: 600px) {
  .gallery-modal { width: 100vw; height: 100dvh; max-height: none; }
  .gallery-modal__panel { padding: 19px 16px 28px; }
  .gallery-modal__grid { grid-template-columns: minmax(0,1fr); gap: 12px; }
  .gallery-modal__top { margin-bottom: 20px; }
  .gallery-modal__top h2 { font-size: 31px; }
  .lightbox-modal__bar { padding: 11px 16px; }
  .lightbox-modal__view { padding: 0 42px; }
  .lightbox-modal__nav { width: 34px; height: 50px; font-size: 29px; }
  .lightbox-modal__nav--prev { left: 4px; }
  .lightbox-modal__nav--next { right: 4px; }
}
@media (prefers-reduced-motion: reduce) { .gallery-modal__tile img, .gallery-modal__close, .lightbox-modal__close { transition: none; } }


/* v5 — requested adjustments to album link, FAQ, services and footer. */
/* Supplied arrow sits directly next to the underlined album link. */
.service-card__example {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  width: max-content;
  max-width: 100%;
  padding-bottom: 3px;
  border-bottom: 1px solid currentColor;
  line-height: 1.3;
  vertical-align: middle;
}
.service-card__example-icon {
  width: 20px;
  height: 20px;
  flex: none;
  display: block;
  transition: opacity .2s ease;
}
.service-card__example:hover .service-card__example-icon,
.service-card__example:focus-visible .service-card__example-icon { opacity: .62; }

/* Price uses exactly the same typography as service title; less dead space. */
.service-card { min-height: 420px; }
.service-card__bottom { margin-top: auto; padding-top: 21px; }
.service-card__price {
  font-size: 25px;
  font-weight: 450;
  line-height: 1.15;
  letter-spacing: -.65px;
  margin: 0 0 16px;
}

/* Replace triangular chevron with plus transforming into ×. */
.faq-item summary { align-items: center; }
.faq-item summary span,
.faq-item:not([open]) summary span,
.faq-item[open] summary span {
  border: 0;
  display: block;
  position: relative;
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  margin: 0;
  transform: rotate(0deg) translate(0,0);
  transition: transform .36s cubic-bezier(.22,.61,.36,1);
}
.faq-item summary span::before,
.faq-item summary span::after {
  content: '';
  position: absolute;
  left: 2px;
  top: 9px;
  width: 16px;
  height: 1.5px;
  background: #292929;
  border-radius: 1px;
}
.faq-item summary span::after { transform: rotate(90deg); }
.faq-item[open] summary span,
.faq-item[data-faq-transition="opening"] summary span { transform: rotate(45deg) translate(0,0); }
.faq-item[data-faq-transition="closing"] summary span { transform: rotate(0deg) translate(0,0); }

/* Footer brand is clickable to #top, but never receives an underline. */
.footer .footer__brand { transition: color .25s ease; }
.footer .footer__brand::after { content: none !important; }
.footer .footer__brand:hover,
.footer .footer__brand:focus-visible { color: #a9a9a9; opacity: 1; }

@media (max-width: 780px) {
  .service-card { min-height: 405px; }
  .service-card__price { font-size: 21px; }
}
@media (max-width: 560px) {
  .service-card { min-height: 0; }
  .service-card__bottom { padding-top: 27px; }
  .service-card__price { font-size: 23px; }
  .service-card__example { white-space: normal; }
}
@media (prefers-reduced-motion: reduce) {
  .faq-item summary span,
  .service-card__example-icon,
  .footer .footer__brand { transition: none !important; }
}


/* v6 refinements — optical centering, balanced typography and responsive navigation. */
/* Make close icons from symmetrical CSS strokes, independent of font baseline. */
.gallery-modal__close, .lightbox-modal__close {
  position: relative;
  font-size: 0;
  line-height: 0;
  padding: 0;
  align-items: center;
  justify-items: center;
}
.gallery-modal__close::before, .gallery-modal__close::after,
.lightbox-modal__close::before, .lightbox-modal__close::after {
  content: '';
  position: absolute;
  width: 17px;
  height: 1.5px;
  left: 50%; top: 50%;
  border-radius: 2px;
  background: currentColor;
  transform: translate(-50%, -50%) rotate(45deg);
}
.gallery-modal__close::after, .lightbox-modal__close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}
/* Likewise use geometric chevrons instead of font arrow glyphs. */
.lightbox-modal__nav { font-size: 0; line-height: 0; padding: 0; }
.lightbox-modal__nav::before {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  width: 12px; height: 12px;
  border-top: 1.8px solid currentColor;
  border-right: 1.8px solid currentColor;
  transform: translate(-50%, -50%) rotate(45deg);
}
.lightbox-modal__nav--prev::before { transform: translate(-50%, -50%) rotate(-135deg); }
.gallery-modal__grid { gap: 20px; }

/* The three counters shrink to their real text widths; identical gaps follow. */
.about__stats { gap: clamp(26px, 3.6vw, 58px); justify-content: flex-start; }
.about__stats .stat { flex: 0 0 auto; width: max-content; min-width: 0; max-width: 100%; }

/* Exactly 40px between the album-example link and the following price. */
.service-card--featured .service-card__bottom { margin-top: 40px; padding-top: 0; }

/* Navigation is a hamburger on mobile AND tablets (up to 1100px). */
.nav__mobile-contacts { display: none; }
@media (max-width: 1100px) {
  :root { --header-height: 76px; }
  .nav { height: 76px; }
  .mobile-menu-toggle,
  .site-header.is-scrolled .mobile-menu-toggle {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    width: 42px; height: 42px;
    padding: 8px;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
    -webkit-tap-highlight-color: transparent;
  }
  .mobile-menu-toggle span {
    display: block;
    flex: 0 0 auto;
    width: 24px;
    height: 1.5px;
    background: #fff;
    border-radius: 2px;
    transition: background .22s ease;
  }
  .site-header.is-scrolled .mobile-menu-toggle span { background: #151515; }
  .nav__contacts { display: none; }
  .nav__links,
  .site-header.is-scrolled .nav__links {
    display: none;
    position: absolute;
    top: 76px;
    left: 0; right: 0;
    z-index: 15;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 12px 25px 25px;
    background: #fff;
    color: #151515;
    box-shadow: 0 15px 30px rgba(0,0,0,.12);
  }
  .nav__links.is-open,
  .site-header.is-scrolled .nav__links.is-open { display: flex; }
  .nav__links > a,
  .site-header.is-scrolled .nav__links > a {
    padding: 13px 0;
    border-bottom: 1px solid #e5e5e5;
    font-size: 15px;
  }
  .nav__links > a::after,
  .nav__mobile-contacts a::after { display: none !important; }
  .nav__mobile-contacts {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    margin-top: 13px;
    padding-top: 8px;
  }
  .nav__mobile-contacts a,
  .site-header.is-scrolled .nav__mobile-contacts a {
    display: block;
    padding: 9px 0;
    border: 0 !important;
    text-decoration: none;
    font-size: 14px;
    color: #333;
  }
  .site-header .nav__mobile-contacts a:hover,
  .site-header .nav__mobile-contacts a:focus-visible { color: #777; }
  /* Optical order: counters precede portrait even on tablets. */
  .about {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 22px;
  }
  .about__heading, .about__body, .about__stats, .about__portrait {
    order: initial;
    grid-column: auto; grid-row: auto;
  }
  .about__heading { order: 0; }
  .about__body { order: 1; padding-top: 0; max-width: 670px; }
  .about__stats { order: 2; width: 100%; align-self: auto; margin-top: 0; }
  .about__portrait { order: 3; width: 100%; max-width: 650px; height: 540px; min-height: 0; max-height: 540px; align-self: flex-start; }
  .about__heading h2 { margin-bottom: 0; }
}
@media (max-width: 600px) {
  /* Sticky controls while scrolling long project galleries. */
  .gallery-modal__top {
    position: sticky;
    z-index: 6;
    top: 0;
    align-items: center;
    margin: -19px -16px 20px;
    padding: 19px 16px 15px;
    background: #fff;
    border-bottom: 1px solid #ebebeb;
  }
  .about { gap: 18px; }
  .about__body p:last-child { margin-bottom: 0; }
  .about__stats { gap: 12px; justify-content: space-between; margin-top: 0; }
  .about__portrait { max-width: none; height: 470px; max-height: 470px; }
  .gallery-modal__grid { gap: 20px; }
}
@media (max-width: 390px) {
  .about__stats { gap: 7px; }
  .stat__value { font-size: clamp(30px, 8vw, 38px); }
  .stat__label { font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .mobile-menu-toggle span { transition: none; }
}


/* v10: independent geometric centering of the main desktop links. */
@media (min-width: 1101px) {
  .site-header .nav__links {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: max-content;
    justify-content: center;
  }
}
/* On one-column service cards, the recommendation label goes above the title. */
@media (max-width: 560px) {
  .service-card--featured .service-card__heading {
    flex-direction: column-reverse;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 11px;
  }
}
