:root {
  --site-navy: #18233f;
  --site-navy-light: #263352;
  --site-orange: #f26d32;
  --site-ink: #171b25;
  --site-muted: #687080;
  --site-line: #dfe3e8;
  --site-cream: #f7f6f2;
}

html { font-size: 16px; }
body { margin: 0; min-height: 100%; }
body.lightbox-open { overflow: hidden; }
[hidden] { display: none !important; }
footer.bg-secondary-navy { display: none !important; }
.site-section-compact-start > .wrapper { padding-top: clamp(24px, 2.5vw, 40px) !important; }
.site-section-compact-end > .wrapper { padding-bottom: clamp(24px, 2.5vw, 40px) !important; }
.site-section-compact-start:is(.portfolio-section, .project-detail-head, .project-detail-content, .related-projects, .contact-lead-section, .site-cta) { padding-top: clamp(24px, 2.5vw, 40px) !important; }
.site-section-compact-end:is(.portfolio-section, .project-detail-head, .project-detail-content, .related-projects, .contact-lead-section, .site-cta) { padding-bottom: clamp(24px, 2.5vw, 40px) !important; }
.site-shell { width: min(1280px, calc(100% - 40px)); margin-inline: auto; }
.site-scroll-cue { position: fixed; z-index: 45; top: 50%; right: 18px; display: flex; flex-direction: column; align-items: center; gap: 10px; min-width: 42px; padding: 14px 10px; border: 1px solid rgba(255,255,255,.45); border-radius: 999px; color: #fff; background: rgba(24,35,63,.78); box-shadow: 0 12px 35px rgba(0,0,0,.18); backdrop-filter: blur(8px); cursor: pointer; transform: translateY(-50%); transition: opacity .25s ease, transform .25s ease, visibility .25s ease; }
.site-scroll-cue span { writing-mode: vertical-rl; font-size: 11px; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; transform: rotate(180deg); }
.site-scroll-cue i { color: var(--theme-primary, var(--site-orange)); font-size: 19px; animation: site-scroll-cue-bounce 1.5s ease-in-out infinite; }
.site-scroll-cue:hover { background: var(--theme-secondary, var(--site-navy)); }
.site-scroll-cue.is-hidden, body.lightbox-open .site-scroll-cue { visibility: hidden; opacity: 0; pointer-events: none; transform: translate(18px, -50%); }
.site-scroll-cue.scroll-cue-position-right-bottom { top: auto; bottom: 22px; flex-direction: row; transform: none; }
.site-scroll-cue.scroll-cue-position-right-bottom span { writing-mode: horizontal-tb; transform: none; }
.site-scroll-cue.scroll-cue-position-right-bottom.is-hidden, body.lightbox-open .site-scroll-cue.scroll-cue-position-right-bottom { transform: translateY(14px); }
.site-scroll-cue.is-icon-only { justify-content: center; width: 46px; height: 46px; min-width: 46px; padding: 0; }
@keyframes site-scroll-cue-bounce { 0%, 100% { transform: translateY(-2px); } 50% { transform: translateY(4px); } }
.site-gallery-open-hint { position: absolute; z-index: 6; top: 18px; left: 18px; display: inline-flex; align-items: center; gap: 9px; min-height: 40px; padding: 0 14px; border: 1px solid rgba(255,255,255,.48); border-radius: 999px; color: #fff; background: rgba(24,35,63,.76); box-shadow: 0 8px 25px rgba(0,0,0,.2); backdrop-filter: blur(8px); font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.site-gallery-open-hint:hover { background: var(--theme-primary, var(--site-orange)); border-color: var(--theme-primary, var(--site-orange)); }
.site-gallery-open-hint i { font-size: 18px; }
.site-gallery-open-hint.is-icon-only, .project-carousel-hint.is-icon-only { justify-content: center; width: 42px; min-width: 42px; padding: 0; }
.site-gallery-open-hint-home { position: absolute; z-index: 25; top: auto; bottom: 22px; left: 22px; }
.site-gallery-lightbox .project-lightbox-nav[hidden], .site-gallery-lightbox .project-lightbox-counter[hidden] { display: none; }

.site-header { background: #fff; border-bottom: 1px solid var(--site-line); position: relative; z-index: 50; }
.site-header-inner { min-height: 88px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.site-logo img { display: block; width: 205px; height: auto; }
.site-nav { display: flex; align-items: center; gap: 28px; }
.site-nav a { color: var(--site-navy); text-decoration: none; font-size: 15px; font-weight: 600; }
.site-nav a:not(.site-nav-cta):hover, .site-nav a.active { color: var(--site-orange); }
.site-nav .site-nav-cta { color: #fff; background: var(--site-orange); padding: 13px 19px; }

.header .header-wrapper { padding-top: 18px !important; padding-bottom: 18px !important; }
.header .logo-link img { width: auto; height: 68px; }
.header.scrolled .header-wrapper { padding-top: 10px !important; padding-bottom: 10px !important; }
.header.scrolled .logo-link img { height: 58px; }

.home-hero { min-height: 100vh; min-height: 100svh; }
.home-hero-content { flex: 1 0 auto; min-height: calc(100vh - 118px); min-height: calc(100svh - 118px); }
.home-hero-content.hero-text-position-top { justify-content: flex-start !important; padding-top: clamp(70px, 12vh, 150px) !important; }
.home-hero-content.hero-text-position-center { justify-content: center !important; }
.home-hero-content.hero-text-position-bottom { justify-content: flex-end !important; padding-bottom: clamp(70px, 12vh, 150px) !important; }
.home-hero-rich, .home-hero-rich * { box-sizing: border-box; }
.home-hero-rich p, .home-hero-rich div, .home-hero-rich h2, .home-hero-rich h3 { margin: 0; color: inherit; font: inherit; line-height: inherit; }
.home-hero-rich strong, .home-hero-rich b { font-weight: 800; }
.home-hero-rich span[style*="font-size"] { line-height: 1.15; }
.home-hero-title { width: 100%; max-width: min(1440px, 94vw) !important; font-size: clamp(72px, 6.6vw, 104px); line-height: 1.02 !important; white-space: nowrap; }
.home-hero-description { width: 100%; max-width: min(1200px, 94vw) !important; font-size: clamp(22px, 2.2vw, 32px); line-height: 1.2 !important; white-space: nowrap; }
.home-hero-title *, .home-hero-description * { white-space: nowrap; }
.home-hero-copy-mobile { display: none !important; }
.site-image-rotator { position: relative; width: 100%; overflow: hidden; }
.site-image-rotator-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 900ms ease; pointer-events: none; }
.site-image-rotator-slide.is-active { z-index: 1; opacity: 1; }
.site-image-rotator-slide img { display: block; width: 100%; height: 100%; object-fit: cover; }
.home-hero-carousel { position: fixed !important; inset: 0; z-index: -20; height: 100vh; height: 100svh; }
.about-hero-carousel { height: 600px; }
.about-hero-carousel .site-image-rotator-slide img { object-position: 50% 71%; }

@media (min-width: 80rem) {
  .header .header-wrapper {
    position: relative;
    display: grid;
    grid-template-columns: minmax(max-content, 1fr) auto minmax(max-content, 1fr);
    column-gap: clamp(12px, 1.5vw, 28px);
  }
  .header .header-wrapper > .logo-link { min-width: 0; justify-self: start; }
  .header .header-wrapper > nav {
    position: static;
    left: auto;
    width: auto;
    max-width: 100%;
    white-space: nowrap;
    transform: none;
    justify-self: center;
  }
  .header .header-wrapper > nav a { padding-inline: clamp(16px, 1.45vw, 26px); }
  .header .header-wrapper > .site-language-switcher { margin-left: 0; justify-self: end; }
}

@media (min-width: 64rem) and (max-width: 79.999rem) {
  .header .header-wrapper > nav { display: none !important; }
  .header .btn-toggle-menu-mobile { display: flex !important; color: var(--site-navy); }
}

.portfolio-hero, .project-detail-head { padding: clamp(140px, 12vw, 165px) 0 clamp(80px, 10vw, 145px); background: var(--site-cream); text-align: center; }
.portfolio-hero { padding-top: clamp(105px, 9vw, 125px); padding-bottom: clamp(34px, 4vw, 54px); }
.portfolio-hero.portfolio-hero-compact { padding-top: clamp(108px, 9vw, 124px); padding-bottom: clamp(20px, 2.5vw, 32px); }
.project-detail-head { padding-top: 44px; padding-bottom: clamp(36px, 4vw, 52px); }
.portfolio-hero .site-shell, .project-detail-head .site-shell { max-width: 950px; }
.portfolio-hero h1, .project-detail-head h1 { margin: 18px auto 24px; color: var(--site-navy); font-size: clamp(44px, 7vw, 82px); line-height: 1.05; font-weight: 550; letter-spacing: -.045em; }
.project-detail-head .project-responsive-title { font-size: var(--project-title-size-desktop, clamp(44px, 7vw, 82px)); }
.portfolio-hero p, .portfolio-hero-description, .project-detail-head > .site-shell > p, .project-summary { max-width: 760px; margin: 0 auto; color: var(--site-muted); font-size: clamp(17px, 2vw, 20px); line-height: 1.7; }
.portfolio-hero-description > :first-child { margin-top: 0; }
.portfolio-hero-description > :last-child { margin-bottom: 0; }
.site-eyebrow { color: var(--site-orange); font-size: 12px; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.page-hero-intro { padding-top: 6px !important; gap: 18px !important; }
.page-hero-intro.page-hero-intro-compact { min-height: 0 !important; padding-top: 14px !important; padding-bottom: 28px !important; }
.page-hero-eyebrow { margin: 0 !important; color: var(--site-orange) !important; font-size: 12px !important; font-weight: 750 !important; line-height: 1.4 !important; letter-spacing: .12em !important; text-transform: uppercase; }

.portfolio-section, .project-detail-content, .related-projects { padding: clamp(70px, 9vw, 125px) 0; background: #fff; }
.portfolio-section { padding-top: clamp(30px, 4vw, 52px); }
.projects-page-no-hero .portfolio-section { padding-top: clamp(125px, 10vw, 150px); }
.project-detail-content { padding-top: clamp(30px, 3.5vw, 46px); }
.project-filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-bottom: 48px; }
.project-filters a { border: 1px solid var(--site-line); background: #fff; color: var(--site-navy); padding: 11px 16px; border-radius: 999px; cursor: pointer; font-weight: 600; text-decoration: none; white-space: nowrap; }
.project-filters a:hover, .project-filters a.active { background: var(--site-navy); color: #fff; border-color: var(--site-navy); }
.project-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 58px 34px; }
.project-grid-compact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.project-card[hidden] { display: none; }
.project-card { min-width: 0; content-visibility: auto; contain-intrinsic-size: 620px; }
.project-card-image { display: block; overflow: hidden; aspect-ratio: 4 / 3; background: #eceef1; }
.project-card-image img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .55s ease; }
.project-card-image img.is-portrait { object-fit: contain; background: #f2f3f5; }
.project-card:hover .project-card-image img { transform: scale(1.035); }
.project-card:hover .project-card-image img.is-portrait { transform: none; }
.project-card-body { padding-top: 22px; }
.project-card-meta { display: flex; justify-content: space-between; gap: 16px; color: var(--site-muted); font-size: 13px; text-transform: uppercase; letter-spacing: .06em; }
.project-card h2, .project-card h3 { margin: 13px 0 12px; color: var(--site-navy); font-size: clamp(24px, 3vw, 32px); line-height: 1.2; }
.project-card h3 { font-size: 23px; }
.project-card h2 a, .project-card h3 a { color: inherit; text-decoration: none; }
.project-card p, .project-card-description { color: var(--site-muted); line-height: 1.7; margin: 0 0 18px; }
.rich-text-content { overflow-wrap: anywhere; }
.has-local-font-size { font-size: var(--local-font-size) !important; }
.has-local-font-size > :where(p, div, span, strong, em) { font-size: inherit !important; }
.rich-text-content p { margin: 0 0 .85em; }
.rich-text-content p:last-child { margin-bottom: 0; }
.rich-text-content ul, .rich-text-content ol { margin: .65em 0 .9em; padding-left: 1.4em; }
.rich-text-content ul { list-style: disc; }
.rich-text-content ol { list-style: decimal; }
.rich-text-content blockquote { margin: .8em 0; padding-left: 1em; border-left: 3px solid var(--site-orange); }
.rich-text-content a { color: var(--site-orange); text-decoration: underline; text-underline-offset: 3px; }
.project-summary, .project-card-description, .project-rich-text { white-space: pre-line; }
.site-text-link { color: var(--site-orange); text-decoration: none; font-weight: 700; }
.site-text-link span { display: inline-block; transition: transform .2s; }
.site-text-link:hover span { transform: translateX(4px); }
.site-pagination { display: flex; align-items: center; justify-content: center; gap: 14px 22px; margin-top: clamp(42px, 6vw, 72px); color: var(--site-muted); }
.site-pagination a { display: inline-flex; min-height: 44px; align-items: center; padding: 0 18px; border: 1px solid var(--site-line); border-radius: 999px; color: var(--site-navy); background: #fff; text-decoration: none; font-weight: 700; }
.site-pagination a:hover { color: #fff; border-color: var(--site-navy); background: var(--site-navy); }
.portfolio-empty { padding: 70px 25px; background: var(--site-cream); text-align: center; }
.contact-inline-map { width: 100%; min-height: 640px; overflow: hidden; background: #d9dde4; }
.contact-inline-map iframe { width: 100%; height: 100%; min-height: 640px; border: 0; display: block; }
.contact-lead-section { padding: clamp(54px, 7vw, 88px) 0; background: var(--site-cream); }
.contact-lead-shell { display: grid; grid-template-columns: minmax(280px, .85fr) minmax(0, 1.15fr); gap: clamp(38px, 5vw, 72px); align-items: start; }
.contact-lead-heading { position: sticky; top: 28px; }
.contact-lead-heading h2 { margin: 18px 0 22px; color: var(--site-navy); font-size: clamp(38px, 5vw, 62px); line-height: 1.08; letter-spacing: -.04em; }
.contact-lead-heading p, .contact-lead-heading > .rich-text-content { margin: 0; color: var(--site-muted); font-size: 18px; line-height: 1.75; }
.contact-lead-heading > .rich-text-content p { color: inherit; font-size: inherit; line-height: inherit; }
.contact-lead-form { position: relative; padding: clamp(22px, 3vw, 34px); background: #fff; border: 1px solid var(--site-line); box-shadow: 0 18px 55px rgba(24,35,63,.08); }
.contact-lead-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 18px; }
.contact-lead-field { display: flex; flex-direction: column; gap: 9px; }
.contact-lead-field-full { grid-column: 1 / -1; }
.contact-lead-field label { color: var(--site-navy); font-size: 14px; font-weight: 700; }
.contact-lead-field input, .contact-lead-field select, .contact-lead-field textarea { width: 100%; padding: 12px 14px; border: 1px solid #cfd4dc; border-radius: 0; color: var(--site-ink); background: #fff; font: inherit; }
.contact-lead-field textarea { min-height: 118px; resize: vertical; }
.contact-lead-field input:focus, .contact-lead-field select:focus, .contact-lead-field textarea:focus { border-color: var(--site-orange); outline: 3px solid rgba(242,109,50,.13); }
.contact-lead-field .field-validation-error, .contact-lead-validation { color: #b42318; font-size: 13px; }
.contact-lead-captcha { padding: 14px 16px; border: 1px solid var(--site-line); background: #f8f7f3; display: grid; grid-template-columns: 1fr minmax(150px, .5fr); align-items: start; gap: 16px; }
.contact-lead-captcha-label { display: block; margin-bottom: 8px; color: var(--site-muted); font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.contact-lead-captcha strong { display: block; color: var(--site-navy); font-size: 20px; }
.contact-lead-captcha-answer { display: flex; flex-direction: column; gap: 9px; }
.contact-lead-validation:empty, .contact-lead-validation.validation-summary-valid { display: none; }
.contact-lead-success { margin-bottom: 24px; padding: 15px 17px; border: 1px solid #a9d8bd; color: #087443; background: #e8f7ef; font-weight: 650; }
.contact-lead-submit { display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-height: 50px; margin-top: 18px; padding: 0 23px; border: 0; color: #fff; background: var(--site-orange); font: inherit; font-weight: 750; cursor: pointer; }
.contact-lead-submit:hover { filter: brightness(.94); }
.contact-lead-consent { margin: 15px 0 0; color: var(--site-muted); font-size: 12px; line-height: 1.55; }
.contact-lead-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.site-language-switcher { position: relative; z-index: 45; display: inline-flex; flex: 0 0 auto; align-items: center; margin-left: 14px; }
.site-language-toggle { display: inline-flex; align-items: center; justify-content: space-between; gap: 10px; min-width: 76px; height: 38px; padding: 0 12px 0 14px; border: 1px solid rgba(255,255,255,.55); border-radius: 999px; color: #fff; background: rgba(255,255,255,.12); backdrop-filter: blur(8px); font: inherit; font-size: 12px; font-weight: 750; cursor: pointer; transition: border-color .2s ease, background .2s ease; }
.site-language-toggle svg { width: 13px; height: 13px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s ease; }
.site-language-switcher.is-open .site-language-toggle svg { transform: rotate(180deg); }
.site-language-menu[hidden] { display: none; }
.site-language-menu { position: absolute; top: calc(100% + 8px); right: 0; display: grid; width: 112px; padding: 6px; border: 1px solid var(--site-line); border-radius: 12px; background: #fff; box-shadow: 0 16px 40px rgba(24,35,63,.2); }
.site-language-menu button { width: 100%; min-height: 36px; padding: 0 11px; border: 0; border-radius: 8px; color: var(--site-navy); background: transparent; font: inherit; font-size: 13px; font-weight: 650; text-align: left; cursor: pointer; }
.site-language-menu button:hover { background: #f2f3f6; }
.site-language-menu button.is-active { color: #fff; background: var(--site-navy); }
.header.is-white .site-language-toggle { border-color: var(--site-line); color: var(--site-navy); background: rgba(255,255,255,.92); }
.header.is-white .site-language-toggle:hover, .site-language-toggle:hover { border-color: var(--theme-primary, var(--site-orange)); }
.header-mobile-languages { padding: 12px 16px 18px; border-top: 1px solid var(--site-line); }
.header-mobile-languages .site-language-switcher { margin-left: 0; }
.header-mobile-languages .site-language-toggle { border-color: var(--site-line); color: var(--site-navy); background: #f7f7f5; }
.site-translate-service, .goog-te-banner-frame.skiptranslate, body > .skiptranslate { display: none !important; }
body { top: 0 !important; }
.site-error-page { min-height: 100vh; padding: clamp(150px, 16vw, 220px) 20px 90px; display: grid; place-items: center; background: radial-gradient(circle at 15% 15%, rgba(242,109,50,.12), transparent 34%), var(--theme-background, #fff); }
.site-error-card { width: min(780px, 100%); text-align: center; }
.site-error-code { margin-bottom: -36px; color: rgba(24,35,63,.06); font-size: clamp(150px, 28vw, 330px); font-weight: 850; line-height: .72; letter-spacing: -.09em; user-select: none; }
.site-error-card h1 { max-width: 680px; margin: 18px auto; color: var(--site-navy); font-size: clamp(30px, 4vw, 52px); line-height: 1.08; letter-spacing: -.035em; }
.site-error-card > p { max-width: 560px; margin: 0 auto; color: var(--site-muted); font-size: clamp(14px, 1.15vw, 16px); line-height: 1.55; }
.site-error-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.site-error-actions .site-button { border: 1px solid var(--site-navy); }
.site-error-actions .site-button-outline { color: var(--site-navy); background: transparent; cursor: pointer; }
.site-error-actions .site-button-outline:hover { color: #fff; background: var(--site-navy); }
.site-error-card small { display: block; margin-top: 26px; color: var(--site-muted); }
.site-error-card code { padding: 3px 6px; border-radius: 5px; background: #f0f1f3; }

.project-breadcrumb-bar { padding: 130px 0 18px; background: var(--site-cream); border-bottom: 1px solid var(--site-line); }
.breadcrumbs { display: flex; justify-content: flex-start; flex-wrap: wrap; gap: 9px; color: var(--site-muted); font-size: 14px; margin: 0; }
.breadcrumbs a { color: var(--site-navy); text-decoration: none; font-weight: 600; }
.breadcrumbs a:hover { color: var(--site-orange); }
.breadcrumbs [aria-current="page"] { color: var(--site-muted); }
.project-cover-carousel { width: 100%; background: #e8eaee; }
.project-cover-carousel .swiper-slide { aspect-ratio: 16 / 9; max-height: 760px; }
.project-cover-carousel .swiper-slide img { width: 100%; height: 100%; object-fit: cover; display: block; cursor: zoom-in; }
.project-cover-carousel-desktop-compact .swiper-slide { aspect-ratio: 16 / 7; max-height: 520px; }
.project-cover-carousel-desktop-medium .swiper-slide { aspect-ratio: 2 / 1; max-height: 650px; }
.project-cover-carousel-desktop-large .swiper-slide { aspect-ratio: 16 / 9; max-height: 760px; }
.project-cover-carousel-desktop-screen .swiper-slide { aspect-ratio: auto; height: min(78vh, 900px); max-height: none; }
.project-cover-carousel-fit-contain .swiper-slide img { object-fit: contain; }
.project-cover-carousel-fit-cover .swiper-slide img { object-fit: cover; }
.project-cover-carousel-fit-adaptive .swiper-slide img.is-portrait { object-fit: contain; }
.project-carousel-button { position: absolute; z-index: 5; top: 50%; width: 52px; height: 52px; border: 0; border-radius: 50%; color: var(--site-navy); background: rgba(255,255,255,.92); box-shadow: 0 8px 28px rgba(0,0,0,.16); transform: translateY(-50%); display: grid; place-items: center; cursor: pointer; }
.project-carousel-button:hover { color: #fff; background: var(--site-orange); }
.project-carousel-prev { left: 24px; }
.project-carousel-next { right: 24px; }
.project-carousel-pagination { position: absolute; z-index: 5; right: 0; bottom: 24px !important; left: 0; text-align: center; }
.project-carousel-pagination .swiper-pagination-bullet { width: 9px; height: 9px; background: #fff; opacity: .6; }
.project-carousel-pagination .swiper-pagination-bullet-active { opacity: 1; background: var(--site-orange); }
.project-carousel-counter { position: absolute; z-index: 5; right: 24px; bottom: 20px; padding: 7px 11px; border-radius: 999px; color: #fff; background: rgba(24,35,63,.8); font-size: 13px; font-weight: 700; }
.project-carousel-hint { position: absolute; z-index: 6; top: 18px; left: 18px; display: inline-flex; align-items: center; gap: 9px; min-height: 40px; padding: 0 14px; border: 1px solid rgba(255,255,255,.45); border-radius: 999px; color: #fff; background: rgba(24,35,63,.78); box-shadow: 0 8px 25px rgba(0,0,0,.18); backdrop-filter: blur(8px); font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.project-carousel-hint:hover { background: var(--site-orange); border-color: var(--site-orange); }
.project-carousel-hint i { font-size: 18px; }
.project-lightbox { width: 100vw; height: 100vh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(5,8,15,.96); overflow: hidden; }
.project-lightbox[open] { display: grid; place-items: center; }
.project-lightbox::backdrop { background: rgba(5,8,15,.96); }
.project-lightbox-image { max-width: 96vw; max-height: 90vh; width: auto; height: auto; object-fit: contain; }
.project-lightbox-close { position: fixed; top: 22px; right: 22px; z-index: 2; width: 50px; height: 50px; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; color: #fff; background: rgba(24,35,63,.72); display: grid; place-items: center; font-size: 24px; cursor: pointer; }
.project-lightbox-close:hover, .project-lightbox-nav:hover { background: var(--site-orange); border-color: var(--site-orange); }
.project-lightbox-nav { position: fixed; top: 50%; z-index: 2; width: 58px; height: 58px; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; color: #fff; background: rgba(24,35,63,.72); display: grid; place-items: center; font-size: 25px; cursor: pointer; transform: translateY(-50%); }
.project-lightbox-prev { left: 24px; }
.project-lightbox-next { right: 24px; }
.project-lightbox-counter { position: fixed; top: 26px; left: 50%; z-index: 2; padding: 7px 12px; border-radius: 999px; color: #fff; background: rgba(24,35,63,.72); font-size: 14px; font-weight: 700; transform: translateX(-50%); }
.project-lightbox-hint { position: fixed; bottom: 18px; left: 50%; color: rgba(255,255,255,.7); font-size: 12px; transform: translateX(-50%); }
.project-detail-grid { display: grid; grid-template-columns: minmax(230px, 1fr) minmax(0, 2.2fr); gap: clamp(50px, 8vw, 120px); margin-top: clamp(60px, 8vw, 110px); }
.project-detail-grid-facts-only { grid-template-columns: minmax(230px, 520px); }
.project-cover-carousel[hidden] + .project-detail-grid { margin-top: 0; }
.project-facts { border-top: 1px solid var(--site-line); }
.project-facts div { display: grid; gap: 8px; padding: 20px 0; border-bottom: 1px solid var(--site-line); }
.project-facts span { color: var(--site-muted); font-size: 13px; }
.project-facts strong { color: var(--site-navy); font-weight: 600; }
.project-facts-compact div { gap: 5px; padding: 13px 0; }
.project-facts-tight div { gap: 3px; padding: 8px 0; }
.project-facts-tight span { font-size: 12px; }
.project-facts-tight strong { line-height: 1.3; }
.project-story h2 { margin: 15px 0 26px; color: var(--site-navy); font-size: clamp(34px, 5vw, 56px); line-height: 1.1; letter-spacing: -.035em; }
.project-story p, .project-rich-text { color: var(--site-muted); font-size: 18px; line-height: 1.85; }
.project-rich-text h2, .project-rich-text h3 { margin: 1.15em 0 .45em; color: var(--site-navy); line-height: 1.2; }
.project-rich-text h2 { font-size: clamp(28px, 4vw, 40px); }
.project-rich-text h3 { font-size: clamp(23px, 3vw, 31px); }
.related-projects { background: var(--site-cream); }
.section-title { margin-bottom: 45px; }
.section-title h2 { margin: 12px 0 0; color: var(--site-navy); font-size: clamp(34px, 5vw, 52px); }

.site-cta { background: var(--site-navy-light); color: #fff; padding: clamp(70px, 9vw, 110px) 0; }
.site-cta .site-shell { display: flex; justify-content: space-between; align-items: center; gap: 35px; }
.site-cta h2 { max-width: 820px; margin: 14px 0 0; font-size: clamp(38px, 6vw, 68px); line-height: 1.08; letter-spacing: -.035em; }
.site-button { display: inline-flex; flex: none; align-items: center; justify-content: center; min-height: 52px; padding: 0 23px; text-decoration: none; font-weight: 700; }
.site-button-light { color: var(--site-navy); background: #fff; }

.site-footer { background: var(--site-navy); color: #fff; padding: 75px 0 30px; }
.site-footer-grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 80px; align-items: start; }
.site-footer-grid img { max-width: 220px; height: auto; }
.site-footer-grid p { max-width: 500px; color: #cbd0db; line-height: 1.7; }
.site-footer-columns { display: grid; grid-template-columns: repeat(2, minmax(170px, 1fr)); gap: 55px; }
.site-footer-grid-no-about { grid-template-columns: 1fr; }
.site-footer-grid-no-about .site-footer-columns { justify-self: end; }
.site-footer-columns-single { grid-template-columns: minmax(220px, 360px); }
.site-footer nav, .site-footer-contact { display: flex; flex-direction: column; gap: 14px; }
.site-footer nav strong, .site-footer-contact strong { margin-bottom: 6px; color: #fff; font-size: 17px; }
.site-footer-contact { max-width: 300px; color: #cbd0db; font-style: normal; line-height: 1.55; }
.contact-social-links { display: flex; flex-wrap: wrap; gap: 12px; }
.contact-social-links a { display: inline-flex; align-items: center; gap: 9px; min-height: 44px; padding: 0 15px; border: 1px solid rgba(255,255,255,.3); border-radius: 999px; color: #fff; text-decoration: none; }
.contact-social-links a:hover { color: #fff; border-color: var(--theme-primary); background: var(--theme-primary); }
.contact-social-links i { font-size: 22px; }
.contact-social-links img, .footer-social-links img { width: 22px; height: 22px; object-fit: contain; }
.footer-social-links { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 4px; }
.footer-social-links a { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.24); border-radius: 50%; }
.footer-social-links a:hover { color: #fff; border-color: var(--theme-primary); background: var(--theme-primary); }
.footer-social-links i { font-size: 19px; }
.site-footer a { color: #fff; text-decoration: none; }
.site-footer a:hover { color: var(--site-orange); }
.site-footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 25px; margin-top: 55px; padding-top: 25px; border-top: 1px solid rgba(255,255,255,.18); color: #aeb5c3; font-size: 13px; }
.site-compact-copyright { padding: 20px 24px; color: var(--theme-text, var(--site-muted)); background: transparent; font-size: 12px; line-height: 1.4; text-align: center; }
.home-hero > .site-compact-copyright { position: absolute; z-index: 22; right: clamp(22px, 4vw, 70px); bottom: 20px; padding: 0; color: #fff; text-align: right; text-shadow: 0 1px 8px rgba(0,0,0,.45); }

@media (max-width: 760px) {
  .portfolio-hero .site-eyebrow.has-local-font-size, .page-hero-eyebrow.has-local-font-size { font-size: min(var(--local-font-size), 6vw) !important; }
  .project-detail-head .site-eyebrow.has-local-font-size { font-size: min(var(--local-font-size), 6vw) !important; }
  .project-detail-head .project-summary.has-local-font-size { font-size: min(var(--local-font-size), 8vw) !important; }
  :where(h1, h2, h3, h4).has-local-font-size { font-size: min(var(--local-font-size), 12vw) !important; }
  .project-detail-head .project-responsive-title { font-size: min(var(--project-title-size-mobile, clamp(32px, 10vw, 56px)), 14vw) !important; }
  .site-theme *, .site-theme *::before, .site-theme *::after { min-width: 0; }
  .site-theme :where(h1, h2, h3, h4, p, div, span, strong, a, button, li, blockquote) { max-width: 100%; overflow-wrap: anywhere; }
  .site-theme :where(h1, h2, h3, h4, p, div, span, strong, li, blockquote) { hyphens: auto; }
  .site-theme :where(a, button) { white-space: normal; }
  .responsive-rich-text, .home-hero-rich { width: 100%; max-width: 100%; overflow: hidden; }
  .responsive-rich-text { font-size: clamp(1.5rem, 7.8vw, 2rem) !important; line-height: 1.16 !important; }
  .responsive-rich-text [style*="font-size"], .responsive-rich-text[style*="font-size"] { font-size: clamp(1.5rem, 7.8vw, 2rem) !important; line-height: 1.16 !important; }
  .home-hero-title { max-width: calc(100vw - 28px) !important; line-height: 1.04 !important; }
  .home-hero-description { max-width: calc(100vw - 28px) !important; line-height: 1.18 !important; }
  .site-theme :where(h1, h2, h3, [role="heading"]) [style*="font-size"] { font-size: clamp(1.5rem, 9vw, 2.75rem) !important; line-height: 1.12 !important; }
  .page-hero-intro { padding-top: 25px !important; }
  .site-header-inner { padding: 16px 0; align-items: flex-start; }
  .site-logo img { width: 145px; }
  .site-nav { justify-content: flex-end; flex-wrap: wrap; gap: 12px 16px; }
  .site-nav a { font-size: 13px; }
  .site-nav .site-nav-cta { padding: 8px 11px; }
  .project-carousel-button { width: 42px; height: 42px; }
  .project-carousel-prev { left: 12px; }
  .project-carousel-next { right: 12px; }
  .project-carousel-counter { right: 12px; bottom: 12px; }
  .project-carousel-pagination { bottom: 15px !important; }
  .project-carousel-hint { top: 10px; left: 10px; max-width: calc(100% - 20px); min-height: 36px; padding: 0 11px; font-size: 11px; }
  .project-cover-carousel { width: calc(100% + 40px); max-width: none !important; margin-left: -20px; }
  .project-cover-carousel .swiper-slide { aspect-ratio: auto; max-height: none; }
  .project-cover-carousel-mobile-compact .swiper-slide { height: 40svh; min-height: 280px; }
  .project-cover-carousel-mobile-medium .swiper-slide { height: 55svh; min-height: 360px; }
  .project-cover-carousel-mobile-large .swiper-slide { height: 70svh; min-height: 440px; }
  .project-cover-carousel-mobile-screen .swiper-slide { height: calc(100svh - 82px); min-height: 520px; }
  .project-lightbox-nav { width: 46px; height: 46px; font-size: 20px; }
  .project-lightbox-prev { left: 10px; }
  .project-lightbox-next { right: 10px; }
  .project-lightbox-hint { width: calc(100% - 120px); text-align: center; }
  .contact-inline-map, .contact-inline-map iframe { min-height: 430px; }
  .contact-lead-shell, .contact-lead-grid { grid-template-columns: 1fr; }
  .contact-lead-heading { position: static; }
  .contact-lead-field-full { grid-column: auto; }
  .contact-lead-captcha { grid-template-columns: 1fr; align-items: start; }
  .project-grid, .project-grid-compact, .project-detail-grid, .site-footer-grid { grid-template-columns: 1fr; }
  .site-cta .site-shell, .site-footer-bottom { align-items: flex-start; flex-direction: column; }
  .site-footer-columns { grid-template-columns: 1fr; gap: 35px; }
  .home-hero > .site-compact-copyright { right: 18px; left: 18px; bottom: 14px; text-align: center; }
  .site-scroll-cue { right: 10px; padding: 10px 13px; }
  .site-scroll-cue.scroll-cue-position-right-center { top: 50%; bottom: auto; flex-direction: column; transform: translateY(-50%); }
  .site-scroll-cue.scroll-cue-position-right-center span { writing-mode: vertical-rl; font-size: 10px; transform: rotate(180deg); }
  .site-scroll-cue.scroll-cue-position-right-center.is-hidden, body.lightbox-open .site-scroll-cue.scroll-cue-position-right-center { transform: translate(14px, -50%); }
  .site-scroll-cue.scroll-cue-position-right-bottom { top: auto; bottom: 18px; flex-direction: row; transform: none; }
  .site-scroll-cue.scroll-cue-position-right-bottom span { writing-mode: horizontal-tb; font-size: 10px; transform: none; }
  .site-scroll-cue.scroll-cue-position-right-bottom.is-hidden, body.lightbox-open .site-scroll-cue.scroll-cue-position-right-bottom { transform: translateY(14px); }
  .site-gallery-open-hint { top: 10px; left: 10px; min-height: 36px; max-width: calc(100% - 20px); padding: 0 11px; font-size: 11px; }
  .site-gallery-open-hint-home { top: auto; bottom: 12px; left: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .site-scroll-cue i { animation: none; }
}
.custom-page-main { padding: 150px 0 90px; background: #f8f7f3; min-height: 70vh; }
.custom-page-main .breadcrumbs { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 28px; color: #6b7280; font-size: 14px; }
.custom-page-main .breadcrumbs a { color: #18233f; }
.custom-page-card { max-width: 1040px; margin: 0 auto; padding: clamp(28px, 5vw, 72px); border-radius: 20px; background: #fff; box-shadow: 0 20px 60px rgba(24,35,63,.08); }
.custom-page-card h1 { margin: 0 0 34px; color: #18233f; font-size: var(--custom-page-title-size, 64px); line-height: 1.05; overflow-wrap: anywhere; }
.custom-page-content { color: #39445b; font-size: var(--custom-page-content-size, 18px); line-height: 1.75; }
.custom-page-content h2, .custom-page-content h3 { margin: 1.5em 0 .6em; color: #18233f; }
.custom-page-content a { color: #f36b2b; text-decoration: underline; }
.site-footer .site-footer-legal { display: flex; flex: 1 1 auto; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px 18px; margin-left: auto; }
.site-footer-legal a { color: inherit; opacity: .78; font-size: 12px; line-height: 1.4; white-space: nowrap; }
.site-footer-legal a:hover { opacity: 1; }
@media (max-width: 767px) { .custom-page-main { padding-top: 110px; } .custom-page-card h1 { font-size: min(var(--custom-page-title-size, 64px), 12vw); } .site-footer .site-footer-legal { width: 100%; justify-content: flex-start; margin-left: 0; } .site-footer-legal a { white-space: normal; } }

.brand-wordmark { display: inline-flex; flex-direction: column; align-items: flex-start; color: inherit; white-space: nowrap; line-height: 1; }
.brand-wordmark strong { font-family: Inter, Arial, sans-serif; font-size: clamp(20px, 2vw, 30px); font-weight: 800; letter-spacing: .045em; }
.brand-wordmark small { margin-top: 8px; font-family: Inter, Arial, sans-serif; font-size: 7px; font-weight: 600; letter-spacing: .32em; opacity: .78; }
.brand-wordmark-header { color: #fff; }
.header.is-white .brand-wordmark-header, .header.scrolled .brand-wordmark-header, .header-mobile .brand-wordmark-header { color: var(--theme-secondary, var(--site-navy)); }
.brand-wordmark-footer { color: #fff; }
.brand-image-logo { display: block; width: min(300px, 28vw); height: auto !important; }
.header .logo-link .brand-image-logo { width: min(270px, 22vw) !important; height: auto !important; }
.brand-image-logo-footer { width: min(300px, 100%); }
.site-footer-about .brand-image-logo-footer { width: min(300px, 100%) !important; height: auto !important; }
.header-mobile .brand-image-logo { width: min(250px, 66vw) !important; height: auto !important; }

.site-theme { color: var(--theme-text); background-color: var(--theme-background); font-family: var(--theme-font); }
.site-theme .text-secondary-navy { color: var(--theme-secondary) !important; }
.site-theme .text-base-grey { color: var(--theme-text) !important; }
.site-theme .text-primary-orange, .site-theme .hover\:text-primary-orange:hover { color: var(--theme-primary) !important; }
.site-theme .bg-primary-orange, .site-theme .hover\:bg-primary-orange:hover, .site-theme .group:hover .group-hover\:bg-primary-orange { background-color: var(--theme-primary) !important; }
.site-theme .bg-primary-light-orange { background-color: color-mix(in srgb, var(--theme-primary) 13%, var(--theme-background)) !important; }
.site-theme .bg-secondary-navy, .site-theme .site-footer { background-color: var(--theme-secondary) !important; }
.site-theme .bg-base-white, .site-theme .bg-white { background-color: var(--theme-background) !important; }
.site-theme .page-theme-hero-about { background-color: var(--theme-about-hero-background) !important; }
.site-theme .page-theme-hero-projects { background-color: var(--theme-projects-hero-background) !important; }
.site-theme .page-theme-hero-contact { background-color: var(--theme-contact-hero-background) !important; }
.site-theme .project-detail-page,
.site-theme .project-detail-page .project-breadcrumb-bar,
.site-theme .project-detail-page .project-detail-head,
.site-theme .project-detail-page .project-detail-content,
.site-theme .project-detail-page .related-projects { background-color: var(--theme-project-detail-background) !important; }
.site-theme .custom-page-main { background-color: var(--theme-custom-page-background) !important; }
.publication-list-section { padding: clamp(45px, 7vw, 90px) 0; background: var(--theme-background); }
.publication-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); align-items: start; gap: clamp(22px, 3vw, 40px); }
.publication-card { align-self: start; overflow: hidden; border: 1px solid var(--site-line); background: #fff; content-visibility: auto; contain-intrinsic-size: 620px; }
.publication-card-image { position: relative; display: grid; overflow: hidden; place-items: center; color: var(--site-muted); background: #f3f4f6; }
.publication-card-image-link, .publication-card-image-static { display: grid; width: 100%; min-width: 0; place-items: center; color: inherit; text-decoration: none; }
.publication-card-image img { display: block; width: auto; max-width: 100%; height: auto; object-fit: contain; transition: opacity .25s ease; }
.publication-card-image-link > span, .publication-card-image-static > span { display: grid; width: 100%; min-height: 260px; place-items: center; background: #eef0f3; }
.publication-card-image.publication-cover-size-compact img { max-height: 220px; }
.publication-card-image.publication-cover-size-medium img { max-height: 340px; }
.publication-card-image.publication-cover-size-large img { max-height: 480px; }
.publication-card-image.publication-cover-size-original img { max-height: none; }
.publication-card-expand { position: absolute; right: 12px; bottom: 12px; z-index: 2; display: grid; width: 42px; height: 42px; padding: 0; place-items: center; border: 0; border-radius: 50%; color: #fff; background: rgba(24,35,63,.82); font-size: 19px; box-shadow: 0 8px 24px rgba(0,0,0,.18); cursor: zoom-in; }
.publication-card-expand:hover { background: var(--site-orange); }
.publication-card:hover .publication-card-image img { opacity: .94; }
.publication-card-body { padding: 24px; }
.publication-meta { display: flex; flex-wrap: wrap; gap: 10px 18px; color: var(--site-muted); font-size: 12px; letter-spacing: .05em; text-transform: uppercase; }
.publication-card h2 { margin: 14px 0 12px; color: var(--site-navy); font-size: clamp(24px, 2.3vw, 32px); line-height: 1.15; }
.publication-card h2 a { color: inherit; text-decoration: none; }
.publication-card .rich-text-content { margin-bottom: 18px; color: var(--site-muted); line-height: 1.65; }
.publication-detail-page { min-height: 70vh; padding-top: 120px; background: var(--theme-background); }
.publication-breadcrumbs { padding-top: 28px; }
.publication-article { padding: clamp(50px, 7vw, 90px) 0; }
.publication-article-header { max-width: 1100px; text-align: center; }
.publication-article-header .publication-meta { justify-content: center; }
.publication-article-header h1 { margin: 24px auto; color: var(--site-navy); font-size: var(--publication-title-size, clamp(46px, 7vw, 88px)); line-height: 1.03; letter-spacing: -.045em; }
.publication-lead { max-width: 820px; margin: 0 auto; color: var(--site-muted); font-size: 20px; line-height: 1.7; }
.publication-cover { margin-top: clamp(38px, 6vw, 72px); }
.publication-cover img { display: block; width: auto; max-width: 100%; height: auto; margin-inline: auto; object-fit: contain; }
.publication-cover.publication-cover-size-compact img { max-height: 360px; }
.publication-cover.publication-cover-size-medium img { max-height: 560px; }
.publication-cover.publication-cover-size-large img { max-height: 780px; }
.publication-cover.publication-cover-size-original img { max-height: none; }
.publication-cover-open { position: relative; display: block; width: 100%; padding: 0; border: 0; color: inherit; background: transparent; cursor: zoom-in; }
.publication-cover-open img { pointer-events: none; }
.publication-cover-expand { position: absolute; right: 16px; bottom: 16px; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: #fff; background: rgba(24,35,63,.78); font-size: 20px; box-shadow: 0 8px 24px rgba(0,0,0,.16); }
.publication-cover-open:hover .publication-cover-expand { background: var(--site-orange); }
.publication-image-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap: 18px; margin-top: 20px; }
.publication-image-strip > button, .publication-image-strip > div { display: grid; min-height: 180px; padding: 0; place-items: center; overflow: hidden; border: 1px solid #e2e5eb; background: #f6f7f9; }
.publication-image-strip > button { cursor: zoom-in; }
.publication-image-strip img { display: block; width: 100%; height: 260px; object-fit: contain; }
.publication-content { max-width: 900px; margin: clamp(42px, 7vw, 80px) auto 0; color: var(--site-muted); font-size: var(--publication-content-size, 18px); line-height: 1.8; }
.publication-content h2 { margin: 1.4em 0 .55em; color: var(--site-navy); font-size: 2em; line-height: 1.15; }
.publication-content h3 { margin: 1.25em 0 .5em; color: var(--site-navy); font-size: 1.5em; }
.project-detail-head .project-responsive-title { overflow-wrap: anywhere; }
@media (min-width: 768px) and (max-width: 1023px) {
  .project-detail-head .project-responsive-title { font-size: var(--project-title-size-tablet, clamp(38px, 7vw, 68px)) !important; }
}
.site-theme .site-nav-cta, .site-theme a.bg-primary-orange, .site-theme button.bg-primary-orange { color: var(--theme-button-text) !important; border-radius: var(--theme-radius, 0); }
.theme-architectural { --theme-radius: 0; }
.theme-soft { --theme-radius: 18px; }
.theme-soft .header nav, .theme-soft .project-card, .theme-soft .custom-page-card { border-radius: 22px; }
.theme-soft a[class*="bg-primary"], .theme-soft button, .theme-soft input, .theme-soft textarea { border-radius: 14px; }
.theme-minimal { --theme-radius: 2px; }
.theme-minimal .header nav { background: transparent !important; border: 1px solid currentColor; }
.theme-minimal [class*="shadow"] { box-shadow: none !important; }

@media (max-width: 767px) {
  .portfolio-hero.portfolio-hero-compact { padding-top: 96px; padding-bottom: 22px; }
  .projects-page-no-hero .portfolio-section { padding-top: 104px; }
  .publication-grid { grid-template-columns: 1fr; }
  .project-filters-mobile-wrap { width: 100%; margin-inline: auto; margin-bottom: 36px; padding: 0; flex-wrap: wrap; justify-content: center; overflow: visible; }
  .project-filters-mobile-scroll { width: calc(100% + 40px); margin-left: -20px; padding: 2px 20px 12px; flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: none; scroll-snap-type: x proximity; }
  .project-filters-mobile-scroll::-webkit-scrollbar { display: none; }
  .project-filters-mobile-scroll a { flex: 0 0 auto; scroll-snap-align: start; }
  .site-pagination { flex-wrap: wrap; }
  .site-pagination span { width: 100%; order: -1; text-align: center; }
  .publication-article-header h1 { font-size: min(var(--publication-title-size, 46px), 12vw); }
  .publication-lead { font-size: 17px; }
  .home-hero-copy-desktop { display: none !important; }
  .home-hero-copy-mobile { display: flex !important; }
  .home-hero-content.home-hero-mobile-position-top { justify-content: flex-start !important; padding-top: 42px !important; padding-bottom: 20px !important; }
  .home-hero-content.home-hero-mobile-position-center { justify-content: center !important; padding-top: 20px !important; padding-bottom: 20px !important; }
  .home-hero-content.home-hero-mobile-position-bottom { justify-content: flex-end !important; padding-top: 20px !important; padding-bottom: 56px !important; }
  .brand-wordmark strong { font-size: 20px; }
  .brand-wordmark small { font-size: 6px; letter-spacing: .2em; }
  .header .logo-link .brand-image-logo { width: min(190px, 48vw) !important; height: auto !important; }
  .header-mobile .logo-link .logo-white { display: none !important; }
  .header-mobile .logo-link .logo-color { display: block !important; }
  .header-mobile .logo-link .brand-image-logo { width: min(230px, 66vw) !important; height: auto !important; }
}
.contact-captcha-image-row { display: flex; align-items: center; gap: 12px; margin-top: 8px; flex-wrap: wrap; }
.contact-captcha-image-row img { width: 260px; max-width: 100%; height: 86px; border: 1px solid rgba(20, 33, 61, .18); border-radius: 8px; background: #f5f2ec; }
.contact-captcha-refresh { border: 0; padding: 8px 0; color: inherit; background: transparent; text-decoration: underline; cursor: pointer; }
/* Compact contact page */
body.site-theme footer:not(.site-footer) {
  display: none !important;
}

.contact-compact-section {
  min-height: clamp(440px, 68vh, 720px);
  padding: clamp(120px, 14vw, 190px) 0 clamp(72px, 9vw, 130px);
  background: var(--theme-contact-hero-background, #fff);
}

.contact-compact-shell {
  display: grid;
  grid-template-columns: minmax(150px, 0.55fr) minmax(280px, 1.45fr);
  gap: clamp(48px, 9vw, 160px);
  align-items: start;
  max-width: 1120px;
}

.contact-compact-index {
  padding-top: 10px;
  color: var(--theme-text, #111827);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.contact-compact-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(46px, 6vw, 78px);
  min-width: 0;
}

.contact-compact-content > h1 {
  margin: 0;
  color: var(--theme-text, #111827);
  font-size: clamp(34px, 4vw, 58px);
  font-weight: 600;
  line-height: 1.05;
}

.contact-compact-group {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
  min-width: 0;
}

.contact-compact-group h2 {
  margin: 0;
  color: var(--theme-text, #111827);
  font-size: clamp(20px, 2vw, 28px);
  font-weight: 600;
  line-height: 1.2;
}

.contact-compact-group p,
.contact-compact-group > a {
  margin: 0;
  color: var(--theme-text, #111827);
  font-size: clamp(16px, 1.25vw, 20px);
  line-height: 1.55;
  overflow-wrap: anywhere;
}

.contact-compact-group > a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  text-decoration: none;
}

.contact-compact-socials {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.contact-compact-socials a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 9px 14px;
  border: 1px solid color-mix(in srgb, var(--theme-text, #111827) 22%, transparent);
  border-radius: 999px;
  color: var(--theme-text, #111827);
  text-decoration: none;
  transition: border-color .2s ease, color .2s ease, transform .2s ease;
}

.contact-compact-socials a:hover {
  border-color: var(--theme-primary, #ff672f);
  color: var(--theme-primary, #ff672f);
  transform: translateY(-2px);
}

.contact-compact-socials img {
  width: 22px;
  height: 22px;
  object-fit: contain;
}

@media (max-width: 767px) {
  .contact-compact-section {
    min-height: auto;
    padding: 126px 0 80px;
  }

  .contact-compact-shell {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .contact-compact-content {
    gap: 42px;
  }
}
