/* site.min.css — bundle: base.css + navigation.css + components.css + pages.css + services.css + info-page.css + guides.css + home.css + home-gallery.css + mobile-home.css + site-patch.css */

/*=== base.css ===*/
@font-face {font-family: 'PF Catalog';src: url('../assets/fonts/PFCATALOG-THIN.woff2') format('woff2');font-weight: 100;font-style: normal;font-display: swap;}
@font-face {font-family: 'PF Catalog';src: url('../assets/fonts/PFCATALOG-THINITALIC.woff2') format('woff2');font-weight: 100;font-style: italic;font-display: swap;}
@font-face {font-family: 'PF Catalog';src: url('../assets/fonts/PFCATALOG-LIGHT.woff2') format('woff2');font-weight: 300;font-style: normal;font-display: swap;}
@font-face {font-family: 'PF Catalog';src: url('../assets/fonts/PFCATALOG-LIGHTITALIC.woff2') format('woff2');font-weight: 300;font-style: italic;font-display: swap;}
@font-face {font-family: 'PF Catalog';src: url('../assets/fonts/PFCATALOG-REGULAR.woff2') format('woff2');font-weight: 400;font-style: normal;font-display: swap;}
@font-face {font-family: 'PF Catalog';src: url('../assets/fonts/PFCATALOG-REGULAR.woff2') format('woff2');font-weight: 500;font-style: normal;font-display: swap;}
@font-face {font-family: 'PF Catalog';src: url('../assets/fonts/PFCATALOG-ITALIC.woff2') format('woff2');font-weight: 400;font-style: italic;font-display: swap;}
@font-face {font-family: 'PF Catalog';src: url('../assets/fonts/PFCATALOG-ITALIC.woff2') format('woff2');font-weight: 500;font-style: italic;font-display: swap;}
@font-face {font-family: 'PF Catalog';src: url('../assets/fonts/PFCATALOG-BOLD.woff2') format('woff2');font-weight: 600;font-style: normal;font-display: swap;}
@font-face {font-family: 'PF Catalog';src: url('../assets/fonts/PFCATALOG-BOLDITALIC.woff2') format('woff2');font-weight: 600;font-style: italic;font-display: swap;}
@font-face {font-family: 'PF Catalog';src: url('../assets/fonts/PFCATALOG-BOLD.woff2') format('woff2');font-weight: 700;font-style: normal;font-display: swap;}
@font-face {font-family: 'PF Catalog';src: url('../assets/fonts/PFCATALOG-BOLDITALIC.woff2') format('woff2');font-weight: 700;font-style: italic;font-display: swap;}
@font-face {font-family: 'PF Catalog';src: url('../assets/fonts/PFCATALOG-BLACK.woff2') format('woff2');font-weight: 900;font-style: normal;font-display: swap;}
@font-face {font-family: 'PF Catalog';src: url('../assets/fonts/PFCATALOG-BLACKITALIC.woff2') format('woff2');font-weight: 900;font-style: italic;font-display: swap;}
:root {--bg-main: #F5F5F0;--text-main: #181818;--text-muted: #666666;--accent: #D17028;--font-head: 'PF Catalog', Arial, sans-serif;--font-body: 'PF Catalog', Arial, sans-serif;--font-slider: 'PF Catalog', Arial, sans-serif;--site-max: 1600px;--site-gutter: 5%;--site-margin: max(var(--site-gutter), calc((100% - var(--site-max)) / 2));--z-background: -1;--z-base: 1;--z-dropdown: 10;--z-sticky: 20;--z-nav: 30;--z-modal: 40;--z-overlay: 50;--z-preloader: 60;}
* {margin: 0;padding: 0;box-sizing: border-box;}
html {scroll-behavior: smooth;background-color: var(--bg-main);}
body {font-family: var(--font-body);background-color: transparent;color: var(--text-main);line-height: 1.6;overflow-x: hidden;position: relative;font-weight: 300;}
body > *:not(.close-btn):not(.card-info):not(.clone):not(.top-bar):not(.site-drawer):not(.site-drawer-overlay):not(.sticky-back-btn):not(.cc-banner):not(.cc-modal-overlay):not(.erga-lightbox):not(.site-search) {position: relative;z-index: var(--z-base);}
.visually-hidden {position: absolute;width: 1px;height: 1px;margin: -1px;padding: 0;border: 0;clip: rect(0 0 0 0);overflow: hidden;white-space: nowrap;}
a {text-decoration: none;color: inherit;transition: 0.3s;-webkit-tap-highlight-color: transparent;}
button, input, textarea, select {-webkit-tap-highlight-color: transparent;}
h1, h2, h3, h4, h5, h6 {font-family: var(--font-head);font-weight: 700;}
#preloader {position: fixed;top: 0;left: 0;width: 100%;height: 100%;background: var(--bg-main);z-index: var(--z-preloader);display: flex;align-items: center;justify-content: center;transition: opacity 0.6s ease, visibility 0.6s ease;will-change: opacity, visibility;}
#preloader.loaded {opacity: 0;visibility: hidden;pointer-events: none;}
.loader-content { text-align: center; }
.loader-logo { position: relative; margin-bottom: 40px; }
.loader-svg { width: 320px; height: auto; }
.loader-svg .draw {stroke-dasharray: 1000;stroke-dashoffset: 1000;animation: drawPath 2.5s ease forwards;fill: none;}
.loader-svg .loader-orange.draw { animation: drawPath 2.5s ease forwards, fillOrange 0.5s ease 2s forwards; }
.loader-svg .loader-st5.draw { animation: drawPath 2.5s ease forwards, fillDark 0.5s ease 2s forwards; }
@keyframes drawPath { to { stroke-dashoffset: 0; } }
@keyframes fillOrange { to { fill: #D17028; } }
@keyframes fillDark { to { fill: #1A1A1A; } }
.loader-svg .diamond {animation: diamondPulse 1.5s ease-in-out infinite;transform-origin: 234.9px 37px;}
@keyframes diamondPulse {0%, 100% { transform: translate(0, -5px) scale(1); }
50% { transform: translate(0, -5px) scale(1.1); }}
.loader-progress {width: 200px; height: 3px;background: rgba(0, 0, 0, 0.1);margin: 0 auto 20px;overflow: hidden; border-radius: 3px;}
.loader-progress-bar {height: 100%; width: 0%;background: linear-gradient(90deg, #D17028, #e8935a);animation: loadProgress 2.5s ease forwards;border-radius: 3px;}
@keyframes loadProgress {0% { width: 0%; }
50% { width: 70%; }
100% { width: 100%; }}
.loader-text {font-family: var(--font-body); font-size: 0.75rem; letter-spacing: 3px; color: var(--text-muted);animation: textPulse 1.5s ease-in-out infinite;}
@keyframes textPulse {0%, 100% { opacity: 0.5; }
50% { opacity: 1; }}
@media (max-width: 480px) { .loader-svg { width: 260px; } }

/*=== navigation.css ===*/
.top-bar {position: fixed; top: 0; width: 100%;padding: 1.5rem var(--site-margin);display: flex; justify-content: space-between; align-items: center;z-index: var(--z-nav);background: transparent;border-bottom: 1px solid transparent;transition: all 0.4s ease;}
.top-bar.scrolled {background: rgba(245, 245, 240, 0.95);backdrop-filter: blur(5px);-webkit-backdrop-filter: blur(5px);padding: 1rem var(--site-margin);border-bottom-color: rgba(24,24,24,0.10);box-shadow: none;}
.logo-container { display: flex; align-items: center; }
.logo-link { display: flex; align-items: center; line-height: 0; background: none; border: none; }
.nav-logo { width: 250px; height: auto; display: block; }
.nav-menu { display: none; list-style: none; gap: 2.65rem; margin: 0; padding: 0; align-items: center; }
.nav-menu > li { position: relative; }
.nav-menu > li > a,
.nav-menu > li > .nav-sub-trigger {font-family: var(--font-head);font-size: 1.06rem; font-weight: 600; letter-spacing: 0.4px;color: var(--text-main); position: relative; padding: 0.4rem 0; display: inline-block;transition: color 0.25s ease, transform 0.32s cubic-bezier(0.65,0.05,0,1);}
.nav-sub-trigger {appearance: none; -webkit-appearance: none;background: none; border: 0; margin: 0; cursor: pointer; line-height: inherit;}
.nav-sub-trigger:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.nav-menu > li > a::after,
.nav-menu > li > .nav-sub-trigger::after {content: ''; position: absolute; bottom: -2px; left: 0; width: 100%; height: 2px;background: var(--accent); transform: scaleX(0); transform-origin: left center;transition: transform 0.35s cubic-bezier(0.65,0.05,0,1), height 0.2s ease;}
.nav-menu > li > a:hover,
.nav-menu > li > .nav-sub-trigger:hover,
.nav-menu > li.is-open > .nav-sub-trigger { color: var(--accent); transform: translateX(5px); }
.nav-menu > li > a:hover::after,
.nav-menu > li > .nav-sub-trigger:hover::after,
.nav-menu > li.is-open > .nav-sub-trigger::after,
.nav-menu > li > a.active::after,
.nav-menu > li > .nav-sub-trigger.active::after { transform: scaleX(1); }
.nav-menu > li > a.active::after,
.nav-menu > li > .nav-sub-trigger.active::after { height: 3px; }
.nav-menu > li > a.active,
.nav-menu > li > .nav-sub-trigger.active { color: var(--accent); }
.nav-menu > li.nav-has-sub > .nav-sub-trigger { display: inline-flex; align-items: center; gap: 14px; }
.nav-has-sub > .nav-sub-trigger .nav-caret {display: inline-block; width: 7px; height: 7px;margin-left: 0;border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;transform: translateY(-2px) rotate(45deg);transition: transform 0.3s ease; flex-shrink: 0;}
.nav-has-sub:hover > .nav-sub-trigger .nav-caret,
.nav-has-sub.is-open > .nav-sub-trigger .nav-caret { transform: translateY(1px) rotate(225deg); }
.nav-search-toggle {display: none; align-items: center; justify-content: center;width: 40px; height: 40px; padding: 0; margin: 0;background: transparent; border: 1px solid rgba(0,0,0,0.14); border-radius: 50%;color: var(--text-main); cursor: pointer; order: 2;transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;}
.nav-search-toggle svg { width: 19px; height: 19px; }
.nav-search-toggle:hover,
.nav-search-toggle[aria-expanded="true"] {background: var(--accent); border-color: var(--accent); color: #fff;}
.mobile-search-toggle { display: none; }
@media (max-width: 991px) {.mobile-search-toggle { display: inline-flex; width: 38px; height: 38px; }
.site-search { padding-top: 7.6rem; }}
.site-search {position: fixed; top: 0; left: 0; width: 100%;z-index: calc(var(--z-nav) - 1);padding: 6.4rem var(--site-margin) 0;background: transparent; pointer-events: none;}
.site-search-inner {max-width: 640px; margin: 0 auto;background: #fff; border-radius: 8px;border: 1px solid rgba(0,0,0,0.08);box-shadow: 0 20px 45px rgba(0,0,0,0.15);padding: 12px; pointer-events: none;opacity: 0; visibility: hidden;transform: translateY(-14px);transition: opacity 0.3s ease, transform 0.35s cubic-bezier(0.65,0.05,0,1), visibility 0.35s;}
.site-search.open .site-search-inner {opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0);}
.site-search-form {display: flex; align-items: center; gap: 12px;background: #f4f4ef; border: 1px solid rgba(0,0,0,0.08); border-radius: 6px;padding: 0 1rem; transition: border-color 0.25s ease, box-shadow 0.25s ease;}
.site-search-form:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(209,112,40,0.12); }
.site-search-icon { width: 20px; height: 20px; color: var(--accent); flex-shrink: 0; }
.site-search-input {flex: 1; border: none; background: transparent; outline: none;font-family: var(--font-body); font-size: 1.02rem; color: var(--text-main);padding: 0.85rem 0;}
.site-search-input::placeholder { color: var(--text-muted); }
.site-search-clear {background: transparent; border: none; color: var(--text-muted);font-size: 1.6rem; line-height: 1; cursor: pointer; padding: 0 4px;transition: color 0.2s ease;}
.site-search-clear:hover { color: var(--accent); }
.site-search-results { margin-top: 0.5rem; max-height: 52vh; overflow-y: auto; }
.site-search-results:empty { margin-top: 0; }
.site-search-empty {font-family: var(--font-body); font-size: 0.95rem; color: var(--text-muted);padding: 0.6rem 0.2rem; margin: 0;}
.site-search-result {display: flex; flex-direction: column; gap: 3px;padding: 0.85rem 1rem; border-radius: 6px;text-decoration: none; border-left: 2px solid transparent;transition: background 0.2s ease, border-color 0.2s ease, padding-left 0.2s ease;}
.site-search-result:hover { background: rgba(209,112,40,0.07); border-left-color: var(--accent); padding-left: 1.3rem; }
.site-search-result .ssr-title {font-family: var(--font-head); font-weight: 600; font-size: 1.02rem; color: var(--text-main);}
.site-search-result:hover .ssr-title { color: var(--accent); }
.site-search-result .ssr-desc { font-size: 0.85rem; color: var(--text-muted); }
.search-highlight {background: rgba(209,112,40,0.22);color: inherit; font-weight: 700;border-radius: 2px; padding: 0 1px;box-shadow: 0 0 0 1px rgba(209,112,40,0.35);}
.search-page { padding: 12rem 0 6rem; min-height: 70vh; }
.search-page .container { max-width: 900px; }
.search-page-title {font-family: var(--font-head); font-weight: 900;font-size: clamp(2rem, 5vw, 3.2rem); line-height: 1.1; color: var(--text-main);margin: 0 0 0.6rem;}
.search-page-count {font-family: var(--font-body); font-size: 0.8rem; letter-spacing: 2px;text-transform: uppercase; color: var(--text-muted); margin: 0 0 3rem;}
.search-hit-item { padding: 2rem 0; border-bottom: 1px solid rgba(0,0,0,0.1); }
.search-hit-item:first-child { padding-top: 0; }
.shi-type {display: inline-block; font-family: var(--font-body); font-size: 0.7rem;letter-spacing: 2px; text-transform: uppercase; color: var(--accent);margin-bottom: 0.7rem;}
.shi-title {display: block; font-family: var(--font-head); font-weight: 700;font-size: clamp(1.3rem, 2.6vw, 1.8rem); line-height: 1.25; color: var(--text-main);text-decoration: none; margin-bottom: 0.7rem; transition: color 0.25s ease;}
.shi-title:hover { color: var(--accent); }
.shi-snippet {font-family: var(--font-body); font-size: 1rem; line-height: 1.7;color: var(--text-muted); margin: 0;}
.shi-snippet strong { color: var(--text-main); font-weight: 700; }
.search-none { font-family: var(--font-body); font-size: 1.05rem; color: var(--text-muted); }
.nav-sub {position: absolute; top: 100%; left: 50%; transform: translateX(-50%) translateY(10px);min-width: 288px; padding: 0.6rem 0; margin-top: 0.9rem;background: rgba(255,255,255,0.98);backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);border: 1px solid rgba(0,0,0,0.06);border-top: 3px solid var(--accent);border-radius: 4px;box-shadow: 0 20px 50px rgba(0,0,0,0.14);opacity: 0; visibility: hidden; pointer-events: none;transition: opacity 0.28s ease, transform 0.28s ease, visibility 0.28s;z-index: 5;}
.nav-has-sub::after {content: ''; position: absolute; top: 100%; left: 0; width: 100%; height: 1.4rem;}
.nav-has-sub:hover .nav-sub {opacity: 1; visibility: visible; pointer-events: auto;transform: translateX(-50%) translateY(0);}
.nav-sub a {display: block; padding: 0.7rem 1.4rem;font-size: 0.9rem; font-weight: 500; letter-spacing: 0.2px;color: var(--text-main); white-space: nowrap;border-left: 2px solid transparent; transition: all 0.22s ease;}
.nav-sub a:hover {background: rgba(209,112,40,0.07);border-left-color: var(--accent);color: var(--accent);padding-left: 1.7rem;}
.contact { display: flex; align-items: center; gap: 1.5rem; }
.nav-link { font-weight: 500; font-size: 0.85rem; display: none; letter-spacing: 0.5px; }
.btn-nav {border: 1px solid var(--text-main); padding: 0.6rem 1.5rem;font-size: 0.75rem; font-weight: 500; letter-spacing: 1px;background: transparent; cursor: pointer; transition: all 0.3s ease;}
.btn-nav:hover { background: var(--text-main); color: #fff; }
.menu-burger {background: transparent; border: none; display: inline-flex; align-items: center;gap: 12px; cursor: pointer; padding: 8px 0; margin: 0; color: var(--text-main);}
.menu-burger-bars { display: block; width: 28px; }
.menu-burger-bars span {display: block; height: 2px; background: currentColor;transition: width 0.3s cubic-bezier(0.65,0.05,0,1), transform 0.3s cubic-bezier(0.65,0.05,0,1), opacity 0.2s ease;}
.menu-burger-bars span + span { margin-top: 7px; width: 70%; }
.menu-burger:hover .menu-burger-bars span + span { width: 100%; }
.menu-burger-label {font-family: var(--font-body); font-size: 0.78rem; font-weight: 600;letter-spacing: 2px; color: currentColor;}
.btn-call {display: inline-flex; align-items: center; justify-content: center;background: var(--accent); color: #fff;font-family: var(--font-body); font-size: 0.78rem; font-weight: 600;letter-spacing: 2px; text-decoration: none;padding: 0.65rem 1.4rem; border-radius: 2px;transition: background 0.3s ease, transform 0.2s ease;white-space: nowrap;}
.btn-call:hover { background: #b85e1f; }
.btn-call:active { transform: scale(0.97); }
@media (min-width: 768px) { .nav-link { display: block; } }
@media (min-width: 992px) {.nav-menu { display: flex; }
.contact { display: none; }
.top-bar .btn-call { order: 3; }
.nav-search-toggle { display: inline-flex; }}
@media (max-width: 991px) {.btn-nav { display: none; }
.nav-menu { display: none; }
.nav-logo { width: 200px; }
.top-bar {flex-wrap: wrap;padding: 0;row-gap: 0;}
.top-bar .btn-call {order: -1;width: 100%;border-radius: 0;padding: 0.55rem 5%;height: auto;}
.top-bar .logo-container,
.top-bar .contact {padding: 0.7rem 5%;}
.top-bar .logo-container { flex: 1; }
.contact { gap: 0.5rem; }
.top-bar.scrolled { padding: 0; }
.top-bar.scrolled .btn-call { background: var(--accent); }}
@media (max-width: 480px) {.nav-logo { width: 160px; }
.menu-burger-label { display: none; }
.top-bar .logo-container,
.top-bar .contact { padding: 0.6rem 4%; }
.top-bar .btn-call { padding: 0.5rem 4%; font-size: 0.72rem; }}
.nav-menu > li.nav-guides { position: static; display: flex; align-items: center; gap: 8px; }
.guides-toggle { display: inline-flex; justify-content: center; align-items: center; width: 24px; height: 32px; padding: 0; border: 0; background: none; color: var(--text-main); cursor: pointer; }
.guides-toggle > span { display: block; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .2s; }
.guides-toggle[aria-expanded="true"] > span { transform: translateY(2px) rotate(225deg); }
.guides-toggle:focus-visible, .guides-dropdown a:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.guides-dropdown[hidden] { display: none; }
.nav-guides .guides-dropdown:not([hidden]) { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
.guides-dropdown::before { content: ''; position: absolute; top: calc(-1 * var(--guides-bridge-height, 42px)); right: 0; width: 100%; height: var(--guides-bridge-height, 42px); }
.top-bar.guides-open .nav-has-sub .nav-mega { opacity: 0; visibility: hidden; pointer-events: none; }
.guides-overview { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-bottom: 1.2rem; font-family: var(--font-head); font-size: 1.2rem; font-weight: 700; }
.guides-overview:hover, .guides-overview > span { color: var(--accent); }
.guides-label { margin: 0 0 .6rem; color: var(--accent); font-size: .68rem; font-weight: 700; letter-spacing: .12em; }
.guides-dropdown ul { list-style: none; padding: 0; margin: 0; }
.guides-mega-content { min-width: 0; }
.guides-dropdown .nav-mega-img { height: auto; }
.guides-dropdown .guides-mega-pending { height: 100%; cursor: default; }
.guides-dropdown .guides-mega-pending:hover { color: var(--text-main); padding-left: 0; }
.guides-mega-text { display: flex; flex-direction: column; gap: .5rem; min-width: 0; }
.guides-mega-text > small { color: var(--text-muted); font-size: .62rem; font-weight: 400; line-height: 1.2; text-transform: uppercase; letter-spacing: .08em; }
.guide-pending { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: .8rem 0; color: var(--text-muted); font-size: .98rem; line-height: 1.45; font-weight: 400; border-top: 1px solid rgba(24,24,24,.14); cursor: default; }
.guide-pending > small { flex-shrink: 0; font-size: .65rem; text-transform: uppercase; letter-spacing: .04em; }
.drawer-guides .guide-pending { padding-block: .8rem; font-size: .92rem; }
@media (min-width: 992px) {.guides-dropdown .nav-mega-inner { max-height: calc(100dvh - 125px); overflow-y: auto; }}
@media (max-width: 1100px) and (min-width: 992px) {.nav-menu > li.nav-guides { gap: 3px; }
.guides-toggle { width: 18px; }}
.guides-dropdown .guides-mega-link { height: 100%; }

/*=== components.css ===*/
#hero { position: relative; height: 100vh; width: 100%; overflow: hidden; }
.hero-video-container {position: absolute; inset: 0; z-index: 0; overflow: hidden;background-image: url('../assets/hero-image.webp');background-size: cover;background-position: center;}
.hero-video-container::after {content: ''; position: absolute; inset: 0;background: rgba(245, 245, 240, 0.50); z-index: 1;}
.hero-video-container video { width: 100%; height: 100%; object-fit: cover; }
#particle-canvas { position: absolute; inset: 0; z-index: 2; }
.hero-content {position: absolute; top: 70%; left: 0; width: 100%; z-index: 3;display: flex; flex-direction: column; align-items: flex-start;padding-left: var(--site-margin); text-align: left;}
.hero-subtitle {font-family: var(--font-body); font-size: 1.125rem; letter-spacing: 3px;color: var(--text-muted); margin-bottom: 5vh; text-transform: uppercase;opacity: 0; font-weight: 500; margin-left: 4px;}
.btn-hero {will-change: transform, opacity;background: transparent; color: var(--text-main); border: 1px solid var(--text-main);padding: 1rem 3rem; border-radius: 50px; font-size: 0.75rem; font-weight: 600;letter-spacing: 2px; opacity: 0; transition: all 0.3s ease; cursor: pointer;font-family: inherit;}
.btn-hero:hover { background: var(--text-main); color: #e67e22; }
.hero-buttons { display: flex; gap: 1rem; flex-wrap: wrap; align-items: center; }
.btn-hero-ghost {background: var(--accent);border-color: var(--accent);color: #fff;}
.btn-hero-ghost:hover { background: #fff; border-color: #fff; color: var(--accent); }
@media (max-width: 480px) {.hero-buttons { flex-direction: column; align-items: flex-start; gap: 0.8rem; width: 100%; }
.hero-buttons .btn-hero { width: 100%; text-align: center; }}
.scroll-down {position: absolute; top: 70%; right: var(--site-margin); bottom: auto;z-index: var(--z-dropdown); display: flex; flex-direction: column;align-items: center; font-size: 0.6rem; letter-spacing: 2px;color: #1a1a1a; opacity: 0;}
.line { width: 1px; height: 60px; background: #1a1a1a; margin-top: 15px; }
@media (max-width: 768px) {.hero-content { top: 58%; padding-left: 5%; padding-right: 5%; }
.hero-subtitle { font-size: 1rem; letter-spacing: 1.5px; margin-bottom: 2rem; max-width: 280px; line-height: 1.5; margin-left: 0; }
.btn-hero { padding: 0.8rem 2rem; font-size: 0.7rem; }
.scroll-down { top: auto; right: auto; bottom: 40px; left: 50%; transform: translateX(-50%); }
.line { height: 40px; }}
section { padding: 6rem 0; }
.container { width: 90%; max-width: var(--site-max); margin: 0 auto; padding: 0; }
.section-tag { color: var(--accent); font-weight: 700; font-size: 0.8rem; letter-spacing: 2px; display: block; margin-bottom: 1rem; }
h2 { font-family: var(--font-head); font-size: 2rem; margin-bottom: 1.5rem; line-height: 1.2; color: var(--text-main); font-weight: 700; }
#about { position: relative; }
#about .container {width: 90%; max-width: var(--site-max); margin: 0 auto; padding: 0;display: grid; grid-template-columns: 1fr 1.2fr; gap: 5rem; align-items: stretch;}
.about-video {position: relative; width: 100%; height: 100%; min-height: 300px;overflow: hidden; border-radius: 8px; box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);}
.about-video video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 991px) {#about .container { grid-template-columns: 1fr; width: 100%; padding: 0 5%; gap: 2rem; }}
@media (max-width: 768px) { .about-video { max-width: 100%; } }
#services .container { width: 90%; max-width: var(--site-max); margin: 0 auto; padding: 0; }
.svc-row {display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));gap: 2.5rem; align-items: stretch; width: 100%; margin-top: 4rem; padding-bottom: 4rem;}
.svc-card-wrap { position: relative; height: 500px; z-index: var(--z-base); }
.svc-card {position: absolute; top: 0; left: 0; width: 100%; min-height: 100%; height: auto;background-color: var(--bg-main);border: 18px solid transparent;border-image: linear-gradient(to bottom right,
rgba(255, 255, 255, 0.75) 0%,
rgba(245, 245, 245, 0.75) 16.6%,
rgba(245, 245, 245, 0.75) 79.4%,
rgba(245, 245, 245, 0.75) 84.3%) 1;transition: transform 0.6s ease, z-index 0s 0s;will-change: transform;cursor: pointer; display: flex; flex-direction: column; z-index: var(--z-base);}
.svc-card:before {content: ''; position: absolute; top: -18px; left: -18px; right: -18px; bottom: -18px;box-shadow: 50px 50px 24px rgba(142, 142, 142, 0.6); z-index: -1;opacity: 0; transition: opacity 0.3s ease; pointer-events: none;}
.svc-card-img {width: 100%; height: 320px; background-size: cover; background-position: center;background-color: #fff; transition: height 0.8s ease;}
.svc-card-block {padding: 25px; background: transparent;background-image: linear-gradient(to bottom right, rgba(255,255,255,0.75) 0%, rgba(245,245,245,0.75) 84%);display: flex; flex-direction: column; flex-grow: 1; transition: background 0.6s ease;}
.svc-card-title {font-family: var(--font-head); font-size: 1.4rem; margin-bottom: 5px;color: var(--text-main); font-weight: 700; transition: color 0.4s ease;}
.svc-hr { width: 100%; border: 0; border-top: 1px solid #ccc; margin: 10px 0; }
.svc-card-text {font-size: 1rem; color: var(--text-muted); max-height: 0; opacity: 0; overflow: hidden;transition: max-height 0.6s ease, opacity 0.6s ease, margin-top 0.6s ease;}
.svc-card:hover { z-index: var(--z-dropdown); transform: translate(-18px, -28px) scale(1.02); }
.svc-card:hover:before { opacity: 1; }
.svc-card:hover .svc-card-img { height: 280px; }
.svc-card:hover .svc-card-block {background-image: linear-gradient(to top left, rgb(72, 85, 108) 0%, rgb(27, 33, 43) 50%, rgb(53, 59, 69) 100%);color: white;}
.svc-card:hover .svc-card-title { color: white; }
.svc-card:hover .svc-card-text { max-height: 300px; opacity: 1; color: white; margin-top: 10px; }
.svc-row:hover .svc-card:not(:hover) .svc-card-block {background: transparent;background-image: linear-gradient(to bottom right, rgba(255,255,255,0.75) 0%, rgba(245,245,245,0.75) 84%);}
@media (max-width: 1200px) {.svc-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.25rem; }
.svc-card-wrap:has(.svc-card:hover) { z-index: calc(var(--z-dropdown) + 5); }
.svc-card:hover { transform: none; }
.svc-card:hover:before { opacity: 0; }}
@media (max-width: 600px) {.svc-row { grid-template-columns: 1fr; gap: 1.75rem; }
.svc-card-wrap { height: 420px; }
.svc-card-img { height: 250px; }
.svc-card:hover .svc-card-img { height: 230px; }}
.svc-row.svc-row-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1200px) { .svc-row.svc-row-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .svc-row.svc-row-3 { grid-template-columns: 1fr; } }
.svc-row-3 .svc-card { transition: transform 0.4s ease, box-shadow 0.4s ease; box-shadow: 0 10px 30px -18px rgba(27,26,23,0.25); }
.svc-row-3 .svc-card:hover { transform: translateY(-10px) scale(1); box-shadow: 0 26px 44px -22px rgba(27,26,23,0.45); }
.svc-row-3 .svc-card:hover:before { opacity: 0; }
.svc-row-3 .svc-card-wrap:has(.svc-card:hover) { z-index: var(--z-dropdown); }
.svc-row-3:hover .svc-card:not(:hover) .svc-card-block {background-image: linear-gradient(to bottom right, rgba(255,255,255,0.75) 0%, rgba(245,245,245,0.75) 84%);}
a.svc-card { text-decoration: none; }
.svc-row-3 .svc-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.svc-card-cta {margin-top: auto; padding-top: 14px; font-size: 0.8rem; font-weight: 700;letter-spacing: 1.5px; text-transform: uppercase; color: var(--accent);display: inline-flex; align-items: center; gap: 8px; opacity: 0;max-height: 0; overflow: hidden; transition: opacity 0.6s ease, max-height 0.6s ease, color 0.4s ease;}
.svc-row-3 .svc-card:hover .svc-card-cta { opacity: 1; max-height: 60px; color: #fff; }
@media (max-width: 1200px) { .svc-row-3 .svc-card-cta { opacity: 1; max-height: 60px; } }
@media (max-width: 600px) {.svc-row-3 .svc-card-wrap { height: auto !important; min-height: 0 !important; }
.svc-row-3 .svc-card {position: static !important; transform: none !important;border-width: 0 !important; box-shadow: 0 8px 22px -16px rgba(27,26,23,0.3);}
.svc-row-3 .svc-card:before { display: none !important; }
.svc-row-3 .svc-card-img { height: 200px !important; }
.svc-row-3 .svc-card-block {background-image: linear-gradient(to top left, rgb(72,85,108) 0%, rgb(27,33,43) 50%, rgb(53,59,69) 100%) !important;color: #fff !important;}
.svc-row-3 .svc-card-title { color: #fff !important; }
.svc-row-3 .svc-hr { border-top-color: rgba(255,255,255,0.25) !important; }
.svc-row-3 .svc-card-text {max-height: 500px !important; opacity: 1 !important; color: #fff !important; margin-top: 10px !important;}
.svc-row-3 .svc-card-cta { opacity: 1 !important; max-height: 60px !important; color: var(--accent) !important; }}
#projects {position: relative; overflow: hidden; min-height: 100vh;display: flex; flex-direction: column; justify-content: center;padding: 4rem 0; font-family: var(--font-slider);}
.slider-header { text-align: center; margin-bottom: 60px; z-index: var(--z-dropdown); }
.subtitle { color: var(--accent); font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: 2px; margin-bottom: 16px; }
.main-title { font-family: var(--font-head); font-size: clamp(36px, 5vw, 56px); font-weight: 900; color: var(--text-main); line-height: 1.1; }
.slider-container {perspective: 1500px; perspective-origin: 50% 50%;position: relative; width: 100%; max-width: 1400px; margin: 0 auto; height: 700px;}
.slider-nav {display: flex; align-items: center; justify-content: center; gap: 2rem;margin-top: 2.5rem; padding: 0 1rem;}
.slider-nav-text {font-family: var(--font-body); font-size: 0.9rem; color: var(--text-muted);letter-spacing: 0.5px; font-weight: 500;}
.slider-arrow {width: 50px; height: 50px; border-radius: 50%; border: 2px solid var(--text-main);background: transparent; cursor: pointer; display: flex; align-items: center;justify-content: center; transition: all 0.3s ease;}
.slider-arrow svg { width: 22px; height: 22px; stroke: var(--text-main); transition: stroke 0.3s ease; }
.slider-arrow:hover { background: var(--accent); border-color: var(--accent); transform: scale(1.1); }
.slider-arrow:hover svg { stroke: white; }
.slider-track {display: flex; align-items: center; justify-content: center; gap: 8px;transform-style: preserve-3d; position: relative; height: 100%;}
.card {flex-shrink: 0; width: 240px; background: #ddd; overflow: hidden;transform-style: preserve-3d; position: relative; cursor: pointer;border-radius: 4px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);will-change: transform;}
.card::before {content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%;background: linear-gradient(to right, rgba(0, 0, 0, 0.15), transparent 30%, transparent 70%, rgba(0, 0, 0, 0.15));transform: translateZ(-8px); pointer-events: none;}
.card::after {content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%;background: #e0e0e0; transform: translateZ(-16px);box-shadow: 0 0 40px rgba(0, 0, 0, 0.3); pointer-events: none;}
.card img { width: 100%; height: 100%; object-fit: cover; display: block; pointer-events: none; position: relative; z-index: var(--z-base); background: #ddd; }
.card .hover-overlay {position: absolute; top: 0; left: 0; width: 100%; height: 100%;background: rgba(209, 112, 40, 0.9); display: flex; align-items: center;justify-content: center; opacity: 0; transition: opacity 0.3s ease; z-index: 2;visibility: hidden;}
.card:hover .hover-overlay { opacity: 1; visibility: visible; }
.card .hover-overlay span { color: white; font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; }
.card .label {position: absolute; top: 15%; left: 50%; transform: translateX(-50%);background: rgba(24, 24, 24, 0.9); color: white; padding: 8px 18px;font-size: 12px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase;z-index: var(--z-dropdown); border-radius: 4px; pointer-events: none;}
.clone .label { background: var(--accent); padding: 10px 24px; font-size: 14px; top: 20px; left: 20px; transform: none; }
.slider-track.blurred .card:not(.expanded) { filter: blur(8px); transition: filter 0.6s ease; }
.card.expanded { z-index: var(--z-modal); }
.clone { object-fit: cover; z-index: var(--z-overlay); will-change: width, height, left, top; }
.card-info {position: fixed; bottom: 80px; left: 50%; transform: translateX(-50%); text-align: center;opacity: 0; visibility: hidden; transition: opacity 0.6s ease, visibility 0.6s ease;z-index: calc(var(--z-overlay) + 1); width: 70%; max-width: 420px;padding: 1.5rem; background: #fff; border: 2px solid var(--accent);box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2); min-width: 320px;}
.card-info.visible { opacity: 1; visibility: visible; }
.card-info h2 { font-family: var(--font-head); font-size: 28px; font-weight: 900; color: var(--text-main); margin-bottom: 16px; }
.card-info p { font-family: var(--font-body); font-size: 16px; color: var(--text-muted); line-height: 1.7; }
.close-btn {position: absolute; top: 20px; right: 20px; width: 50px; height: 50px;background: white; border: 2px solid var(--text-main); border-radius: 50%;display: flex; align-items: center; justify-content: center; cursor: pointer;z-index: calc(var(--z-overlay) + 2); box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);transition: all 0.3s ease; opacity: 0; visibility: hidden;}
.close-btn.visible { opacity: 1; visibility: visible; }
.close-btn:hover { background: var(--accent); border-color: var(--accent); transform: rotate(90deg) scale(1.1); }
.close-btn svg { width: 20px; height: 20px; stroke: var(--text-main); }
@media (max-width: 1024px) {.mobile-scroll-hint {display: block;font-size: 0.85rem;color: var(--accent);font-weight: 500;margin-top: 0.5rem;letter-spacing: 1px;opacity: 0.8;animation: swipeAnim 2s infinite;}
@keyframes swipeAnim {0%, 100% { transform: translateX(0); opacity: 0.8; }
50% { transform: translateX(5px); opacity: 1; }}
.slider-container {height: auto;perspective: none;overflow: hidden;padding-bottom: 2rem;width: 100%;}
.slider-track {display: flex;flex-direction: row;gap: 15px;transform-style: flat;width: 100%;padding: 0 20px;overflow-x: auto;scroll-snap-type: x mandatory;-webkit-overflow-scrolling: touch;scrollbar-width: none;justify-content: flex-start;flex-wrap: nowrap;}
.slider-track::-webkit-scrollbar { display: none; }
.card:not(.clone) {flex: 0 0 85vw;width: 85vw;max-width: 380px;height: 50vh;margin: 0;transform: none !important;clip-path: none !important;position: relative;opacity: 1;filter: none;box-shadow: 0 5px 15px rgba(0,0,0,0.1);cursor: pointer;scroll-snap-align: center;}
.card .label {top: 15px; left: 15px; transform: none;font-size: 11px; padding: 6px 12px; z-index: 5;}
.card .hover-overlay, .slider-nav {display: none !important; opacity: 0; pointer-events: none;}
.card.clone {position: fixed; z-index: var(--z-overlay); margin: 0;box-shadow: 0 0 0 100vh rgba(255, 255, 255, 0.95);max-width: none; overflow: visible;}
.card-info {position: fixed;z-index: calc(var(--z-overlay) + 5) !important;width: 100% !important; max-width: 100% !important;left: 0 !important; bottom: 0 !important; top: auto; margin: 0;transform: none !important;border-radius: 12px 12px 0 0;box-shadow: 0 -5px 20px rgba(0,0,0,0.1);background: white; padding: 1.5rem;border: none; border-top: 2px solid var(--accent);}}
@media (min-width: 1025px) {.mobile-scroll-hint { display: none; }}
#scrollUpBtn {position: fixed; bottom: 30px; right: 30px; z-index: var(--z-overlay);width: 50px; height: 50px; border: none; background-color: var(--text-main); color: white;border-radius: 50%; cursor: pointer; opacity: 0; visibility: hidden; transition: all 0.3s ease;display: flex; align-items: center; justify-content: center; font-size: 1.5rem;box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);}
#scrollUpBtn:hover { background-color: var(--accent); transform: translateY(-5px); }
#scrollUpBtn.show { opacity: 1; visibility: visible; }
#contact h2 { margin-bottom: 1rem; }
.contact-wrapper { display: flex; gap: 2rem; flex-wrap: wrap; margin-top: 2rem; }
.details { flex: 1; min-width: 250px; }
.contact-form { flex: 2; display: flex; flex-direction: column; gap: 1rem; min-width: 300px; }
.form-honeypot {position: absolute !important; left: -10000px !important;width: 1px !important; height: 1px !important; overflow: hidden !important;}
.field-optional { font-weight: 400; color: var(--text-muted); }
.form-status { min-height: 1.5em; margin: 0.25rem 0 0; font-size: 0.95rem; }
.form-status.is-error { color: #a32020; }
.form-status.is-success { color: #176b3a; }
input, textarea {padding: 1rem; border: 1px solid #ddd; background: #ffffff;font-family: inherit; font-size: 1rem; transition: border-color 0.3s ease;}
input:focus, textarea:focus { outline: none; border-color: var(--accent); }
.contact-form .send-message-btn {display: inline-flex; align-items: center; justify-content: center; gap: 12px;overflow: visible !important; position: relative; z-index: 10;opacity: 1;}
.contact-form .send-message-btn .icon {display: inline-flex; align-items: center; justify-content: center; line-height: 0; position: relative;}
.contact-form .send-message-btn .icon svg {width: 18px; height: 18px; fill: currentColor; flex-shrink: 0; display: block; z-index: 20;}
footer { background: #1a1a1a; padding: 4rem 0 2rem; margin-top: 4rem; color: #b3b3b3; }
.footer-top {display: grid; grid-template-columns: 2fr 1.2fr 1fr 1.3fr; gap: 3rem;width: 90%; max-width: var(--site-max); margin: 0 auto 3rem;}
.footer-col .footer-brand-logo { width: 210px; height: auto; display: block; margin-bottom: 1.2rem; }
.footer-col h4 {font-family: var(--font-head); font-size: 0.78rem; letter-spacing: 2px; text-transform: uppercase;color: #fff; margin: 0 0 1.2rem; font-weight: 700;}
.footer-col p { font-size: 0.95rem; line-height: 1.7; color: #999; margin: 0 0 0.6rem; }
.footer-col a {display: block; font-size: 0.95rem; color: #b3b3b3; text-decoration: none;padding: 0.32rem 0; transition: color 0.3s ease, padding-left 0.3s ease;}
.footer-col a:hover { color: var(--accent); padding-left: 5px; }
.footer-col .footer-contact-line { color: #999; }
.footer-col .footer-contact-line a { display: inline; padding: 0; }
.footer-container {display: flex; justify-content: space-between; align-items: center;width: 90%; max-width: var(--site-max); margin: 0 auto; padding-top: 1.8rem; border-top: 1px solid rgba(255,255,255,0.1);}
.footer-copyright { font-size: 0.92rem; color: #777; font-weight: 400; margin: 0; }
.footer-menu { display: flex; gap: 2rem; }
.footer-menu a { font-size: 0.92rem; color: #777; font-weight: 400; text-decoration: none; transition: color 0.3s ease; }
.footer-menu a:hover { color: var(--accent); }
@media (max-width: 992px) {.footer-top { grid-template-columns: 1fr 1fr; gap: 2.5rem; }}
@media (max-width: 768px) {footer { padding: 3rem 0 2rem; }
.footer-top { grid-template-columns: 1fr; gap: 2rem; text-align: left; }
.footer-container { flex-direction: column; gap: 1.2rem; text-align: center; }
.footer-copyright { font-size: 0.9rem; order: 2; }
.footer-menu { gap: 1.5rem; order: 1; flex-wrap: wrap; justify-content: center; }
.footer-menu a { font-size: 0.9rem; }}
.site-drawer-overlay {position: fixed; inset: 0; z-index: calc(var(--z-overlay) - 1);background-color: rgba(19,19,19,0.45);opacity: 0; visibility: hidden; transition: opacity 0.45s ease, visibility 0.45s ease;}
.site-drawer-overlay.open { opacity: 1; visibility: visible; }
.site-drawer {position: fixed; top: 0; right: 0; bottom: 0; z-index: var(--z-overlay);width: min(560px, 92vw); height: 100%; height: 100svh;background: var(--bg-main); border-left: 1px solid rgba(0,0,0,0.08);transform: translateX(102%); transition: transform 0.55s cubic-bezier(0.65,0.05,0,1);display: flex; flex-direction: column; overflow-y: auto; -webkit-overflow-scrolling: touch;padding: 100px 48px 40px;}
.site-drawer.open { transform: translateX(0); }
.drawer-close {position: absolute; top: 28px; left: 48px; width: 46px; height: 46px;background: transparent; border: 1px solid rgba(0,0,0,0.15); cursor: pointer;color: var(--text-main); transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease;}
.drawer-close:hover { background: var(--text-main); color: var(--bg-main); border-color: var(--text-main); }
.drawer-close::before, .drawer-close::after {content: ''; position: absolute; top: 50%; left: 50%; width: 18px; height: 2px;background: currentColor; transform: translate(-50%,-50%) rotate(45deg);}
.drawer-close::after { transform: translate(-50%,-50%) rotate(-45deg); }
.drawer-nav { flex: 1; }
.drawer-list { list-style: none; margin: 0; padding: 0; }
.drawer-item { border-bottom: 1px solid rgba(0,0,0,0.08); }
.drawer-item:first-child { border-top: 1px solid rgba(0,0,0,0.08); }
.drawer-item.drawer-social {padding: 0;}
.drawer-item.drawer-social a {display: flex; align-items: center; gap: 18px; padding: 16px 2px;text-decoration: none; color: var(--accent);transition: color 0.3s ease, padding-left 0.35s cubic-bezier(0.65,0.05,0,1);}
.drawer-item.drawer-social a:hover { color: var(--text-main); padding-left: 10px; }
.drawer-item.drawer-social a svg { width: 40px; height: 40px; flex-shrink: 0; }
.drawer-social-text { font-family: var(--font-head); font-size: 34px; font-weight: 900; line-height: 1.1; }
.drawer-link {display: flex; align-items: baseline; gap: 18px; padding: 16px 2px;text-decoration: none; color: var(--text-main);transition: color 0.3s ease, padding-left 0.35s cubic-bezier(0.65,0.05,0,1);}
.drawer-link:hover { color: var(--accent); padding-left: 10px; }
button.drawer-link {appearance: none; -webkit-appearance: none;background: none; border: 0; width: 100%; text-align: left; cursor: pointer; font: inherit;}
button.drawer-link:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.drawer-num { font-family: var(--font-body); font-size: 12px; font-weight: 500; letter-spacing: 2px; color: var(--text-muted); min-width: 22px; }
.drawer-text { font-family: var(--font-head); font-size: 34px; font-weight: 900; line-height: 1.1; }
.drawer-sub { list-style: none; margin: -2px 0 16px 40px; padding: 0; }
.drawer-sub li { margin: 0; }
.drawer-sub a {display: block; padding: 5px 0; text-decoration: none;font-family: var(--font-body); font-size: 15px; color: var(--text-muted);transition: color 0.25s ease, padding-left 0.25s ease;}
.drawer-sub a:hover { color: var(--accent); padding-left: 6px; }
.drawer-has-sub .drawer-row { display: flex; align-items: center; justify-content: space-between; gap: 6px; }
.drawer-has-sub .drawer-row .drawer-link { flex: 1; }
.drawer-sub-toggle {background: none; border: none; cursor: pointer; padding: 10px 4px;color: var(--text-main); display: flex; align-items: center; justify-content: center;transition: color 0.25s ease, transform 0.4s cubic-bezier(0.65,0.05,0,1);}
.drawer-sub-toggle svg { width: 26px; height: 26px; display: block; }
.drawer-sub-toggle:hover { color: var(--accent); }
.drawer-has-sub.open .drawer-sub-toggle { transform: rotate(180deg); }
.drawer-has-sub .drawer-sub {max-height: 0; overflow: hidden; opacity: 0; margin: 0 0 0 40px;transition: max-height 0.45s cubic-bezier(0.65,0.05,0,1), opacity 0.3s ease, margin 0.4s ease;}
.drawer-has-sub.open .drawer-sub { max-height: 460px; opacity: 1; margin: -2px 0 16px 40px; }
.drawer-contact { margin-top: 36px; padding-top: 28px; border-top: 1px solid rgba(0,0,0,0.1); }
.drawer-contact a {display: block; font-family: var(--font-body); font-size: 17px; color: var(--text-main);text-decoration: none; margin-bottom: 8px; transition: color 0.25s ease;}
.drawer-contact a:hover { color: var(--accent); }
.drawer-contact p { font-family: var(--font-body); font-size: 14px; color: var(--text-muted); margin: 6px 0 0; }
body.drawer-open { overflow: hidden; }
@media (max-width: 768px) {.site-drawer { padding: 88px 28px 32px; }
.drawer-close { top: 22px; left: 28px; width: 42px; height: 42px; }
.drawer-text { font-size: 28px; }
.drawer-link { padding: 12px 2px; }
.drawer-sub { margin: -2px 0 12px 36px; }
.drawer-has-sub .drawer-sub { margin-left: 36px; }
.drawer-has-sub.open .drawer-sub { margin: -2px 0 12px 36px; }
.drawer-sub a { font-size: 15px; padding: 4px 0; }
.drawer-contact { margin-top: 26px; padding-top: 22px; }
.drawer-social-text { font-size: 28px; }
.drawer-item.drawer-social a svg { width: 34px; height: 34px; }}
@media (max-width: 480px) {.site-drawer { padding: 80px 22px 28px; width: 100vw; }
.drawer-text { font-size: 25px; }
.drawer-sub { margin-left: 30px; }
.drawer-has-sub .drawer-sub, .drawer-has-sub.open .drawer-sub { margin-left: 30px; }
.drawer-social-text { font-size: 25px; }}
#webgl-waves {display: block; position: fixed; top: 0; left: 0; width: 100%; height: 100%; height: 100dvh;z-index: var(--z-background); pointer-events: none;}
.no-webgl #webgl-waves { display: none; }
.no-webgl body::before {content: ''; position: fixed; top: 0; left: 0; width: 100%; height: 100%;background: var(--bg-main); z-index: var(--z-background);}

/*=== pages.css ===*/
.page-hero {position: relative; height: 60vh; min-height: 400px; width: 100%;overflow: hidden; display: flex; align-items: center; justify-content: center; margin-bottom: 0;}
.page-hero .hero-video-container { position: absolute; inset: 0; z-index: 0; }
.page-hero .hero-video-container video {width: 100%; height: 100%; object-fit: cover; position: absolute; top: 0; left: 0;}
.page-hero .hero-video-container::after {content: ''; position: absolute; inset: 0; background: rgba(255, 255, 255, 0.1); z-index: 1; pointer-events: none;}
.company-story-hero {min-height: 620px;height: 72vh;align-items: flex-end;justify-content: flex-start;}
.company-story-hero .hero-video-container::after {background:
linear-gradient(90deg, rgba(20, 19, 17, 0.82) 0%, rgba(20, 19, 17, 0.48) 50%, rgba(20, 19, 17, 0.08) 100%),
linear-gradient(0deg, rgba(20, 19, 17, 0.66) 0%, rgba(20, 19, 17, 0) 54%);}
.company-hero-content {position: relative;z-index: 2;margin-bottom: clamp(3rem, 7vh, 6rem);color: #fff;}
.company-hero-kicker {display: inline-block;margin-bottom: 1.25rem;color: #f0a264;font-size: 0.82rem;font-weight: 700;letter-spacing: 0.18em;}
.company-hero-content h1 {max-width: 920px;margin: 0 0 1.5rem;color: #fff;font-size: clamp(2.7rem, 6vw, 5.5rem);font-weight: 700;line-height: 0.98;letter-spacing: -0.035em;}
.company-hero-content p {max-width: 850px;margin: 0;color: rgba(255, 255, 255, 0.9);font-size: clamp(1rem, 1.35vw, 1.18rem);line-height: 1.7;}
.company-breadcrumb {border-bottom: 1px solid rgba(27, 26, 23, 0.1);background: var(--bg-main);}
.company-history,
.company-philosophy,
.company-comparison,
.company-principles,
.company-work {padding: clamp(5rem, 9vw, 8rem) 0;}
.company-history-grid {display: grid;grid-template-columns: minmax(240px, 0.72fr) minmax(0, 1.28fr);gap: clamp(3rem, 8vw, 8rem);align-items: start;}
.company-year {position: sticky;top: 8rem;color: rgba(209, 112, 40, 0.12);font-size: clamp(6rem, 14vw, 13rem);font-weight: 900;line-height: 0.78;letter-spacing: -0.08em;-webkit-text-stroke: 1px rgba(209, 112, 40, 0.55);}
.company-prose {max-width: 780px;}
.company-prose p,
.comparison-copy,
.principle-card p {color: var(--text-muted);font-size: 1.06rem;line-height: 1.78;}
.company-prose p + p {margin-top: 1.5rem;}
.company-prose h2,
.company-section-heading h2,
.comparison-heading h2 {margin-bottom: 2rem;font-size: clamp(2.15rem, 4vw, 4rem);letter-spacing: -0.025em;}
.company-philosophy {background: #23211e;}
.company-philosophy-grid,
.company-work-grid {display: grid;grid-template-columns: minmax(260px, 0.8fr) minmax(0, 1.2fr);gap: clamp(3rem, 8vw, 8rem);align-items: start;}
.company-philosophy h2 {color: #fff;}
.company-philosophy .company-prose p {color: rgba(255, 255, 255, 0.82);}
.company-prose-large p:first-child {color: inherit;font-size: clamp(1.18rem, 1.8vw, 1.45rem);line-height: 1.65;}
.company-comparison {background: #efefe9;}
.comparison-heading {text-align: center;}
.company-comparison .comparison-container {max-width: 1080px;height: auto;aspect-ratio: 3 / 2;margin-top: 3.5rem;border-radius: 0;box-shadow: 0 20px 60px rgba(0, 0, 0, 0.14);}
.comparison-copy {max-width: 800px;margin: 2.5rem auto 0;text-align: center;}
.company-principles {background: #fff;}
.principles-grid {display: grid;grid-template-columns: repeat(3, minmax(0, 1fr));border-top: 1px solid rgba(24, 24, 24, 0.14);}
.principle-card {padding: 2.5rem clamp(1.5rem, 3vw, 3rem) 1rem;border-right: 1px solid rgba(24, 24, 24, 0.14);}
.principle-card:first-child {padding-left: 0;}
.principle-card:last-child {padding-right: 0;border-right: 0;}
.principle-number {display: block;margin-bottom: 3.5rem;color: var(--accent);font-size: 0.78rem;font-weight: 700;letter-spacing: 0.16em;}
.principle-card h2 {min-height: 2.5em;margin-bottom: 1.5rem;font-size: clamp(1.45rem, 2.1vw, 2rem);line-height: 1.2;}
.company-work {background: var(--bg-main);}
.company-text-link {display: inline-flex;align-items: center;gap: 0.7rem;margin-top: 2rem;padding-bottom: 0.35rem;border-bottom: 1px solid var(--accent);color: var(--text-main);font-size: 0.88rem;font-weight: 700;letter-spacing: 0.08em;text-decoration: none;text-transform: uppercase;transition: color 0.25s ease, gap 0.25s ease;}
.company-text-link:hover {gap: 1rem;color: var(--accent);}
.company-cta {padding: clamp(4rem, 7vw, 6rem) 0;background: var(--accent);}
.company-cta-inner {display: flex;align-items: center;justify-content: space-between;gap: 3rem;}
.company-cta p {max-width: 760px;margin: 0;color: #fff;font-size: clamp(1.25rem, 2.2vw, 1.75rem);line-height: 1.48;}
.company-cta .btn-hero {flex: 0 0 auto;border-color: #fff;background: #fff;color: var(--text-main);opacity: 1;white-space: nowrap;text-transform: uppercase;}
.company-cta .btn-hero:hover {background: #23211e;border-color: #23211e;color: #fff;}
@media (max-width: 991px) {.page-hero.company-story-hero {height: 68vh;min-height: 590px;}
.company-history-grid,
.company-philosophy-grid,
.company-work-grid {grid-template-columns: 1fr;gap: 3rem;}
.company-year {position: static;font-size: clamp(6rem, 25vw, 10rem);}
.principles-grid {grid-template-columns: 1fr;}
.principle-card,
.principle-card:first-child,
.principle-card:last-child {padding: 2.5rem 0;border-right: 0;border-bottom: 1px solid rgba(24, 24, 24, 0.14);}
.principle-card:last-child {border-bottom: 0;}
.principle-number {margin-bottom: 1.5rem;}
.principle-card h2 {min-height: 0;}
.company-cta-inner {align-items: flex-start;flex-direction: column;}}
@media (max-width: 600px) {.page-hero.company-story-hero {height: auto;min-height: 680px;}
.company-hero-content {margin-bottom: 3rem;}
.company-story-hero .company-hero-content h1 {font-size: clamp(2.45rem, 13vw, 3.5rem);}
.company-hero-content p {font-size: 1rem;line-height: 1.58;}
.company-story-hero .hero-video-container::after {background: linear-gradient(0deg, rgba(20, 19, 17, 0.9) 0%, rgba(20, 19, 17, 0.45) 72%, rgba(20, 19, 17, 0.25) 100%);}
.company-breadcrumb {padding: 0.9rem 0;}
.company-history,
.company-philosophy,
.company-comparison,
.company-principles,
.company-work {padding: 4.5rem 0;}
.company-comparison .comparison-container {margin-top: 2.5rem;}
.comparison-copy {text-align: left;}
.company-cta .btn-hero {width: 100%;padding-right: 1.25rem;padding-left: 1.25rem;text-align: center;white-space: normal;}}
.intro-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; margin-top: 2rem; }
.intro-text p, .intro-history p { color: var(--text-muted); margin-bottom: 1.5rem; font-size: 1.1rem; }
.comparison-section { padding: 4rem 0; }
.comparison-container {position: relative; width: 100%; max-width: 900px; height: 500px;margin: 3rem auto 0; overflow: hidden; border-radius: 8px;box-shadow: 0 10px 30px rgba(0,0,0,0.15); user-select: none;}
.comparison-image { position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; }
.comparison-image img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.comparison-image.before { width: 50%; z-index: 2; border-right: 2px solid #fff; }
.comparison-image .label {position: absolute; top: 20px; padding: 5px 12px; background: rgba(0,0,0,0.7);color: white; font-size: 12px; font-weight: 700; letter-spacing: 1px; border-radius: 4px;}
.comparison-image.after .label { right: 20px; }
.comparison-image.before .label { left: 20px; }
.comparison-slider { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; z-index: 10; cursor: ew-resize; margin: 0; }
.slider-line {position: absolute; top: 0; bottom: 0; left: 50%; width: 2px;background: white; z-index: 5; pointer-events: none; box-shadow: 0 0 10px rgba(0,0,0,0.5);}
.slider-button {position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);width: 40px; height: 40px; background: var(--accent); border-radius: 50%;border: 2px solid white; z-index: 6; pointer-events: none; display: flex;align-items: center; justify-content: center; color: white;}
.slider-button svg { width: 20px; height: 20px; }
.values-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2.5rem; }
.value-card {padding: 2rem; background: white; border: 1px solid rgba(0,0,0,0.05);border-left: 3px solid var(--accent); box-shadow: 0 5px 20px rgba(0,0,0,0.05);transition: transform 0.3s ease;}
.value-card:hover { transform: translateY(-5px); }
.value-card h4 { font-size: 1.25rem; margin-bottom: 1rem; }
.value-card p { color: var(--text-muted); font-size: 0.95rem; }
.map-hero {position: relative; width: 100%; height: 60vh; min-height: 450px; overflow: hidden; margin-bottom: 0;}
.map-container { width: 100%; height: 100%; }
.map-overlay {position: absolute; top: 0; left: 0; width: 100%; height: 100%;background: linear-gradient(to bottom, rgba(255,255,255,0) 80%, var(--bg-main) 100%); pointer-events: none;}
.contact-page-section { padding: 4rem 0; }
.contact-grid-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: start; }
.contact-page-intro { margin-bottom: 3rem; }
.contact-page-intro h1 { margin-bottom: 1.25rem; font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.08; }
.contact-page-intro p { color: var(--text-muted); font-size: 1.05rem; line-height: 1.75; }
.info-label { margin-bottom: 0.35rem; color: var(--text-main) !important; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; }
.info-item { margin-bottom: 2rem; }
.info-item h4 { font-size: 1.1rem; margin-bottom: 0.5rem; color: var(--text-main); font-weight: 700; text-transform: uppercase; letter-spacing: 1px; }
.info-item p, .info-link { font-family: var(--font-body); font-size: 1.1rem; color: var(--text-muted); text-decoration: none; transition: color 0.3s ease; }
.info-link:hover { color: var(--accent); }
.contact-form-col {background: #fff; padding: 3rem; border-radius: 8px; box-shadow: 0 10px 40px rgba(0,0,0,0.08);border: 1px solid rgba(0,0,0,0.05); border-top: 3px solid var(--accent);}
.contact-form-col h4 { margin-bottom: 2rem; font-size: 1.5rem; }
.form-card h2 { margin-bottom: 0.6rem; font-size: 1.5rem; }
.form-required-note, .form-privacy { color: var(--text-muted); font-size: 0.85rem; line-height: 1.55; }
.form-required-note { margin-bottom: 1.5rem; }
.form-privacy { margin-top: 1.25rem; }
.form-privacy a { color: inherit; text-decoration: underline; }
.field-optional { color: var(--text-muted); font-size: 0.8rem; font-weight: 400; }
.form-status { min-height: 1.5em; margin-bottom: 1rem; font-size: 0.95rem; }
.form-status.is-success { color: #176b3a; }
.form-status.is-error { color: #a32323; }
.form-group { margin-bottom: 1.5rem; }
.form-group label { display: block; font-size: 0.9rem; font-weight: 500; margin-bottom: 0.5rem; color: var(--text-main); }
.form-group input, .form-group textarea {width: 100%; padding: 1rem; background: #f9f9f9; border: 1px solid #eee; border-radius: 4px; transition: all 0.3s ease;}
.form-group input:focus, .form-group textarea:focus { background: #fff; border-color: var(--accent); box-shadow: 0 4px 12px rgba(0,0,0,0.05); }
.area-autocomplete { position: relative; }
.area-suggestions { position: absolute; z-index: 20; top: 100%; right: 0; left: 0; max-height: 15rem; margin: -1.4rem 0 0; padding: 0.35rem; overflow-y: auto; list-style: none; background: #fff; border: 1px solid #ddd; border-radius: 4px; box-shadow: 0 10px 24px rgba(0,0,0,0.12); }
.area-suggestions li { padding: 0.7rem 0.8rem; border-radius: 3px; cursor: pointer; }
.area-suggestions li:hover, .area-suggestions li[aria-selected="true"] { background: #f0eee8; color: var(--accent); }
@media (max-width: 991px) {.intro-grid, .values-grid, .contact-grid-layout { grid-template-columns: 1fr; }
.intro-grid, .contact-grid-layout { gap: 2rem; }
.page-hero, .map-hero { height: 50vh; }
.comparison-container { height: 350px; }
.contact-form-col { padding: 2rem; }}
@media (max-width: 480px) {.page-hero h1 { font-size: 1.8rem; }
.comparison-container { height: 250px; }
.map-hero { height: 40vh; }
.contact-form-col { padding: 1.5rem; }}
.top-bar.always-solid {background: rgba(245, 245, 240, 0.95) !important;backdrop-filter: blur(5px);-webkit-backdrop-filter: blur(5px);border-bottom-color: rgba(24,24,24,0.10);box-shadow: none;padding: 1rem var(--site-margin);}
@media (max-width: 991px) {.top-bar.always-solid { padding: 0; }
.top-bar.always-solid .logo-container,
.top-bar.always-solid .contact { padding: 0.7rem 5%; }}
@media (max-width: 480px) {.top-bar.always-solid .logo-container,
.top-bar.always-solid .contact { padding: 0.6rem 4%; }}
.hero-buttons .btn-hero.btn-hero-ghost:hover {background-color: #fff !important;border-color: #fff !important;color: var(--accent) !important;}
.legal-page {padding: 8rem 0 4rem;min-height: 100vh;background-color: var(--bg-main);}
.legal-container {width: 90%;max-width: 900px;margin: 0 auto;padding: 0 2rem;}
.legal-container h1 {font-family: var(--font-head);font-size: 2.5rem;margin-bottom: 0.5rem;color: var(--text-main);}
.last-updated {font-size: 0.9rem;color: var(--text-muted);margin-bottom: 3rem;font-style: italic;}
.legal-content h4 {font-family: var(--font-head);font-size: 1.3rem;margin-top: 2.5rem;margin-bottom: 1rem;color: var(--text-main);border-bottom: 1px solid rgba(0,0,0,0.1);padding-bottom: 0.5rem;}
.legal-content h2 {font-family: var(--font-head);font-size: 1.3rem;font-weight: 700;margin-top: 2.5rem;margin-bottom: 1rem;color: var(--text-main);border-bottom: 1px solid rgba(0,0,0,0.1);padding-bottom: 0.5rem;}
.legal-content h3 {font-family: var(--font-head);font-size: 1.05rem;font-weight: 700;margin-top: 1.8rem;margin-bottom: 0.6rem;color: var(--accent);}
.legal-content p, .legal-content li {font-family: var(--font-body);font-size: 1.05rem;color: #333;margin-bottom: 1rem;line-height: 1.8;text-align: justify;}
.legal-content ul {padding-left: 1.5rem;margin-bottom: 1rem;}
.sticky-back-btn {position: fixed;top: 30px;left: 30px;z-index: 100;width: 50px;height: 50px;background: white;border: 1px solid rgba(0,0,0,0.1);border-radius: 50%;display: flex;align-items: center;justify-content: center;box-shadow: 0 5px 20px rgba(0,0,0,0.05);transition: all 0.3s ease;color: var(--text-main);}
.sticky-back-btn:hover {transform: translateX(-5px);background: var(--accent);color: white;border-color: var(--accent);}
@media (max-width: 768px) {.legal-container {width: 100%;padding: 0 1.5rem;}
.legal-container h1 {font-size: 2rem;}
.sticky-back-btn {top: 20px;left: 20px;width: 40px;height: 40px;}}
@media (max-width: 991px) {#webgl-waves {display: none !important;}
.hero-video-container {background-image: url('../assets/hero-image.webp');background-size: cover;background-position: center;}}
body::before {display: none;}
@media (max-width: 768px) {h2:not(.main-title) {font-size: 1.6rem;}}
#faq {position: relative;padding: 6rem 0;background-color: var(--bg-main);border-top: 3px solid var(--accent);border-bottom: 3px solid var(--accent);}
#faq {padding: 6rem 0;background-color: var(--bg-main);}
.faq-header {text-align: center;margin-bottom: 4rem;max-width: 600px;margin-left: auto;margin-right: auto;}
.faq-subtitle {color: var(--text-muted);font-size: 1.1rem;margin-top: 1rem;font-weight: 300;}
.faq-grid {display: grid;grid-template-columns: repeat(2, 1fr);gap: 3rem;max-width: 1200px;margin: 0 auto;}
.faq-category {background: white;border: 1px solid rgba(0,0,0,0.05);border-radius: 8px;padding: 2.5rem;box-shadow: 0 5px 20px rgba(0,0,0,0.03);transition: transform 0.3s ease, box-shadow 0.3s ease;}
.faq-category:hover {transform: translateY(-5px);box-shadow: 0 10px 40px rgba(0,0,0,0.08);}
.category-header {display: flex;align-items: center;gap: 1rem;margin-bottom: 2rem;padding-bottom: 1.5rem;border-bottom: 2px solid var(--bg-main);}
.category-icon {width: 48px;height: 48px;background: var(--accent);border-radius: 50%;display: flex;align-items: center;justify-content: center;color: white;flex-shrink: 0;}
.category-icon svg {width: 24px;height: 24px;}
.faq-category h3 {font-size: 1.25rem;font-weight: 700;color: var(--text-main);margin: 0;line-height: 1.3;}
.faq-list {display: flex;flex-direction: column;gap: 1rem;}
.faq-item {border: 1px solid rgba(0,0,0,0.08);border-radius: 6px;overflow: hidden;transition: all 0.3s ease;}
.faq-item:hover {border-color: rgba(209, 112, 40, 0.3);}
.faq-item[open] {border-color: var(--accent);background: rgba(209, 112, 40, 0.02);}
.faq-item summary {padding: 1.25rem;cursor: pointer;display: flex;justify-content: space-between;align-items: center;gap: 1rem;font-weight: 500;color: var(--text-main);list-style: none;transition: background 0.3s ease;}
.faq-item summary::-webkit-details-marker {display: none;}
.faq-item summary:hover {background: rgba(209, 112, 40, 0.05);}
.faq-item[open] summary {background: rgba(209, 112, 40, 0.08);color: var(--accent);}
.faq-item summary span {flex: 1;font-size: 0.95rem;line-height: 1.4;}
.plus-icon {width: 20px;height: 20px;flex-shrink: 0;transition: transform 0.3s ease;color: var(--accent);}
.faq-item[open] .plus-icon {transform: rotate(45deg);}
.faq-content {padding: 0 1.25rem 1.25rem;animation: fadeIn 0.3s ease;}
.faq-content p {color: var(--text-muted);font-size: 0.95rem;line-height: 1.7;margin: 0;}
.faq-content strong {color: var(--text-main);font-weight: 600;}
@keyframes fadeIn {from { opacity: 0; transform: translateY(-10px); }
to { opacity: 1; transform: translateY(0); }}
@media (max-width: 991px) {.faq-grid {grid-template-columns: 1fr;gap: 2rem;}
.faq-category {padding: 2rem;}}
@media (max-width: 480px) {.faq-category {padding: 1.5rem;}
.category-icon {width: 40px;height: 40px;}
.faq-category h3 {font-size: 1.1rem;}}
p {font-size: 1.1rem;line-height: 1.8;color: var(--text-muted);margin-bottom: 1.25rem;}
.footer-copyright,
.footer-menu a,
.nav-link,
.section-tag,
.hero-subtitle,
.mobile-scroll-hint,
.slider-nav-text,
.loader-text {font-size: inherit;line-height: inherit;}
.svc-card-text,
.value-card p,
.info-item p,
.card-info p {font-size: 1rem;line-height: 1.7;}
.legal-content p,
.legal-content li {font-size: 1.15rem;line-height: 1.9;color: #333;}
@media (max-width: 768px) {p {font-size: 1.05rem;line-height: 1.75;}
.legal-content p,
.legal-content li {font-size: 1.05rem;line-height: 1.8;}}
.section-tag,
.subtitle {color: var(--accent);font-weight: 700;font-size: 1rem;letter-spacing: 2.5px;display: block;margin-bottom: 1rem;text-transform: uppercase;line-height: 1.2;}
.main-title {font-size: clamp(36px, 5vw, 56px);font-weight: 900;line-height: 1.1;margin-bottom: 1.5rem;color: var(--text-main);}
#projects .subtitle {margin-bottom: 1rem;padding: 0;}
section#projects {padding: 6rem 0 !important;}
#projects .slider-header {text-align: center;margin-bottom: 1rem !important;padding: 0 2rem;}
#projects .slider-header .subtitle {color: var(--accent) !important;font-weight: 700 !important;font-size: 1rem !important;letter-spacing: 2.5px !important;margin-bottom: 1rem !important;display: block;text-transform: uppercase;}
#projects .slider-header .main-title {font-size: clamp(36px, 5vw, 56px) !important;font-weight: 900 !important;margin-bottom: 1.5rem !important;line-height: 1.1 !important;}
#projects .slider-container {margin-top: 2.5rem;}
@media (max-width: 1024px) {section#projects {padding: 4rem 0 !important;}}
.legal-content h5 {font-family: var(--font-head);font-size: 1.05rem;font-weight: 700;margin-top: 1.8rem;margin-bottom: 0.6rem;color: var(--accent);}
.cc-banner {position: fixed;left: 50%;bottom: 24px;transform: translateX(-50%) translateY(20px);width: calc(100% - 48px);max-width: 640px;background: #fff;color: var(--text-main);border: 1px solid rgba(0,0,0,0.08);border-top: 3px solid var(--accent);box-shadow: 0 12px 40px rgba(0,0,0,0.15);padding: 1.6rem 1.8rem;z-index: 9999;opacity: 0;pointer-events: none;transition: opacity 0.4s ease, transform 0.4s ease;}
.cc-banner.cc-show {opacity: 1;transform: translateX(-50%) translateY(0);pointer-events: auto;}
.cc-banner p {font-family: var(--font-body);font-size: 0.92rem;line-height: 1.7;color: #333;margin: 0 0 1.2rem;}
.cc-actions { display: flex; flex-wrap: wrap; gap: 0.8rem; }
.cc-btn {font-family: var(--font-body);font-size: 0.78rem;font-weight: 700;letter-spacing: 1px;text-transform: uppercase;padding: 0.7rem 1.2rem;border: 1px solid var(--text-main);background: transparent;color: var(--text-main);cursor: pointer;transition: all 0.3s ease;}
.cc-btn:hover { background: var(--text-main); color: #fff; }
.cc-btn--primary { background: var(--accent); border-color: var(--accent); color: #fff; }
.cc-btn--primary:hover { background: var(--text-main); border-color: var(--text-main); }
.cc-btn--link {border-color: transparent;padding-left: 0.4rem;padding-right: 0.4rem;text-decoration: underline;text-underline-offset: 3px;}
.cc-btn--link:hover { background: transparent; color: var(--accent); }
.cc-modal-overlay {position: fixed;inset: 0;background: rgba(0,0,0,0.5);z-index: 10000;display: flex;align-items: center;justify-content: center;padding: 1.5rem;opacity: 0;pointer-events: none;transition: opacity 0.3s ease;}
.cc-modal-overlay.cc-show { opacity: 1; pointer-events: auto; }
.cc-modal {background: var(--bg-main);width: 100%;max-width: 620px;max-height: 85vh;overflow-y: auto;padding: 2.2rem;border-top: 3px solid var(--accent);box-shadow: 0 20px 60px rgba(0,0,0,0.3);transform: translateY(20px);transition: transform 0.3s ease;}
.cc-modal-overlay.cc-show .cc-modal { transform: translateY(0); }
.cc-modal h3 {font-family: var(--font-head);font-size: 1.5rem;font-weight: 900;color: var(--text-main);margin: 0 0 1.5rem;}
.cc-cat { border-bottom: 1px solid rgba(0,0,0,0.08); padding: 1.1rem 0; }
.cc-cat:last-of-type { border-bottom: none; }
.cc-cat-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 0.4rem; }
.cc-cat-head h4 { font-family: var(--font-head); font-size: 1rem; font-weight: 700; color: var(--text-main); margin: 0; }
.cc-cat p { font-family: var(--font-body); font-size: 0.85rem; line-height: 1.6; color: var(--text-muted); margin: 0; }
.cc-always { font-size: 0.72rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--accent); }
.cc-switch { position: relative; display: inline-block; width: 46px; height: 24px; flex-shrink: 0; }
.cc-switch input { opacity: 0; width: 0; height: 0; }
.cc-slider { position: absolute; cursor: pointer; inset: 0; background: #ccc; transition: 0.3s; border-radius: 24px; }
.cc-slider::before { content: ""; position: absolute; height: 18px; width: 18px; left: 3px; bottom: 3px; background: #fff; transition: 0.3s; border-radius: 50%; }
.cc-switch input:checked + .cc-slider { background: var(--accent); }
.cc-switch input:checked + .cc-slider::before { transform: translateX(22px); }
.cc-switch input:disabled + .cc-slider { background: var(--accent); opacity: 0.5; cursor: not-allowed; }
.cc-modal-actions { display: flex; flex-wrap: wrap; gap: 0.8rem; margin-top: 1.8rem; }
.cc-contact-block { margin-top: 1.8rem; padding-top: 1.4rem; border-top: 1px solid rgba(0,0,0,0.08); }
.cc-contact-block h4 { font-family: var(--font-head); font-size: 0.8rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--text-main); margin: 0 0 0.8rem; }
.cc-contact-block p { font-family: var(--font-body); font-size: 0.85rem; line-height: 1.7; color: var(--text-muted); margin: 0 0 0.4rem; }
.cc-contact-block a { color: var(--accent); text-decoration: none; }
.cc-contact-block a:hover { text-decoration: underline; }
@media (max-width: 768px) {.cc-banner { padding: 1.3rem; bottom: 12px; }
.cc-actions { flex-direction: column; }
.cc-btn { width: 100%; text-align: center; }
.cc-modal { padding: 1.6rem; }
.cc-modal-actions { flex-direction: column; }
.cc-modal-actions .cc-btn { width: 100%; text-align: center; }}
.footer-social {display: flex;align-items: center;gap: 1.25rem;}
.footer-social a {color: #777;display: inline-flex;transition: color 0.3s ease, transform 0.3s ease;}
.footer-social a:hover {color: var(--accent);transform: translateY(-2px);}
.contact-social {display: flex;gap: 1rem;margin-top: 0.5rem;}
.contact-social a {color: var(--text-muted);display: inline-flex;transition: color 0.3s ease, transform 0.3s ease;}
.contact-social a:hover {color: var(--accent);transform: translateY(-2px);}
@media (max-width: 768px) {.footer-social { order: 3; justify-content: center; }}
.projects-cta {display: flex;justify-content: center;margin-top: 2.5rem;}
.btn-projects-all {display: inline-block;background: var(--accent);color: #fff;border: 1px solid var(--accent);padding: 1rem 3rem;border-radius: 50px;font-size: 0.75rem;font-weight: 600;letter-spacing: 2px;text-decoration: none;transition: all 0.3s ease;}
.btn-projects-all:hover {background: transparent;color: var(--accent);}
@media (max-width: 480px) {.projects-cta { padding: 0 5%; }
.btn-projects-all { width: 100%; max-width: 320px; text-align: center; }}
@media (min-width: 992px) {.top-bar {display: grid;grid-template-columns: auto minmax(0, 1fr) auto;align-items: center;justify-content: initial;column-gap: 1.75rem;}
.top-bar, .top-bar.scrolled, .top-bar.always-solid, .top-bar.scrolled.always-solid {padding-left: var(--site-margin);padding-right: var(--site-margin);}
.top-bar .logo-container { grid-column: 1; margin-right: 0; }
.nav-logo { width: 190px; }
.top-bar .nav-menu { grid-column: 2; justify-self: center; margin: 0; }
.nav-actions {grid-column: 3; display: flex; align-items: center;justify-content: flex-end; gap: 1.1rem; order: initial;}
.nav-menu { gap: 1.56rem; }
.nav-menu > li > a { font-size: 0.95rem; }
.top-bar .btn-call {order: 0;gap: 0.7rem;padding: 0.72rem 1.55rem;}
.top-bar .btn-call::after {content: '→';display: inline-block;font-size: 1rem;line-height: 1;transition: transform 0.28s cubic-bezier(0.65,0.05,0,1);}
.top-bar .btn-call:hover::after { transform: translateX(5px); }
.nav-search-toggle { order: 0; }
.top-bar .nav-menu { min-width: 0; flex-wrap: nowrap; }
.nav-menu > li > a, .nav-menu > li > .nav-sub-trigger { white-space: nowrap; }
.nav-menu > li.nav-has-sub { position: static; }
.nav-has-sub::after { display: none; }
.nav-has-sub > .nav-sub-trigger { position: relative; }
.nav-has-sub > .nav-sub-trigger::before {content: ''; position: absolute; top: 100%; left: 0; right: 0; height: 2.6rem;}
.nav-mega {position: absolute; top: 100%; left: var(--mega-panel-start, 0px); right: var(--site-margin);background: rgba(255,255,255,0.985);backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);border-top: 3px solid var(--accent);box-shadow: 0 26px 60px rgba(0,0,0,0.16);opacity: 0; visibility: hidden; pointer-events: none;transform: translateY(-10px);transition: opacity 0.3s ease, transform 0.35s cubic-bezier(0.65,0.05,0,1), visibility 0.35s;z-index: 5;container-type: inline-size;}
.nav-has-sub:hover .nav-mega,
.nav-has-sub.is-open .nav-mega,
.nav-has-sub:focus-within .nav-mega {opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0);}
.nav-mega-inner {max-width: none; margin: 0;padding: 2.2rem 2rem 2.5rem;display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 2.25rem; align-items: start;}
.nav-mega-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0.2rem 2.5rem; }
.nav-mega-link {display: flex; align-items: baseline; gap: 14px;padding: 0.78rem 0.6rem 0.78rem 0;text-decoration: none; color: var(--text-main);border-bottom: 1px solid rgba(0,0,0,0.07);transition: color 0.25s ease, padding-left 0.3s cubic-bezier(0.65,0.05,0,1);}
.nav-mega-link:hover { color: var(--accent); padding-left: 10px; }
.nmg-num {font-family: var(--font-body); font-size: 0.68rem; font-weight: 700;letter-spacing: 1.4px; color: var(--accent); flex-shrink: 0;}
.nmg-text { font-family: var(--font-head); font-size: 1.02rem; font-weight: 600; line-height: 1.3; }
.nav-mega-media { display: flex; flex-direction: column; gap: 1rem; }
.nav-mega-img {width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block;background: #eee; transition: opacity 0.25s ease;}
.nav-mega-all {display: inline-flex; align-items: center; justify-content: center;background: var(--accent); color: #fff; text-decoration: none;font-family: var(--font-body); font-size: 0.72rem; font-weight: 600; letter-spacing: 1.6px;padding: 0.8rem 1rem; transition: background 0.3s ease;}
.nav-mega-all:hover { background: #b85e1f; }}
@media (min-width: 992px) and (max-width: 1399px) {.nav-mega-inner { grid-template-columns: minmax(0, 1fr) 260px; gap: 2rem; padding: 2rem 1.75rem 2.2rem; }}
@container (max-width: 760px) {.nav-mega-inner { grid-template-columns: minmax(0, 1fr) 220px; gap: 1.75rem; }
.nav-mega-cols { grid-template-columns: 1fr; }}
@container (max-width: 560px) {.nav-mega-inner { grid-template-columns: minmax(0, 1fr); }
.nav-mega-media { display: none; }}
@media (min-width: 992px) and (max-width: 1199px) {.top-bar { column-gap: 1rem; }
.nav-logo { width: 150px; }
.nav-menu { gap: 1rem; }
.nav-menu > li > a { font-size: 0.85rem; letter-spacing: 0; }
.nav-menu > li.nav-has-sub > .nav-sub-trigger { gap: 8px; }
.nav-actions { gap: 0.7rem; }
.nav-search-toggle { width: 36px; height: 36px; }
.nav-search-toggle svg { width: 17px; height: 17px; }
.top-bar .btn-call {font-size: 0.7rem; letter-spacing: 1px;padding: 0.62rem 1rem; gap: 0.5rem;}
#about .container { grid-template-columns: 1fr 1fr; gap: 3rem; }
#about .main-title { font-size: clamp(30px, 4vw, 44px); }}
@media (min-width: 992px) and (max-width: 1099px) {.nav-logo { width: 135px; }
.nav-menu { gap: 0.8rem; }
.nav-menu > li > a, .nav-menu > li > .nav-sub-trigger { font-size: 0.8rem; }}
@media (min-width: 1200px) and (max-width: 1399px) {.top-bar { column-gap: 1.25rem; }
.nav-logo { width: 190px; }
.nav-menu { gap: 1.5rem; }
.nav-menu > li > a, .nav-menu > li > .nav-sub-trigger { font-size: 0.95rem; letter-spacing: 0.2px; }}
@media (min-width: 1200px) and (max-width: 1299px) {.nav-logo { width: 165px; }
.nav-menu { gap: 1.25rem; }
.nav-menu > li > a, .nav-menu > li > .nav-sub-trigger { font-size: 0.9rem; letter-spacing: 0; }}
@media (max-width: 991px) {.nav-mega { display: none; }
.nav-actions { display: contents; }}
@media (min-width: 1400px) {.nav-logo { width: 230px; }
.nav-menu { gap: 2.1rem; }
.nav-menu > li > a { font-size: 1.04rem; }
.top-bar { column-gap: 2rem; }
.top-bar .logo-container { margin-right: 0; }
.nav-mega { right: var(--site-margin); }
.top-bar, .top-bar.scrolled, .top-bar.always-solid, .top-bar.scrolled.always-solid {padding-left: var(--site-margin);padding-right: var(--site-margin);}}
@media (min-width: 1400px) and (max-width: 1549px) {.nav-logo { width: 200px; }
.nav-menu { gap: 1.7rem; }
.nav-menu > li > a, .nav-menu > li > .nav-sub-trigger { font-size: 0.98rem; letter-spacing: 0.2px; }}

/*=== services.css ===*/
.ypiresies-hero { position: relative; }
.ypiresies-hero .hero-video-container { position: absolute; inset: 0; overflow: hidden; }
.ypiresies-hero .hero-img {width: 100%; height: 100%;object-fit: cover; object-position: center;display: block;}
.ypiresies-hero-overlay {position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;background: linear-gradient(to top, rgba(20,18,15,.72), rgba(20,18,15,0));padding: 5rem 0 2rem;}
.ypiresies-hero-overlay .container { width: 90%; max-width: var(--site-max); margin: 0 auto; padding: 0; }
.ypiresies-hero-trust { display: inline-flex; align-items: center; gap: 1.8rem; color: #fff; }
.ypiresies-hero-trust .th-year { display: flex; flex-direction: column; line-height: 1; }
.ypiresies-hero-trust .th-year b {font-family: var(--font-head); font-weight: 900; font-size: clamp(2.4rem, 5vw, 3.6rem);letter-spacing: -1px; color: #fff;}
.ypiresies-hero-trust .th-year i {font-style: normal; font-size: 0.74rem; letter-spacing: 2px; text-transform: uppercase;color: rgba(255,255,255,0.75); margin-top: 0.5rem;}
.ypiresies-hero-trust .th-bar {width: 2px; align-self: stretch; min-height: 56px;background: var(--accent); transform-origin: bottom; display: block;}
.ypiresies-hero-trust .th-title {font-family: var(--font-head); font-weight: 900; font-size: clamp(1.2rem, 3vw, 1.8rem);letter-spacing: 1px; text-transform: uppercase; color: #fff;}
.ypiresies-hero-trust .th-knauf {font-size: 0.82rem; letter-spacing: 1.5px; text-transform: uppercase; line-height: 1.5;color: rgba(255,255,255,0.92);}
.ypiresies-hero-trust .th-knauf b { color: var(--accent); font-weight: 700; }
.breadcrumb { background: var(--bg-main); padding: 1.1rem 0; border-bottom: 1px solid rgba(27,26,23,0.1); }
.breadcrumb .container { width: 90%; max-width: var(--site-max); margin: 0 auto; padding: 0; }
.breadcrumb a, .breadcrumb span { font-size: 0.85rem; color: var(--text-muted); text-decoration: none; }
.breadcrumb a:hover { color: var(--accent); }
.breadcrumb .sep { margin: 0 0.5rem; color: var(--text-muted); }
.breadcrumb [aria-current="page"] { color: var(--text-main); font-weight: 500; }
.service-main-content { padding: 4rem 0 2rem; background: var(--bg-main); }
.service-main-content .container { width: 90%; max-width: var(--site-max); margin: 0 auto; padding: 0; }
.service-intro { max-width: 100%; margin: 0 0 3rem; text-align: left; }
.service-intro h1 {font-family: var(--font-head);font-size: clamp(32px, 4vw, 48px);font-weight: 900;color: var(--text-main);line-height: 1.1;margin-bottom: 1.25rem;}
.service-intro p {color: var(--text-muted);font-size: 1.15rem;line-height: 1.8;margin-bottom: 1rem;}
.service-intro a { color: var(--text-main); font-weight: 500; text-decoration: none; transition: color .25s ease; }
.service-intro a:hover, .service-intro a:focus-visible { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.intro-media img {width: 100%;height: auto;aspect-ratio: 4 / 3;object-fit: cover;border-radius: 8px;display: block;margin: 1.75rem 0 2rem;}
.intro-media.full-bleed img { margin: 0 0 2.5rem; }
.zz-row {display: grid;grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);gap: 4rem;align-items: center;margin-bottom: 6rem;}
.zz-row:last-child { margin-bottom: 2rem; }
.zz-media { max-width: 800px; width: 100%; justify-self: center; }
.zz-text > p:last-child { margin-bottom: 0; }
.zz-row.reverse .zz-text { order: 2; }
.zz-row.reverse .zz-media { order: 1; }
.zz-text h2 {font-family: var(--font-head);font-size: clamp(24px, 2.5vw, 32px);font-weight: 900;color: var(--text-main);line-height: 1.15;margin-bottom: 1.5rem;}
.zz-text > p {color: var(--text-muted);font-size: 1.05rem;line-height: 1.8;margin-bottom: 1.25rem;}
.zz-text a { color: var(--text-main); font-weight: 500; text-decoration: none; transition: color .25s ease; }
.zz-text a:hover, .zz-text a:focus-visible { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.zz-text .sub-section { margin-bottom: 1.5rem; }
.zz-text h3 {font-family: var(--font-head);font-size: 1.2rem;font-weight: 700;color: var(--text-main);margin-bottom: 0.4rem;}
.zz-text .sub-section p {color: var(--text-muted);font-size: 1rem;line-height: 1.7;margin: 0;}
.zz-media img {width: 100%;height: auto;aspect-ratio: 4 / 3;max-height: 560px;object-fit: cover;display: block;border-radius: 10px;box-shadow: 0 18px 50px rgba(0,0,0,0.12);}
.zz-more-link { margin-top: 0.5rem; }
.zz-text .zz-more-link a { color: var(--accent); font-weight: 600; }
.zz-text .zz-more-link a:hover, .zz-text .zz-more-link a:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
.svc-h2 {font-family: var(--font-head);font-size: clamp(24px, 2.5vw, 32px);font-weight: 900;color: var(--text-main);line-height: 1.15;margin-bottom: 1.25rem;}
.svc-p {color: var(--text-muted);font-size: 1.05rem;line-height: 1.8;margin-bottom: 1rem;}
.svc-p:last-child, .svc-p.is-last { margin-bottom: 0; }
.zz-cards {display: grid;grid-template-columns: 1fr 1fr;gap: 1.25rem;margin-top: 1.75rem;}
.zz-cards.one-col { grid-template-columns: 1fr; }
.zz-cards.two-col { grid-template-columns: repeat(2, 1fr); }
.zz-cards.three-col { grid-template-columns: repeat(3, 1fr); }
.zz-cards.four-col { grid-template-columns: repeat(4, 1fr); }
.feature-card {background: #fff;border: 1px solid rgba(0,0,0,0.07);border-radius: 10px;padding: 1.4rem 1.3rem;transition: border-color 0.3s ease, transform 0.3s ease;}
.feature-card:hover { border-color: rgba(209,112,40,0.35); transform: translateY(-3px); }
.feature-card .fc-icon {width: 34px; height: 34px;color: var(--accent);margin-bottom: 0.9rem;display: block;}
.feature-card .fc-icon svg { width: 100%; height: 100%; display: block; }
.feature-card h3 {font-family: var(--font-head);font-size: 1.1rem;font-weight: 700;color: var(--text-main);margin: 0 0 0.5rem;}
.feature-card p {color: var(--text-muted);font-size: 0.96rem;line-height: 1.65;margin: 0;}
.feature-card a { color: var(--text-main); font-weight: 500; text-decoration: none; transition: color .25s ease; }
.feature-card a:hover, .feature-card a:focus-visible { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.company-main-content .service-intro { margin-bottom: 5rem; }
.company-main-content .service-intro hr {margin: 2rem 0 0;border: 0;border-top: 1px solid rgba(24,24,24,0.14);}
.company-history-panel {display: flex;flex-direction: column;justify-content: center;aspect-ratio: 4 / 3;max-height: 560px;padding: clamp(2rem, 5vw, 4rem);overflow: hidden;border-radius: 10px;background: #fff;border: 1px solid rgba(0,0,0,0.07);box-shadow: 0 18px 50px rgba(0,0,0,0.12);}
.company-history-panel .history-year {color: var(--accent);font-family: var(--font-head);font-size: clamp(5rem, 10vw, 9rem);font-weight: 900;line-height: 0.82;letter-spacing: -0.06em;}
.company-history-panel .history-line {width: 100%;height: 2px;margin: clamp(2rem, 4vw, 3rem) 0 1.25rem;background: linear-gradient(90deg, var(--accent), rgba(209,112,40,0.12));}
.company-history-panel .history-today {color: var(--text-main);font-size: 0.78rem;font-weight: 700;letter-spacing: 0.18em;}
.company-method-panel {display: flex;flex-direction: column;justify-content: flex-end;min-height: 420px;aspect-ratio: 4 / 3;padding: clamp(2rem, 4vw, 3.5rem);overflow: hidden;border-radius: 10px;background: #23211e;box-shadow: 0 18px 50px rgba(0,0,0,0.12);}
.company-method-panel span {padding: 1rem 0;border-bottom: 1px solid rgba(255,255,255,0.16);color: #fff;font-family: var(--font-head);font-size: clamp(1.35rem, 2.2vw, 2rem);font-weight: 700;line-height: 1.15;}
.company-method-panel span:first-child { color: #f0a264; }
.company-method-panel span:last-child { border-bottom: 0; }
.company-comparison-block {margin: 0 0 6rem;padding-top: 0.5rem;}
.company-comparison-block > h2,
.company-work-panel h2 {font-family: var(--font-head);font-size: clamp(24px, 2.5vw, 32px);font-weight: 900;color: var(--text-main);line-height: 1.15;margin-bottom: 1.5rem;}
.company-comparison-block .comparison-container {max-width: 1080px;height: auto;aspect-ratio: 3 / 2;margin: 2rem auto 0;}
.company-comparison-block > p,
.company-work-panel > p {color: var(--text-muted);font-size: 1.05rem;line-height: 1.8;}
.company-comparison-block > p {max-width: 900px;margin: 2rem auto 0;}
.company-principle-cards {margin: 0 0 6rem;}
.company-value-card {display: flex;flex-direction: column;}
.company-card-number {display: block;margin-bottom: 1.5rem;color: var(--accent);font-size: 0.78rem;font-weight: 700;letter-spacing: 0.16em;}
.company-value-card h2 {min-height: 2.4em;margin: 0 0 0.75rem;color: var(--text-main);font-family: var(--font-head);font-size: 1.25rem;font-weight: 700;line-height: 1.2;}
.company-value-card p {color: var(--text-muted);font-size: 0.96rem;line-height: 1.65;margin: 0;}
.company-work-panel {padding: 3rem 0 2rem;border-top: 1px solid rgba(24,24,24,0.14);}
.company-work-panel > p { max-width: 900px; }
.company-work-panel .zz-more-link { margin-top: 1.5rem; }
.company-work-panel .zz-more-link a {color: var(--accent);font-weight: 600;text-decoration: none;}
.company-work-panel .zz-more-link a:hover,
.company-work-panel .zz-more-link a:focus-visible {text-decoration: underline;text-underline-offset: 3px;}
.company-service-cta .btn-hero { text-transform: uppercase; }
@media (max-width: 900px) {.company-main-content .service-intro { margin-bottom: 3.5rem; }
.company-method-panel { min-height: 320px; }
.company-value-card h2 { min-height: 0; }}
@media (max-width: 600px) {.company-history-panel { max-height: 300px; border-radius: 6px; }
.company-method-panel { min-height: 280px; border-radius: 6px; }
.company-comparison-block,
.company-principle-cards { margin-bottom: 4rem; }
.company-service-cta .service-cta-buttons { align-items: stretch; }}
.service-cta {background: #fff; padding: 5rem 0; text-align: center; border-top: 1px solid rgba(0,0,0,0.08);}
.service-cta .container { max-width: 760px; }
.service-cta h2 {font-family: var(--font-head); font-size: clamp(26px, 3.5vw, 40px);font-weight: 900; color: var(--text-main); margin-bottom: 1.2rem;}
.service-cta p { color: var(--text-muted); font-size: 1.1rem; line-height: 1.7; margin-bottom: 2.4rem; }
.service-cta-buttons { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }
.service-cta .btn-hero { opacity: 1; }
.service-faq { padding: 4rem 0; background: var(--bg-main); border-top: 3px solid var(--accent); }
.service-faq .container { max-width: 900px; }
.service-faq h2 {font-family: var(--font-head); font-size: clamp(24px, 3vw, 36px);font-weight: 900; color: var(--text-main); margin-bottom: 2rem; text-align: center;}
.service-faq .faq-item { background: #fff; }
.service-faq .faq-item summary { font-size: 1rem; }
.service-faq .faq-item summary h3 {flex: 1; line-height: 1.4; margin: 0; font-size: inherit; font-weight: inherit;}
.ypiresies-intro { padding: 5rem 0 1rem; }
.ypiresies-intro .container { max-width: 980px; }
.ypiresies-intro h1 {font-family: var(--font-head); font-size: clamp(30px, 4.5vw, 50px);font-weight: 900; line-height: 1.12; color: var(--text-main); margin-bottom: 2rem;}
.ypiresies-intro p { color: var(--text-muted); font-size: 1.12rem; line-height: 1.75; margin-bottom: 1.4rem; }
.ypiresies-grid-section { padding: 3rem 0 5rem; }
.ypiresies-grid-section .container { width: 90%; max-width: var(--site-max); margin: 0 auto; padding: 0; }
.ypiresies-grid-section .section-tag { text-align: center; }
.ypiresies-grid-section .main-title { text-align: center; }
.ypiresies-cta { background: #fff; padding: 5rem 0; text-align: center; }
.ypiresies-cta .container { max-width: 760px; }
.ypiresies-cta h2 {font-family: var(--font-head); font-size: clamp(26px, 3.5vw, 40px);font-weight: 900; color: var(--text-main); margin-bottom: 1.2rem;}
.ypiresies-cta p { color: var(--text-muted); font-size: 1.1rem; line-height: 1.7; margin-bottom: 2.4rem; }
.ypiresies-cta-buttons { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }
.ypiresies-cta .btn-hero { opacity: 1; }
@media (max-width: 1100px) {.zz-row { gap: 2.5rem; margin-bottom: 4.5rem; }
.service-main-content .container { padding: 0; }
.zz-cards.three-col { grid-template-columns: repeat(2, 1fr); }
.zz-cards.four-col { grid-template-columns: repeat(2, 1fr); }}
@media (max-width: 900px) {.zz-cards,
.zz-cards.two-col,
.zz-cards.three-col,
.zz-cards.four-col { grid-template-columns: 1fr; gap: 1rem; }
.zz-row {grid-template-columns: 1fr;gap: 1.5rem;margin-bottom: 3.5rem;}
.zz-row .zz-media,
.zz-row.reverse .zz-media { order: 1; }
.zz-row .zz-text,
.zz-row.reverse .zz-text { order: 2; }
.zz-media { max-width: 100%; }
.zz-media img { max-height: 420px; }
.service-intro { margin-bottom: 2.25rem; }
.service-intro p { font-size: 1.05rem; }}
@media (max-width: 600px) {.service-main-content { padding: 2rem 0; }
.service-main-content .container { padding: 0; }
.zz-row { gap: 1.15rem; margin-bottom: 2.75rem; }
.zz-media img { max-height: 300px; border-radius: 6px; box-shadow: 0 10px 26px rgba(0,0,0,0.12); }
.zz-text > p { font-size: 1rem; line-height: 1.75; margin-bottom: 1rem; }
.zz-text h2 { margin-bottom: 1rem; }
.service-intro p { font-size: 1rem; }
.service-cta-buttons { flex-direction: column; align-items: stretch; }
.ypiresies-hero-overlay { padding: 3.5rem 0 1.4rem; }
.ypiresies-hero-trust { gap: 1.1rem; flex-wrap: wrap; }
.ypiresies-hero-trust .th-title { font-size: 1rem; }
.ypiresies-hero-trust .th-knauf { font-size: 0.72rem; }
.feature-card { padding: 1.15rem 1.05rem; }}
@media (max-width: 380px) {.service-main-content .container { padding: 0; }
.zz-media img { max-height: 240px; }}
@media (max-width: 480px) {.ypiresies-cta-buttons { flex-direction: column; align-items: stretch; }}
.about-content {padding: 4rem 0 0;background: var(--bg-main);}
.about-intro {max-width: 1060px;margin: 0;padding: 0 0 clamp(4rem, 7vw, 6rem);}
.about-intro p {max-width: 980px;}
.about-text-section,
.about-projects {display: grid;grid-template-columns: minmax(250px, 0.72fr) minmax(0, 1.28fr);gap: clamp(3rem, 8vw, 8rem);padding: clamp(4rem, 7vw, 6rem) 0;border-top: 1px solid rgba(24,24,24,0.16);}
.about-section-title {display: grid;grid-template-columns: 2.25rem minmax(0, 1fr);gap: 1rem;align-items: start;}
.about-index {padding-top: 0.35rem;color: var(--accent);font-size: 0.75rem;font-weight: 700;letter-spacing: 0.14em;}
.about-section-title h2,
.about-principle h2 {margin: 0;color: var(--text-main);font-family: var(--font-head);font-weight: 900;line-height: 1.12;}
.about-section-title h2 {font-size: clamp(1.75rem, 3vw, 2.5rem);}
.about-copy {max-width: 790px;}
.about-copy p,
.about-difference-copy,
.about-principle p {margin: 0;color: var(--text-muted);font-size: 1.05rem;line-height: 1.8;}
.about-copy p + p {margin-top: 1.5rem;}
.about-copy-lead p:first-child {color: var(--text-main);font-size: clamp(1.12rem, 1.6vw, 1.3rem);line-height: 1.65;}
.about-difference {padding: clamp(4rem, 7vw, 6rem) 0;border-top: 1px solid rgba(24,24,24,0.16);}
.about-difference > .about-section-title {max-width: 600px;margin-bottom: 2.75rem;}
.about-difference .comparison-container {width: 100%;max-width: none;height: auto;aspect-ratio: 3 / 2;margin: 0;border-radius: 8px;box-shadow: 0 18px 50px rgba(0,0,0,0.12);}
.about-difference-copy {max-width: 790px;margin: 2.25rem 0 0 auto;}
.about-principles {padding: 0;border-top: 1px solid rgba(24,24,24,0.16);}
.about-principle {display: grid;grid-template-columns: 3rem minmax(220px, 0.72fr) minmax(0, 1.28fr);gap: clamp(1.5rem, 4vw, 4rem);align-items: start;padding: 3.25rem 0;border-bottom: 1px solid rgba(24,24,24,0.16);}
.about-principle h2 {font-size: clamp(1.35rem, 2.1vw, 1.75rem);}
.about-projects {border-top: 0;}
.about-link {display: inline-flex;align-items: center;gap: 0.7rem;margin-top: 2rem;color: var(--accent);font-size: 0.9rem;font-weight: 700;letter-spacing: 0.04em;text-decoration: none;transition: gap .25s ease, color .25s ease;}
.about-link:hover,
.about-link:focus-visible {gap: 1rem;color: var(--text-main);}
.about-contact {border-top: 1px solid rgba(24,24,24,0.1);}
.about-contact p {font-size: clamp(1.1rem, 1.8vw, 1.3rem);}
.about-contact .btn-hero {text-transform: uppercase;}
@media (max-width: 900px) {.about-text-section,
.about-projects {grid-template-columns: 1fr;gap: 2rem;}
.about-principle {grid-template-columns: 2.5rem minmax(190px, 0.8fr) minmax(0, 1.2fr);gap: 1.5rem;}
.about-difference-copy {margin-left: 0;}}
@media (max-width: 600px) {.about-content {padding-top: 2.5rem;}
.about-intro {padding-bottom: 3.5rem;}
.about-text-section,
.about-projects,
.about-difference {padding: 3.5rem 0;}
.about-section-title {grid-template-columns: 1.75rem minmax(0, 1fr);gap: 0.65rem;}
.about-principle {grid-template-columns: 1.75rem minmax(0, 1fr);gap: 0.65rem;padding: 2.5rem 0;}
.about-principle p {grid-column: 2;margin-top: 0.75rem;font-size: 1rem;line-height: 1.75;}
.about-copy p,
.about-difference-copy {font-size: 1rem;line-height: 1.75;}
.about-difference > .about-section-title {margin-bottom: 2rem;}
.about-difference .comparison-container {border-radius: 6px;}
.about-contact .service-cta-buttons {align-items: stretch;}}
.about-award-hero {position: relative;height: 70vh;min-height: 540px;align-items: flex-end;}
.about-award-hero .hero-img {display: block;width: 100%;height: 100%;object-fit: cover;object-position: center;}
.about-award-hero .hero-video-container::after {background:
linear-gradient(90deg, rgba(12,12,11,.78) 0%, rgba(12,12,11,.34) 48%, rgba(12,12,11,.06) 78%),
linear-gradient(0deg, rgba(12,12,11,.72) 0%, rgba(12,12,11,0) 58%);}
.about-hero-overlay {position: absolute;inset: 0;z-index: 2;display: flex;align-items: flex-end;padding: 0 0 clamp(2.75rem, 6vh, 4.5rem);}
.about-hero-kicker {display: block;margin-bottom: 1.4rem;color: #f0a264;font-size: .78rem;font-weight: 700;letter-spacing: .18em;}
.about-hero-overlay h1 {max-width: 920px;margin: 0;color: #fff;font-family: var(--font-head);font-size: clamp(3.2rem, 6vw, 6rem);font-weight: 900;line-height: .94;letter-spacing: -.045em;}
.about-awarded .about-content {padding: 0;overflow: hidden;}
.about-awarded .about-intro {display: grid;grid-template-columns: minmax(180px, .42fr) minmax(0, 1.58fr);gap: clamp(3rem, 8vw, 8rem);max-width: none;padding: clamp(4.5rem, 7vw, 6.5rem) 0;}
.about-intro-label {padding-top: .55rem;color: var(--accent);font-size: .75rem;font-weight: 700;letter-spacing: .18em;}
.about-awarded .about-intro p {max-width: 960px;margin: 0;color: var(--text-main);font-size: clamp(1.4rem, 2.25vw, 2.1rem);font-weight: 400;line-height: 1.34;letter-spacing: -.015em;}
.about-awarded .about-text-section,
.about-awarded .about-projects {grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr);padding: clamp(4.5rem, 7vw, 6rem) 0;}
.about-awarded .about-section-title {display: block;}
.about-awarded .about-section-title h2 {max-width: 420px;font-size: clamp(2.2rem, 3.6vw, 3.5rem);line-height: 1.02;letter-spacing: -.035em;}
.about-awarded .about-copy {max-width: 760px;}
.about-awarded .about-copy p,
.about-awarded .about-difference-copy,
.about-awarded .about-principle p {font-size: 1.08rem;line-height: 1.82;}
.about-awarded .about-copy-lead p:first-child {color: var(--text-main);font-size: clamp(1.3rem, 1.8vw, 1.7rem);line-height: 1.45;letter-spacing: -.01em;}
.about-awarded .about-text-section:nth-of-type(2) {background: #fff;box-shadow: 0 0 0 100vmax #fff;clip-path: inset(0 -100vmax);}
.about-awarded .about-difference {margin: 0;padding: clamp(4.5rem, 7vw, 6rem) 0;border-top: 0;background: #ebe8e1;box-shadow: 0 0 0 100vmax #ebe8e1;clip-path: inset(0 -100vmax);}
.about-awarded .about-difference > .about-section-title {width: 100%;max-width: 1040px;margin: 0 auto 2.5rem;}
.about-awarded .about-difference .about-section-title h2 {color: var(--text-main);}
.about-awarded .about-difference .comparison-container {width: 100%;max-width: 1040px;margin: 0 auto;border-radius: 8px;box-shadow: 0 16px 40px rgba(24,24,24,.12);}
.about-awarded .about-difference-copy {max-width: 820px;margin: 2.25rem auto 0;color: var(--text-muted);}
.about-awarded .about-principles {display: grid;grid-template-columns: repeat(3, minmax(0, 1fr));gap: clamp(1rem, 2vw, 1.5rem);padding: clamp(4.5rem, 7vw, 6rem) 0;border-top: 0;}
.about-awarded .about-principle {display: block;padding: clamp(1.75rem, 2.5vw, 2.5rem);background: #fff;border: 1px solid rgba(24,24,24,.12);border-radius: 8px;}
.about-awarded .about-principle:first-child {padding-left: clamp(1.75rem, 2.5vw, 2.5rem);}
.about-awarded .about-principle:last-child {padding-right: clamp(1.75rem, 2.5vw, 2.5rem);border-right: 1px solid rgba(24,24,24,.12);}
.about-awarded .about-principle::before {content: '';display: block;width: 2.75rem;height: 2px;margin-bottom: 2rem;background: var(--accent);}
.about-awarded .about-principle h2 {min-height: 2.35em;margin-bottom: 1.5rem;font-size: clamp(1.4rem, 1.75vw, 1.75rem);letter-spacing: -.015em;}
.about-awarded .about-projects {border-top: 1px solid rgba(24,24,24,.16);}
.about-awarded .about-link {margin-top: 2.25rem;padding-bottom: .35rem;border-bottom: 1px solid currentColor;font-size: .84rem;letter-spacing: .1em;text-transform: uppercase;}
.about-awarded + .about-contact,
.about-contact {background: #fff;}
.about-contact .about-contact-title {margin-bottom: 1.25rem;color: var(--text-main);font-size: clamp(2.1rem, 3.5vw, 3.2rem);font-weight: 900;line-height: 1.05;letter-spacing: -.03em;}
@media (max-width: 900px) {.about-award-hero {height: 64vh;min-height: 500px;}
.about-awarded .about-intro,
.about-awarded .about-text-section,
.about-awarded .about-projects {grid-template-columns: 1fr;gap: 2.25rem;}
.about-awarded .about-principles {grid-template-columns: 1fr;}
.about-awarded .about-principle,
.about-awarded .about-principle:first-child,
.about-awarded .about-principle:last-child {padding: 2.25rem;border: 1px solid rgba(24,24,24,.12);}
.about-awarded .about-principle h2 {min-height: 0;}}
@media (max-width: 600px) {.about-award-hero {height: 60vh;min-height: 460px;}
.about-award-hero .hero-video-container::after {background: linear-gradient(0deg, rgba(12,12,11,.82) 0%, rgba(12,12,11,.24) 78%, rgba(12,12,11,.1) 100%);}
.about-hero-overlay {padding-bottom: 2.5rem;}
.about-hero-overlay h1 {font-size: clamp(2.65rem, 11.5vw, 3.7rem);line-height: .96;}
.about-hero-kicker {max-width: 270px;line-height: 1.55;}
.about-awarded .about-intro {padding: 3.5rem 0;}
.about-awarded .about-intro p {font-size: 1.25rem;line-height: 1.48;}
.about-awarded .about-text-section,
.about-awarded .about-projects,
.about-awarded .about-difference {padding: 3.5rem 0;}
.about-awarded .about-section-title h2 {font-size: 2.2rem;}
.about-awarded .about-difference > .about-section-title {margin-bottom: 1.75rem;}
.about-awarded .about-principles {gap: 1rem;padding: 3.5rem 0;}
.about-awarded .about-principle,
.about-awarded .about-principle:first-child,
.about-awarded .about-principle:last-child {padding: 1.5rem;}
.about-awarded .about-principle::before {margin-bottom: 1.25rem;}
.about-awarded .about-principle h2 {min-height: 0;margin-bottom: 1rem;font-size: 1.5rem;}
.about-awarded .about-principle p {font-size: 1rem;line-height: 1.7;}
.about-awarded .about-difference .comparison-container {border-radius: 6px;box-shadow: 0 10px 28px rgba(24,24,24,.12);}
.about-awarded .about-difference-copy {margin-top: 1.75rem;}
.about-contact .about-contact-title {font-size: 2.15rem;}}

/*=== info-page.css ===*/
.info-hero .hero-video-container { background-image: none; }
.info-content { padding-bottom: 5rem; }
.info-intro { max-width: 1120px; margin-bottom: 3.5rem; }
.info-intro h1 { text-wrap: balance; }
.info-toc { margin-bottom: 5rem; }
.info-toc h2 { font-size: 1.3rem; font-weight: 700; margin-bottom: 1.25rem; }
.info-toc ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 2.5rem; list-style: none; }
.info-toc li { border-top: 1px solid rgba(24,24,24,.28); }
.info-toc a { display: grid; grid-template-columns: 1fr 1rem; gap: .75rem; align-items: start; min-height: 96px; padding: 1.2rem 0; font-size: 1rem; line-height: 1.5; font-weight: 400; }
.info-index { color: var(--accent); font-size: .8rem; padding-top: .2rem; }
.info-toc-arrow { color: var(--accent); display: inline-block; transition: transform .35s cubic-bezier(.2,.8,.2,1); }
.info-toc a > span:first-child, .info-toc-guides summary > span:first-child { display: inline-block; color: var(--accent); transform-origin: left center; transition: transform .35s cubic-bezier(.2,.8,.2,1), text-shadow .35s ease, color .25s ease; }
.info-toc a:hover, .info-toc a:focus-visible { color: var(--accent); }
.info-toc a:hover > span:first-child, .info-toc a:focus-visible > span:first-child,
.info-toc-guides summary:hover > span:first-child, .info-toc-guides summary:focus-visible > span:first-child,
.info-guides-list a:hover > span, .info-guides-list a:focus-visible > span {transform: translate(6px, -3px);font-weight: 700;color: var(--text-main);text-shadow: 1px 1px 0 rgba(24,24,24,.20), 2px 2px 0 rgba(24,24,24,.13), 3px 3px 0 rgba(24,24,24,.07);}
.info-toc a:hover .info-toc-arrow, .info-toc a:focus-visible .info-toc-arrow { transform: rotate(-45deg) translateX(3px); color: var(--text-main); }
.info-toc-guides summary:hover .info-toc-caret, .info-toc-guides summary:focus-visible .info-toc-caret { transform: rotate(-45deg) translateX(3px); color: var(--text-main); }
.info-toc-arrow { transition: transform .35s cubic-bezier(.2,.8,.2,1), color .25s ease; }
@media (prefers-reduced-motion: reduce) {.info-toc a > span:first-child, .info-toc-guides summary > span:first-child, .info-guides-list a > span, .info-toc-arrow { transition: none; }}
.info-toc a:focus-visible, .info-question summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 5px; }
.info-toc-guides summary { display: grid; grid-template-columns: 1fr 1rem; gap: .75rem; align-items: start; min-height: 96px; padding: 1.2rem 0; font-size: 1rem; line-height: 1.5; font-weight: 400; cursor: pointer; list-style: none; }
.info-toc-guides summary::-webkit-details-marker { display: none; }
.info-toc-guides summary:hover, .info-toc-guides summary:focus-visible { color: var(--accent); }
.info-toc-guides summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 5px; }
.info-toc-guides details[open] summary .info-toc-caret,
.info-toc-guides details[open] summary:hover .info-toc-caret { transform: rotate(-90deg); }
.info-toc-guides { position: relative; }
.info-toc-guides details[open] summary { color: var(--accent); }
.info-toc .info-guides-list { position: absolute; right: 0; left: auto; top: 100%; z-index: 20; width: min(420px, 100vw - 2 * var(--site-margin, 24px)); list-style: none; margin: -.6rem 0 0; padding: .6rem 1.25rem; background: #fff; border: 1px solid rgba(24,24,24,.14); box-shadow: 0 18px 40px rgba(0,0,0,.14); display: flex; flex-direction: column; }
.info-guides-list li { border-top: 1px solid rgba(24,24,24,.1); }
.info-guides-list li:first-child, .info-guides-head + li { border-top: 0; }
.info-toc .info-guides-list a { display: flex; grid-template-columns: none; justify-content: space-between; align-items: baseline; gap: 1rem; min-height: 0; padding: .7rem 0; font-size: .95rem; line-height: 1.45; font-weight: 400; color: var(--accent); }
.info-guides-list a > span { display: inline-block; transform-origin: left center; transition: transform .35s cubic-bezier(.2,.8,.2,1), text-shadow .35s ease, color .25s ease; }
.info-guides-list a:hover > span, .info-guides-list a:focus-visible > span { color: var(--text-main); }
.info-guides-list a:hover::after, .info-guides-list a:focus-visible::after { color: var(--text-main); }
.info-guides-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .2rem 0 .6rem; border-top: 0 !important; border-bottom: 1px solid rgba(24,24,24,.28); }
.info-guides-head > span { font-family: var(--font-head); font-weight: 700; font-size: 1.05rem; color: var(--text-main); }
.info-guides-close { width: 36px; height: 36px; display: grid; place-items: center; margin-right: -.4rem; appearance: none; background: none; border: 0; font-size: 1.5rem; line-height: 1; color: var(--text-main); cursor: pointer; transition: color .25s ease, transform .25s ease; }
.info-guides-close:hover { color: var(--accent); transform: scale(1.12); }
.info-guides-close:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.info-guides-list a::after { content: '→'; color: var(--accent); flex-shrink: 0; }
.info-toc ol { overflow: visible; }
@media (max-width: 900px) {.info-toc .info-guides-list { position: fixed; inset: auto 0 0 0; transform: none; width: auto; max-height: 75dvh; overflow-y: auto; margin: 0; padding: .75rem 1.25rem calc(1rem + env(safe-area-inset-bottom)); border: 0; border-radius: 16px 16px 0 0; box-shadow: 0 -12px 40px rgba(0,0,0,.22); z-index: 1002; animation: info-sheet-up .28s cubic-bezier(.2,.8,.2,1); }
.info-guides-head { position: sticky; top: 0; background: #fff; padding: .6rem 0 .7rem; border-bottom: 1px solid rgba(24,24,24,.14); }
.info-toc .info-guides-list a { padding: .85rem 0; font-size: 1rem; }
.info-toc-guides details[open]::before { content: ''; position: fixed; inset: 0; background: rgba(0,0,0,.42); z-index: 1001; pointer-events: none; }
.info-toc-guides details[open] summary { position: static; z-index: auto; }
.info-toc-guides, .info-toc ol, .info-toc { transform: none; }}
@keyframes info-sheet-up { from { transform: translateY(100%); } to { transform: translateY(0); } }
.info-section { padding: 0; scroll-margin-top: 125px; }
.info-section + .info-section { margin-top: 5rem; }
.info-section-intro { max-width: 1120px; margin-bottom: 2rem; }
.info-section-intro .section-tag { margin-bottom: .7rem; }
.info-section-intro h2 { font-size: clamp(1.6rem, 2.5vw, 2.4rem); font-weight: 900; line-height: 1.18; margin-bottom: 1.15rem; }
.info-section-intro > p { color: var(--text-muted); font-size: 1.1rem; line-height: 1.8; }
.info-accordion { border-top: 1px solid var(--text-main); }
.info-question { border-bottom: 1px solid var(--text-main); scroll-margin-top: 125px; }
.info-question summary { display: flex; align-items: center; justify-content: space-between; gap: 2rem; min-height: 82px; padding: 1.2rem 0; list-style: none; cursor: pointer; }
.info-question summary::-webkit-details-marker { display: none; }
.info-question summary::marker { content: ''; }
.info-question h3 { margin: 0; font-size: clamp(1.15rem, 1.7vw, 1.5rem); font-weight: 700; line-height: 1.4; }
.info-toggle { position: relative; flex: 0 0 42px; height: 42px; border-radius: 50%; background: #fff; color: var(--text-main); transition: color .2s, background .2s; }
.info-toggle::before, .info-toggle::after { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); background: currentColor; }
.info-toggle::before { width: 14px; height: 1.5px; }
.info-toggle::after { width: 1.5px; height: 14px; transition: transform .2s; }
.info-question[open] .info-toggle::after { transform: translate(-50%, -50%) scaleY(0); }
.info-question summary:hover .info-toggle, .info-question summary:focus-visible .info-toggle { background: var(--accent); color: #fff; }
.info-answer { padding: .1rem 4.5rem 2rem 0; font-size: 1.15rem; line-height: 1.75; font-weight: 400; }
.info-answer > p { max-width: 1220px; margin: 0; }
.info-answer .info-guide-pending { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem 1rem; margin-top: 1.25rem; font-size: 1rem; color: var(--text-muted); }
.info-coming-soon { color: var(--accent); font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; white-space: nowrap; }
.info-cta .btn-hero { display: inline-block; }
@media (max-width: 900px) {.info-toc ol { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2rem; }}
@media (max-width: 600px) {.info-content { padding-bottom: 3.5rem; }
.info-intro { margin-bottom: 2.5rem; }
.info-toc { margin-bottom: 3.5rem; }
.info-toc ol { grid-template-columns: minmax(0, 1fr); }
.info-toc li:last-child { border-bottom: 1px solid rgba(24,24,24,.28); }
.info-toc a, .info-toc-guides summary { min-height: 0; padding-block: 1rem; }
.info-section + .info-section { margin-top: 3.5rem; }
.info-section-intro > p { font-size: 1rem; }
.info-question summary { gap: 1rem; padding-block: 1.15rem; }
.info-toggle { flex-basis: 40px; height: 40px; }
.info-answer { padding: 0 0 1.75rem; font-size: 1.05rem; }}
@media (prefers-reduced-motion: reduce) {html:has(.info-page) { scroll-behavior: auto; }
.info-toggle, .info-toggle::after { transition: none; }}
.info-answer .info-guide-link { margin-top: 1.25rem; font-size: 1rem; }
.info-guide-link a { color: var(--accent); font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.info-guide-link a:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.info-page .info-intro h1 { font-size: clamp(26px, 2.5vw, 36px); line-height: 1.25; }
.info-page .info-intro > p, .info-page .info-section-intro > p { font-size: 1rem; line-height: 1.75; }
.info-page .info-section-intro h2 { font-size: clamp(23px, 2vw, 30px); line-height: 1.3; }
.info-page .info-question h3 { font-size: clamp(17px, 1.3vw, 20px); line-height: 1.45; }
.info-page .info-question summary { min-height: 74px; gap: 1.25rem; padding-block: 1rem; }
.info-page .info-answer, .info-page .info-answer > p { font-size: 1rem; line-height: 1.75; }
.info-page .info-answer { padding-bottom: 1.5rem; }

/*=== guides.css ===*/
.guide-hero .hero-video-container { background-image: none; }
.guide-main { padding-bottom: 4rem; }
.guide-article { max-width: 1120px; }
.guide-article h1 { text-wrap: balance; }
.guide-copy { max-width: 1000px; }
.guide-copy p, .guide-copy li { font-size: 1.1rem; line-height: 1.8; color: var(--text-muted); }
.guide-copy p { margin: 0 0 1.25rem; }
.guide-article a { color: var(--text-main); font-weight: 600; text-decoration: underline; text-decoration-color: var(--accent); text-underline-offset: 4px; transition: color .2s; }
.guide-article a:hover, .guide-article a:focus-visible { color: var(--accent); }
.guide-article a:focus-visible { outline: 2px solid var(--accent); outline-offset: 5px; }
.guide-copy .guide-service-links { margin-bottom: 3rem; }
.guide-section { padding: 0; scroll-margin-top: 125px; }
.guide-section + .guide-section { margin-top: 3rem; padding-top: 2.5rem; border-top: 1px solid rgba(24,24,24,.15); }
.guide-section h2 { font-family: var(--font-head); font-size: clamp(24px, 2.5vw, 32px); font-weight: 900; line-height: 1.2; color: var(--text-main); margin-bottom: 1.25rem; }
.guide-section ul { padding-left: 1.4rem; margin: 0 0 1.5rem; }
.guide-section li { padding-left: .3rem; margin-bottom: .4rem; }
.guide-section li::marker { color: var(--accent); }
.guide-section > :last-child { margin-bottom: 0; }
.guide-related { margin-top: 3rem; padding: 1.75rem 0; border-top: 1px solid rgba(24,24,24,.15); border-bottom: 1px solid rgba(24,24,24,.15); }
.guide-related .guide-eyebrow { margin-bottom: .75rem; color: var(--accent); font-size: .7rem; font-weight: 700; letter-spacing: .12em; }
.guide-related p:last-child { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem 1rem; margin-bottom: 0; font-size: 1rem; }
.guide-coming-soon { color: var(--accent); font-size: .65rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.guide-copy .guide-back { display: inline-flex; align-items: baseline; gap: .75rem; margin-top: 2rem; font-size: 1rem; }
@media (max-width: 600px) {.guide-main { padding-bottom: 3rem; }
.guide-copy p, .guide-copy li { font-size: 1.05rem; }
.guide-section + .guide-section { margin-top: 2.25rem; padding-top: 2rem; }}

/*=== home.css ===*/
.home-page #hero.home-hero {min-height: 100svh; height: auto; padding: 170px 0 105px;display: flex; align-items: center;}
.home-page .home-hero .hero-video-container::after { background: rgba(245,245,240,.50); }
#home-particles { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 2; pointer-events: none; }
.home-page .home-hero .hero-content {position: relative; inset: auto; width: 90%; max-width: var(--site-max);margin: 0 auto; padding: 0; align-items: flex-start;}
.home-hero-title {font-family: var(--font-head); font-size: clamp(30px, 4.5vw, 68px);font-weight: 900; line-height: 1.06; letter-spacing: -.025em;color: var(--text-main); margin: 0 0 1.65rem; max-width: 1200px;}
.home-hero-title > span, .home-page .home-hero .hero-subtitle > span { display: block; }
.home-page .home-hero .hero-subtitle {opacity: 1; transform: none; text-transform: none; letter-spacing: 0;font-size: clamp(1.05rem, 1.4vw, 1.25rem); line-height: 1.7;max-width: 680px; margin: 0 0 2rem; color: var(--text-main);}
.home-page .home-cta { opacity: 1; display: inline-flex; justify-content: center; align-items: center; text-align: center; line-height: 1.5; }
.home-motion-toggle {position: absolute; right: var(--site-margin); bottom: 28px; z-index: 4;display: flex; align-items: center; gap: .6rem; color: var(--text-main);padding: .65rem 1rem; border: 1px solid rgba(27,26,23,.3); border-radius: 50px;background: rgba(245,245,240,.8); font: inherit; font-size: .78rem; cursor: pointer;}
.home-motion-toggle[hidden] { display: none; }
.home-motion-toggle:hover { background: #fff; }
.home-page a:focus-visible, .home-page button:focus-visible, .home-page summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 5px; }
.home-actions { margin-top: 2rem; }
.home-actions-center { text-align: center; }
.home-actions-row { display: flex; flex-wrap: wrap; gap: 1rem; }
.home-page .home-actions-row .btn-hero:not(.btn-hero-ghost) { background: var(--text-main); border-color: var(--text-main); color: #fff; }
.home-page .home-actions-row .btn-hero:not(.btn-hero-ghost):hover,
.home-page .home-actions-row .btn-hero:not(.btn-hero-ghost):focus-visible { background-color: var(--accent); border-color: var(--accent); color: #fff; }
.home-page #contact .container { text-align: center; }
.home-page #contact .home-section-intro { margin-left: auto; margin-right: auto; }
.home-page #contact .home-actions-row { justify-content: center; }
@media (max-width: 600px) { .home-actions-row { flex-direction: column; } }
.home-section-intro { max-width: 880px; }
.home-page #about .container { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 4rem; }
.home-page #about .about-video { min-height: 480px; }
.home-page #about .text-content > p:last-of-type { margin-bottom: 0; }
.home-page #services .svc-row { margin-top: 3rem; padding-bottom: 1rem; }
.home-page #services .svc-card-cta { opacity: 1; max-height: none; }
.home-page #services .svc-card:focus-visible { transform: translateY(-10px); z-index: 12; }
.home-page #services .svc-card:focus-visible .svc-card-img { height: 280px; }
.home-page #services .svc-card:focus-visible .svc-card-block { background: linear-gradient(to top left,rgb(72,85,108),rgb(27,33,43) 50%,rgb(53,59,69)); }
.home-page #services .svc-card:focus-visible .svc-card-title,
.home-page #services .svc-card:focus-visible .svc-card-text,
.home-page #services .svc-card:focus-visible .svc-card-cta { color: #fff; }
.home-page #services .svc-card:focus-visible .svc-card-text { max-height: 400px; opacity: 1; margin-top: 10px; }
.home-solutions { background: #1a1a1a; }
.home-solutions-grid { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: 6rem; align-items: start; }
.home-solutions .main-title { color: #fff; margin-bottom: 0; max-width: 430px; }
.home-solutions-copy { padding-left: 2.5rem; border-left: 1px solid var(--accent); }
.home-solutions-copy p { color: rgba(255,255,255,.8); }
.home-solutions-copy p:last-child { margin-bottom: 0; }
.home-reviews { background: #fff; }
.home-reviews[hidden] { display: none; }
.home-review-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2rem; margin-top: 3rem; }
.home-review { margin: 0; padding: 2rem; background: var(--bg-main); border-top: 2px solid var(--accent); display: flex; flex-direction: column; }
.home-review-stars { color: var(--accent); letter-spacing: .18em; font-size: 1.2rem; margin-bottom: 1.25rem; }
.home-review blockquote { margin: 0 0 1.5rem; }
.home-review blockquote p { color: var(--text-main); font-size: 1rem; line-height: 1.75; }
.home-review figcaption { margin-top: auto; }
.home-review-name { display: block; font-weight: 700; }
.home-review-source { display: block; color: var(--text-muted); font-size: .85rem; margin-top: .25rem; }
@media (max-width: 1200px) {.home-page #about .container { gap: 2.5rem; }
.home-solutions-grid { gap: 3rem; }
.home-review-grid { gap: 1.25rem; }
.home-review { padding: 1.5rem; }}
@media (max-width: 991px) {.home-page #about .container { grid-template-columns: 1fr; width: 90%; padding: 0; }
.home-page #about .about-video { min-height: 0; height: auto; aspect-ratio: 16 / 10; }
.home-solutions-grid { grid-template-columns: 1fr; gap: 2rem; }
.home-solutions .main-title { max-width: none; }
.home-review-grid { grid-template-columns: 1fr; }}
@media (max-width: 600px) {.home-page #hero.home-hero { min-height: 100svh; padding: 155px 0 95px; }
.home-hero-title { font-size: clamp(30px, 8.1vw, 42px); line-height: 1.09; margin-bottom: 1.5rem; }
.home-page .home-hero .hero-subtitle { font-size: 1.05rem; max-width: 100%; margin-bottom: 1.75rem; }
.home-page .home-cta { width: 100%; padding: 1rem 1.4rem; letter-spacing: 1.2px; }
.home-motion-toggle { right: 5%; bottom: 20px; font-size: .72rem; }
.home-page main > section { padding-top: 4rem; padding-bottom: 4rem; }
.home-page .main-title { font-size: clamp(30px, 8vw, 40px); }
.home-solutions-copy { padding-left: 1.25rem; }
.home-page #services .svc-card:focus-visible .svc-card-img { height: 200px; }}
@media (prefers-reduced-motion: reduce) {#home-particles { display: none; }
.home-page *, .home-page *::before, .home-page *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }}
.home-reviews .container { text-align: center; }
.home-review-grid { text-align: left; }
.home-review-grid:empty { display: none; }
.home-reviews .home-cta { gap: .6rem; }
.home-page #about { overflow: clip; }
.home-page #services .svc-card-wrap { height: auto; display: flex; }
.home-page #services .svc-card { position: relative; height: 100%; }
.home-page #services .svc-card-img { height: auto; aspect-ratio: 4 / 3; }
.home-page #services .svc-card-text { max-height: none; opacity: 1; overflow: visible; margin-top: 10px; }
@media (prefers-reduced-motion: reduce) {.home-page #about .text-content, .home-page #about .about-video { transform: none !important; opacity: 1 !important; }}
.home-faq-groups { max-width: 1120px; margin: 3rem auto 0; }
.home-faq-group + .home-faq-group { margin-top: 4rem; }
.home-faq-category { display: flex; gap: 1rem; align-items: baseline; font-size: clamp(1.3rem, 2vw, 1.75rem); font-weight: 900; line-height: 1.4; margin-bottom: 1.5rem; }
.home-faq-category > span { font-size: .8rem; font-weight: 500; color: var(--accent); }
.home-faq .info-question h4 { margin: 0; font-size: clamp(1.15rem, 1.7vw, 1.5rem); font-weight: 700; line-height: 1.4; }
.home-faq .info-answer p + p { margin-top: 1rem; }
@media (max-width: 600px) {.home-faq-group + .home-faq-group { margin-top: 3rem; }
.home-faq-category { gap: .75rem; margin-bottom: 1rem; }}
@media (min-width: 601px) and (max-height: 700px) {.home-page #hero.home-hero { padding: 126px 0 72px; }
.home-hero-title { font-size: clamp(28px, min(4.2vw, 7.4svh), 52px); line-height: 1.08; margin-bottom: 1rem; }
.home-page .home-hero .hero-subtitle { font-size: 1rem; line-height: 1.5; margin-bottom: 1.25rem; }
.home-motion-toggle { bottom: 18px; }}

/*=== home-gallery.css ===*/
.home-page #projects.project-gallery { padding: clamp(4rem, 7vw, 6rem) 0 !important; overflow: clip; }
.project-gallery-header { text-align: center; margin-bottom: 2.75rem; }
.project-gallery-header .main-title { margin-bottom: 1.25rem; }
.project-gallery-intro { max-width: 850px; margin: 0 auto; }
.project-panels { display: flex; gap: 3px; margin: 0 16px; height: clamp(320px, calc(100svh - 165px), 740px); }
.project-panel { position: relative; isolation: isolate; flex: 1 1 0; min-width: 0; overflow: hidden; background: #77766f; color: #fff; text-decoration: none; cursor: pointer; transition: flex-grow .75s cubic-bezier(.22,.68,0,1); }
.project-panel.is-active { flex-grow: 4; }
.project-panel > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--photo-position, center); filter: blur(5px); transform: scale(1.045); transition: filter .65s, transform 1s cubic-bezier(.22,.68,0,1); }
.project-panel.is-active > img { filter: blur(0); transform: scale(1); }
.project-panel::after { content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, rgba(0,0,0,.44), transparent 38%, rgba(0,0,0,.12) 57%, rgba(0,0,0,.68)); opacity: .25; transition: opacity .6s; }
.project-panel.is-active::after { opacity: 1; }
.project-panel-copy { position: absolute; inset: 0; z-index: 2; width: calc((100vw - 44px) / 2); padding: clamp(24px, 2.7vw, 44px); display: flex; flex-direction: column; justify-content: space-between; visibility: hidden; opacity: 0; transition: opacity .25s; pointer-events: none; }
.project-panel.is-active .project-panel-copy { visibility: visible; opacity: 1; transition: opacity .4s .2s; }
.project-panel h3 { color: #fff; font: 700 clamp(23px, 2.4vw, 38px)/1.12 var(--font-head); letter-spacing: -.02em; max-width: 460px; margin: 0; }
.project-panel-copy p { font-size: clamp(15px, 1.1vw, 17px); line-height: 1.6; color: #fff; max-width: 400px; margin: 0 0 1.4rem; }
.project-panel-action { display: flex; justify-content: space-between; align-items: center; gap: 1rem; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.project-panel-action > span { display: grid; place-items: center; width: 44px; height: 44px; flex: 0 0 44px; border: 1px solid rgba(255,255,255,.7); border-radius: 50%; font-size: 1.4rem; font-weight: 400; transition: background .2s, border-color .2s; }
.project-panel:hover .project-panel-action > span, .project-panel:focus-visible .project-panel-action > span { background: var(--accent); border-color: var(--accent); }
.project-panel-number { position: absolute; z-index: 2; bottom: 30px; left: 50%; transform: translateX(-50%); font-size: .85rem; letter-spacing: .08em; text-shadow: 0 1px 8px #111; transition: opacity .25s; }
.project-panel.is-active .project-panel-number { opacity: 0; }
.home-page .project-panel:focus-visible { outline: 3px solid var(--accent); outline-offset: -3px; }
.project-gallery-controls { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.4rem; }
.project-gallery-hint { margin: 0; color: var(--text-muted); font-size: .85rem; }
.project-gallery-hint .touch-hint { display: none; }
.project-gallery-navigation { display: flex; align-items: center; gap: 1rem; }
.project-gallery-count, .project-dialog-count { font-size: .82rem; letter-spacing: .12em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.project-step { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid rgba(26,26,26,.35); border-radius: 50%; background: transparent; color: var(--text-main); font: 400 22px/1 var(--font-body); cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.project-step:hover { background: var(--accent); border-color: var(--accent); color: #fff; }
.project-gallery-all { text-align: center; margin-top: 2.25rem; }
.home-page > #projectDialog { position: fixed; inset: 0; width: min(1280px, calc(100% - 40px)); max-width: none; max-height: calc(100dvh - 32px); margin: auto; padding: 0; border: 0; color: var(--text-main); background: var(--bg-main); overflow-y: auto; overscroll-behavior: contain; box-shadow: 0 20px 90px rgba(0,0,0,.25); }
.project-dialog:not([open]) { display: none; }
.project-dialog::backdrop { background: rgba(18,18,16,.78); backdrop-filter: blur(7px); }
.project-dialog-header { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.1rem 1.5rem; background: var(--bg-main); border-bottom: 1px solid rgba(26,26,26,.15); }
.project-dialog-header h2 { margin: 0; font: 700 clamp(20px, 2vw, 28px)/1.25 var(--font-head); }
.project-dialog-close { flex-shrink: 0; }
.project-comparison { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px; padding: 0; }
.project-comparison figure { position: relative; margin: 0; min-width: 0; background: #e6e5df; }
.project-comparison img { width: 100%; height: clamp(240px, calc(100dvh - 230px), 660px); object-fit: contain; display: block; }
.project-comparison figcaption { position: absolute; top: 16px; left: 16px; padding: .45rem .8rem; color: #fff; background: #242420; font-size: .7rem; font-weight: 700; letter-spacing: .1em; }
.project-comparison figure:last-child figcaption { background: var(--accent); }
.project-dialog-footer { display: flex; justify-content: space-between; align-items: center; gap: 2rem; padding: 1.25rem 1.5rem; }
.project-dialog-footer p { margin: 0; font-size: .95rem; }
.project-dialog-navigation { display: flex; align-items: center; gap: .8rem; }
.project-dialog .project-step:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
@media (min-width: 701px) and (max-height: 600px) {.project-panels { height: max(280px, calc(100svh - 145px)); }
.project-panel-copy { padding: 22px; }
.project-panel h3 { font-size: clamp(22px, 2.4vw, 30px); }
.project-panel-copy p { line-height: 1.4; margin-bottom: .75rem; }
.project-panel-action > span { width: 36px; height: 36px; flex-basis: 36px; }
.project-dialog-header, .project-dialog-footer { padding-block: .65rem; }
.project-comparison img { height: max(180px, calc(100dvh - 170px)); }}
@media (max-width: 700px) {.project-gallery-header { margin-bottom: 2rem; }
.project-panels { height: clamp(320px, calc(100svh - 220px), 580px); gap: 12px; margin: 0; padding-inline: 5%; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-padding-inline: 5%; scrollbar-width: none; overscroll-behavior-x: contain; }
.project-panels::-webkit-scrollbar { display: none; }
.project-panel, .project-panel.is-active { flex: 0 0 92%; scroll-snap-align: center; transition: none; }
.project-panel > img, .project-panel.is-active > img { filter: none; transform: none; }
.project-panel::after { opacity: 1; }
.project-panel-copy { width: 100%; padding: 24px; visibility: visible; opacity: 1; transition: none; }
.project-panel h3 { font-size: clamp(24px, 6.5vw, 32px); }
.project-panel-number { display: none; }
.project-gallery-hint .desktop-hint { display: none; }
.project-gallery-hint .touch-hint { display: inline; }
.project-gallery-navigation { gap: .65rem; }
.project-gallery-controls { align-items: center; gap: .75rem; }
.project-gallery-hint { font-size: .8rem; max-width: 130px; }
.project-dialog { width: calc(100% - 20px); max-height: calc(100dvh - 20px); }
.project-dialog-header { padding: .8rem 1rem; gap: .6rem; }
.project-comparison { grid-template-columns: 1fr; }
.project-comparison img { height: auto; max-height: 60svh; min-height: 200px; }
.project-dialog-footer { align-items: flex-start; flex-direction: column; gap: 1rem; padding: 1rem; }
.project-dialog-navigation { align-self: flex-end; }}
@media (prefers-reduced-motion: reduce) {.project-panel, .project-panel > img, .project-panel-copy, .project-panel::after, .project-panel-number { transition: none !important; }}

/*=== mobile-home.css ===*/
.mobile-home-secondary,
.mobile-home-actions { display: none; }
.home-page .mobile-home-projects { display: none; }
@media (max-width: 700px) {.home-page { scroll-padding-bottom: calc(78px + env(safe-area-inset-bottom)); }
.home-page main > section { width: 100%; padding: 3.5rem 0; }
.home-page #services { background: #fff; }
.home-page .top-bar,
.home-page .top-bar.scrolled { min-height: 56px; padding: 0 5%; background: rgba(245,245,240,.97); border-bottom: 1px solid rgba(24,24,24,.10); box-shadow: none; }
.home-page .top-bar .btn-call { display: none; }
.home-page .top-bar .logo-container,
.home-page .top-bar .contact { padding: .45rem 0; }
.home-page .top-bar .contact { margin-left: auto; }
.home-page .top-bar .nav-logo { width: clamp(145px, 43vw, 180px); }
.home-page .site-search { padding-top: 4.5rem; }
.home-page #hero.home-hero { min-height: 100svh; height: auto; padding: calc(82px + env(safe-area-inset-top)) 0 110px; align-items: center; }
.home-page .home-hero .hero-video-container { background-position: center; }
.home-page .home-hero .hero-video-container::after { background: linear-gradient(180deg,rgba(245,245,240,.63),rgba(245,245,240,.42) 42%,rgba(245,245,240,.94)); }
.home-page .home-hero .hero-content { width: 90%; padding: 0; }
.home-page .home-hero-title { max-width: 560px; font-size: clamp(30px,8.4vw,42px); line-height: 1.08; margin: 0 0 1rem; text-wrap: pretty; }
.home-page .home-hero .hero-subtitle > span { display: inline; }
.home-page .home-hero .hero-subtitle { max-width: 510px; margin: 0 0 1.5rem; font-size: 1rem; line-height: 1.6; font-weight: 400; color: #333330; }
.home-page .hero-buttons { width: 100%; max-width: 480px; }
.home-page .hero-buttons .btn-hero:not(.mobile-home-projects) { display: none; }
.home-page .hero-buttons .mobile-home-projects { display: inline-flex; }
.home-page .hero-buttons .btn-hero { width: 100%; min-height: 52px; font-size: .8rem; }
.mobile-home-secondary { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; margin-top: .55rem; border-bottom: 1px solid #181818; color: #181818; font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.home-page .home-motion-toggle { bottom: 88px; }
.home-page main .section-tag { letter-spacing: .16em; }
.home-page main .main-title { font-size: clamp(28px,7.4vw,36px); line-height: 1.12; }
.home-page #services .home-section-intro br { display: none; }
.home-page #services .svc-row.svc-row-3 { display: grid; grid-template-columns: 1fr; gap: 14px; margin: 1.75rem 0 0; padding: 0; }
.home-page #services .svc-card-wrap { display: block; height: auto; min-height: 0; }
.home-page #services .svc-card,
.home-page #services .svc-card:hover,
.home-page #services .svc-card:focus-visible { display: grid; grid-template-columns: 104px minmax(0,1fr); position: static; min-height: 110px; height: auto; border: 1px solid rgba(24,24,24,.08); background: #f5f5f0; box-shadow: none; transform: none; }
.home-page #services .svc-card::before { display: none; }
.home-page #services .svc-card-img,
.home-page #services .svc-card:hover .svc-card-img,
.home-page #services .svc-card:focus-visible .svc-card-img { width: 104px; height: 100% !important; min-height: 110px; aspect-ratio: auto; }
.home-page #services .svc-card-img img { width: 100%; height: 100%; object-fit: cover; }
.home-page #services .svc-card-block,
.home-page #services .svc-card:hover .svc-card-block,
.home-page #services .svc-card:focus-visible .svc-card-block { justify-content: center; gap: 4px; padding: 12px 14px; background: transparent !important; background-image: none !important; color: #181818 !important; }
.home-page #services .svc-card-title,
.home-page #services .svc-card:hover .svc-card-title,
.home-page #services .svc-card:focus-visible .svc-card-title { margin: 0; font-size: 1rem; line-height: 1.25; color: #181818 !important; }
.home-page #services .svc-hr { display: none; }
.home-page #services .svc-card-text,
.home-page #services .svc-card:hover .svc-card-text,
.home-page #services .svc-card:focus-visible .svc-card-text { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; max-height: none !important; margin: 0 !important; color: #55554f !important; font-size: .84rem; line-height: 1.35; opacity: 1; }
.home-page #services .svc-card-cta,
.home-page #services .svc-card:hover .svc-card-cta { display: inline-flex; max-height: none; margin: 0; padding: 0; color: #181818 !important; font-size: .75rem; opacity: 1; }
.home-page #services .home-actions { margin-top: 1.75rem; }
.home-page #about .container { display: flex; flex-direction: column; gap: 1.75rem; }
.home-page #about .about-video { order: -1; min-height: 0; aspect-ratio: 4/3; box-shadow: none; }
.home-page #about .text-content > p:nth-of-type(3) { display: none; }
.home-page #about .home-actions { margin-top: 1.3rem; }
.home-page #projects.project-gallery { padding: 3.5rem 0 !important; }
.home-page .project-gallery-header { text-align: left; }
.home-page .project-gallery-intro { margin: 0; }
.home-page .project-panels { height: min(110vw,520px); }
.home-page .project-panel,
.home-page .project-panel.is-active { flex-basis: 86%; }
.home-page .project-panel-copy { justify-content: flex-end; }
.home-page .project-panel-copy h3 { margin-bottom: .5rem; }
.home-page .project-panel-copy p { margin-bottom: .75rem; }
.home-page .project-gallery-controls { width: 90%; }
.home-page .project-gallery-hint { max-width: none; }
.home-page #solutions .home-solutions-grid { gap: 1.25rem; }
.home-page #faq .home-faq-groups { margin-top: 1.5rem; }
.home-page #reviews { display: none; }
.home-page #contact .container { text-align: left; }
.home-page #contact .home-actions-row { flex-direction: column; }
.home-page footer { margin-top: 0; padding: 3rem 0 calc(2rem + 78px + env(safe-area-inset-bottom)); }
.home-page .footer-container { width: 90%; gap: 1.25rem; }
.home-page .footer-menu { gap: .75rem 1.4rem; }
.home-page .footer-menu a { display: inline-block; min-height: 44px; padding: .5rem 0; }
.home-page .footer-social a { min-width: 44px; min-height: 44px; align-items: center; justify-content: center; }
.home-page .footer-copyright,
.home-page .footer-menu a,
.home-page .footer-social a { color: #c8c8c8; }
.home-page > .mobile-home-actions { display: grid; grid-template-columns: 1fr 1fr; position: fixed !important; bottom: 0; left: 0; right: 0; z-index: 35 !important; padding: 8px 5% calc(8px + env(safe-area-inset-bottom)); gap: 8px; background: rgba(245,245,240,.97); border-top: 1px solid rgba(24,24,24,.12); box-shadow: 0 -8px 25px rgba(0,0,0,.08); }
.mobile-home-actions a { display: grid; place-items: center; min-height: 46px; border: 1px solid var(--accent); border-radius: 50px; color: #fff; background: var(--accent); font-size: .8rem; font-weight: 700; letter-spacing: .04em; text-align: center; }
.mobile-home-actions a:first-child { color: var(--accent); border-color: var(--accent); background: transparent; }
.home-page #scrollUpBtn { bottom: calc(92px + env(safe-area-inset-bottom)); }}
@media (max-width: 360px) {.home-page #services .svc-card,
.home-page #services .svc-card:hover,
.home-page #services .svc-card:focus-visible { grid-template-columns: 88px minmax(0,1fr); }
.home-page #services .svc-card-img,
.home-page #services .svc-card:hover .svc-card-img,
.home-page #services .svc-card:focus-visible .svc-card-img { width: 88px; }}

/*=== site-patch.css ===*/
.btn-hero:hover,
.btn-hero:focus-visible,
.btn-hero-ghost:hover,
.btn-hero-ghost:focus-visible,
.hero-buttons .btn-hero.btn-hero-ghost:hover,
.hero-buttons .btn-hero.btn-hero-ghost:focus-visible,
.home-page .home-cta:hover,
.home-page .home-cta:focus-visible,
.home-page .home-actions-row .btn-hero:hover,
.home-page .home-actions-row .btn-hero:focus-visible,
.company-cta .btn-hero:hover,
.company-cta .btn-hero:focus-visible,
.btn-projects-all:hover,
.btn-projects-all:focus-visible,
.btn-nav:hover,
.btn-nav:focus-visible,
.cc-btn:hover,
.cc-btn:focus-visible,
.service-cta .btn-hero:hover,
.ypiresies-cta .btn-hero:hover,
.about-contact .btn-hero:hover,
.company-service-cta .btn-hero:hover,
.info-cta .btn-hero:hover,
.project-step:hover,
.project-step:focus-visible,
.slider-arrow:hover,
.slider-arrow:focus-visible,
.nav-search-toggle:hover,
.nav-search-toggle[aria-expanded="true"],
#scrollUpBtn:hover,
#scrollUpBtn:focus-visible {background: #181818 !important;background-color: #181818 !important;background-image: none !important;border-color: #181818 !important;color: #fff !important;}
.btn-hero:hover span,
.btn-hero:focus-visible span,
.btn-projects-all:hover span,
.home-page .home-cta:hover span,
.home-page .home-cta:focus-visible span,
.company-cta .btn-hero:hover span,
.project-step:hover span {color: #fff !important;}
.slider-arrow:hover svg,
.slider-arrow:focus-visible svg {stroke: #fff !important;}
.home-review-hint { display: none; }
@media (max-width: 700px) {.home-page #reviews:not([hidden]) { display: block; }
.home-review-grid {display: flex !important;grid-template-columns: none !important;flex-wrap: nowrap;gap: 1rem;margin-top: 2rem;overflow-x: auto;overscroll-behavior-x: contain;scroll-snap-type: x mandatory;-webkit-overflow-scrolling: touch;scrollbar-width: none;margin-inline: calc(-1 * var(--site-gutter));padding-inline: var(--site-gutter);padding-bottom: .5rem;}
.home-review-grid::-webkit-scrollbar { display: none; }
.home-review {flex: 0 0 84%;scroll-snap-align: start;padding: 1.5rem;}
.home-review:last-child { margin-right: var(--site-gutter); }
.home-review blockquote { margin-bottom: 1.25rem; }
.home-review blockquote p { font-size: .98rem; line-height: 1.7; }
.home-review-hint {display: block;margin-top: 1rem;font-size: .72rem;letter-spacing: 2px;text-transform: uppercase;color: var(--text-muted);}}
@media (prefers-reduced-motion: reduce) {.home-review-grid { scroll-behavior: auto; }}
