.elementor-kit-11{--e-global-color-primary:#0F1A36;--e-global-color-secondary:#3F3F3F;--e-global-color-text:#3F3F3F;--e-global-color-accent:#000000;--e-global-color-de76759:#0A1226;--e-global-color-542215a:#FFFFFF;--e-global-color-2dec577:#F7F6F2;--e-global-color-bc74c7a:#EBE9E3;--e-global-color-d16b387:#6B6F78;--e-global-color-8a595d1:#E3E5EA;--e-global-typography-primary-font-family:"Cormorant Garamond";--e-global-typography-primary-font-size:64px;--e-global-typography-primary-font-weight:500;--e-global-typography-primary-line-height:1.05em;--e-global-typography-secondary-font-family:"Cormorant Garamond";--e-global-typography-secondary-font-size:48px;--e-global-typography-secondary-font-weight:500;--e-global-typography-secondary-line-height:1.05em;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-size:16px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.55em;--e-global-typography-accent-font-family:"Inter";--e-global-typography-accent-font-size:14px;--e-global-typography-accent-font-weight:600;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-line-height:1em;--e-global-typography-accent-letter-spacing:0.06em;background-color:var( --e-global-color-542215a );color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-kit-11 button,.elementor-kit-11 input[type="button"],.elementor-kit-11 input[type="submit"],.elementor-kit-11 .elementor-button{background-color:var( --e-global-color-primary );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );text-transform:var( --e-global-typography-accent-text-transform );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );color:var( --e-global-color-542215a );border-style:none;border-radius:0px 0px 0px 0px;padding:14px 26px 14px 26px;}.elementor-kit-11 button:hover,.elementor-kit-11 button:focus,.elementor-kit-11 input[type="button"]:hover,.elementor-kit-11 input[type="button"]:focus,.elementor-kit-11 input[type="submit"]:hover,.elementor-kit-11 input[type="submit"]:focus,.elementor-kit-11 .elementor-button:hover,.elementor-kit-11 .elementor-button:focus{background-color:var( --e-global-color-accent );color:var( --e-global-color-542215a );}.elementor-kit-11 e-page-transition{background-color:#FFBC7D;}.elementor-kit-11 p{margin-block-end:16px;}.elementor-kit-11 a{color:var( --e-global-color-primary );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-kit-11 h1{color:var( --e-global-color-primary );font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-kit-11 h2{color:var( --e-global-color-primary );font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-kit-11 h3{color:var( --e-global-color-primary );font-family:"Cormorant Garamond", Sans-serif;font-size:28px;font-weight:600;letter-spacing:-0.01em;}.elementor-kit-11 h4{color:var( --e-global-color-primary );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );text-transform:var( --e-global-typography-accent-text-transform );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-kit-11 h5{color:var( --e-global-color-secondary );font-family:"Inter", Sans-serif;font-size:16px;font-weight:600;}.elementor-kit-11 h6{color:var( --e-global-color-secondary );font-family:"Inter", Sans-serif;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:0.1em;}.elementor-kit-11 img{border-radius:0px 0px 0px 0px;opacity:1;}.elementor-kit-11 img:hover{border-radius:0px 0px 0px 0px;opacity:1;}.elementor-kit-11 label{color:var( --e-global-color-primary );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );text-transform:var( --e-global-typography-accent-text-transform );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-kit-11 input:not([type="button"]):not([type="submit"]),.elementor-kit-11 textarea,.elementor-kit-11 .elementor-field-textual{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );color:var( --e-global-color-text );accent-color:var( --e-global-color-primary );background-color:var( --e-global-color-542215a );border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-8a595d1 );border-radius:0px 0px 0px 0px;padding:14px 16px 14px 16px;}.elementor-kit-11 input:focus:not([type="button"]):not([type="submit"]),.elementor-kit-11 textarea:focus,.elementor-kit-11 .elementor-field-textual:focus{border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-primary );border-radius:0px 0px 0px 0px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1240px;}.e-con{--container-max-width:1240px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.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);}.elementor-lightbox{background-color:var( --e-global-color-primary );--lightbox-ui-color:var( --e-global-color-542215a );--lightbox-ui-color-hover:var( --e-global-color-d16b387 );--lightbox-text-color:var( --e-global-color-542215a );}@media(max-width:1024px){.elementor-kit-11{--e-global-typography-primary-font-size:48px;--e-global-typography-primary-line-height:1.05em;--e-global-typography-secondary-font-size:36px;--e-global-typography-secondary-line-height:1.05em;--e-global-typography-text-font-size:16px;--e-global-typography-text-line-height:1.55em;--e-global-typography-accent-font-size:14px;--e-global-typography-accent-line-height:1em;--e-global-typography-accent-letter-spacing:0.06em;font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-kit-11 a{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-kit-11 h1{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-kit-11 h2{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-kit-11 h3{font-size:24px;line-height:1.15em;}.elementor-kit-11 h4{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-kit-11 button,.elementor-kit-11 input[type="button"],.elementor-kit-11 input[type="submit"],.elementor-kit-11 .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-kit-11 label{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-kit-11 input:not([type="button"]):not([type="submit"]),.elementor-kit-11 textarea,.elementor-kit-11 .elementor-field-textual{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:768px){.elementor-kit-11{--e-global-typography-primary-font-size:48px;--e-global-typography-primary-line-height:1.05em;--e-global-typography-primary-letter-spacing:-0.015px;--e-global-typography-secondary-font-size:30px;--e-global-typography-secondary-line-height:1.05em;--e-global-typography-text-font-size:15px;--e-global-typography-text-line-height:1.55em;--e-global-typography-text-letter-spacing:0em;--e-global-typography-accent-font-size:13px;--e-global-typography-accent-line-height:1em;--e-global-typography-accent-letter-spacing:0.06em;font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-kit-11 a{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-kit-11 h1{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-kit-11 h2{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-kit-11 h3{font-size:20px;line-height:1.15em;letter-spacing:-0.01em;}.elementor-kit-11 h4{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-kit-11 button,.elementor-kit-11 input[type="button"],.elementor-kit-11 input[type="submit"],.elementor-kit-11 .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-kit-11 label{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-kit-11 input:not([type="button"]):not([type="submit"]),.elementor-kit-11 textarea,.elementor-kit-11 .elementor-field-textual{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* =========================================================
   BRAND SITE v3 ‚Äî X FIREWOOD FACTORY STYLE
   Minimal industrial. B&W base. Brand colour ONLY as accent.
   Big bold UPPERCASE display. Full-bleed product photography.
   Section-stacked. No marquees, no cards, no brutalism.
   ========================================================= */

/* Reset ‚Äî include html/body to clear browser default margin */
html, body { margin: 0; padding: 0; }
body { overflow-x: hidden; }
.v3 *, .v3 *::before, .v3 *::after { box-sizing: border-box; margin: 0; padding: 0; }
.v3 { font-family: var(--v3-sans); color: var(--v3-ink); background: var(--v3-paper); line-height: 1.55; -webkit-font-smoothing: antialiased; margin: 0; padding: 0; }
.v3 img { max-width: 100%; display: block; }
.v3 a { color: inherit; text-decoration: none; }
/* Buttons need (0,2,0) specificity ‚Äî handled by .v3 .v3-btn rules below */
.v3 button { font: inherit; cursor: pointer; border: 0; background: transparent; }

:root {
  /* Defaults ‚Äî overridden per brand */
  --v3-accent:   #f82b23;
  --v3-ink:      #0a0a0a;
  --v3-paper:    #ffffff;
  --v3-paper-2:  #f5f5f3;
  --v3-paper-3:  #ebebe8;
  --v3-muted:    #6b6b6b;
  --v3-line:     #e0e0dd;

  --v3-sans:     'Inter', system-ui, -apple-system, sans-serif;
  --v3-accent-font: var(--v3-sans);

  --v3-container: 1440px;
  --v3-gutter: clamp(1.5rem, 4vw, 3rem);
}

/* Layout helpers */
.v3 .container {
  width: 100%;
  max-width: var(--v3-container);
  margin: 0 auto;
  padding-left: var(--v3-gutter);
  padding-right: var(--v3-gutter);
}

/* ===== TYPOGRAPHY ===== */
.v3 h1, .v3 h2, .v3 h3, .v3 h4 {
  font-family: var(--v3-sans);
  color: var(--v3-ink);
  font-weight: 800;
  line-height: 0.95;
  letter-spacing: -0.02em;
  text-transform: uppercase;
}

.v3-display {
  font-size: clamp(2.8rem, 8vw, 7.5rem);
  font-weight: 800;
  line-height: 0.92;
  letter-spacing: -0.025em;
  text-transform: uppercase;
}

.v3-h2 {
  font-size: clamp(2rem, 5vw, 4rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.02em;
  text-transform: uppercase;
}

.v3-h3 {
  font-size: clamp(1.2rem, 1.8vw, 1.5rem);
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.15;
  text-transform: uppercase;
}

.v3-lead {
  font-size: clamp(1.05rem, 1.35vw, 1.25rem);
  line-height: 1.55;
  color: var(--v3-muted);
  max-width: 60ch;
  font-weight: 400;
}

.v3-eyebrow {
  font-family: var(--v3-sans);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--v3-ink);
}
.v3-eyebrow--accent { color: var(--v3-accent); }
.v3-eyebrow--light { color: rgba(255,255,255,0.7); }

/* ===== HEADER ===== */
.v3-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--v3-paper);
  border-bottom: 1px solid var(--v3-line);
}
.v3-header__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.2rem 0;
}
.v3-header__logo {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  font-size: 1.4rem;
  text-transform: uppercase;
}
.v3-header__logo img {
  height: 32px;
  width: auto;
  object-fit: contain;
}
.v3-nav {
  display: flex;
  gap: 2rem;
}
.v3-nav a {
  font-size: 0.88rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  padding: 0.4rem 0;
  position: relative;
  text-transform: uppercase;
  transition: color 0.2s ease;
}
.v3-nav a:hover { color: var(--v3-accent); }
.v3-nav a.is-active { color: var(--v3-accent); }

.v3-header__right {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

/* ===== BURGER MENU (mobile only) ===== */
.v3-burger {
  display: none;
  width: 32px;
  height: 32px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 6px;
  background: transparent;
  border: 0;
  padding: 0;
  cursor: pointer;
  position: relative;
  z-index: 200;
}
.v3-burger span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--v3-ink);
  transition: transform 0.3s ease, opacity 0.3s ease;
  transform-origin: center;
}
body.v3-menu-open { overflow: hidden; }
body.v3-menu-open .v3-burger span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
body.v3-menu-open .v3-burger span:nth-child(2) { opacity: 0; }
body.v3-menu-open .v3-burger span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
.v3-lang {
  display: flex;
  gap: 0.5rem;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--v3-muted);
}
.v3-lang a { transition: color 0.2s ease; }
.v3-lang a.is-active, .v3-lang a:hover { color: var(--v3-ink); }

.v3 .v3-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.95rem 1.6rem;
  background: var(--v3-ink);
  color: var(--v3-paper);
  font-family: var(--v3-sans);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  transition: all 0.25s ease;
  border: 1px solid var(--v3-ink);
}
.v3 .v3-btn:hover {
  background: var(--v3-accent);
  border-color: var(--v3-accent);
  color: #fff;
}
.v3 .v3-btn--ghost {
  background: transparent;
  color: var(--v3-ink);
  border-color: var(--v3-ink);
}
.v3 .v3-btn--ghost:hover {
  background: var(--v3-ink);
  color: var(--v3-paper);
}
.v3 .v3-btn--light {
  background: var(--v3-paper);
  color: var(--v3-ink);
  border-color: var(--v3-paper);
}
.v3 .v3-btn--light:hover {
  background: var(--v3-accent);
  border-color: var(--v3-accent);
  color: #fff;
}
.v3 .v3-btn--outline-light {
  background: transparent;
  color: var(--v3-paper);
  border-color: rgba(255,255,255,0.35);
}
.v3 .v3-btn--outline-light:hover {
  background: var(--v3-paper);
  color: var(--v3-ink);
  border-color: var(--v3-paper);
}
.v3 .v3-btn--accent {
  background: var(--v3-accent);
  border-color: var(--v3-accent);
  color: #fff;
}
.v3 .v3-btn--accent:hover {
  background: var(--v3-ink);
  border-color: var(--v3-ink);
}

/* Sections base */
.v3-section {
  padding: clamp(5rem, 10vw, 9rem) 0;
}
.v3-section--dark {
  background: var(--v3-ink);
  color: var(--v3-paper);
}
.v3-section--dark h1,
.v3-section--dark h2,
.v3-section--dark h3 { color: var(--v3-paper); }
.v3-section--soft {
  background: var(--v3-paper-2);
}

/* ===== PAGE HEADER (inner pages ‚Äî smaller than main hero) ===== */
.v3-pageheader {
  position: relative;
  background: var(--v3-ink);
  color: var(--v3-paper);
  padding: clamp(6rem, 12vw, 10rem) 0 clamp(4rem, 8vw, 6rem);
  overflow: hidden;
  border-bottom: 1px solid var(--v3-ink);
}
.v3-pageheader__bg {
  position: absolute !important;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  opacity: 0.6;
  z-index: 0;
}
.v3-pageheader__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg,
    rgba(10,10,10,0.85) 0%,
    rgba(10,10,10,0.55) 70%,
    rgba(10,10,10,0.35) 100%);
  z-index: 1;
}
.v3-pageheader__inner {
  position: relative;
  z-index: 2;
  max-width: 55rem;
}
.v3-pageheader__breadcrumb {
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.6);
  margin-bottom: 2rem;
}
.v3-pageheader__breadcrumb a { color: rgba(255,255,255,0.85); }
.v3-pageheader__breadcrumb a:hover { color: var(--v3-paper); }
.v3-pageheader__breadcrumb .sep { margin: 0 0.7rem; opacity: 0.4; }
.v3-pageheader h1 {
  color: var(--v3-paper);
  font-size: clamp(2.5rem, 6vw, 5.5rem);
  font-weight: 800;
  letter-spacing: -0.025em;
  line-height: 0.98;
  text-transform: uppercase;
  margin-bottom: 1.5rem;
}
.v3-pageheader__lead {
  font-size: clamp(1.05rem, 1.4vw, 1.3rem);
  color: rgba(255,255,255,0.8);
  max-width: 55ch;
  line-height: 1.55;
  margin-top: 1.5rem;
}
.v3-pageheader__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
  margin-bottom: 1.5rem;
}
.v3-pageheader__eyebrow::before {
  content: '';
  width: 36px; height: 1px;
  background: rgba(255,255,255,0.6);
}

/* ===== LOCATION CARDS ===== */
.v3-locations {
  padding: clamp(5rem, 10vw, 8rem) 0;
  border-bottom: 1px solid var(--v3-line);
}
.v3-locations__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}
.v3-location {
  background: var(--v3-paper);
  border: 1px solid var(--v3-line);
  padding: 2.5rem;
  display: flex;
  flex-direction: column;
  transition: all 0.3s ease;
}
.v3-location:hover { border-color: var(--v3-ink); transform: translateY(-3px); }
.v3-location--dark {
  background: var(--v3-ink);
  color: var(--v3-paper);
  border-color: var(--v3-ink);
}
.v3-location__brand {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--v3-muted);
  margin-bottom: 0.8rem;
}
.v3-location--dark .v3-location__brand { color: rgba(255,255,255,0.7); }
.v3-location__city {
  font-size: clamp(1.8rem, 2.5vw, 2.4rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1;
  text-transform: uppercase;
  margin-bottom: 0.8rem;
}
.v3-location--dark .v3-location__city { color: var(--v3-paper); }
.v3-location__desc {
  font-size: 0.95rem;
  color: var(--v3-muted);
  margin-bottom: 1.5rem;
  line-height: 1.55;
}
.v3-location--dark .v3-location__desc { color: rgba(255,255,255,0.75); }
.v3-location__address {
  font-style: normal;
  font-size: 0.95rem;
  line-height: 1.7;
  margin-bottom: 1.5rem;
}
.v3-location__address strong { font-weight: 600; }
.v3-location__address a {
  border-bottom: 1px solid currentColor;
}
.v3-location--dark .v3-location__address { color: rgba(255,255,255,0.85); }
.v3-location__map {
  margin-top: auto;
  aspect-ratio: 16/9;
  background: var(--v3-paper-2);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--v3-muted);
  font-size: 0.85rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.v3-location--dark .v3-location__map {
  background: rgba(255,255,255,0.08);
  color: rgba(255,255,255,0.6);
}

/* ===== TIMELINE ===== */
.v3-timeline {
  max-width: 900px;
  margin: 0 auto;
}
.v3-timeline-item {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 3rem;
  padding: 2rem 0;
  border-top: 1px solid var(--v3-line);
  align-items: baseline;
}
.v3-timeline-item:last-child { border-bottom: 1px solid var(--v3-line); }
.v3-timeline-item__year {
  font-size: clamp(2rem, 3vw, 2.8rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1;
}
.v3-timeline-item__body h3 {
  font-size: 1.3rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  margin-bottom: 0.6rem;
}
.v3-timeline-item__body p {
  font-size: 1rem;
  color: var(--v3-muted);
  line-height: 1.6;
}

/* ===== CONTACT FORM ===== */
.v3-contact {
  padding: clamp(5rem, 10vw, 8rem) 0;
  border-bottom: 1px solid var(--v3-line);
}
.v3-contact__grid {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: clamp(2rem, 5vw, 5rem);
  align-items: start;
}
.v3-contact__info h3 {
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-top: 2.5rem;
  margin-bottom: 0.8rem;
}
.v3-contact__info h3:first-of-type { margin-top: 0; }
.v3-contact__info p {
  font-size: 0.95rem;
  color: var(--v3-muted);
  line-height: 1.6;
  margin-bottom: 0.4rem;
}
.v3-contact__info a {
  border-bottom: 1px solid currentColor;
}

.v3-form {
  background: var(--v3-paper-2);
  padding: clamp(2rem, 4vw, 3.5rem);
  border: 1px solid var(--v3-line);
}
.v3-form__head {
  display: block;
  margin-bottom: 2rem;
}
.v3-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.2rem;
  margin-bottom: 1.2rem;
}
.v3-form__field { display: flex; flex-direction: column; }
.v3-form__field--full { grid-column: 1 / -1; }
.v3-form__field label {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v3-ink);
  margin-bottom: 0.5rem;
}
.v3-form__field input,
.v3-form__field textarea,
.v3-form__field select {
  font-family: var(--v3-sans);
  font-size: 1rem;
  padding: 0.85rem 1rem;
  border: 1px solid var(--v3-line);
  background: var(--v3-paper);
  color: var(--v3-ink);
  transition: border-color 0.2s ease;
}
.v3-form__field input:focus,
.v3-form__field textarea:focus,
.v3-form__field select:focus {
  outline: none;
  border-color: var(--v3-ink);
}
.v3-form__field textarea { min-height: 140px; resize: vertical; }
.v3-form__checkbox {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  margin: 1rem 0 1.5rem;
}
.v3-form__checkbox label {
  font-size: 0.88rem;
  color: var(--v3-muted);
  text-transform: none;
  letter-spacing: 0;
}
.v3-form__checkbox a {
  color: var(--v3-ink);
  border-bottom: 1px solid currentColor;
}

/* ===== WORLD MAP DEALER SECTION ===== */
.v3-worldmap {
  padding: clamp(5rem, 10vw, 8rem) 0;
  background: #000000;
  color: #fff;
  position: relative;
  overflow: hidden;
}
.v3-worldmap__head {
  text-align: center;
  margin-bottom: clamp(3rem, 5vw, 4rem);
  max-width: 60rem;
  margin-left: auto;
  margin-right: auto;
}
.v3-worldmap__head h2 {
  color: #fff;
  font-size: clamp(2.5rem, 5vw, 4.5rem);
  margin: 1rem 0 1rem;
}
.v3-worldmap__head p {
  color: rgba(255,255,255,0.7);
  font-size: clamp(1rem, 1.3vw, 1.2rem);
  line-height: 1.55;
}
.v3-worldmap__map {
  position: relative;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  aspect-ratio: 1500 / 719;
}
.v3-worldmap__img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  /* Invert PNG light gray to white silhouette on black */
  filter: brightness(0) invert(1);
  opacity: 0.95;
}
/* Red dealer dots ‚Äî positioned absolutely on the map */
.v3-worldmap__dot {
  position: absolute;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--v3-accent, #fa1400);
  transform: translate(-50%, -50%);
  z-index: 2;
  box-shadow: 0 0 0 0 var(--v3-accent, #fa1400);
  animation: dotPulse 2s infinite;
}
.v3-worldmap__dot--lg {
  width: 18px;
  height: 18px;
}
@keyframes dotPulse {
  0% { box-shadow: 0 0 0 0 rgba(250, 20, 0, 0.6); }
  70% { box-shadow: 0 0 0 14px rgba(250, 20, 0, 0); }
  100% { box-shadow: 0 0 0 0 rgba(250, 20, 0, 0); }
}

.v3-worldmap__cta {
  margin-top: clamp(3rem, 5vw, 4rem);
  text-align: center;
}
.v3-worldmap__stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border-top: 1px solid rgba(255,255,255,0.15);
  border-bottom: 1px solid rgba(255,255,255,0.15);
  margin: clamp(3rem, 5vw, 4rem) 0 0;
}
.v3-worldmap__stat {
  padding: 2rem;
  text-align: center;
  border-right: 1px solid rgba(255,255,255,0.15);
}
.v3-worldmap__stat:last-child { border-right: 0; }
.v3-worldmap__stat strong {
  display: block;
  font-size: clamp(2rem, 3.5vw, 3rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  margin-bottom: 0.5rem;
}
.v3-worldmap__stat span {
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.6);
}

@media (max-width: 960px) {
  .v3-worldmap__stats { grid-template-columns: 1fr 1fr; }
  .v3-worldmap__stat:nth-child(2) { border-right: 0; }
  .v3-worldmap__dot { width: 8px; height: 8px; }
  .v3-worldmap__dot--lg { width: 12px; height: 12px; }
}

/* Video bg for hero (replaces img) */
.v3 video.v3-hero__bg {
  position: absolute !important;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  z-index: 0;
  opacity: 0.7;
}

/* ===== PROSE / RICH TEXT ===== */
.v3-prose {
  max-width: 65rem;
  margin: 0 auto;
}
.v3-prose__statement {
  font-size: clamp(1.5rem, 2.6vw, 2.2rem);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.015em;
  margin-bottom: 2rem;
  max-width: 38ch;
}
.v3-prose p {
  font-size: 1.1rem;
  line-height: 1.75;
  color: var(--v3-muted);
  margin-bottom: 1.5em;
}

/* ===== RESPONSIVE ADDITIONS ===== */
@media (max-width: 960px) {
  .v3-locations__grid { grid-template-columns: 1fr; }
  .v3-timeline-item { grid-template-columns: 80px 1fr; gap: 1.5rem; }
  .v3-contact__grid { grid-template-columns: 1fr; }
  .v3-form__row { grid-template-columns: 1fr; }
}

/* ===== HERO ===== */
.v3-hero {
  min-height: 92vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  overflow: hidden;
  background: var(--v3-ink);
  color: var(--v3-paper);
}
.v3-hero__bg {
  position: absolute !important;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  z-index: 0;
  opacity: 0.85;
}
.v3-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,
    rgba(10,10,10,0.88) 0%,
    rgba(10,10,10,0.65) 40%,
    rgba(10,10,10,0.3) 70%,
    rgba(10,10,10,0.1) 100%);
  z-index: 1;
}
.v3-hero__inner {
  position: relative;
  z-index: 2;
  padding: clamp(4rem, 8vw, 7rem) 0;
}
.v3-hero__tagline {
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
  margin-bottom: 2rem;
  display: inline-flex;
  align-items: center;
  gap: 1rem;
}
.v3-hero__tagline::before {
  content: '';
  width: 40px;
  height: 2px;
  background: var(--v3-accent);
}
.v3 .v3-hero__title {
  color: var(--v3-paper);
  max-width: 22ch;
  margin-bottom: 1.5rem;
}
/* Force light text on all dark sections (base-CSS specificity fix) */
.v3 .v3-hero h1, .v3 .v3-hero h2, .v3 .v3-hero h3,
.v3 .v3-bigstat h1, .v3 .v3-bigstat h2, .v3 .v3-bigstat__label,
.v3 .v3-cta h1, .v3 .v3-cta h2, .v3 .v3-cta h3,
.v3 .v3-section--dark h1, .v3 .v3-section--dark h2, .v3 .v3-section--dark h3,
.v3 .v3-footer h1, .v3 .v3-footer h2, .v3 .v3-footer h3, .v3 .v3-footer h4,
.v3 .v3-footer__big,
.v3 .v3-worldmap h2,
.v3 .v3-pageheader h1 {
  color: var(--v3-paper);
}
.v3-hero__sub {
  font-size: clamp(1.1rem, 1.5vw, 1.3rem);
  color: rgba(255,255,255,0.8);
  max-width: 55ch;
  line-height: 1.5;
  margin-bottom: 3rem;
}
.v3-hero__actions {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}
.v3-hero__scroll {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.6rem;
}
.v3-hero__scroll::after {
  content: '';
  width: 1px;
  height: 36px;
  background: rgba(255,255,255,0.5);
  animation: scrollLine 2s ease infinite;
}
@keyframes scrollLine {
  0% { transform: scaleY(0); transform-origin: top; }
  50% { transform: scaleY(1); transform-origin: top; }
  51% { transform-origin: bottom; }
  100% { transform: scaleY(0); transform-origin: bottom; }
}

/* ===== TAGLINE STRIP (mantra repeated) ===== */
.v3-mantra {
  padding: 2rem 0;
  border-top: 1px solid var(--v3-line);
  border-bottom: 1px solid var(--v3-line);
  background: var(--v3-paper);
  text-align: center;
}
.v3-mantra__text {
  font-size: clamp(0.9rem, 1.1vw, 1rem);
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--v3-ink);
}
.v3-mantra__text span {
  margin: 0 1.2rem;
  display: inline-block;
}
.v3-mantra__text span::before {
  content: '¬∑';
  margin-right: 2.4rem;
  color: var(--v3-accent);
}
.v3-mantra__text span:first-child::before { display: none; }

/* ===== FEATURES 4-COL ===== */
.v3-features {
  padding: clamp(5rem, 10vw, 9rem) 0;
  border-bottom: 1px solid var(--v3-line);
}
.v3-features__head {
  margin-bottom: clamp(3rem, 6vw, 5rem);
  max-width: 60rem;
}
.v3-features__head .v3-eyebrow { margin-bottom: 1.5rem; display: inline-block; }
.v3-features__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(2rem, 4vw, 3.5rem);
}
.v3-feature {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}
.v3-feature__num {
  font-family: var(--v3-sans);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  color: var(--v3-accent);
  text-transform: uppercase;
}
.v3-feature h3 {
  font-size: 1.2rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  line-height: 1.15;
  text-transform: uppercase;
}
.v3-feature p {
  font-size: 0.95rem;
  color: var(--v3-muted);
  line-height: 1.6;
}

/* ===== SPLIT (image + text) ===== */
.v3-split {
  padding: 0;
  border-bottom: 1px solid var(--v3-line);
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 80vh;
}
.v3-split--reverse { direction: rtl; }
.v3-split--reverse > * { direction: ltr; }

.v3-split__image {
  position: relative;
  overflow: hidden;
  background: var(--v3-paper-3);
}
.v3-split__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.2s ease;
}
.v3-split:hover .v3-split__image img { transform: scale(1.03); }

.v3-split__text {
  padding: clamp(3rem, 8vw, 6rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.v3-split__text .v3-eyebrow { margin-bottom: 1.5rem; display: inline-block; color: var(--v3-accent); }
.v3-split__text h2 { margin-bottom: 1.5rem; max-width: 16ch; }
.v3-split__text p {
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--v3-muted);
  margin-bottom: 1.2rem;
  max-width: 50ch;
}
.v3-split__text .v3-btn { margin-top: 1.5rem; align-self: flex-start; }

/* ===== BIG STAT REVEAL ===== */
.v3-bigstat {
  padding: clamp(5rem, 10vw, 9rem) 0;
  background: var(--v3-ink);
  color: var(--v3-paper);
  text-align: left;
  border-bottom: 1px solid var(--v3-ink);
}
.v3-bigstat__num {
  font-size: clamp(5rem, 18vw, 16rem);
  font-weight: 900;
  letter-spacing: -0.04em;
  line-height: 0.85;
  color: var(--v3-accent);
  text-transform: uppercase;
}
.v3-bigstat__label {
  font-size: clamp(1.3rem, 2.5vw, 2rem);
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.15;
  text-transform: uppercase;
  margin-top: 1.5rem;
  max-width: 30ch;
}
.v3-bigstat__sub {
  font-size: 1.05rem;
  color: rgba(255,255,255,0.7);
  margin-top: 1.5rem;
  max-width: 50ch;
  line-height: 1.6;
}

/* ===== STATS GRID (4-col) ===== */
.v3-stats {
  padding: clamp(4rem, 8vw, 7rem) 0;
  border-bottom: 1px solid var(--v3-line);
}
.v3-stats__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border-top: 1px solid var(--v3-ink);
  border-bottom: 1px solid var(--v3-ink);
}
.v3-stat {
  padding: 2.5rem 2rem;
  border-right: 1px solid var(--v3-line);
}
.v3-stat:last-child { border-right: 0; }
.v3-stat__num {
  font-size: clamp(3rem, 6vw, 5rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 0.9;
  margin-bottom: 1rem;
}
.v3-stat__label {
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--v3-muted);
}

/* ===== PRODUCT GRID ===== */
.v3-products {
  padding: clamp(5rem, 10vw, 9rem) 0;
  border-bottom: 1px solid var(--v3-line);
}
.v3-products__head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  margin-bottom: clamp(3rem, 6vw, 4rem);
  flex-wrap: wrap;
  gap: 2rem;
}
.v3-products__head h2 { max-width: 16ch; }
.v3-product-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.5rem, 3vw, 2.5rem);
}
.v3-product {
  display: flex;
  flex-direction: column;
  cursor: pointer;
}
.v3-product__image {
  aspect-ratio: 4/3;
  overflow: hidden;
  margin-bottom: 1.5rem;
  background: var(--v3-paper-2);
}
.v3-product__image img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.8s ease;
}
.v3-product:hover .v3-product__image img { transform: scale(1.04); }
.v3-product__cat {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--v3-accent);
  margin-bottom: 0.6rem;
}
.v3-product h3 {
  font-size: clamp(1.5rem, 2vw, 1.8rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  margin-bottom: 0.6rem;
  transition: color 0.2s ease;
}
.v3-product:hover h3 { color: var(--v3-accent); }
.v3-product p {
  font-size: 0.92rem;
  color: var(--v3-muted);
  margin-bottom: 1.2rem;
  line-height: 1.55;
}
.v3-product__meta {
  padding-top: 1rem;
  margin-top: auto;
  border-top: 1px solid var(--v3-line);
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}
.v3-product__spec {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--v3-ink);
}
.v3-product__more {
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--v3-ink);
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  transition: gap 0.25s ease, color 0.25s ease;
}
.v3-product:hover .v3-product__more { color: var(--v3-accent); gap: 0.7rem; }

/* ===== PARTNERS / BRANDS LOGOS ===== */
.v3-partners {
  padding: clamp(3rem, 6vw, 5rem) 0;
  border-bottom: 1px solid var(--v3-line);
  background: var(--v3-paper);
}
.v3-partners__label {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--v3-muted);
  text-align: center;
  margin-bottom: 2rem;
}
.v3-partners__row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  align-items: center;
  gap: 2rem;
}
.v3-partner {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 1rem;
  filter: grayscale(100%) opacity(0.55);
  transition: filter 0.25s ease;
  min-height: 60px;
}
.v3-partner:hover { filter: grayscale(0%) opacity(1); }
.v3-partner img { max-height: 36px; width: auto; }
.v3-partner__text {
  font-family: var(--v3-sans);
  font-weight: 700;
  font-size: 1.2rem;
  text-transform: uppercase;
  letter-spacing: -0.02em;
  color: var(--v3-ink);
}

/* ===== QUOTE ===== */
.v3-quote {
  padding: clamp(6rem, 12vw, 10rem) 0;
  border-bottom: 1px solid var(--v3-line);
  background: var(--v3-paper-2);
}
.v3-quote__inner {
  max-width: 65rem;
  margin: 0 auto;
  text-align: left;
}
.v3-quote__eyebrow { margin-bottom: 2rem; }
.v3-quote__text {
  font-size: clamp(1.7rem, 3.5vw, 2.8rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--v3-ink);
  margin-bottom: 3rem;
  text-transform: uppercase;
}
.v3-quote__cite {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  padding-top: 2rem;
  border-top: 1px solid var(--v3-line);
}
.v3-quote__cite strong {
  font-size: 1rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.v3-quote__cite span {
  font-size: 0.85rem;
  color: var(--v3-muted);
}

/* ===== CTA BLOCK ===== */
.v3-cta {
  padding: clamp(6rem, 12vw, 10rem) 0;
  background: var(--v3-ink);
  color: var(--v3-paper);
  border-bottom: 1px solid var(--v3-ink);
}
.v3-cta h2 {
  color: var(--v3-paper);
  font-size: clamp(2.5rem, 6vw, 5rem);
  margin-bottom: 2rem;
  max-width: 18ch;
}
.v3-cta h2 .accent { color: var(--v3-accent); }
.v3-cta p {
  font-size: 1.15rem;
  color: rgba(255,255,255,0.75);
  max-width: 55ch;
  margin-bottom: 3rem;
  line-height: 1.55;
}
.v3-cta__actions {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

/* ===== NEWS GRID ===== */
.v3-news {
  padding: clamp(5rem, 10vw, 9rem) 0;
  border-bottom: 1px solid var(--v3-line);
}
.v3-news__head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  margin-bottom: clamp(2rem, 5vw, 4rem);
  flex-wrap: wrap;
  gap: 2rem;
}
.v3-news__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.5rem, 3vw, 2.5rem);
}
.v3-news__item {
  display: flex;
  flex-direction: column;
  cursor: pointer;
}
.v3-news__image {
  aspect-ratio: 16/10;
  overflow: hidden;
  margin-bottom: 1.5rem;
  background: var(--v3-paper-2);
}
.v3-news__image img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.8s ease;
}
.v3-news__item:hover .v3-news__image img { transform: scale(1.04); }
.v3-news__meta {
  display: flex;
  gap: 1.5rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--v3-muted);
  margin-bottom: 0.8rem;
}
.v3-news__meta strong { color: var(--v3-accent); }
.v3-news__item h3 {
  font-size: clamp(1.1rem, 1.5vw, 1.4rem);
  font-weight: 800;
  letter-spacing: -0.01em;
  line-height: 1.2;
  margin-bottom: 0.8rem;
  text-transform: uppercase;
}
.v3-news__item p {
  font-size: 0.9rem;
  color: var(--v3-muted);
  line-height: 1.55;
}

/* ===== FOOTER ===== */
.v3-footer {
  background: var(--v3-ink);
  color: var(--v3-paper);
  padding: clamp(4rem, 8vw, 7rem) 0 2rem;
}
.v3-footer__big {
  font-size: clamp(3rem, 10vw, 9rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 0.92;
  text-transform: uppercase;
  margin-bottom: 4rem;
  padding-bottom: 4rem;
  border-bottom: 1px solid rgba(255,255,255,0.15);
  color: var(--v3-paper);
}
.v3-footer__big .accent { color: var(--v3-accent); }
.v3-footer__grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: 3rem;
  margin-bottom: 4rem;
}
.v3-footer__intro {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.v3-footer__intro p {
  color: rgba(255,255,255,0.6);
  font-size: 0.95rem;
  max-width: 28ch;
  line-height: 1.55;
}
.v3-footer h4 {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--v3-paper);
  margin-bottom: 1.5rem;
}
.v3-footer ul { list-style: none; padding: 0; margin: 0; }
.v3-footer li { margin-bottom: 0.6rem; }
.v3-footer li a {
  color: rgba(255,255,255,0.65);
  font-size: 0.95rem;
  transition: color 0.2s ease;
}
.v3-footer li a:hover { color: var(--v3-accent); }
.v3-footer__bottom {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(255,255,255,0.1);
  font-size: 0.82rem;
  color: rgba(255,255,255,0.4);
}
.v3-footer__corporate {
  margin-top: 1.5rem;
  font-size: 0.85rem;
  color: rgba(255,255,255,0.7);
  display: flex;
  align-items: center;
  gap: 0.7rem;
}
.v3-footer__corporate::before {
  content: '';
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--v3-accent);
}
.v3-footer__corporate a {
  color: var(--v3-paper);
  border-bottom: 1px solid var(--v3-paper);
}

/* ===== RESPONSIVE ===== */
@media (max-width: 960px) {
  /* Burger replaces nav */
  .v3-burger { display: flex; }
  .v3-nav {
    position: fixed;
    inset: 0;
    background: var(--v3-paper);
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 1.5rem;
    padding: 6rem 2rem 2rem;
    z-index: 150;
    transform: translateY(-100%);
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  }
  .v3-nav a {
    font-size: 1.2rem;
    font-weight: 600;
    letter-spacing: 0.05em;
  }
  body.v3-menu-open .v3-nav { transform: translateY(0); }

  /* On mobile, keep lang switcher but hide CTA ‚Äî it's accessible via burger menu */
  .v3-header__right .v3-btn { display: none; }
  .v3-header__right { gap: 1rem; }

  .v3-features__grid { grid-template-columns: 1fr 1fr; gap: 2.5rem; }
  .v3-split { grid-template-columns: 1fr; min-height: auto; }
  .v3-split__image { aspect-ratio: 4/3; }
  .v3-stats__grid { grid-template-columns: 1fr 1fr; }
  .v3-stat:nth-child(2) { border-right: 0; }
  .v3-product-grid { grid-template-columns: 1fr; }
  .v3-partners__row { grid-template-columns: 1fr 1fr; gap: 1rem; }
  .v3-news__grid { grid-template-columns: 1fr; }
  .v3-footer__grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
}

@media (max-width: 600px) {
  .v3-features__grid { grid-template-columns: 1fr; }
  .v3-stats__grid { grid-template-columns: 1fr; }
  .v3-stat { border-right: 0; border-bottom: 1px solid var(--v3-line); }
  .v3-stat:last-child { border-bottom: 0; }
  .v3-footer__grid { grid-template-columns: 1fr; }
  .v3-header__right .v3-btn { display: none; }
  .v3-mantra__text span { font-size: 0.8rem; }
  .v3-mantra__text span::before { margin-right: 1rem; }
}

/* ===== ANIMATIONS ===== */
@keyframes v3FadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
.v3-fade { animation: v3FadeUp 0.9s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
.v3-fade-2 { animation: v3FadeUp 0.9s 0.15s cubic-bezier(0.16, 1, 0.3, 1) backwards; }
.v3-fade-3 { animation: v3FadeUp 0.9s 0.3s cubic-bezier(0.16, 1, 0.3, 1) backwards; }
/* =========================================================
   TP SILVA ‚Äî Brand guidelines applied to v3 base
   Primary: tummansininen #0f1a36
   Secondary: musta, harmaa #3F3F3F, valkoinen
   Otsikkofontti: Cormorant Garamond (Anglecia Pro -vastike)
   Leip√§teksti: Inter (Calibri-vastike)
   ========================================================= */

:root {
  --v3-accent:   #0f1a36;
  --v3-ink:      #0f1a36;
  --v3-ink-deep: #0a1226;
  --v3-paper:    #ffffff;
  --v3-paper-2:  #f7f6f2;
  --v3-paper-3:  #ebe9e3;
  --v3-muted:    #3F3F3F;
  --v3-muted-soft: #6b6f78;
  --v3-line:     #e3e5ea;
  --v3-sans:     'Inter', system-ui, -apple-system, sans-serif;
  --v3-serif:    'Cormorant Garamond', Georgia, serif;
  --v3-accent-font: var(--v3-serif);
}

/* ===== Headlines: Cormorant Garamond serif ===== */
.v3 h1, .v3 h2, .v3 h3, .v3 h4 {
  font-family: var(--v3-serif);
  font-weight: 500;
  text-transform: none;
  letter-spacing: -0.01em;
  line-height: 1.05;
  color: var(--v3-ink);
}

.v3 .v3-display {
  font-family: var(--v3-serif);
  font-size: clamp(3rem, 8.5vw, 7.5rem);
  font-weight: 400;
  letter-spacing: -0.015em;
  text-transform: none;
  line-height: 1.02;
}
.v3 .v3-display em {
  font-family: var(--v3-serif);
  font-style: italic;
  font-weight: 400;
  color: inherit;
  text-transform: none;
}

.v3 .v3-h2 {
  font-family: var(--v3-serif);
  font-size: clamp(2.2rem, 5vw, 4rem);
  font-weight: 500;
  letter-spacing: -0.015em;
  text-transform: none;
  line-height: 1.05;
}
.v3 .v3-h2 em {
  font-family: var(--v3-serif);
  font-style: italic;
  font-weight: 400;
  color: var(--v3-muted);
  text-transform: none;
}

.v3 .v3-h3 {
  font-family: var(--v3-serif);
  font-size: clamp(1.3rem, 1.9vw, 1.6rem);
  font-weight: 600;
  text-transform: none;
  letter-spacing: -0.005em;
}

/* Page header ‚Äî TP Silva styled */
.v3 .v3-pageheader h1 {
  font-family: var(--v3-serif);
  font-weight: 400;
  text-transform: none;
  letter-spacing: -0.015em;
  line-height: 1.02;
}
.v3 .v3-pageheader h1 em {
  font-family: var(--v3-serif);
  font-style: italic;
  font-weight: 400;
  color: rgba(255,255,255,0.8);
}

/* Otsikot tummilla taustoilla pit√§√§ olla valkoiset */
.v3 .v3-hero h1,
.v3 .v3-hero h2,
.v3 .v3-hero h3,
.v3 .v3-bigstat h1,
.v3 .v3-bigstat h2,
.v3 .v3-bigstat__label,
.v3 .v3-cta h1,
.v3 .v3-cta h2,
.v3 .v3-cta h3,
.v3 .v3-footer h1,
.v3 .v3-footer h2,
.v3 .v3-footer h3,
.v3 .v3-footer h4,
.v3 .v3-footer__big,
.v3 .v3-pageheader h1,
.v3 .v3-section--dark h1,
.v3 .v3-section--dark h2,
.v3 .v3-section--dark h3,
.v3 .v3-location--dark .v3-location__city {
  color: var(--v3-paper);
}

/* Eyebrow */
.v3 .v3-eyebrow { color: var(--v3-ink); }
.v3 .v3-eyebrow--accent { color: var(--v3-ink); }
.v3 .v3-eyebrow--light { color: rgba(255,255,255,0.65); }

/* Hero ‚Äî TP Silva tummansininen overlay */
.v3 .v3-hero { background: var(--v3-ink); }
.v3 .v3-hero__overlay {
  background: linear-gradient(90deg,
    rgba(15,26,54,0.96) 0%,
    rgba(15,26,54,0.88) 35%,
    rgba(15,26,54,0.55) 65%,
    rgba(15,26,54,0.25) 100%);
}
.v3 .v3-hero__tagline::before { background: rgba(255,255,255,0.6); }

/* Page header overlay ‚Äî also tummansininen */
.v3 .v3-pageheader__overlay {
  background: linear-gradient(135deg,
    rgba(15,26,54,0.9) 0%,
    rgba(15,26,54,0.6) 70%,
    rgba(15,26,54,0.4) 100%);
}

/* Big stat ‚Äî tummansininen background */
.v3 .v3-bigstat { background: var(--v3-ink); }

/* NOSTOT: iso stat-numero ja stat-grid numerot ‚Äî Cormorant Garamond (Anglecia Pro -vastike)
   Br√§ndiohje: "Anglecia Pro: ...nostot, ingressit..." */
.v3 .v3-bigstat__num {
  font-family: var(--v3-serif);
  font-weight: 400;
  letter-spacing: -0.02em;
  text-transform: none;
  color: #ffffff;
}
.v3 .v3-stat__num {
  font-family: var(--v3-serif);
  font-weight: 500;
  letter-spacing: -0.015em;
  text-transform: none;
}
.v3 .v3-stat__num span.accent { color: var(--v3-muted); }

/* NOSTO: big stat -label ("Vuotta suomalaista insin√∂√∂riosaamista.") ‚Äî Cormorant ei UPPERCASE */
.v3 .v3-bigstat__label {
  font-family: var(--v3-serif);
  font-weight: 500;
  text-transform: none;
  letter-spacing: -0.01em;
  line-height: 1.15;
}

/* INGRESSIT: hero-sub ja page-header-lead ‚Äî Cormorant italic editoriaaliseen tyyliin */
.v3 .v3-hero__sub,
.v3 .v3-pageheader__lead {
  font-family: var(--v3-serif);
  font-weight: 400;
  font-style: italic;
  font-size: clamp(1.2rem, 1.6vw, 1.5rem);
  letter-spacing: -0.005em;
  line-height: 1.4;
}

.v3 .v3-section--dark { background: var(--v3-ink); }

/* CTA ‚Äî dark blue */
.v3 .v3-cta { background: var(--v3-ink); }
.v3 .v3-cta h2 .accent {
  color: rgba(255,255,255,0.7);
  font-family: var(--v3-serif);
  font-style: italic;
  font-weight: 400;
}
.v3 .v3-btn:hover {
  background: #000000;
  border-color: #000000;
  color: #ffffff;
}
.v3 .v3-btn--accent {
  background: #ffffff;
  border-color: #ffffff;
  color: var(--v3-ink);
}
.v3 .v3-btn--accent:hover {
  background: transparent;
  color: #ffffff;
  border-color: rgba(255,255,255,0.4);
}

/* Nav hover */
.v3 .v3-nav a:hover { color: var(--v3-ink); border-bottom: 1px solid var(--v3-ink); padding-bottom: calc(0.4rem - 1px); }
.v3 .v3-nav a.is-active { color: var(--v3-ink); }

/* Footer ‚Äî deeper blue */
.v3 .v3-footer { background: var(--v3-ink-deep); }
.v3 .v3-footer__big {
  font-family: var(--v3-serif);
  font-weight: 400;
  text-transform: none;
  letter-spacing: -0.02em;
  line-height: 1.02;
  font-size: clamp(3rem, 9vw, 8rem);
}
.v3 .v3-footer__big .accent {
  font-family: var(--v3-serif);
  font-style: italic;
  font-weight: 400;
  color: rgba(255,255,255,0.75);
}
.v3 .v3-footer__corporate::before { background: #ffffff; }
.v3 .v3-footer li a:hover { color: #ffffff; }
.v3 .v3-footer h4 { color: #fff; }

/* Mantra dot */
.v3 .v3-mantra__text span::before { color: var(--v3-ink); }

/* News meta accent */
.v3 .v3-news__meta strong { color: var(--v3-ink); }

/* Quote */
.v3 .v3-quote__text {
  font-family: var(--v3-serif);
  font-weight: 500;
  text-transform: none;
  letter-spacing: -0.005em;
  font-style: italic;
  line-height: 1.25;
}
.v3 .v3-quote__cite strong {
  font-family: var(--v3-serif);
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
  font-size: 1.2rem;
}

/* Split text headings */
.v3 .v3-split__text h2 em { color: var(--v3-muted); }

/* Feature h3 */
.v3 .v3-feature h3 {
  font-family: var(--v3-serif);
  font-size: 1.4rem;
  font-weight: 600;
  text-transform: none;
  letter-spacing: -0.005em;
}
.v3 .v3-feature__num { color: var(--v3-ink); }

/* Location card */
.v3 .v3-location__city {
  font-family: var(--v3-serif);
  font-weight: 500;
  text-transform: none;
  letter-spacing: -0.01em;
}

/* Timeline year */
.v3 .v3-timeline-item__year {
  font-family: var(--v3-serif);
  font-weight: 500;
  text-transform: none;
  letter-spacing: -0.01em;
}
.v3 .v3-timeline-item__body h3 {
  font-family: var(--v3-serif);
  font-weight: 600;
  text-transform: none;
  letter-spacing: -0.005em;
}

/* Prose statement */
.v3 .v3-prose__statement {
  font-family: var(--v3-serif);
  font-weight: 400;
  text-transform: none;
  letter-spacing: -0.015em;
  line-height: 1.25;
  font-style: italic;
  color: var(--v3-ink);
}

/* Logo mark */
.v3-logo-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--v3-ink);
  color: #fff;
  font-family: var(--v3-serif);
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  border: 2px solid var(--v3-ink);
  box-shadow: inset 0 0 0 2px #fff;
}
.v3-footer .v3-logo-mark {
  background: #fff;
  color: var(--v3-ink);
  border-color: #fff;
  box-shadow: inset 0 0 0 2px var(--v3-ink);
}

/* Header logo text */
.v3 .v3-header__logo > span:last-child {
  font-family: var(--v3-serif);
  font-weight: 500;
  font-size: 1.5rem;
  text-transform: none;
  letter-spacing: -0.01em;
}

/* Form */
.v3 .v3-form__field label { color: var(--v3-ink); }
.v3 .v3-form__field input:focus,
.v3 .v3-form__field textarea:focus,
.v3 .v3-form__field select:focus { border-color: var(--v3-ink); }

/* =========================================================
   NAV WITH DROPDOWNS (Company / Careers submenus)
   ========================================================= */
.v3 .v3-nav__group { position: relative; display: flex; align-items: center; }
.v3 .v3-nav__top::after {
  content: '\25BE';
  font-size: 0.62em;
  margin-left: 0.4em;
  opacity: 0.55;
  vertical-align: middle;
}
.v3 .v3-nav__menu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(6px);
  min-width: 250px;
  background: #fff;
  border: 1px solid var(--v3-line);
  box-shadow: 0 24px 48px rgba(15, 26, 54, 0.14);
  padding: 0.5rem 0;
  display: flex;
  flex-direction: column;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, transform 0.2s ease;
  z-index: 300;
}
.v3 .v3-nav__menu::before {
  content: '';
  position: absolute;
  top: -12px; left: 0; right: 0;
  height: 12px;
}
.v3 .v3-nav__group:hover .v3-nav__menu {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}
.v3 .v3-nav__menu a {
  padding: 0.65rem 1.5rem !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-size: 0.92rem !important;
  font-weight: 500;
  white-space: nowrap;
  color: var(--v3-muted);
}
.v3 .v3-nav__menu a:hover {
  background: var(--v3-paper-2);
  color: var(--v3-ink) !important;
  border-bottom: 0 !important;
  padding-bottom: 0.65rem !important;
}

/* =========================================================
   STEPS (Partnership ‚Äî how to become a partner)
   ========================================================= */
.v3 .tp-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.5rem, 3vw, 2.5rem); }
.v3 .tp-step { border-top: 2px solid var(--v3-ink); padding-top: 1.5rem; }
.v3 .tp-step__num {
  font-family: var(--v3-serif);
  font-size: 2.6rem;
  font-weight: 500;
  line-height: 1;
  color: var(--v3-ink);
  letter-spacing: -0.02em;
}
.v3 .tp-step h3 {
  font-family: var(--v3-serif);
  font-size: 1.35rem;
  font-weight: 600;
  margin: 0.9rem 0 0.6rem;
}
.v3 .tp-step p { color: var(--v3-muted); line-height: 1.6; font-size: 0.98rem; }

/* =========================================================
   JOB LIST (Careers ‚Äî open positions)
   ========================================================= */
.v3 .tp-jobs { border-top: 1px solid var(--v3-line); }
.v3 .tp-job {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1.6rem 0;
  border-bottom: 1px solid var(--v3-line);
  transition: padding-left 0.2s ease;
}
.v3 .tp-job:hover { padding-left: 0.6rem; }
.v3 .tp-job__title {
  font-family: var(--v3-serif);
  font-size: clamp(1.25rem, 2vw, 1.6rem);
  font-weight: 600;
  color: var(--v3-ink);
}
.v3 .tp-job__meta {
  font-size: 0.8rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--v3-muted);
  font-weight: 600;
  margin-top: 0.35rem;
}
.v3 .tp-job__link {
  flex-shrink: 0;
  font-weight: 600;
  font-size: 0.9rem;
  letter-spacing: 0.04em;
  color: var(--v3-ink);
  white-space: nowrap;
}

/* =========================================================
   BRAND LINK CARDS (Brands page footer links)
   ========================================================= */
.v3 .tp-brandlinks { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.v3 .tp-brandlink {
  display: flex; flex-direction: column; gap: 0.5rem;
  padding: 2rem 1.6rem;
  background: #fff;
  border: 1px solid var(--v3-line);
  transition: border-color 0.2s ease, transform 0.2s ease;
}
.v3 .tp-brandlink:hover { border-color: var(--v3-ink); transform: translateY(-3px); }
.v3 .tp-brandlink strong {
  font-family: var(--v3-serif); font-size: 1.4rem; font-weight: 600; color: var(--v3-ink);
}
.v3 .tp-brandlink span { font-size: 0.85rem; color: var(--v3-muted); }

@media (max-width: 960px) {
  .v3 .tp-steps { grid-template-columns: 1fr; }
  .v3 .tp-brandlinks { grid-template-columns: 1fr 1fr; }

  /* ===== Mobile menu ‚Äî left-aligned, top-anchored, nested submenus ===== */
  .v3 .v3-nav {
    justify-content: flex-start;   /* top-anchored, not vertically centered */
    align-items: stretch;
    text-align: left;
    gap: 0;
    padding: 5.5rem 1.75rem 2.5rem;
    overflow-y: auto;
  }
  /* Top-level links (Home, Our brands, Partnership, News, Contact) */
  .v3 .v3-nav > a {
    font-size: 1.15rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    padding: 1rem 0;
    border-bottom: 1px solid var(--v3-line);
  }
  /* Groups (Company, Careers) */
  .v3 .v3-nav__group {
    position: static;
    display: block;
    padding: 1rem 0;
    border-bottom: 1px solid var(--v3-line);
  }
  .v3 .v3-nav__top {
    font-size: 1.15rem !important;
    font-weight: 600;
    letter-spacing: 0.02em;
    display: block;
    padding: 0 !important;
  }
  .v3 .v3-nav__top::after { display: none; }
  /* Submenu ‚Äî indented block beneath its parent */
  .v3 .v3-nav__menu {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
    border: 0;
    background: transparent;
    padding: 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    margin: 0.6rem 0 0 0.9rem;
    border-left: 2px solid var(--v3-line);
  }
  .v3 .v3-nav__menu a {
    font-size: 0.98rem !important;
    font-weight: 500;
    text-transform: none !important;
    letter-spacing: 0 !important;
    color: var(--v3-muted-soft) !important;
    padding: 0.5rem 0 0.5rem 1rem !important;
  }
}
@media (max-width: 600px) {
  .v3 .tp-brandlinks { grid-template-columns: 1fr; }
  .v3 .tp-job { flex-direction: column; align-items: flex-start; gap: 0.6rem; }
}
/* =============================================================
   TP SILVA ‚Äî NATIVE-WIDGET BRIDGE
   Append AFTER brand-styles-v3.css + brand-tpsilva-v3.css in
   Site Settings ‚Üí Custom CSS. Maps the v3 mockup styles onto
   Elementor's native widget DOM. Everything is scoped under .v3 ‚Äî
   the outer container (home) / template wrapper (header/footer)
   MUST carry the CSS class "v3", so nothing else is touched.
   ============================================================= */

/* ---- 0. Elementor container plumbing under .v3 ---------------- */
.v3 .e-con > .e-con-inner { padding: 0 !important; }
.v3.e-con,
.v3.tp-native-root { max-width: 100% !important; padding: 0 !important; }
.v3.tp-native-root > .e-con-inner { max-width: 100% !important; row-gap: 0 !important; }

/* Flatten inner-wrapper of layout containers so their children become
   direct grid/flex items of the v3 layout class (display:contents). */
.v3 .v3-features__grid > .e-con-inner,
.v3 .tp-bigstat__inner  > .e-con-inner,
.v3 .v3-split           > .e-con-inner,
.v3 .v3-stats__grid     > .e-con-inner,
.v3 .v3-partners__row   > .e-con-inner,
.v3 .v3-news__grid      > .e-con-inner,
.v3 .v3-news__head      > .e-con-inner,
.v3 .v3-hero__actions   > .e-con-inner,
.v3 .v3-cta__actions    > .e-con-inner { display: contents !important; }

/* ---- 1. Sections full-bleed + content centered to 1440 -------- */
.v3 .v3-hero, .v3 .v3-mantra, .v3 .v3-features, .v3 .v3-bigstat,
.v3 .v3-split, .v3 .v3-stats, .v3 .v3-partners, .v3 .v3-quote,
.v3 .v3-news, .v3 .v3-cta {
  max-width: 100% !important; width: 100% !important;
  margin-left: 0 !important; margin-right: 0 !important;
}
/* re-create .container for "normal" sections (full-layout ones handle their own) */
.v3 .v3-features > .e-con-inner,
.v3 .v3-stats    > .e-con-inner,
.v3 .v3-partners > .e-con-inner,
.v3 .v3-quote    > .e-con-inner,
.v3 .v3-news     > .e-con-inner,
.v3 .v3-cta      > .e-con-inner,
.v3 .v3-mantra   > .e-con-inner {
  max-width: var(--v3-container) !important;
  margin-left: auto !important; margin-right: auto !important;
  padding-left: var(--v3-gutter) !important;
  padding-right: var(--v3-gutter) !important;
}

/* ---- 2. Headings: inner title adopts the wrapper class' type ---
   Targeted per-class (NOT global) so plain tag-context rules like the
   unprefixed `.v3-cta h2` / `.v3-news__item h3` keep styling their titles. */
/* eyebrows + <div>-based number/label headings adopt the wrapper fully */
.v3 .v3-eyebrow .elementor-heading-title,
.v3 .v3-feature__num .elementor-heading-title,
.v3 .v3-bigstat__num .elementor-heading-title,
.v3 .v3-bigstat__label .elementor-heading-title,
.v3 .v3-stat__num .elementor-heading-title,
.v3 .v3-stat__label .elementor-heading-title,
.v3 .v3-partner__text .elementor-heading-title,
.v3 .v3-partners__label .elementor-heading-title,
.v3 .v3-quote__cite .elementor-heading-title {
  font: inherit; color: inherit; letter-spacing: inherit;
  line-height: inherit; text-transform: inherit; margin: 0;
}
/* h1/h2 display headings: inherit SIZE from wrapper (family + colour come
   from the .v3 h1..h4 tag rules + dark-section overrides on the tag). */
.v3 .v3-display .elementor-heading-title,
.v3 .v3-h2 .elementor-heading-title {
  font-size: inherit; font-weight: inherit;
  letter-spacing: inherit; line-height: inherit; margin: 0;
}
.v3 .elementor-heading-title { margin: 0; }
/* wrapper-classed body text (hero sub / bigstat sub / quote) -> inner p inherits */
.v3 .v3-hero__sub  .elementor-widget-container p,
.v3 .v3-bigstat__sub .elementor-widget-container p,
.v3 .v3-quote__text .elementor-widget-container p {
  font: inherit; color: inherit; letter-spacing: inherit;
  line-height: inherit; margin: 0;
}

/* ---- 3. Buttons: native .elementor-button == .v3-btn ---------- */
.v3 .elementor-widget-button { width: auto; }
.v3 .elementor-button {
  display: inline-flex; align-items: center; gap: 0.6rem;
  padding: 0.95rem 1.6rem;
  background: var(--v3-ink); color: var(--v3-paper);
  font-family: var(--v3-sans); font-size: 0.85rem; font-weight: 600;
  letter-spacing: 0.06em; text-transform: uppercase;
  border: 1px solid var(--v3-ink); border-radius: 0;
  transition: all 0.25s ease; fill: currentColor;
}
.v3 .elementor-button:hover { background: #000; border-color: #000; color: #fff; }
.v3 .v3-btn--ghost .elementor-button { background: transparent; color: var(--v3-ink); border-color: var(--v3-ink); }
.v3 .v3-btn--ghost .elementor-button:hover { background: var(--v3-ink); color: var(--v3-paper); }
.v3 .v3-btn--light .elementor-button { background: var(--v3-paper); color: var(--v3-ink); border-color: var(--v3-paper); }
.v3 .v3-btn--light .elementor-button:hover { background: #000; color: #fff; border-color: #000; }
.v3 .v3-btn--outline-light .elementor-button { background: transparent; color: var(--v3-paper); border-color: rgba(255,255,255,0.35); }
.v3 .v3-btn--outline-light .elementor-button:hover { background: var(--v3-paper); color: var(--v3-ink); border-color: var(--v3-paper); }
.v3 .v3-btn--accent .elementor-button { background: #fff; color: var(--v3-ink); border-color: #fff; }
.v3 .v3-btn--accent .elementor-button:hover { background: transparent; color: #fff; border-color: rgba(255,255,255,0.4); }
/* button rows: force horizontal (Elementor container is column by default) */
.v3 .v3-btnrow { display: flex; flex-direction: row; flex-wrap: wrap; gap: 1rem; align-items: center; }

/* ---- 4. HERO ‚Äî bg image + navy overlay ----------------------- */
.v3 .v3-hero { position: relative; overflow: hidden; }
.v3 .v3-hero > .e-con-inner { max-width: 100% !important; padding: 0 !important; }
.v3 .v3-hero__bg {
  position: absolute !important; inset: 0 !important; z-index: 0 !important; margin: 0 !important;
}
.v3 .v3-hero__bg, .v3 .v3-hero__bg .elementor-widget-container,
.v3 .v3-hero__bg a { width: 100% !important; height: 100% !important; display: block; }
.v3 .v3-hero__bg img { width: 100% !important; height: 100% !important; object-fit: cover !important; }
.v3 .v3-hero::after {
  content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(90deg, rgba(15,26,54,0.96) 0%, rgba(15,26,54,0.88) 35%,
              rgba(15,26,54,0.55) 65%, rgba(15,26,54,0.25) 100%);
}
.v3 .v3-hero__inner {
  position: relative !important; z-index: 2 !important;
  max-width: var(--v3-container); margin-left: auto; margin-right: auto;
  padding-left: var(--v3-gutter) !important; padding-right: var(--v3-gutter) !important;
  align-items: flex-start;
}
.v3 .v3-hero__actions { margin-top: 2.5rem; justify-content: flex-start; }

/* ---- 5. BIG STAT split (was inline <style> in the mock) ------- */
.v3 .tp-bigstat--split { padding: 0 !important; }
.v3 .tp-bigstat__inner { display: grid; grid-template-columns: 1fr 1fr; min-height: 80vh; }
.v3 .tp-bigstat__content { justify-content: center; padding: clamp(3rem, 8vw, 6rem) !important; }
.v3 .tp-bigstat__image { position: relative; overflow: hidden; background: var(--v3-ink-deep); }
.v3 .tp-bigstat__image, .v3 .tp-bigstat__image .elementor-widget-container,
.v3 .tp-bigstat__image a { height: 100% !important; display: block; }
.v3 .tp-bigstat__image img { width: 100% !important; height: 100% !important; object-fit: cover !important; opacity: 0.85; }

/* ---- 6. SPLIT ‚Äî image fills its grid column ------------------- */
.v3 .v3-split__image,
.v3 .v3-split__image > .e-con-inner,
.v3 .v3-split__image .elementor-widget-image,
.v3 .v3-split__image .elementor-widget-container,
.v3 .v3-split__image a,
.v3 .v3-split__image img { height: 100% !important; }
.v3 .v3-split__image img { width: 100% !important; object-fit: cover !important; }
.v3 .v3-split__meta { font-size: 0.85rem; color: var(--v3-muted-soft); letter-spacing: 0.05em; }

/* ---- 7. NEWS / PARTNERS image + card helpers ----------------- */
.v3 .v3-news__image .elementor-widget-container, .v3 .v3-news__image a { display: block; height: 100%; }
.v3 .v3-news__image img { width: 100% !important; height: 100% !important; object-fit: cover !important; }
.v3 .v3-partner .elementor-widget-image { display: flex; justify-content: center; }
.v3 .v3-partners__strategic { margin-top: 3.5rem; padding-top: 2.5rem; border-top: 1px solid var(--v3-line); text-align: center; }
.v3 .v3-partners__statement { font-family: var(--v3-serif); font-size: clamp(1.2rem, 1.8vw, 1.6rem); font-weight: 500; color: var(--v3-ink); max-width: 52ch; margin: 0 auto; line-height: 1.4; text-align: center; }

/* ---- 8. small marks + section-lead --------------------------- */
.v3 .v3-plus { font-size: 0.5em; vertical-align: top; }
.v3 .v3-bigstat__num .v3-plus { color: rgba(255,255,255,0.7); }
.v3 .v3-stat__num .v3-plus { color: var(--v3-muted); }
.v3 .v3-sectionlead { margin-bottom: 2rem; }

/* ---- 9. vertical rhythm inside stacked cards ----------------- */
.v3 .v3-feature > .e-con-inner { row-gap: 0.9rem; }
.v3 .v3-news__item > .e-con-inner { row-gap: 0.6rem; }
.v3 .v3-split__text > .e-con-inner { row-gap: 1.1rem; align-items: flex-start; }
.v3 .tp-bigstat__content > .e-con-inner { row-gap: 1rem; }
.v3 .v3-quote__inner > .e-con-inner,
.v3 .v3-cta > .e-con-inner { row-gap: 1.5rem; }
.v3 .v3-hero__inner > .e-con-inner { row-gap: 1.2rem; }

/* ---- 10. responsive ------------------------------------------ */
@media (max-width: 960px) {
  .v3 .tp-bigstat__inner { grid-template-columns: 1fr; }
  .v3 .tp-bigstat__image { min-height: 300px; }
}

/* =============================================================
   HEADER + FOOTER (native templates; outer container class "v3")
   ============================================================= */
/* --- header shell --- */
.v3 .v3-header { max-width: 100% !important; }
.v3 .v3-header > .e-con-inner { max-width: 100% !important; padding: 0 !important; }
.v3 .v3-header__inner {
  max-width: var(--v3-container) !important;
  margin-left: auto !important; margin-right: auto !important;
  padding-left: var(--v3-gutter) !important; padding-right: var(--v3-gutter) !important;
}
/* Elementor containers default to flex-direction:column ‚Äî force ROW on the
   horizontal bars (the mockup's raw <nav>/<div> were row by default). */
.v3 .v3-header__inner,
.v3 .v3-header__right,
.v3 .v3-header__logo,
.v3 .v3-lang,
.v3 .v3-footer__bottom { flex-direction: row; align-items: center; }
@media (min-width: 961px) {
  .v3 .v3-nav { flex-direction: row; align-items: center; }
  .v3 .v3-nav__group { flex-direction: row; align-items: center; }
}
/* flatten layout wrappers so children are direct flex items */
.v3 .v3-header__inner > .e-con-inner,
.v3 .v3-header__right > .e-con-inner,
.v3 .v3-header__logo  > .e-con-inner,
.v3 .v3-nav           > .e-con-inner,
.v3 .v3-nav__group    > .e-con-inner,
.v3 .v3-nav__menu     > .e-con-inner,
.v3 .v3-lang          > .e-con-inner,
.v3 .v3-footer__grid  > .e-con-inner,
.v3 .v3-footer__bottom> .e-con-inner { display: contents !important; }

/* --- nav links are heading widgets -> keep them inline in the row --- */
.v3 .v3-header__inner { gap: 2rem; }
.v3 .v3-nav .elementor-widget-heading,
.v3 .v3-lang .elementor-widget-heading { width: auto; }
.v3 .v3-nav .elementor-heading-title,
.v3 .v3-lang .elementor-heading-title { display: inline; margin: 0; font: inherit; letter-spacing: inherit; }
.v3 .v3-nav .elementor-heading-title a { display: inline-block; white-space: nowrap; }
.v3 .v3-nav__top { display: inline-flex; align-items: center; white-space: nowrap; }
.v3 .elementor-button { white-space: nowrap; }
.v3 .v3-logo-textmark { text-transform: none; }
/* dropdown submenu links stack full width */
.v3 .v3-nav__menu .elementor-widget-heading { width: 100%; }
.v3 .v3-nav__menu .elementor-heading-title { display: block; }
/* lang active state (class sits on the heading widget wrapper) */
.v3 .v3-lang .is-active .elementor-heading-title a { color: var(--v3-ink); }

/* --- logo mark + word mark (native heading widgets) --- */
.v3 .v3-logo-mark .elementor-heading-title,
.v3 .v3-logo-textmark .elementor-heading-title { font: inherit; color: inherit; margin: 0; letter-spacing: inherit; }
.v3 .v3-logo-textmark {
  font-family: var(--v3-serif); font-weight: 500; font-size: 1.5rem;
  letter-spacing: -0.01em; color: var(--v3-ink); display: flex; align-items: center;
}
.v3-footer .v3-logo-textmark { color: #fff; }

/* --- footer shell --- */
.v3 .v3-footer { max-width: 100% !important; }
.v3 .v3-footer > .e-con-inner {
  max-width: var(--v3-container) !important;
  margin-left: auto !important; margin-right: auto !important;
  padding-left: var(--v3-gutter) !important; padding-right: var(--v3-gutter) !important;
}
.v3 .v3-footer__intro > .e-con-inner { row-gap: 1rem; }
.v3 .v3-footer__col > .e-con-inner { row-gap: 1rem; }
.v3 .v3-footer__slogan {
  font-family: var(--v3-serif); font-style: italic; font-size: 1.15rem;
  color: rgba(255,255,255,0.85); margin-top: 0.5rem;
}

/* --- native header on mobile: no burger/JS -> show nav as a wrapped row
   (scoped to the native header so nothing else is affected) --- */
@media (max-width: 960px) {
  .v3.tp-header-root .v3-header__inner { flex-wrap: wrap; gap: 1rem; }
  .v3.tp-header-root .v3-nav {
    position: static !important; transform: none !important; inset: auto !important;
    width: 100% !important; height: auto !important; padding: 0.25rem 0 0.75rem !important;
    background: transparent !important; overflow: visible !important;
    flex-direction: row !important; flex-wrap: wrap !important;
    justify-content: flex-start !important; align-items: center !important; gap: 1rem 1.4rem !important;
  }
  .v3.tp-header-root .v3-nav__group { flex-direction: row !important; position: static !important; }
  .v3.tp-header-root .v3-nav__menu {
    position: static !important; opacity: 1 !important; visibility: visible !important;
    transform: none !important; box-shadow: none !important; border: 0 !important;
    background: transparent !important; padding: 0 !important; margin: 0 0 0 0.6rem !important;
    flex-direction: row !important; gap: 0.9rem !important; border-left: 1px solid var(--v3-line) !important;
  }
  .v3.tp-header-root .v3-nav__menu a { padding: 0 0 0 0.6rem !important; }
}

/* =============================================================
   HEADER via Elementor Pro NAV MENU widget (robust, editable)
   Give the Nav Menu widget the CSS class "v3-nav". Manage items in
   Appearance -> Menus. This styles Elementor's own nav DOM to v3 look.
   ============================================================= */
.v3 .v3-nav .elementor-nav-menu--main { display: flex; }
.v3 .v3-nav .elementor-nav-menu { gap: 0.4rem 2rem; }
.v3 .v3-nav .elementor-nav-menu > li { margin: 0; }
.v3 .v3-nav .elementor-item {
  font-family: var(--v3-sans) !important;
  font-size: 0.88rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em !important;
  text-transform: uppercase !important;
  color: var(--v3-ink) !important;
  padding: 0.4rem 0 !important;
  fill: currentColor;
}
.v3 .v3-nav .elementor-item:hover,
.v3 .v3-nav .elementor-item.elementor-item-active { color: var(--v3-ink) !important; }
/* dropdown submenu */
.v3 .v3-nav .elementor-nav-menu--dropdown,
.v3 .v3-nav .elementor-nav-menu__container.elementor-nav-menu--dropdown {
  background: #fff !important;
  border: 1px solid var(--v3-line) !important;
  box-shadow: 0 24px 48px rgba(15,26,54,0.14) !important;
  padding: 0.5rem 0 !important;
  min-width: 240px;
}
.v3 .v3-nav .elementor-nav-menu--dropdown a.elementor-sub-item {
  font-size: 0.92rem !important;
  font-weight: 500 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  color: var(--v3-muted) !important;
  padding: 0.65rem 1.5rem !important;
}
.v3 .v3-nav .elementor-nav-menu--dropdown a.elementor-sub-item:hover,
.v3 .v3-nav .elementor-nav-menu--dropdown a.elementor-sub-item:focus {
  background: var(--v3-paper-2) !important;
  color: var(--v3-ink) !important;
}
/* CURRENT-PAGE sub-item: Elementor's active state gave it a dark bar with
   dark (invisible) text ‚Äî make it a readable light highlight in accent. */
.v3 .v3-nav .elementor-nav-menu--dropdown a.elementor-sub-item.elementor-item-active,
.v3 .v3-nav .elementor-nav-menu--dropdown a.elementor-sub-item[aria-current] {
  background: var(--v3-paper-2) !important;
  color: var(--v3-accent) !important;
}
/* mobile toggle (hamburger) colour */
.v3 .v3-nav .elementor-menu-toggle { color: var(--v3-ink) !important; }
.v3 .v3-nav .elementor-menu-toggle svg { fill: var(--v3-ink) !important; }

/* nav never wraps to a second line */
.v3 .v3-nav .elementor-nav-menu { flex-wrap: nowrap !important; }
.v3 .v3-nav .elementor-item { white-space: nowrap !important; }

/* =============================================================
   FIXES ‚Äî punctuation + spacing (Elementor default gap = 20px
   doubled our spacing). Reset all container gaps, re-apply exact.
   ============================================================= */
/* mantra separator: ASCII-escape so it never mojibakes (was showing as garbage) */
.v3 .v3-mantra__text span::before { content: '\00B7' !important; }

/* kill Elementor's default 20px container gap everywhere under .v3 */
.v3 .e-con, .v3 .e-con > .e-con-inner { gap: 0 !important; }

/* re-apply grid gaps */
.v3 .v3-features__grid { gap: clamp(2rem, 4vw, 3.5rem) !important; }
.v3 .v3-stats__grid    { gap: 0 !important; }
.v3 .v3-partners__row  { gap: 2rem !important; }
.v3 .v3-news__grid     { gap: clamp(1.5rem, 3vw, 2.5rem) !important; }
.v3 .tp-bigstat__inner { gap: 0 !important; min-height: 60vh; }
.v3 .v3-split          { gap: 0 !important; }

/* re-apply intra-block vertical rhythm */
.v3 .v3-feature > .e-con-inner          { row-gap: 0.9rem !important; }
.v3 .v3-news__item > .e-con-inner       { row-gap: 0.6rem !important; }
.v3 .v3-split__text > .e-con-inner      { row-gap: 1.1rem !important; }
.v3 .tp-bigstat__content > .e-con-inner { row-gap: 1rem !important; }
.v3 .v3-hero__inner > .e-con-inner      { row-gap: 1.1rem !important; }
.v3 .v3-quote__inner > .e-con-inner     { row-gap: 1.2rem !important; }
.v3 .v3-cta > .e-con-inner              { row-gap: 1.2rem !important; }
.v3 .v3-features__head > .e-con-inner   { row-gap: 1rem !important; }
.v3 .v3-sectionlead > .e-con-inner      { row-gap: 0.8rem !important; }
.v3 .v3-btnrow                          { gap: 1rem !important; }

/* section head -> grid gap (moderate, not the old 20px+clamp stack) */
.v3 .v3-features > .e-con-inner,
.v3 .v3-stats > .e-con-inner,
.v3 .v3-news > .e-con-inner    { row-gap: clamp(2rem, 4vw, 3rem) !important; }
.v3 .v3-partners > .e-con-inner { row-gap: 2rem !important; }

/* =============================================================
   INTERIOR PAGE COMPONENTS ‚Äî pageheader, timeline, intro grid,
   brand-stats, centered blocks (Company/other pages)
   ============================================================= */
/* eyebrow (native heading .v3-eyebrow) + pageheader eyebrow inherit */
.v3 .v3-eyebrow .elementor-heading-title,
.v3 .v3-eyebrow--light .elementor-heading-title,
.v3 .v3-pageheader__eyebrow .elementor-heading-title,
.v3 .tp-intro-lead .elementor-heading-title,
.v3 .tp-brandstat__num .elementor-heading-title,
.v3 .tp-brandstat__label .elementor-heading-title,
.v3 .v3-timeline-item__year .elementor-heading-title {
  font: inherit; color: inherit; letter-spacing: inherit;
  line-height: inherit; text-transform: inherit; margin: 0;
}

/* section padding + soft bg helpers */
.v3 .tp-pad { padding-top: clamp(4rem, 8vw, 6.5rem) !important; padding-bottom: clamp(4rem, 8vw, 6.5rem) !important; }
.v3 .tp-soft { background: var(--v3-paper-2); border-top: 1px solid var(--v3-line); border-bottom: 1px solid var(--v3-line); }
.v3 .v3-section { max-width: 100% !important; }
.v3 .v3-section > .e-con-inner { max-width: var(--v3-container) !important; margin-left: auto !important; margin-right: auto !important; padding-left: var(--v3-gutter) !important; padding-right: var(--v3-gutter) !important; }

/* PAGE HEADER (bg image + navy overlay), like hero */
.v3 .v3-pageheader { position: relative; overflow: hidden; }
.v3 .v3-pageheader > .e-con-inner { max-width: 100% !important; padding: 0 !important; }
.v3 .v3-pageheader__bg { position: absolute !important; inset: 0 !important; z-index: 0 !important; margin: 0 !important; }
.v3 .v3-pageheader__bg, .v3 .v3-pageheader__bg .elementor-widget-container, .v3 .v3-pageheader__bg a { width: 100% !important; height: 100% !important; display: block; }
.v3 .v3-pageheader__bg img { width: 100% !important; height: 100% !important; object-fit: cover !important; opacity: 0.6; }
.v3 .v3-pageheader::after { content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(135deg, rgba(15,26,54,0.9) 0%, rgba(15,26,54,0.6) 70%, rgba(15,26,54,0.4) 100%); }
.v3 .v3-pageheader__inner { position: relative !important; z-index: 2 !important; max-width: var(--v3-container); margin-left: auto; margin-right: auto; padding-left: var(--v3-gutter) !important; padding-right: var(--v3-gutter) !important; align-items: flex-start; }
.v3 .v3-pageheader__inner > .e-con-inner { max-width: 55rem; row-gap: 1rem !important; }
.v3 .v3-pageheader__lead .elementor-widget-container p { font: inherit; color: inherit; letter-spacing: inherit; line-height: inherit; margin: 0; }

/* INTRO 2-col grid */
.v3 .tp-intro-grid { display: grid; grid-template-columns: 1fr 2fr; gap: clamp(2rem, 6vw, 5rem); align-items: start; max-width: 1200px; margin: 0 auto; }
.v3 .tp-intro-grid > .e-con-inner { display: contents !important; }
.v3 .tp-intro-lead { font-family: var(--v3-serif); font-weight: 500; font-size: clamp(1.5rem, 2.3vw, 2.1rem); line-height: 1.25; letter-spacing: -0.01em; color: var(--v3-ink); }
.v3 .tp-intro-body p { font-size: 1.05rem; line-height: 1.65; color: var(--v3-muted-soft); max-width: 58ch; }
.v3 .tp-intro-grid > .e-con-inner > .e-con > .e-con-inner { row-gap: 1.2rem !important; }

/* CENTERED text block */
.v3 .tp-center { text-align: center; max-width: 60rem; margin-left: auto; margin-right: auto; }
.v3 .tp-center > .e-con-inner { row-gap: 1.2rem !important; align-items: center; }
.v3 .tp-center .v3-eyebrow { justify-content: center; }
.v3 .tp-center p { font-size: 1.1rem; color: var(--v3-muted); line-height: 1.7; }

/* BRAND STATS row */
.v3 .tp-brandstats { display: flex; gap: 2.5rem; margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--v3-line); flex-wrap: wrap; }
.v3 .tp-brandstats > .e-con-inner { display: contents !important; }
.v3 .tp-brandstat > .e-con-inner { row-gap: 0.3rem !important; }
.v3 .tp-brandstat__num { font-family: var(--v3-serif); font-size: 1.8rem; font-weight: 500; color: var(--v3-ink); letter-spacing: -0.01em; line-height: 1; }
.v3 .tp-brandstat__label { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--v3-muted); }

/* TIMELINE */
.v3 .v3-timeline { max-width: 900px !important; margin-left: auto !important; margin-right: auto !important; }
.v3 .v3-timeline > .e-con-inner { row-gap: 0 !important; }
.v3 .v3-timeline-item { display: grid !important; grid-template-columns: 140px 1fr; gap: 3rem !important; padding: 2rem 0; border-top: 1px solid var(--v3-line); align-items: baseline; }
.v3 .v3-timeline-item:last-child { border-bottom: 1px solid var(--v3-line); }
.v3 .v3-timeline-item > .e-con-inner { display: contents !important; }
.v3 .v3-timeline-item__body > .e-con-inner { row-gap: 0.6rem !important; }

@media (max-width: 768px) {
  .v3 .tp-intro-grid { grid-template-columns: 1fr; }
  .v3 .v3-timeline-item { grid-template-columns: 1fr; gap: 0.5rem !important; }
  .v3 .tp-brandstats { gap: 1.5rem; }
}

/* PROSE (Responsibility statement + body) */
.v3 .v3-prose { max-width: 65rem !important; margin-left: auto !important; margin-right: auto !important; }
.v3 .v3-prose > .e-con-inner { row-gap: 1.5rem !important; }
.v3 .v3-prose__statement .elementor-heading-title { font: inherit; color: inherit; letter-spacing: inherit; line-height: inherit; text-transform: inherit; margin: 0; }
.v3 .v3-prose p { font-size: 1.1rem; line-height: 1.75; color: var(--v3-muted); }

/* =============================================================
   STRONG spacing reset (kill ALL Elementor gaps/margins between
   sections & widgets; the per-component gaps above re-add what we want)
   ============================================================= */
.v3 .e-con, .v3 .e-con > .e-con-inner {
  gap: 0 !important; row-gap: 0 !important; column-gap: 0 !important;
}
.v3.tp-native-root > .e-con-inner > .e-con,
.v3 .tp-native-root > .e-con-inner > .e-con { margin: 0 !important; }
.v3 .e-con { margin-top: 0 !important; margin-bottom: 0 !important; }
/* re-apply the row-gaps we actually want (explicit row-gap wins over the reset) */
.v3 .v3-feature > .e-con-inner { row-gap: 0.9rem !important; }
.v3 .v3-split__text > .e-con-inner { row-gap: 1.1rem !important; }
.v3 .tp-bigstat__content > .e-con-inner { row-gap: 1rem !important; }
.v3 .v3-hero__inner > .e-con-inner { row-gap: 1.1rem !important; }
.v3 .v3-cta > .e-con-inner, .v3 .v3-quote__inner > .e-con-inner { row-gap: 1.2rem !important; }
.v3 .tp-center > .e-con-inner, .v3 .v3-prose > .e-con-inner { row-gap: 1.3rem !important; }
.v3 .v3-features__grid { gap: clamp(2rem,4vw,3.5rem) !important; }
.v3 .v3-news__grid { gap: clamp(1.5rem,3vw,2.5rem) !important; }
.v3 .v3-partners__row { gap: 2rem !important; }
.v3 .v3-timeline-item { gap: 3rem !important; }

/* =============================================================
   FLAT-MODEL FIX ‚Äî this site's Elementor renders FULL containers
   WITHOUT an .e-con-inner (children sit directly in .e-con).
   These rules target .e-con directly so centring/gaps work.
   (Loaded last -> wins over the inner-based rules above.)
   ============================================================= */
/* kill the gap between sections + any stray container gap/margin */
.v3.tp-native-root, .v3 .e-con { gap: 0 !important; row-gap: 0 !important; column-gap: 0 !important; }
.v3.tp-native-root > .e-con { margin: 0 !important; }

/* full-bleed content sections: centre their content to the container width */
.v3 .v3-features, .v3 .v3-stats, .v3 .v3-partners, .v3 .v3-quote,
.v3 .v3-news, .v3 .v3-cta, .v3 .v3-section {
  align-items: center !important;
}
.v3 .v3-features > *, .v3 .v3-stats > *, .v3 .v3-partners > *,
.v3 .v3-quote > *, .v3 .v3-news > *, .v3 .v3-cta > *, .v3 .v3-section > * {
  width: 100% !important; max-width: var(--v3-container) !important;
  padding-left: var(--v3-gutter) !important; padding-right: var(--v3-gutter) !important;
}
/* vertical rhythm between a section's blocks */
.v3 .v3-features, .v3 .v3-stats, .v3 .v3-news { row-gap: clamp(2rem,4vw,3rem) !important; }
.v3 .v3-cta, .v3 .v3-quote, .v3 .v3-section, .v3 .v3-partners { row-gap: 1.3rem !important; }

/* grids sit directly on .e-con (children are the grid items) */
.v3 .v3-features__grid { display: grid !important; grid-template-columns: repeat(4,1fr); gap: clamp(2rem,4vw,3.5rem) !important; }
.v3 .v3-stats__grid { display: grid !important; grid-template-columns: repeat(4,1fr); gap: 0 !important; }
.v3 .v3-partners__row { display: grid !important; grid-template-columns: repeat(4,1fr); gap: 2rem !important; }
.v3 .v3-news__grid { display: grid !important; grid-template-columns: repeat(3,1fr); gap: clamp(1.5rem,3vw,2.5rem) !important; }

/* HERO / PAGE HEADER ‚Äî boxed inner: widen to container + gutter */
.v3 .v3-hero__inner, .v3 .v3-pageheader__inner { align-self: stretch !important; width: 100% !important; }
.v3 .v3-hero__inner > .e-con-inner,
.v3 .v3-pageheader__inner > .e-con-inner {
  max-width: var(--v3-container) !important;
  padding-left: var(--v3-gutter) !important; padding-right: var(--v3-gutter) !important;
  row-gap: 1.1rem !important; align-items: flex-start !important;
}

/* BIG STAT split + brand SPLIT are grids directly on .e-con */
.v3 .tp-bigstat__inner { display: grid !important; grid-template-columns: 1fr 1fr; gap: 0 !important; }
.v3 .v3-split { display: grid !important; grid-template-columns: 1fr 1fr; gap: 0 !important; }

/* stacks inside cards / columns: re-add gentle spacing */
.v3 .tp-bigstat__content, .v3 .v3-split__text, .v3 .v3-feature,
.v3 .v3-news__item, .v3 .tp-center, .v3 .v3-prose { row-gap: 1rem !important; }
.v3 .v3-timeline > * { row-gap: 0 !important; }

@media (max-width: 960px) {
  .v3 .tp-bigstat__inner, .v3 .v3-split { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .v3 .v3-features__grid, .v3 .v3-stats__grid, .v3 .v3-partners__row, .v3 .v3-news__grid { grid-template-columns: 1fr; }
}

/* stat cells: space number <-> label + breathing room (flat model) */
.v3 .v3-stat {
  row-gap: 1.1rem !important;
  padding: clamp(2rem,4vw,3rem) clamp(1rem,2vw,1.5rem) clamp(2rem,4vw,3rem) clamp(1.5rem,3vw,2.5rem) !important;
  justify-content: center;
}
.v3 .v3-stat__num { line-height: 1 !important; }
.v3 .v3-stat__num .elementor-heading-title { line-height: 1 !important; }

/* =============================================================
   MIXED-MODEL FIX ‚Äî some containers are BOXED (have .e-con-inner),
   some are FULL (no inner). Re-add intra-container spacing to BOTH
   the container AND its .e-con-inner, so it works either way.
   ============================================================= */
.v3 .v3-stat, .v3 .v3-stat > .e-con-inner { row-gap: 1.1rem !important; }
.v3 .v3-feature, .v3 .v3-feature > .e-con-inner { row-gap: 0.9rem !important; }
.v3 .v3-split__text, .v3 .v3-split__text > .e-con-inner { row-gap: 1.1rem !important; }
.v3 .tp-bigstat__content, .v3 .tp-bigstat__content > .e-con-inner { row-gap: 1rem !important; }
.v3 .tp-center, .v3 .tp-center > .e-con-inner { row-gap: 1.3rem !important; }
.v3 .v3-prose, .v3 .v3-prose > .e-con-inner { row-gap: 1.3rem !important; }
.v3 .v3-news__item, .v3 .v3-news__item > .e-con-inner { row-gap: 0.6rem !important; }
.v3 .v3-timeline-item__body, .v3 .v3-timeline-item__body > .e-con-inner { row-gap: 0.6rem !important; }
.v3 .v3-hero__inner, .v3 .v3-hero__inner > .e-con-inner { row-gap: 1.1rem !important; }
.v3 .v3-pageheader__inner, .v3 .v3-pageheader__inner > .e-con-inner { row-gap: 1rem !important; }
.v3 .v3-partners__strategic, .v3 .v3-partners__strategic > .e-con-inner { row-gap: 1rem !important; }
/* section-level rhythm (head -> grid) on both container and inner */
.v3 .v3-features, .v3 .v3-features > .e-con-inner,
.v3 .v3-stats, .v3 .v3-stats > .e-con-inner,
.v3 .v3-news, .v3 .v3-news > .e-con-inner { row-gap: clamp(2rem,4vw,3rem) !important; }
.v3 .v3-cta, .v3 .v3-cta > .e-con-inner,
.v3 .v3-quote, .v3 .v3-quote > .e-con-inner,
.v3 .v3-section, .v3 .v3-section > .e-con-inner,
.v3 .v3-partners, .v3 .v3-partners > .e-con-inner { row-gap: 1.3rem !important; }
/* boxed sections: their .e-con-inner also needs to hit container width + gutter */
.v3 .v3-features > .e-con-inner, .v3 .v3-stats > .e-con-inner,
.v3 .v3-partners > .e-con-inner, .v3 .v3-quote > .e-con-inner,
.v3 .v3-news > .e-con-inner, .v3 .v3-cta > .e-con-inner,
.v3 .v3-section > .e-con-inner {
  max-width: var(--v3-container) !important;
  padding-left: var(--v3-gutter) !important; padding-right: var(--v3-gutter) !important;
}

/* Careers: open-jobs row + title heading (flat/mixed model) */
.v3 .tp-job { display:flex !important; justify-content:space-between !important; align-items:center !important; flex-wrap:wrap; gap:1rem !important; }
.v3 .tp-job > .e-con-inner { display:contents; }
.v3 .tp-job__title .elementor-heading-title { font:inherit; color:inherit; letter-spacing:inherit; line-height:inherit; margin:0; }

/* Our brands: brand link cards (native, flat/mixed model) */
.v3 .tp-brandlinks { display: grid !important; grid-template-columns: repeat(4,1fr); gap: 1.5rem !important; max-width: var(--v3-container); margin: 0 auto; }
.v3 .tp-brandlink, .v3 .tp-brandlink > .e-con-inner { row-gap: 0.5rem !important; }
.v3 .tp-brandlink {
  padding: clamp(1.8rem,3vw,2.4rem) !important;
  background: #fff; border: 1px solid var(--v3-line);
  transition: border-color .2s ease, transform .2s ease;
}
.v3 .tp-brandlink:hover { border-color: var(--v3-ink); transform: translateY(-3px); }
.v3 .tp-brandlink__name { font-family: var(--v3-serif); font-size: 1.4rem; font-weight: 600; color: var(--v3-ink); }
.v3 .tp-brandlink__name .elementor-heading-title { font: inherit; color: inherit; margin: 0; }
.v3 .tp-brandlink__url { font-size: 0.9rem; }
.v3 .tp-brandlink__url a { color: var(--v3-muted); font-weight: 600; }
@media (max-width: 900px) { .v3 .tp-brandlinks { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .v3 .tp-brandlinks { grid-template-columns: 1fr; } }

/* Contact: card grids (flat/mixed model) */
.v3 .tp-cards { display: grid !important; gap: 1.5rem !important; max-width: var(--v3-container); margin: 0 auto; }
.v3 .tp-cards--1 { grid-template-columns: 1fr; max-width: 640px; }
.v3 .tp-cards--2 { grid-template-columns: repeat(2,1fr); }
.v3 .tp-cards--3 { grid-template-columns: repeat(3,1fr); }
.v3 .tp-cards--4 { grid-template-columns: repeat(4,1fr); }
.v3 .tp-card, .v3 .tp-card > .e-con-inner { row-gap: 0.8rem !important; }
.v3 .tp-card { padding: clamp(1.8rem,3vw,2.4rem) !important; background: #fff; border: 1px solid var(--v3-line); }
.v3 .tp-card h3 { font-family: var(--v3-serif); font-size: 1.3rem; font-weight: 600; }
.v3 .tp-card__body p { font-size: 0.98rem; line-height: 1.6; color: var(--v3-muted); margin: 0 0 0.3rem; }
.v3 .tp-card__body a { color: var(--v3-ink); font-weight: 500; }
.v3 .tp-card__body strong { color: var(--v3-ink); }
.v3 .tp-sectionlead { margin-bottom: 1.5rem; }
@media (max-width:960px){ .v3 .tp-cards--3, .v3 .tp-cards--4 { grid-template-columns: 1fr 1fr; } }
@media (max-width:600px){ .v3 .tp-cards--2, .v3 .tp-cards--3, .v3 .tp-cards--4 { grid-template-columns: 1fr; } }

/* =============================================================
   INSIGHTS ‚Äî dynamic article feed (Elementor Pro Posts widget)
   Style the auto-generated post cards to match the v3-news cards.
   Targets Elementor's stable `.elementor-post*` markup so ANY
   Posts / Archive Posts widget carrying `.v3-posts` looks right.
   ============================================================= */
.v3 .v3-posts .elementor-posts-container,
.v3 .v3-posts .elementor-posts {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: clamp(1.5rem, 3vw, 2.5rem) !important;
  margin: 0 !important;
}
.v3 .v3-posts .elementor-post {
  display: flex !important;
  flex-direction: column;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
}
.v3 .v3-posts .elementor-post__card { border: 0 !important; box-shadow: none !important; background: transparent !important; overflow: visible; }
.v3 .v3-posts .elementor-post__thumbnail__link { display: block; }
.v3 .v3-posts .elementor-post__thumbnail {
  aspect-ratio: 16/10;
  height: auto !important;
  padding-bottom: 0 !important;      /* Elementor uses padding-bottom ratio */
  overflow: hidden;
  margin-bottom: 1.5rem;
  background: var(--v3-paper-2);
}
.v3 .v3-posts .elementor-post__thumbnail img {
  position: static !important;        /* Elementor absolutely-positions it */
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform 0.8s ease;
}
.v3 .v3-posts .elementor-post:hover .elementor-post__thumbnail img { transform: scale(1.04); }
.v3 .v3-posts .elementor-post__text { padding: 0 !important; }
.v3 .v3-posts .elementor-post__meta-data {
  font-size: 0.72rem; font-weight: 600; letter-spacing: 0.15em;
  text-transform: uppercase; color: var(--v3-muted);
  margin: 0 0 0.8rem !important; border: 0 !important;
}
.v3 .v3-posts .elementor-post__title {
  font-size: clamp(1.1rem, 1.5vw, 1.4rem) !important;
  font-weight: 800; letter-spacing: -0.01em; line-height: 1.2;
  margin: 0 0 0.8rem !important; text-transform: uppercase;
}
.v3 .v3-posts .elementor-post__title a { color: var(--v3-ink); text-decoration: none; }
.v3 .v3-posts .elementor-post__title a:hover { color: var(--v3-accent); }
.v3 .v3-posts .elementor-post__excerpt p {
  font-size: 0.9rem; color: var(--v3-muted); line-height: 1.55; margin: 0;
}
.v3 .v3-posts .elementor-post__read-more {
  display: inline-block; margin-top: 1rem;
  font-size: 0.72rem; font-weight: 700; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--v3-accent); text-decoration: none;
}
.v3 .v3-posts .elementor-post__read-more:hover { color: var(--v3-ink); }
/* pagination */
.v3 .v3-posts .elementor-pagination {
  margin-top: clamp(2.5rem, 5vw, 4rem);
  display: flex; gap: 0.5rem; justify-content: center; flex-wrap: wrap;
}
.v3 .v3-posts .elementor-pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 2.5rem; height: 2.5rem; padding: 0 0.6rem;
  border: 1px solid var(--v3-line); color: var(--v3-ink);
  text-decoration: none; font-weight: 600; font-size: 0.85rem;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.v3 .v3-posts .elementor-pagination .page-numbers.current,
.v3 .v3-posts .elementor-pagination .page-numbers:hover {
  background: var(--v3-accent); color: #fff; border-color: var(--v3-accent);
}
@media (max-width: 900px) {
  .v3 .v3-posts .elementor-posts-container,
  .v3 .v3-posts .elementor-posts { grid-template-columns: 1fr 1fr !important; }
}
@media (max-width: 600px) {
  .v3 .v3-posts .elementor-posts-container,
  .v3 .v3-posts .elementor-posts { grid-template-columns: 1fr !important; }
}

/* =============================================================
   HEADER LAYOUT FIX (2026-07-19)
   The blanket `.v3 .e-con { gap:0 !important }` rules above strip
   EVERY container gap under .v3 ‚Äî including the header bar. That
   jammed the logo mark against the word mark and collapsed the
   FI/EN switcher so it sat under the nav. Re-establish the header's
   horizontal spacing + a predictable row layout, with !important so
   it beats the blanket kill. Robust for BOTH the native heading-nav
   and the Elementor Pro Nav Menu widget (class `v3-nav`).
   ============================================================= */
/* Row: logo hugs the left, nav sits right next to it, the action
   group (FI/EN + Contact button) is pushed to the right edge ‚Äî so
   the nav is closer to the logo and FI/EN always has room. */
.v3 .v3-header__inner {
  gap: clamp(1.25rem, 2.5vw, 2.25rem) !important;
  justify-content: flex-start !important;
  align-items: center;
}
/* space between the round TP mark and the "Silva Oy" word mark */
.v3 .v3-header__logo { gap: 0.7rem !important; column-gap: 0.7rem !important; flex: 0 0 auto; }

/* native heading-based nav: restore the item spacing. `margin-right:auto`
   pushes everything AFTER the nav (FI/EN + button, whether wrapped in
   .v3-header__right or flat siblings) to the right edge, so the nav hugs
   the logo. This works despite the `display:contents` flattening, which
   breaks `> child` .elementor-kit-11s on the flattened items. */
.v3 .v3-nav { gap: 1.6rem !important; column-gap: 1.6rem !important; margin-right: auto !important; }
/* Nav Menu widget: shrink to its content so it can never overlap the
   FI/EN switcher, and restore the horizontal item gap. */
.v3 .v3-header__inner .elementor-widget-nav-menu,
.v3 .elementor-widget-nav-menu.v3-nav { width: auto !important; flex: 0 1 auto !important; }
.v3 .v3-nav .elementor-nav-menu { gap: 0.4rem 1.6rem !important; }

/* action group (FI/EN + button) ‚Äî kept above the nav so FI/EN can never
   render behind the menu. It is pushed right by the nav's margin-right:auto
   above (covers both the wrapped .v3-header__right and flat siblings). */
.v3 .v3-header__right { gap: 1.25rem !important; column-gap: 1.25rem !important;
  flex: 0 0 auto; position: relative; z-index: 5; }
/* FI / EN never collapses and never sits under the nav */
.v3 .v3-lang { gap: 0.5rem !important; column-gap: 0.5rem !important;
  flex: 0 0 auto; white-space: nowrap; position: relative; z-index: 5; }

/* --- MOBILE (<=960px): keep everything usable & non-overlapping ---
   NB: the outer container carries BOTH classes on ONE element
   ("v3 tp-header-root"), so it must be matched as `.v3.tp-header-root`
   (no descendant space) ‚Äî `.v3 .tp-header-root` matches nothing. */
@media (max-width: 960px) {
  /* top row = logo + FI/EN + button; the native heading-nav drops to its
     own full-width row underneath (no hamburger/JS needed). */
  .v3 .v3-header__inner {
    flex-wrap: wrap !important; gap: 0.9rem !important; row-gap: 0.7rem !important;
  }
  .v3 .v3-header__right { margin-left: auto !important; gap: 0.9rem !important; }
  .v3 .v3-lang { gap: 0.5rem !important; }
  /* native heading-nav container (.e-con.v3-nav) drops to its own row */
  .v3 .v3-nav.e-con {
    order: 3; width: 100% !important; flex: 1 0 100% !important;
    justify-content: flex-start !important; align-items: center !important;
    height: auto !important; flex-wrap: wrap !important; gap: 1rem 1.4rem !important;
  }
  /* Nav Menu widget on mobile falls back to Elementor's own hamburger;
     let it span the row under the logo if it drops. */
  .v3 .v3-header__inner .elementor-widget-nav-menu { flex: 1 1 auto !important; }
}

/* header inline containers must size to their CONTENT (Elementor gives
   `.e-con` width:100%; with no-shrink that overflowed the bar). */
.v3 .v3-header__logo,
.v3 .v3-header__right,
.v3 .v3-lang,
.v3 .v3-nav { width: auto !important; max-width: none !important; }

/* =============================================================
   OUR BRANDS ‚Äî visual brand showcase cards (image + name + link).
   Flat/mixed model safe. Content stays verbatim (brand names +
   their own domains from the doc's contact list).
   ============================================================= */
.v3 .tp-brands-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(1.5rem, 3vw, 2.5rem) !important;
  max-width: var(--v3-container); margin: 0 auto;
}
.v3 .tp-brandcard, .v3 .tp-brandcard > .e-con-inner { row-gap: 1rem !important; }
.v3 .tp-brandcard { display: flex; flex-direction: column; }
/* fixed-ratio image box ‚Äî every card image is the SAME height and cover-fills
   it. Elementor wraps the <img> in .e-con-inner / .elementor-widget-image /
   .elementor-widget-container / <figure> / <a>, so force the WHOLE chain to
   height:100% (otherwise the image sits at natural height with a grey band). */
.v3 .tp-brandcard__img {
  aspect-ratio: 4/3; overflow: hidden; background: var(--v3-paper-2);
  position: relative; margin: 0 !important;
}
.v3 .tp-brandcard__img,
.v3 .tp-brandcard__img > .e-con-inner,
.v3 .tp-brandcard__img .elementor-widget-image,
.v3 .tp-brandcard__img .elementor-widget-container,
.v3 .tp-brandcard__img figure,
.v3 .tp-brandcard__img a { height: 100% !important; width: 100%; display: block; margin: 0 !important; }
.v3 .tp-brandcard__img img {
  width: 100% !important; height: 100% !important;
  object-fit: cover !important; object-position: center !important;
  display: block; transition: transform .6s ease;
}
.v3 .tp-brandcard:hover .tp-brandcard__img img { transform: scale(1.05); }
.v3 .tp-brandcard__name { font-family: var(--v3-serif); font-size: 1.45rem; font-weight: 600; color: var(--v3-ink); }
.v3 .tp-brandcard__name .elementor-heading-title { font: inherit; color: inherit; margin: 0; }
.v3 .tp-brandcard__link a { color: var(--v3-accent); font-weight: 600; font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.08em; text-decoration: none; }
.v3 .tp-brandcard__link a:hover { color: var(--v3-ink); }
@media (max-width: 900px) { .v3 .tp-brands-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .v3 .tp-brands-grid { grid-template-columns: 1fr; } }

/* Careers hub: 3-up version of the brand/showcase card grid */
.v3 .tp-brands-grid--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .v3 .tp-brands-grid--3 { grid-template-columns: 1fr; } }

/* =============================================================
   FOOTER ‚Äî more breathing room (client: "footerissa saisi olla
   v√§h√§n ilmaa"). Loosen link spacing, column gaps and section
   padding. CSS-only; overrides the tighter brand-styles defaults.
   ============================================================= */
.v3 .v3-footer { padding-top: clamp(5rem, 9vw, 8rem) !important; padding-bottom: 2.75rem !important; }
.v3 .v3-footer__big { margin-bottom: clamp(3rem, 6vw, 5rem) !important; padding-bottom: clamp(3rem, 6vw, 5rem) !important; }
.v3 .v3-footer__grid { gap: clamp(2.5rem, 5vw, 5rem) !important; row-gap: clamp(2.5rem, 5vw, 4rem) !important; margin-bottom: clamp(3.5rem, 6vw, 5rem) !important; }
.v3 .v3-footer h4 { margin-bottom: 1.85rem !important; }
.v3 .v3-footer li { margin-bottom: 1rem !important; }
.v3 .v3-footer li:last-child { margin-bottom: 0 !important; }
.v3 .v3-footer__intro, .v3 .v3-footer__intro > .e-con-inner { row-gap: 1.35rem !important; }
.v3 .v3-footer__col, .v3 .v3-footer__col > .e-con-inner { row-gap: 1.1rem !important; }
.v3 .v3-footer__bottom { padding-top: 2.75rem !important; }

/* =============================================================
   CAREER STORY ‚Äî article sub-page (rich, readable)
   ============================================================= */
.v3 .tp-story__lead p { font-size: 1.2rem !important; line-height: 1.7 !important; color: var(--v3-ink) !important; }
.v3 .tp-storyhead { margin-top: 1.75rem !important; }
.v3 .tp-storyhead .elementor-heading-title {
  font-family: var(--v3-serif) !important; font-weight: 600 !important;
  font-size: clamp(1.35rem, 2.4vw, 1.8rem) !important; line-height: 1.25 !important;
  color: var(--v3-ink) !important; text-transform: none !important;
  letter-spacing: -0.01em !important; margin: 0 !important;
}
.v3 .tp-story-back { margin-top: 1rem; }
.v3 .tp-story-back a { color: var(--v3-accent); font-weight: 600; font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.08em; text-decoration: none; }
.v3 .tp-story-back a:hover { color: var(--v3-ink); }

/* =============================================================
   CAREER STORIES LISTING ‚Äî vertical stacked rows (image + text),
   one story per row (client: "uratarinat allekkain").
   ============================================================= */
.v3 .tp-storylist { max-width: var(--v3-container); margin: 0 auto; width: 100%; }
.v3 .tp-storyrow {
  display: grid !important;
  grid-template-columns: minmax(0, 42%) 1fr;
  gap: clamp(1.5rem, 4vw, 3.5rem) !important;
  align-items: center;
  padding: clamp(2rem, 4vw, 3.25rem) 0;
  border-top: 1px solid var(--v3-line);
}
.v3 .tp-storyrow:last-child { border-bottom: 1px solid var(--v3-line); }
.v3 .tp-storyrow > .e-con-inner { display: contents !important; }
/* image ‚Äî cover-fill a fixed-ratio box (force the whole Elementor chain) */
.v3 .tp-storyrow__img { aspect-ratio: 3/2; overflow: hidden; background: var(--v3-paper-2); margin: 0 !important; }
.v3 .tp-storyrow__img,
.v3 .tp-storyrow__img > .e-con-inner,
.v3 .tp-storyrow__img .elementor-widget-image,
.v3 .tp-storyrow__img .elementor-widget-container,
.v3 .tp-storyrow__img figure,
.v3 .tp-storyrow__img a { height: 100% !important; width: 100%; display: block; margin: 0 !important; }
.v3 .tp-storyrow__img img { width: 100% !important; height: 100% !important; object-fit: cover !important; object-position: center !important; display: block; transition: transform .6s ease; }
.v3 .tp-storyrow:hover .tp-storyrow__img img { transform: scale(1.04); }
/* text */
.v3 .tp-storyrow__text, .v3 .tp-storyrow__text > .e-con-inner { row-gap: 0.9rem !important; }
.v3 .tp-storyrow__name { font-family: var(--v3-serif); font-size: clamp(1.5rem, 2.6vw, 2.1rem); font-weight: 600; color: var(--v3-ink); line-height: 1.12; }
.v3 .tp-storyrow__name .elementor-heading-title { font: inherit; color: inherit; margin: 0; }
.v3 .tp-storyrow__teaser p { font-size: 1.05rem; line-height: 1.6; color: var(--v3-muted); }
.v3 .tp-storyrow__link a { color: var(--v3-accent); font-weight: 600; font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.08em; text-decoration: none; }
.v3 .tp-storyrow__link a:hover { color: var(--v3-ink); }
@media (max-width: 768px) {
  .v3 .tp-storyrow { grid-template-columns: 1fr; gap: 1.25rem !important; }
}

/* =============================================================
   CAREER STORIES ‚Äî full stories stacked on ONE page.
   Each story = a readable centred column: name/role eyebrow +
   headline + lead image + article body (sub-headings + text).
   ============================================================= */
.v3 .tp-story { max-width: 860px; margin: 0 auto; width: 100%; }
.v3 .tp-story, .v3 .tp-story > .e-con-inner { row-gap: 1.1rem !important; }
.v3 .tp-story .v3-eyebrow { color: var(--v3-ink); }
.v3 .tp-story__media { aspect-ratio: 16/9; overflow: hidden; background: var(--v3-paper-2); margin: 0.6rem 0 1.2rem !important; }
.v3 .tp-story__media,
.v3 .tp-story__media > .e-con-inner,
.v3 .tp-story__media .elementor-widget-image,
.v3 .tp-story__media .elementor-widget-container,
.v3 .tp-story__media figure,
.v3 .tp-story__media a { height: 100% !important; width: 100%; display: block; margin: 0 !important; }
.v3 .tp-story__media img { width: 100% !important; height: 100% !important; object-fit: cover !important; object-position: center !important; display: block; }

/* =============================================================
   OPEN JOBS ‚Äî open application form area
   ============================================================= */
.v3 .tp-formwrap { max-width: 720px; margin: 0 auto; width: 100%; }
.v3 .tp-formwrap, .v3 .tp-formwrap > .e-con-inner { row-gap: 1.5rem !important; }
.v3 .tp-formwrap .v3-h2 { text-align: center; }
.v3 .tp-appform { width: 100%; }
.v3 .tp-appform .v3-form__field input[type="file"] { padding: 0.7rem; background: #fff; font-size: 0.9rem; }
.v3 .tp-appform button.v3-btn { margin-top: 0.5rem; width: 100%; justify-content: center; }


/* =============================================================
   MOBILE NAV FIX  ‚Äî KORVAA aiemmin lis√§tyn "MOBILE NAV FIX" -lohkon
   ============================================================= */
@media (max-width: 1024px) {
  /* 1) desktop-valikko piiloon, burger j√§√§ */
  .v3 .elementor-nav-menu--dropdown-tablet .elementor-nav-menu--main { display: none !important; }

  /* 2) burgerin paneeli headerin alle koko leveydelle.
        (Ilman t√§t√§ suljettu paneeli varasi 240 px leveytt√§ rivist√§,
         koska desktop-alavalikon min-width: 240px osui my√∂s siihen.) */
  .v3.tp-header-root { position: relative !important; }
  .v3 .v3-nav.e-con,
  .v3 .v3-nav .elementor-widget-nav-menu { position: static !important; }
  .v3 .v3-nav nav.elementor-nav-menu--dropdown.elementor-nav-menu__container {
    position: absolute !important; top: 100% !important; left: 0 !important; right: 0 !important;
    width: auto !important; min-width: 0 !important; z-index: 99 !important;
    border-left: 0 !important; border-right: 0 !important;
    box-shadow: 0 24px 48px rgba(15,26,54,.14) !important;
  }
  .v3 nav.elementor-nav-menu--dropdown .elementor-item { padding: .9rem 1.5rem !important; }
  .v3 nav.elementor-nav-menu--dropdown .elementor-item.elementor-item-active,
  .v3 nav.elementor-nav-menu--dropdown .elementor-item[aria-current] {
    background: var(--v3-paper-2) !important;
  }
  .v3 nav.elementor-nav-menu--dropdown .elementor-sub-item { padding-left: 2.5rem !important; }
}

/* 3) mobiili: rivi 1 = logo + burger, rivi 2 = kieli + CONTACT US */
@media (max-width: 960px) {
  .v3 .v3-header__inner { flex-wrap: wrap !important; row-gap: .9rem !important; column-gap: .75rem !important; }
  .v3 .v3-header__logo { order: 1 !important; flex: 0 0 auto !important; }
  .v3 .v3-nav.e-con {
    order: 2 !important; width: auto !important; flex: 0 0 auto !important; height: auto !important;
    padding: 0 !important; margin-left: auto !important; margin-right: 0 !important;
    justify-content: flex-end !important;
  }
  .v3 .v3-nav .elementor-widget-nav-menu,
  .v3 .v3-header__inner .elementor-widget-nav-menu { flex: 0 0 auto !important; width: auto !important; }
  .v3 .elementor-menu-toggle { margin: 0 !important; padding: 0 !important; background: transparent !important; }
  .v3 .v3-header__right {
    order: 3 !important; flex: 1 0 100% !important; width: 100% !important;
    margin-left: 0 !important; justify-content: space-between !important; gap: .75rem !important;
  }
}

/* 4) 601-960 px: kaikki mahtuu yhdelle riville */
@media (min-width: 601px) and (max-width: 960px) {
  .v3 .v3-header__right {
    order: 2 !important; flex: 0 0 auto !important; width: auto !important;
    margin-left: auto !important; justify-content: flex-end !important;
  }
  .v3 .v3-nav.e-con { order: 3 !important; margin-left: 1rem !important; }
}/* End custom CSS */