.elementor-kit-6{--e-global-color-primary:#000000;--e-global-color-secondary:#111111;--e-global-color-text:#E0E0E0;--e-global-color-accent:#C8A96E;--e-global-color-e6305cb:#F5F5F5;--e-global-color-bd12d1a:#1A1A1A;--e-global-color-d566940:#999999;--e-global-typography-primary-font-family:"Cormorant Garamond";--e-global-typography-primary-font-weight:300;--e-global-typography-primary-letter-spacing:0px;--e-global-typography-secondary-font-family:"Montserrat";--e-global-typography-secondary-font-weight:500;--e-global-typography-text-font-family:"Montserrat";--e-global-typography-text-font-weight:300;--e-global-typography-accent-font-family:"Montserrat";--e-global-typography-accent-font-weight:600;--e-global-typography-accent-letter-spacing:2px;font-family:"Inter", Sans-serif;font-weight:400;letter-spacing:1px;}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-kit-6 h1{font-family:"Montserrat", Sans-serif;font-weight:600;letter-spacing:1.6px;}.elementor-kit-6 h2{font-family:"Montserrat", Sans-serif;font-weight:600;letter-spacing:1.6px;}.elementor-kit-6 h3{font-family:"Montserrat", Sans-serif;font-weight:600;letter-spacing:1.6px;}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{text-shadow:0px 0px 10px rgba(0,0,0,0.3);}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ============================================================
   ARCHILAD — Custom CSS
   Paste into: Elementor → Site Settings → Custom CSS
   OR: Appearance → Customize → Additional CSS
   ============================================================ */

/* ============================================================
   1. CSS CUSTOM PROPERTIES — Design System
   ============================================================ */
:root {
  /* Color tokens */
  --color-bg:              #131313;
  --color-surface:         #201f1f;
  --color-surface-low:     #1c1b1b;
  --color-surface-lowest:  #0e0e0e;
  --color-surface-high:    #2a2a2a;
  --color-primary:         #ffffff;
  --color-on-primary:      #2f3131;
  --color-on-surface:      #e5e2e1;
  --color-muted:           #c4c7c8;
  --color-outline:         #8e9192;
  --color-outline-variant: #444748;

  /* Fluid typography — clamp(min, preferred, max) */
  --text-display:   clamp(2.5rem, 6vw + 1rem, 5rem);      /* 40–80px */
  --text-headline:  clamp(1.75rem, 3vw + 0.5rem, 3rem);   /* 28–48px */
  --text-h3:        clamp(1.375rem, 2vw + 0.25rem, 2rem); /* 22–32px */
  --text-body-lg:   clamp(1rem, 0.5vw + 0.875rem, 1.125rem); /* 16–18px */
  --text-body:      clamp(0.875rem, 0.25vw + 0.8rem, 1rem);  /* 14–16px */
  --text-label:     clamp(0.625rem, 0.25vw + 0.55rem, 0.6875rem); /* 10–11px */
  --text-nav:       clamp(0.625rem, 0.25vw + 0.55rem, 0.75rem);   /* 10–12px */

  /* Fluid spacing */
  --space-section:  clamp(4rem, 8vw + 1rem, 8rem);    /* 64–128px */
  --space-xl:       clamp(2rem, 4vw + 0.5rem, 4rem);  /* 32–64px */
  --space-lg:       clamp(1.5rem, 2vw + 0.5rem, 3rem); /* 24–48px */
  --space-md:       clamp(1rem, 1.5vw, 1.5rem);        /* 16–24px */
  --space-sm:       clamp(0.5rem, 1vw, 1rem);          /* 8–16px */
  --space-page-x:   clamp(1.25rem, 5vw, 4rem);         /* 20–64px */

  /* Transitions */
  --ease-out-expo:  cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out:    cubic-bezier(0.4, 0, 0.2, 1);
  --duration-fast:  200ms;
  --duration-mid:   400ms;
  --duration-slow:  700ms;
  --duration-cinematic: 1000ms;
}

/* ============================================================
   2. GLOBAL RESET + BASE
   ============================================================ */
*, *::before, *::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  background-color: var(--color-bg);
  color: var(--color-on-surface);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Prevent layout blowout on mobile */
img, video, iframe, embed, object {
  max-width: 100%;
  height: auto;
}

/* ============================================================
   3. ELEMENTOR CONTAINER OVERRIDES — Fluid Page Width
   ============================================================ */

/* Full-width sections — no internal overflow */
.elementor-section {
  overflow-x: hidden;
}

/* Fluid inner container */
.elementor-section > .elementor-container {
  max-width: min(1440px, 100%);
  padding-left: var(--space-page-x);
  padding-right: var(--space-page-x);
}

/* Sections with explicit desktop margin (64px) get fluid equivalent */
.elementor-section[data-settings*='"padding"'] > .elementor-container {
  padding-left: max(var(--space-page-x), env(safe-area-inset-left));
  padding-right: max(var(--space-page-x), env(safe-area-inset-right));
}

/* Ultra-wide cap — content never stretches beyond readable width */
@media (min-width: 1800px) {
  .elementor-section > .elementor-container {
    max-width: 1600px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* Column gap overrides for mobile */
@media (max-width: 767px) {
  .elementor-column-gap-custom > .elementor-container {
    --column-gap: 16px;
  }
}

/* ============================================================
   4. FLUID TYPOGRAPHY — Override Elementor px values
   ============================================================ */

/* Display headings (H1 hero) */
.archilad-display,
.elementor-widget-heading h1.elementor-heading-title[style*="80px"],
.elementor-widget-heading h2.elementor-heading-title[style*="80px"] {
  font-size: var(--text-display) !important;
  line-height: 1.0 !important;
  letter-spacing: clamp(-0.03em, -0.04em, -0.05em) !important;
}

/* Section headlines (H2) */
.elementor-widget-heading h2.elementor-heading-title[style*="48px"] {
  font-size: var(--text-headline) !important;
  line-height: 1.1 !important;
}

/* Sub-headlines (H3) */
.elementor-widget-heading h3.elementor-heading-title[style*="32px"] {
  font-size: var(--text-h3) !important;
}

/* Card/project titles */
.elementor-widget-heading h4.elementor-heading-title,
.elementor-widget-heading h5.elementor-heading-title {
  font-size: clamp(1rem, 1.5vw + 0.25rem, 1.25rem) !important;
}

/* Body text in rich-text editors */
.elementor-widget-text-editor p[style*="18px"] {
  font-size: var(--text-body-lg) !important;
  line-height: 1.65 !important;
}

.elementor-widget-text-editor p[style*="16px"] {
  font-size: var(--text-body) !important;
  line-height: 1.6 !important;
}

/* ============================================================
   5. FLUID SECTION SPACING
   ============================================================ */

/* Top/bottom padding on all sections — override Elementor 128px */
.elementor-section[style*="padding-top: 128px"],
.elementor-section[style*="padding-top:128px"] {
  padding-top: var(--space-section) !important;
}

.elementor-section[style*="padding-bottom: 128px"],
.elementor-section[style*="padding-bottom:128px"] {
  padding-bottom: var(--space-section) !important;
}

/* Sub-section spacing */
.elementor-section[style*="padding-top: 64px"],
.elementor-section[style*="padding-top:64px"] {
  padding-top: var(--space-xl) !important;
}

.elementor-section[style*="padding-bottom: 64px"],
.elementor-section[style*="padding-bottom:64px"] {
  padding-bottom: var(--space-xl) !important;
}

/* ============================================================
   6. RESPONSIVE GRID BREAKPOINTS
   ============================================================ */

/* --- TABLET (768–1024px) --- */
@media (min-width: 768px) and (max-width: 1024px) {

  /* 3-column grids → 2 columns */
  .archilad-grid-3 .elementor-column {
    width: 50% !important;
    flex: 0 0 50% !important;
  }

  /* 4-column grids → 2 columns */
  .archilad-grid-4 .elementor-column {
    width: 50% !important;
    flex: 0 0 50% !important;
  }

  /* Hero text column — full width */
  .archilad-hero > .elementor-container > .elementor-column:first-child {
    width: 100% !important;
    flex: 0 0 100% !important;
  }

  /* 58/42 two-column splits → 50/50 */
  .elementor-column[style*="width: 58%"],
  .elementor-column[style*="width:58%"] {
    width: 55% !important;
    flex: 0 0 55% !important;
  }

  .elementor-column[style*="width: 42%"],
  .elementor-column[style*="width:42%"] {
    width: 45% !important;
    flex: 0 0 45% !important;
  }
}

/* --- MOBILE (< 768px) --- */
@media (max-width: 767px) {

  /* All multi-column → single column */
  .elementor-row {
    flex-direction: column !important;
  }

  .elementor-column {
    width: 100% !important;
    flex: 0 0 100% !important;
    margin: 0 !important;
  }

  /* Remove left-border styling (was a vertical divider, looks broken on mobile) */
  .elementor-column[style*="border-left"],
  .elementor-column[style*="border-left"] {
    border-left: none !important;
    padding-left: 0 !important;
  }

  /* Project index grid rows — stack neatly */
  .archilad-project-row {
    flex-direction: column !important;
    gap: 8px !important;
  }

  /* Stats bar — 2 columns on mobile */
  .archilad-stats-section .elementor-column {
    width: 50% !important;
    flex: 0 0 50% !important;
  }

  /* Service pillars — single column */
  .archilad-pillars .elementor-column {
    border-right: none !important;
    border-bottom: 1px solid var(--color-outline-variant) !important;
    padding: 32px 0 !important;
  }

  /* Hero section height — avoid oversized gap on small screens */
  .elementor-section.archilad-hero {
    min-height: 100svh !important;
    height: auto !important;
  }

  /* Quote/fullbleed sections */
  .archilad-fullbleed {
    min-height: 60vh !important;
    height: auto !important;
    padding-top: var(--space-section) !important;
    padding-bottom: var(--space-section) !important;
  }

  /* Prevent text overflow in tight columns */
  h1, h2, h3, h4 {
    overflow-wrap: break-word;
    word-break: break-word;
  }

  /* Inline grid (workflow matrix) — 2 col on mobile */
  .archilad-workflow-grid {
    grid-template-columns: 1fr 1fr !important;
  }

  /* Project index table rows — hide location, show on tap */
  .archilad-index-location {
    display: none;
  }
}

/* --- ULTRA-WIDE (> 1600px) --- */
@media (min-width: 1600px) {

  /* Scale section padding up further */
  :root {
    --space-section: 10rem;  /* 160px */
    --space-page-x: 5rem;    /* 80px */
  }

  /* Hero text can go even larger */
  :root {
    --text-display: 6rem; /* 96px */
    --text-headline: 4rem; /* 64px */
  }
}

/* ============================================================
   7. IMAGE SCALING — Cinematic Quality
   ============================================================ */

/* All images — prevent layout shift, maintain aspect */
.elementor-widget-image img,
.elementor-widget-image-box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  /* Prevent blurry scaling on retina */
  image-rendering: -webkit-optimize-contrast;
  image-rendering: crisp-edges;
}

/* Hero background images — cover fill */
.elementor-section > .elementor-background-overlay,
.elementor-section > .elementor-bg-image {
  background-size: cover !important;
  background-position: center center !important;
  background-attachment: scroll !important; /* Fixed causes jank on mobile */
}

/* Mobile: disable parallax background-attachment */
@media (max-width: 767px) {
  .elementor-section[data-settings*='"background_attachment":"fixed"'] {
    background-attachment: scroll !important;
  }
}

/* Lazy load — prevent CLS */
img[loading="lazy"] {
  opacity: 0;
  transition: opacity var(--duration-slow) var(--ease-out-expo);
}

img[loading="lazy"].loaded,
img.lazyloaded {
  opacity: 1;
}

/* ============================================================
   8. HOVER INTERACTIONS — Premium, Architectural
   ============================================================ */

/* Image grayscale → color on hover */
.archilad-img-reveal img,
.elementor-widget-image.archilad-hover-color img {
  filter: grayscale(100%);
  transition: filter var(--duration-cinematic) var(--ease-out-expo),
              transform var(--duration-cinematic) var(--ease-out-expo);
  will-change: filter, transform;
}

.archilad-img-reveal:hover img,
.elementor-widget-image.archilad-hover-color:hover img {
  filter: grayscale(0%);
  transform: scale(1.03);
}

/* Project card image zoom */
.archilad-project-card .elementor-widget-image img {
  transition: transform var(--duration-slow) var(--ease-out-expo);
  will-change: transform;
}

.archilad-project-card:hover .elementor-widget-image img {
  transform: scale(1.05);
}

/* Service pillar heading indent on hover */
.archilad-pillar:hover .elementor-heading-title {
  padding-left: 16px;
  transition: padding-left var(--duration-mid) var(--ease-out-expo);
}

/* Button hover — outline invert */
.elementor-button[style*="border"] {
  transition: background-color var(--duration-fast) var(--ease-in-out),
              color var(--duration-fast) var(--ease-in-out),
              opacity var(--duration-fast) var(--ease-in-out);
}

.elementor-button[style*="border: 1px solid rgb(255, 255, 255)"]:hover,
.elementor-button[style*="border:1px solid #ffffff"]:hover {
  background-color: #ffffff !important;
  color: #2f3131 !important;
}

/* Primary button — subtle dim */
.elementor-button[style*="background-color: rgb(255, 255, 255)"]:hover {
  opacity: 0.88;
}

/* Arrow links — slide on hover */
.archilad-arrow-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  transition: gap var(--duration-fast) var(--ease-out-expo);
}

.archilad-arrow-link:hover {
  gap: 20px;
}

/* Nav links — underline slide in */
.elementor-nav-menu a,
header nav a {
  position: relative;
  text-decoration: none;
}

.elementor-nav-menu a::after,
header nav a::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--color-primary);
  transition: width var(--duration-mid) var(--ease-out-expo);
}

.elementor-nav-menu a:hover::after,
header nav a:hover::after {
  width: 100%;
}

/* Project index row hover */
.archilad-index-row {
  transition: background-color var(--duration-fast) var(--ease-in-out),
              padding-left var(--duration-mid) var(--ease-out-expo);
}

.archilad-index-row:hover {
  background-color: var(--color-surface-high);
  padding-left: 16px;
}

/* ============================================================
   9. SCROLL REVEAL ANIMATIONS — Lightweight CSS-only
   ============================================================ */

/* Base — elements start hidden */
.archilad-reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity var(--duration-slow) var(--ease-out-expo),
              transform var(--duration-slow) var(--ease-out-expo);
}

/* Triggered by JS IntersectionObserver adding .is-visible */
.archilad-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger children */
.archilad-stagger > *:nth-child(1) { transition-delay: 0ms; }
.archilad-stagger > *:nth-child(2) { transition-delay: 80ms; }
.archilad-stagger > *:nth-child(3) { transition-delay: 160ms; }
.archilad-stagger > *:nth-child(4) { transition-delay: 240ms; }
.archilad-stagger > *:nth-child(5) { transition-delay: 320ms; }
.archilad-stagger > *:nth-child(6) { transition-delay: 400ms; }

/* Fade-only variant (for images) */
.archilad-fade {
  opacity: 0;
  transition: opacity var(--duration-cinematic) var(--ease-out-expo);
}

.archilad-fade.is-visible {
  opacity: 1;
}

/* Slide from left */
.archilad-slide-left {
  opacity: 0;
  transform: translateX(-32px);
  transition: opacity var(--duration-slow) var(--ease-out-expo),
              transform var(--duration-slow) var(--ease-out-expo);
}

.archilad-slide-left.is-visible {
  opacity: 1;
  transform: translateX(0);
}

/* Scale in (for stats, numbers) */
.archilad-scale-in {
  opacity: 0;
  transform: scale(0.92);
  transition: opacity var(--duration-mid) var(--ease-out-expo),
              transform var(--duration-mid) var(--ease-out-expo);
}

.archilad-scale-in.is-visible {
  opacity: 1;
  transform: scale(1);
}

/* Horizontal rule sweep */
.archilad-rule-sweep {
  width: 0;
  height: 1px;
  background: var(--color-outline-variant);
  transition: width var(--duration-slow) var(--ease-out-expo);
}

.archilad-rule-sweep.is-visible {
  width: 100%;
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  .archilad-reveal,
  .archilad-fade,
  .archilad-slide-left,
  .archilad-scale-in,
  .archilad-rule-sweep,
  .archilad-img-reveal img,
  .archilad-project-card .elementor-widget-image img {
    transition: none !important;
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    width: 100% !important;
  }
}

/* ============================================================
   10. HERO-SPECIFIC STYLES
   ============================================================ */

/* Hero section — ensure image fills without overflow */
.archilad-hero {
  position: relative;
  overflow: hidden;
}

.archilad-hero > .elementor-container {
  position: relative;
  z-index: 2;
}

/* Cinematic overlay gradient */
.archilad-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(19, 19, 19, 0.90) 0%,
    rgba(19, 19, 19, 0.30) 50%,
    rgba(19, 19, 19, 0.10) 100%
  );
  z-index: 1;
  pointer-events: none;
}

/* Subtle grain texture for cinematic feel */
.archilad-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  opacity: 0.4;
  z-index: 1;
  pointer-events: none;
  mix-blend-mode: overlay;
}

/* Scroll indicator */
.archilad-scroll-indicator {
  position: absolute;
  right: var(--space-page-x);
  bottom: var(--space-section);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  z-index: 2;
}

.archilad-scroll-indicator__line {
  width: 1px;
  height: 128px;
  background: linear-gradient(to bottom, transparent, var(--color-outline-variant));
  animation: archilad-scroll-line 2s var(--ease-in-out) infinite;
}

@keyframes archilad-scroll-line {
  0%   { opacity: 0; transform: scaleY(0); transform-origin: top; }
  50%  { opacity: 1; transform: scaleY(1); transform-origin: top; }
  100% { opacity: 0; transform: scaleY(1); transform-origin: bottom; }
}

@media (max-width: 767px) {
  .archilad-scroll-indicator { display: none; }
}

/* ============================================================
   11. FORM STYLES — Contact Page
   ============================================================ */

/* Elementor form — architectural style */
.elementor-field-group {
  margin-bottom: var(--space-xl) !important;
}

.elementor-field-label {
  color: var(--color-outline) !important;
  font-size: var(--text-label) !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
  margin-bottom: 8px !important;
  display: block;
}

.elementor-field {
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid var(--color-outline-variant) !important;
  border-radius: 0 !important;
  color: var(--color-on-surface) !important;
  font-size: var(--text-nav) !important;
  letter-spacing: 0.2em !important;
  padding: 16px 0 !important;
  width: 100% !important;
  transition: border-color var(--duration-fast) var(--ease-in-out) !important;
  -webkit-appearance: none;
}

.elementor-field:focus {
  border-color: var(--color-primary) !important;
  outline: none !important;
  box-shadow: none !important;
}

.elementor-field::placeholder {
  color: var(--color-surface-high) !important;
}

select.elementor-field {
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238e9192' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 8px center !important;
  padding-right: 32px !important;
}

select.elementor-field option {
  background-color: var(--color-surface);
  color: var(--color-on-surface);
}

.elementor-button[type="submit"],
.elementor-field-type-submit .elementor-button {
  background-color: var(--color-primary) !important;
  color: var(--color-on-primary) !important;
  border: none !important;
  border-radius: 0 !important;
  font-size: var(--text-nav) !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  padding: 20px 48px !important;
  cursor: pointer;
  transition: opacity var(--duration-fast) var(--ease-in-out) !important;
  width: auto !important;
}

.elementor-button[type="submit"]:hover {
  opacity: 0.88 !important;
}

/* ============================================================
   12. NAVIGATION
   — Header styles managed via Elementor JSON + Theme Builder
   ============================================================ */

/* ============================================================
   13. PERFORMANCE — Critical CSS Utilities
   ============================================================ */

/* Prevent layout shift for known-ratio images */
.archilad-img-16-9  { aspect-ratio: 16/9; overflow: hidden; }
.archilad-img-4-5   { aspect-ratio: 4/5;  overflow: hidden; }
.archilad-img-1-1   { aspect-ratio: 1/1;  overflow: hidden; }
.archilad-img-16-10 { aspect-ratio: 16/10; overflow: hidden; }

.archilad-img-16-9 img,
.archilad-img-4-5  img,
.archilad-img-1-1  img,
.archilad-img-16-10 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* GPU-compose only what needs it */
.archilad-img-reveal img,
.archilad-project-card .elementor-widget-image img {
  will-change: transform, filter;
  transform: translateZ(0);
  backface-visibility: hidden;
}

/* Remove will-change after transition completes (prevents memory leaks) */
.archilad-reveal.is-visible,
.archilad-fade.is-visible {
  will-change: auto;
}

/* ============================================================
   14. ACCESSIBILITY
   ============================================================ */

/* Visible focus for keyboard navigation */
:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 4px;
}

/* Skip to content link */
.archilad-skip-link {
  position: absolute;
  top: -100%;
  left: 0;
  background: var(--color-primary);
  color: var(--color-on-primary);
  padding: 12px 24px;
  font-size: var(--text-nav);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  z-index: 9999;
  transition: top var(--duration-fast);
}

.archilad-skip-link:focus {
  top: 0;
}

/* High contrast mode support */
@media (forced-colors: active) {
  .archilad-hero::before,
  .archilad-hero::after {
    display: none;
  }

  .elementor-field {
    border: 1px solid ButtonText !important;
  }
}

/* ============================================================
   15. HEADER
   — Header styles managed via Elementor JSON + Theme Builder
   ============================================================ */

/* ============================================================
   16. FOOTER — Responsive
   ============================================================ */

/* Footer link hover */
.elementor-location-footer a {
  transition: color var(--duration-fast) var(--ease-in-out);
}

.elementor-location-footer a:hover {
  color: var(--color-primary) !important;
}

/* Social icon hover */
.elementor-location-footer .footer-social a:hover {
  color: var(--color-primary);
}

/* Newsletter form inline layout */
.elementor-location-footer .elementor-form .elementor-field-group {
  margin-bottom: 0 !important;
}

.elementor-location-footer .elementor-form {
  display: flex !important;
  align-items: flex-end !important;
  border-bottom: 1px solid var(--color-outline-variant);
  gap: 0;
}

.elementor-location-footer .elementor-form .elementor-field[type="email"] {
  border-bottom: none !important; /* Already on wrapper */
  flex: 1;
}

.elementor-location-footer .elementor-form .elementor-button[type="submit"] {
  background: transparent !important;
  color: var(--color-primary) !important;
  border: none !important;
  font-size: 20px !important;
  padding: 12px 0 12px 12px !important;
  cursor: pointer;
  transition: transform var(--duration-fast) var(--ease-out-expo) !important;
}

.elementor-location-footer .elementor-form .elementor-button[type="submit"]:hover {
  transform: translateX(4px) !important;
}

/* --- TABLET footer --- */
@media (min-width: 768px) and (max-width: 1024px) {
  /* 4-col → 2+2 grid */
  .elementor-location-footer .elementor-section:first-child .elementor-column {
    width: 50% !important;
    flex: 0 0 50% !important;
    margin-bottom: 48px;
  }

  .elementor-location-footer .elementor-section {
    padding-left: 32px !important;
    padding-right: 32px !important;
  }
}

/* --- MOBILE footer --- */
@media (max-width: 767px) {
  /* Stack all columns */
  .elementor-location-footer .elementor-column {
    width: 100% !important;
    flex: 0 0 100% !important;
    margin-bottom: 40px;
  }

  .elementor-location-footer .elementor-section {
    padding-left: var(--space-page-x) !important;
    padding-right: var(--space-page-x) !important;
    padding-top: 64px !important;
    padding-bottom: 64px !important;
  }

  /* Bottom bar — stack copyright + offices */
  .elementor-location-footer .elementor-section:last-child .elementor-column {
    width: 100% !important;
    flex: 0 0 100% !important;
    margin-bottom: 8px;
  }

  .elementor-location-footer .elementor-section:last-child p {
    text-align: left !important;
  }

  /* Nav and legal links — larger tap targets */
  .elementor-location-footer a {
    display: inline-block;
    padding: 4px 0;
    min-height: 44px;
    display: flex;
    align-items: center;
  }
}

/* ============================================================
   17. PRINT
   ============================================================ */

@media print {
  .archilad-hero { height: auto !important; }
  .archilad-hero::before,
  .archilad-hero::after { display: none; }
  nav, .archilad-scroll-indicator { display: none; }
  * { color: #000 !important; background: #fff !important; }
}/* End custom CSS */