.project-story__gallery a{display:block;overflow:hidden}.project-story__gallery img{width:100%;height:auto;display:block}.projects-catalog-card__media img{width:100%;height:100%;object-fit:cover}.constructor-page{max-width:1050px;margin:5rem auto;padding:0 1.5rem;min-height:55vh}.constructor-page h1{font-size:clamp(2.5rem,6vw,5rem)}.constructor-page>img{max-width:100%;height:auto}.constructor-page-extra{max-width:1050px;margin:1rem auto;padding:0 1.5rem}.constructor-page-section{margin:2rem 0;line-height:1.7}.constructor-page-section h2{font:400 clamp(1.6rem,3vw,2.4rem) Georgia,serif}.constructor-page-section img{display:block;max-width:100%;height:auto;margin:1.3rem 0}.constructor-promo-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.7em;height:1.7em;padding:0 .35em;margin-left:.35em;border-radius:99px;background:#dfe8d9;color:#24402b;font:700 .72em Arial,sans-serif}.entrance-section__heading>p{max-width:640px;color:var(--brand-muted,#747971);font-size:17px;line-height:1.65;margin:18px 0 0}.entrance-catalog{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;border-top:1px solid var(--brand-line,rgba(23,25,22,.14));padding-top:28px}.entrance-catalog-card{display:flex;min-width:0;flex-direction:column;overflow:hidden;color:var(--brand-ink,#171916);background:var(--brand-white,#fff);text-decoration:none;border:1px solid var(--brand-line,rgba(23,25,22,.14));transition:transform .25s var(--brand-ease,.2s ease),box-shadow .25s ease,border-color .25s ease}.entrance-catalog-card:hover{transform:translateY(-3px);border-color:rgba(23,25,22,.24);box-shadow:0 14px 30px rgba(23,25,22,.09)}.entrance-catalog-card:focus-visible{outline:2px solid var(--brand-moss-deep,#46533f);outline-offset:4px}.entrance-catalog-card__image{display:grid;place-items:center;min-width:0;height:390px;overflow:hidden;background:#f1f0ec;padding:20px}.entrance-catalog-card__image img{display:block;width:auto;height:100%;min-width:0;min-height:0;max-width:100%;max-height:100%;object-fit:contain;object-position:center}.entrance-catalog-card__body{display:grid;align-content:start;gap:9px;flex:1;padding:22px 22px 24px;background:#fff}.entrance-catalog-card__body .section-kicker{position:static;display:block;margin:0;color:var(--brand-moss-deep,#46533f);font:600 10px/1.3 var(--font-sans,Arial,sans-serif);letter-spacing:.16em;text-transform:uppercase}.entrance-catalog-card__body strong{font:400 clamp(23px,2vw,28px)/1.12 var(--font-display,Georgia,serif);color:var(--brand-ink,#171916)}.entrance-catalog-card__body>span:not(.section-kicker){font-size:14px;line-height:1.5;color:var(--brand-muted,#747971)}.entrance-catalog-card__body em{display:inline-flex;align-items:center;gap:8px;width:max-content;font:600 13px/1.4 var(--font-sans,Arial,sans-serif);font-style:normal;color:var(--brand-moss-deep,#46533f);margin-top:9px;border-bottom:1px solid currentColor;padding-bottom:4px}.entrance-catalog-card__body em span{transition:transform .2s ease}.entrance-catalog-card:hover .entrance-catalog-card__body em span{transform:translateX(3px)}@media(max-width:840px){.entrance-catalog{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.entrance-catalog-card__image{height:340px}}@media(max-width:560px){.entrance-section .container{width:min(calc(100% - 36px),var(--brand-container))!important}.entrance-section__heading h1{font-size:clamp(34px,11vw,48px)}.entrance-catalog{grid-template-columns:1fr;gap:16px;padding-top:20px}.entrance-catalog-card{display:grid;grid-template-columns:minmax(112px,38%) minmax(0,1fr);min-height:220px}.entrance-catalog-card__image{height:100%;min-height:220px;padding:12px}.entrance-catalog-card__body{align-content:center;gap:8px;padding:18px 14px}.entrance-catalog-card__body strong{font-size:23px}.entrance-catalog-card__body em{font-size:12px}}.entrance-catalog-card__image{background:#fff;perspective:none}.entrance-catalog-card__visual{position:relative;display:block;width:100%;height:100%;min-width:0}.entrance-catalog-card__image .entrance-catalog-card__door{position:absolute;top:50%;left:50%;width:auto;height:100%;min-width:0;min-height:0;max-width:100%;max-height:100%;object-fit:contain;object-position:center;backface-visibility:hidden;transition:opacity .55s ease}.entrance-catalog-card .entrance-catalog-card__image .entrance-catalog-card__door,.entrance-catalog-card:hover .entrance-catalog-card__image .entrance-catalog-card__door,.entrance-catalog-card:focus-visible .entrance-catalog-card__image .entrance-catalog-card__door{transform:translate(-50%,-50%)!important;transform-origin:center!important}.entrance-catalog-card__image .entrance-catalog-card__door--closed{opacity:1}.entrance-catalog-card__image .entrance-catalog-card__door--open{opacity:0}.entrance-catalog-card:hover .entrance-catalog-card__door--closed,.entrance-catalog-card:focus-visible .entrance-catalog-card__door--closed{opacity:0}.entrance-catalog-card:hover .entrance-catalog-card__door--open,.entrance-catalog-card:focus-visible .entrance-catalog-card__door--open{opacity:1}@media(prefers-reduced-motion:reduce){.entrance-catalog-card__image .entrance-catalog-card__door{transition-duration:.01ms}}
/* Both reference photos have a 290px canvas width. Keep the frame at the
   same scale; the open leaf needs a taller canvas, not a smaller door. */
.entrance-catalog-card__image { height: 500px; background: #fff; perspective: none; }
.entrance-catalog-card__visual { position: relative; display: block; width: min(100%, 175px); height: 100%; min-width: 0; }
.entrance-catalog-card__image .entrance-catalog-card__door {
  position: absolute; top: 50%; left: 50%; display: block;
  width: 100%; height: auto; min-width: 0; min-height: 0;
  max-width: 100%; max-height: none; object-fit: contain;
  transform: translate(-50%, -50%); transition: opacity .45s ease;
}
.entrance-catalog-card__door--closed { opacity: 1; }
.entrance-catalog-card__door--open { opacity: 0; }
.entrance-catalog-card:hover .entrance-catalog-card__door--closed,
.entrance-catalog-card:focus-visible .entrance-catalog-card__door--closed { opacity: 0; }
.entrance-catalog-card:hover .entrance-catalog-card__door--open,
.entrance-catalog-card:focus-visible .entrance-catalog-card__door--open { opacity: 1; }
@media (max-width: 840px) {
  .entrance-catalog-card__image { height: 430px; }
  .entrance-catalog-card__visual { width: min(100%, 145px); }
}
@media (max-width: 560px) {
  .entrance-catalog-card__image { height: 100%; min-height: 240px; }
  .entrance-catalog-card__visual { width: min(100%, 80px); }
}
@media (prefers-reduced-motion: reduce) {
  .entrance-catalog-card__image .entrance-catalog-card__door { transition: none; }
}
