/* Shared launch fixes: preserve template layout while improving accessibility. */
:root { --floens-text: #625d56; }
.skip-link { position: fixed; top: 8px; left: 12px; z-index: 10000; transform: translateY(-200%); background: #fff; color: #111; padding: 12px 20px; border: 2px solid #b9131a; }
.skip-link:focus { transform: none; }
:focus-visible { outline: 3px solid #a90012 !important; outline-offset: 4px; }
.mobile-nav__content :focus-visible, footer :focus-visible { outline-color: #fff !important; }
main { display: block; }
img { height: auto; }
main:focus { outline: none; }
[id] { scroll-margin-top: 110px; }
.home-intro { padding: 110px 40px 14px; max-width: 1440px; margin: auto; }
.home-intro h1 { font-size: clamp(25px, 3vw, 40px); line-height: 1.2; margin: 0 0 12px; font-weight: 700; }
.home-intro p { margin: 0; max-width: 850px; }
.main-slider__item { padding-top: 24px; }
.main-slider__content { margin-top: 0; }
.main-header__nav .main-menu__list > li:focus-within > ul { opacity: 1; visibility: visible; transform: translateY(0); }
button.mobile-nav__btn { border: 0; padding: 10px; background: transparent; min-width: 44px; min-height: 44px; }
button.mobile-nav__close { border: 0; background: transparent; padding: 10px; min-width: 44px; min-height: 44px; }
.mobile-nav__content { max-width: 90vw; }
.mobile-nav__wrapper { transition: none !important; }
.mobile-nav__wrapper.expanded .mobile-nav__content { transition-delay: 0s !important; }
.mobile-nav__wrapper.expanded .mobile-nav__content { transition: transform 180ms ease; opacity: 1; visibility: visible; }
.mobile-nav__content .dropdown { position: relative; }
.mobile-nav__content .dropdown > a { padding-right: 48px; }
.mobile-nav__content .main-menu__list li > a { height: auto; min-height: 46px; padding-top: 7px; padding-bottom: 7px; line-height: 1.5; }
.submenu-toggle { position: absolute; top: 0; right: 0; border: 0; width: 44px; height: 44px; color: white; background: #b9131a; font-size: 24px; }
.submenu-toggle[aria-expanded="true"] span { display: block; transform: rotate(180deg); }
.form-one label { display: block; color: #272421; font-weight: 600; font-size: 15px; line-height: 1.5; margin-bottom: 6px; }
.form-one input, .form-one textarea, .form-one select { max-width: 100%; }
.form-one input[type="tel"], .form-one select { width: 100%; min-height: 56px; border: 0; border-bottom: 1px solid #c8c1ba; padding: 12px 20px; background: transparent; color: #272421; font: inherit; }
.form-one button:disabled { opacity: .65; cursor: wait; }
.form-note { font-size: 14px; line-height: 1.6; margin: 16px 0; }
.form-note a { text-decoration: underline; }
.form-result { margin-top: 16px; color: #22552c; font-weight: 600; }
.form-result:empty { margin: 0; }
.form-error { color: #a40010; }
.form-honeypot { position: absolute !important; width: 1px !important; height: 1px !important; left: -10000px !important; overflow: hidden !important; }
.map-placeholder { min-height: 300px; padding: 45px 25px; background: #f2eeea; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 18px; }
.map-placeholder p { max-width: 650px; margin: 0; }
.map-placeholder a { text-decoration: underline; }
.catalog-nav { padding: 30px; background: #f2eeea; margin: 30px auto; border-radius: 8px; }
.catalog-nav h2 { font-size: 23px; }
.catalog-nav ul { display: flex; flex-wrap: wrap; gap: 10px 20px; padding: 0; margin: 0; list-style: none; }
.catalog-nav a { display: inline-block; padding: 9px 0; text-decoration: underline; }
.catalog-nav a, .floens-btn--border:not(:hover), .form-note a, .privacy-content a:not(.floens-btn), .map-placeholder a { color: #b9131a; }
.tab-btn__inner { min-height: 44px; min-width: 44px; }
.pdf-size { display: block; font-size: 13px; color: #555; margin: 8px 0 0; }
.footer-privacy { padding: 18px 15px; text-align: center; }
.footer-privacy a { color: #ccc; text-decoration: underline; }
.page-header__title { overflow-wrap: anywhere; }
.katalog-card__title { font-size: 20px; }
.custom-cursor__cursor, .custom-cursor__cursor-two { display: none !important; }
.form-one input[type="text"], .form-one input[type="email"] { color: #272421; }
@media(max-width:767px) { .home-intro { padding: 105px 15px 20px; } .main-slider__item { padding-top: 20px; } .catalog-nav { padding: 20px; } }
@media(prefers-reduced-motion:reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; } .wow { visibility: visible !important; } }

.privacy-content { max-width: 900px; padding-top: 40px; }
.privacy-content h1 { font-size: clamp(28px, 4vw, 42px); }
.privacy-content h2 { margin-top: 32px; font-size: 24px; }
.privacy-content a:not(.floens-btn) { text-decoration: underline; }
/* Responsive interaction fixes: controls must work without mouse hover. */
.service-card-two .service-card-two__link { margin-left: 0; min-height: 44px; top: 0; display: inline-flex; align-items: center; }
.service-card-two__content:focus-within { overflow: visible; }
@media (max-width: 1199px), (pointer: coarse) {
  .form-one input:not([type="hidden"]), .form-one textarea, .form-one select { font-size: 16px !important; }
}


/* Reference section: fade decorative photography behind the copy. */
.projects-one__bg { opacity: .24; }
.projects-one__shape { opacity: .14; pointer-events: none; }
.projects-one__text { color: #383838; }
.projects-one .sec-title__title { color: #111; }
.projects-one__button .floens-btn--border { background-color: #fff; }

/* Enquiry sections: keep decorative photos faint, including animated states. */
.contact-one#dopyt > .contact-one__image-one,
.contact-one#dopyt > .contact-one__image-two { opacity: .12 !important; pointer-events: none; }
.contact-one#dopyt .contact-one__text { color: #383838; }
.contact-one#dopyt .sec-title__title { color: #111; }

/* Benefits panels: decoration stays behind readable text. */
.service-details__info__image { opacity: .12; z-index: 0; pointer-events: none; }
.service-details__info > .service-details__list { position: relative; z-index: 1; color: #272421; }

/* About-page columns and centered homepage introduction. */
.about-benefits > .container > .row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px; margin: 0; }
.about-benefits > .container > .row > .col-lg-4 { width: auto; padding: 0; margin: 0; min-width: 0; }
.about-benefits .reliable-one__content { padding: 0; margin: 0; }
.about-benefits .row .sec-title__title { font-size: clamp(28px, 2.3vw, 34px); line-height: 1.2; letter-spacing: -.6px; overflow-wrap: anywhere; }
.about-benefits .row .sec-title { margin-bottom: 28px; }
.about-benefits .reliable-one__text { overflow-wrap: anywhere; }
.home-intro { text-align: center; padding: 132px 24px 48px; }
.home-intro h1 { max-width: 1120px; margin: 0 auto 20px; font-size: clamp(28px, 3.6vw, 55px); line-height: 1.12; letter-spacing: -.02em; text-wrap: balance; }
.home-intro p { margin: 0 auto; max-width: 900px; }
@media (max-width: 991px) { .about-benefits > .container > .row { grid-template-columns: 1fr; gap: 48px; } }
@media (max-width: 767px) { .home-intro { padding: 112px 20px 32px; } }
